Satura rādītājs:

Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus: 9 soļi (ar attēliem)
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus: 9 soļi (ar attēliem)

Video: Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus: 9 soļi (ar attēliem)

Video: Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus: 9 soļi (ar attēliem)
Video: Обзор и конфигурация модуля EBYTE LoRa 2024, Jūnijs
Anonim
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus
Arduino bezvadu signalizācijas sistēma, izmantojot esošos sensorus

Šo projektu var izveidot aptuveni pusstundas laikā, maksājot aptuveni USD 20,00, ja jums ir esošie 433Mhz vai 315Mhz bezvadu trauksmes sensori.

Tas var būt arī pilnīgi jauns projekts ar bezvadu trauksmes sensoriem, piemēram, infrasarkanajiem kustības detektoriem un niedru slēdžiem, kas ir viegli un lēti pieejami tiešsaistē. Vienkārši meklējiet 433Mhz vai 315Mhz sensorus, kas izmanto PT2262 vai EV1527 kodējumu.

Esmu pārliecināts, ka ir daudz tādu cilvēku kā es, kuri ir iegādājušies GSM/2G signalizācijas sistēmu ar bezvadu sensoriem un bija ar to apmierināti, tomēr, kad 2G/GSM tīkls tika izslēgts, kur es dzīvoju, man palika signalizācijas sistēma. vairs programmēt vai pat iestatīt laiku. Kādu dienu, prātojot, ko es varētu darīt, lai modinātājs atkal darbotos, man ienāca prātā pārbaudīt, vai Arduino var uztvert signālus no sensoriem. Es nejauši nokļuvu instuctable https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ un pēc dažiem eksperimentiem noteicu, ka varu saņemt signālus no esošajiem sensoriem. Es sāku procesu, lai izveidotu trauksmes sistēmu, kas varētu aizstāt manu esošo signalizāciju un nodrošinātu arī lielāku funkcionalitāti. Viena no problēmām ar veco modinātāju nekad nebija īsti zināt, kurš no 25 sensoriem ir izslēgts, pievienojot LCD ekrānu savai jaunajai modinātāja būvei, tagad LCD ekrānā tiek parādīts teksts, kurā precīzi norādīts, kurš sensors tika aktivizēts. Jauno modinātāju joprojām var manuāli aktivizēt ar maniem bezvadu taustiņiem, un tam ir reālā laika pulkstenis, kas ļauj automātiski ieslēgt un atbruņot iepriekš iestatītos diennakts laikus.

Piegādes

Noskatieties papildu piezīmes beigās, lai pārliecinātos, ka izmantojat šo detaļu pareizo versiju.

Arduino Uno vai līdzīgi

433 vai 315 MHz uztvērēja modulis Arduino

DS3231 reālā laika pulksteņa modulis Arduino

I2C 16x2 LDC modulis Arduino

Bezvadu trauksmes niedru slēdži, kustības sensori un tālvadības pults pēc vēlēšanās

Pjezo skaņas signāls

LED un 220 omu rezistors

Maizes dēlis (pēc izvēles, bet ieteicams)

Piemērots barošanas avots Arduino

Jumper vadi utt

Dators ar instalētu Arduino IDE

Pamatzināšanas par Arduino

1. solis: Piegādes

Piegādes
Piegādes
Piegādes
Piegādes
Piegādes
Piegādes

Daži attēli no iepriekš minētajiem materiāliem, kas jums būs nepieciešami šim projektam

2. darbība: savienojiet Ardunio un moduļus, kā parādīts attēlā

Pievienojiet Ardunio un moduļus, kā parādīts attēlā
Pievienojiet Ardunio un moduļus, kā parādīts attēlā

Pjezo starp Arduino tapu 5 un zemi

LED starp Arduino 8. tapu un 220 omu rezistoru, pēc tam uz zemes

433 vai 315 Mhz uztvērējs, VCC līdz 5 V, GND pie zemes un vai nu viena no 2 datu tapām Arduino 2. tapai

I2C 16X2 LCD modulis VCC līdz 5V, GND pie zemes, SCL SDA tapas līdz Arduino SCL SDA (A5 tapa ir SCL, A4 tapa ir SDA)

DS3231 RTC modulis VCC līdz 5V, GND uz zemes, SCL SDA tapas līdz Arduino SCL SDA (2. komplekts atrodas virs vairuma Arduino GND un AREF tapām)

Es zinu, ka dažiem no jums vairs nebūs nepieciešama informācija par šo un zemāk pievienotā skice, bet es sīkāk iedziļināšos ikvienā, kas vēlas nedaudz vairāk palīdzēt.

3. darbība. Pievienojiet nepieciešamās bibliotēkas Arduino IDE

Pievienojiet nepieciešamās bibliotēkas Arduino IDE
Pievienojiet nepieciešamās bibliotēkas Arduino IDE
Pievienojiet nepieciešamās bibliotēkas Arduino IDE
Pievienojiet nepieciešamās bibliotēkas Arduino IDE
Pievienojiet nepieciešamās bibliotēkas Arduino IDE
Pievienojiet nepieciešamās bibliotēkas Arduino IDE

Arduino skice trauksmes palaišanai izmanto dažas bibliotēkas, kas pēc noklusējuma vēl nav instalētas Arduino IDE.

Lai pievienotu RCSwitch bibliotēku Arduino IDE. Augšējā izvēlnē atveriet Arduino IDE, atlasiet “Skice”, pēc tam nolaižamajā izvēlnē atlasiet “Iekļaut bibliotēku” un nākamajā nolaižamajā izvēlnē atlasiet “Pārvaldīt bibliotēkas”. Pēc tam lodziņā "Filtrēt meklēšanu" ierakstiet "RCSW", pēc tam noklikšķiniet uz instalēt "rc-switch by sui77"

Detalizēti norādījumi par bibliotēku pievienošanu vietnē

Kamēr mēs esam pie tā, mums ir jāpievieno arī bibliotēkas ar nosaukumu Time, TimeAlarms, DS1307RTC un LiquidCrystal_I2C, tāpat kā iepriekš, bet meklējot katras jaunās bibliotēkas nosaukumu un instalējot. Skatiet ekrānuzņēmumus iepriekš, ja neesat pārliecināts, kuras bibliotēkas izmantot.

DS3231 reālā laika pulkstenis ir saderīgs ar DS1307RTC bibliotēku un izmanto to.

4. solis: Tālāk mums jāiegūst sensoru kodi

Tālāk mums jāiegūst sensoru kodi
Tālāk mums jāiegūst sensoru kodi
Tālāk mums jāiegūst sensoru kodi
Tālāk mums jāiegūst sensoru kodi

Tālāk esmu sniedzis Arduino koda veidni, taču jums būs jāatrod katra sensora vērtības un jāielīmē tās kodā.

Abās šajās vietnēs ir plaša informācija par to, kā iegūt šos kodus;

www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/

github.com/sui77/rc-switch/wiki

Tomēr šeit ir mana saīsinātā versija;

Lai iegūtu kodus, ko sūta jūsu sensori un tālvadības pults, pievienojiet Arduino, kas samontēts 1. darbībā, pie datora, izmantojot USB kabeli, un atveriet Arduino IDE. Pēc tam Arduino IDE dodieties uz nolaižamo izvēlni "Fails", pēc tam dodieties uz "Piemēri", ritiniet uz leju piemēru skicju sarakstu, līdz atrodat "RCSWITCH", pēc tam atlasiet skatu "ReceiveDemo_Advanced" un augšupielādējiet to Arduino. Kad skice ir veiksmīgi augšupielādēta, atveriet Arduino IDE sērijas monitoru, un tas joprojām ir pievienots datoram, izmantojot USB. Tagad aktivizējiet pirmo sensoru, kuram vēlaties iegūt kodu, RCSwitch izeja parādīsies sērijas monitora logā. Šim projektam mēs meklējam decimālos kodus, kā uzsvērts 2. ekrānuzņēmumā. Jums būs vairākas reizes jāaktivizē sensors, meklējot visbiežāk redzamo decimālo vērtību, dažreiz dažādas vērtības tiek sajauktas ar patieso vērtību. nejaušu radioviļņu vai citu ierīču, kas darbojas ar tādu pašu frekvenci, iejaukšanās.

Ievērojiet sensora decimālo kodu, ko izmantot nākamajā darbībā. Atkārtojiet visus sensorus un tālvadības pults, ko vēlaties izmantot projektā, sekojot līdzi tam, kurš kods tiek pievienots kādam sensoram. Ja modinātāja ieslēgšanai un atbruņošanai izmantojat tālvadības pulti, jums jāatzīmē katras tālvadības pults ieslēgšanas un izslēgšanas pogas atšķirīgie kodi.

5. darbība: Arduino koda veidne

Zemāk ir mana Arduino koda kopija kā.ino fails ar nosaukumu Wireless_Alarm. Jūs varat noklikšķināt uz tā, un tam vajadzētu atvērt Arduino IDE. Es neesmu programmētājs, mans kods ir daļēji apkopots no piemēriem, kas atrodami Arduino IDE, iespējams, tas nav īpaši elegants, taču tas darbojas un ir bijis uzticams ilgu laiku.

Pēc izmaiņu veikšanas neaizmirstiet saglabāt skici, lai iekļautu kodus no saviem sensoriem.

6. darbība: ielīmējiet 5. solī iegūtos kodus veidnes Arduino skicē

Tagad veiciet darbības, lai pielāgotu izmantoto sensoru un tālvadības pults taustiņu kodu.

Atverot Wireless_Alarm skici savā IDE, jūs redzēsiet 111. rindā.

if (mySwitch.getReceivedValue () == 115166236) // Fob roku pogas kods

Ja esošajā kodā tas ir 115166236, jums ir jāaizstāj šis skaitlis ar decimālo kodu tālvadības pults iedarbināšanas pogai, kuru ierakstījāt 5. darbībā.

Piemēram, ja 5. solī esat saņēmis decimālo skaitli 1154321, jūs modificētu 111. rindu, lai tā tagad būtu lasāma;

if (mySwitch.getReceivedValue () == 1154321) // Fob roku pogas kods

Izpildiet to pašu procedūru 125. rindā.

if (mySwitch.getReceivedValue () == 115166234) // Fob atbloķēšanas pogas kods

Aizstājiet tālvadības pults atbloķēšanas pogas kodu 115166234, kuru ierakstījāt 5. darbībā.

Ja vēlaties ieslēgt un atbruņot vairākus tālvadības pults, kopējiet un ielīmējiet 111. līdz 136. rindu tik reižu, cik nepieciešams, pēc tam mainiet vērtības, lai tās atbilstu citiem tālvadības pults taustiņiem, bet vislabāk ir sākt ar vienu tālvadības pulti, līdz esat pārliecināts, ka esat mainījis skice darbojas.

Tagad pie trauksmes sensoru kodēšanas skicē 140. rindā

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Darbība signāla sūtītāja biroja skapim

Izņemiet 1151640 un ievietojiet viena no trauksmes sensoriem decimālo vērtību.

Tad 158. rindā.

lcd.print (F ("Biroja skapis")); // izdrukājiet ziņojumu uz LCD, lai uzzinātu, kurš sensors tika aktivizēts (un ejiet un atrodiet ielaušanos:)

Mainiet biroja skapi uz to, ko vēlaties, lai šī sensora LCD tiktu parādīts. Piemēram, ja vēlaties, lai tā lasītu komplektu, līnija izskatās šādi;

lcd.print (F ("Kitchendoor")); // izdrukājiet ziņojumu uz LCD, lai uzzinātu, kurš sensors tika aktivizēts (un ejiet un atrodiet ielaušanos:)

Vārdi nedrīkst pārsniegt 16 rakstzīmes.

Starp 165. un 187. rindu ir veidne, ko kopēt un ielīmēt rindās, kas atrodas tieši zem 187. Nomainiet skaitli aiz mySwitch.getReceivedValue () == ar kāda cita jūsu sensoru decimāldaļu, ko ierakstījāt 5. darbībā. un mainīt nosaukumu "" iekš lcd.print (F ("sensornamehere")); uz nosaukumu, kuru vēlaties piešķirt savam sensoram.

Ja trauksmes ieslēgšanai un atbruņošanai neizmantojat tālvadības pults, varat vienkārši ignorēt 111.-136.rindu vai ievietot // katras nevēlamās rindas sākumā, un Arduino tās nelasīs.

Neaizmirstiet saglabāt failu pēc izmaiņu veikšanas.

7. darbība: augšupielādējiet laboto.ino savā Arduino un pārbaudiet

Augšupielādējiet laboto.ino savā Arduino un pārbaudiet
Augšupielādējiet laboto.ino savā Arduino un pārbaudiet
Augšupielādējiet laboto.ino savā Arduino un pārbaudiet
Augšupielādējiet laboto.ino savā Arduino un pārbaudiet
Augšupielādējiet laboto.ino savā Arduino un pārbaudiet
Augšupielādējiet laboto.ino savā Arduino un pārbaudiet

Kad Arduino joprojām ir savienots ar datoru, izmantojot USB, augšupielādējiet skici Arduino panelī. Kad augšupielāde ir sekmīgi pabeigta, LCD displejā vajadzētu parādīties uzraksts "Alarm On Disarmed". Nospiediet tālvadības pults rokas pogu, un LCD displejā vajadzētu būt uzrakstam “Alarm On Armed”, un gaismas diodei vajadzētu iedegties, lai jūs informētu, ka tā ir ieslēgta, un tagad aktivizējiet sensoru, kamēr tas ir ieslēgts, LCD ekrānā vajadzētu nolasīt brīdinājuma signālu, kam seko laika zīmogs un sensora atrašanās vietu, pīkstienam vajadzētu atskanēt 2 minūtes, ja vien nenospiežat atbloķēšanas pogu. Ja nesaņemat šo rezultātu, vēlreiz pārbaudiet 5. darbībā iegūtos kodus un iepriekšējā solī veiktās izmaiņas, pārbaudiet arī visu komponentu vadus. Ja LCD ekrāns vispār nelasa, LCD moduļa aizmugurē ir kontrasta regulēšana. Kad kontrasts ir pareizi iestatīts, ja LCD joprojām nelasa, mēģiniet nomainīt LCD adresi no 0x3f uz 0x27 skices 12. rindā. LCD problēmu novēršana šeit I2C LCD apmācība

8. solis: RTC moduļa laika iestatīšana un ieslēgšanas un atbruņošanās laika maiņa

Cerams, ka jūsu RTC jau bija iestatīts pareizs laiks, bet, ja neatverat IDE, atlasiet “Fails” un nolaižamajā izvēlnē noklikšķiniet uz “Piemēri”, ritiniet uz leju līdz “DS1307RTC” un atlasiet skici “SetTime”, lejupielādējiet skici savā Arduino, un tas iestatīs reālā laika pulksteni ar laiku no datora. Pēc tam jums būs jāpārlādē Wireless_Alarm skice jūsu Arduino.

Mans nodrošinātais Wireless_Alarm.ino pēc noklusējuma modinātāju ieslēgs automātiski katru vakaru pulksten 22.15 un katru rītu 6.00. Lai mainītu šos laikus, modificējiet skici 71. un 72. rindā. Laiks ir iekavās aiz Alarm.alarmRepeat formātā HH, MM, SS. nomainiet to uz jebkuru jums piemērotu laiku.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // atbruņot laiku

Alarm.alarmRepeat (22, 15, 0, EveningAlarm); // ARM laiks

Tātad, lai atbruņošanas laiku mainītu uz 9.15 un izslēgšanas laiku uz 17.30, kods izskatītos šādi

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // atbruņot laiku

Alarm.alarmRepeat (17, 30, 0, EveningAlarm); // ARM laiks

Ja nevēlaties, lai modinātājs automātiski ieslēgtos un atbruņotos, ievietojiet // divu līniju priekšā, un tās netiks izmantotas.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // atbruņot laiku

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Arm laiks

Modinātāja signāla skaņas laiku var mainīt, mainot 22. rindiņu

const ilgs intervāls = 120000; // par milis aizkavi trauksmes signālu ilgumam

Intervāls ir milisekundēs, tāpēc 120000 = 120 sekundes, mainot 120000 uz 30000, modinātājs atskanēs 30 sekundes.

Solenoīdu sirēnas, zibspuldzes gaismas, liela skaļuma skaņas signāla u.c. darbināšanai var pieslēgt arī pie 7. vai 9. tapas, un tas darbosies "intervālā", kā norādīts iepriekš. Paturiet prātā, ka Arduino tapas maksimālā slodze nedrīkst pārsniegt 40 mA.

9. darbība. Papildu piezīmes

Izvēloties Arduino 433 vai 315 MHz uztvērēja moduli, jums jāizvēlas frekvence, kas atbilst trauksmes sensoriem, kurus plānojat izmantot. Es iesaku iegādāties moduli ar nelielu spirālveida spirālveida antenu, lai nodrošinātu vislabāko sniegumu, vai arī 17,3 mm garas taisnas stieples antenas arī uzlabo veiktspēju.

Izmantojot 16x2 LCD moduli, jums jāizmanto 4 kontaktu I2C LCD, lai izmantotu šeit sniegtos norādījumus un kodu, to varētu izgatavot ar 16 kontaktu standarta LCD, taču tas nedarbosies ar vadu vai kodu šeit.

Bezvadu trauksmes niedru slēdžiem, kustības sensoriem un tālvadības pults taustiņiem jābūt 433Mhz vai 315Mhz, lai tie atbilstu uztvērējam, kuru plānojat izmantot, un tiem vajadzētu izmantot PT2262 vai EV1527 kodējumu.

Modinātājs ir paplašināms un pielāgojams, es jau esmu pievienojis SD karti, lai ierakstītu, kad tiek iedarbināti sensori, modificēju LCD, lai tas iedegtos tikai tad, kad tiek turēta poga, un pievienoju 100 dB sirēnu, taču šeit neesmu iekļāvis sīkāku informāciju, lai saglabātu rakstu kā pēc iespējas īsāk un vienkāršāk. Es ceru, ka dalīšanās ar darbu, ko esmu paveicis ar šo modinātāju, ir noderīgs citiem.

Labprāt atbildu uz visiem jautājumiem.

Paldies.

Ieteicams: