Kazalo:

Arduino brezžični alarmni sistem z obstoječimi senzorji: 9 korakov (s slikami)
Arduino brezžični alarmni sistem z obstoječimi senzorji: 9 korakov (s slikami)

Video: Arduino brezžični alarmni sistem z obstoječimi senzorji: 9 korakov (s slikami)

Video: Arduino brezžični alarmni sistem z obstoječimi senzorji: 9 korakov (s slikami)
Video: Izklop in vklop alarma 2024, November
Anonim
Arduino brezžični alarmni sistem z uporabo obstoječih senzorjev
Arduino brezžični alarmni sistem z uporabo obstoječih senzorjev
Arduino brezžični alarmni sistem z uporabo obstoječih senzorjev
Arduino brezžični alarmni sistem z uporabo obstoječih senzorjev
Arduino brezžični alarmni sistem z uporabo obstoječih senzorjev
Arduino brezžični alarmni sistem z uporabo obstoječih senzorjev
Arduino brezžični alarmni sistem z uporabo obstoječih senzorjev
Arduino brezžični alarmni sistem z uporabo obstoječih senzorjev

Ta projekt je mogoče zgraditi v približno pol ure po ceni približno 20,00 USD, če imate obstoječe brezžične alarmne senzorje 433Mhz ali 315Mhz.

Lahko je tudi popoln nov projekt z brezžičnimi alarmnimi senzorji, kot so infrardeči detektorji gibanja in trstična stikala, ki so preprosto in poceni na voljo na spletu. Samo poiščite 433Mhz ali 315Mhz senzorje, ki uporabljajo kodiranje PT2262 ali EV1527.

Prepričan sem, da je veliko ljudi, kot sem jaz, ki so kupili alarmni sistem GSM/2G z brezžičnimi senzorji in so bili z njim zadovoljni, ko pa sem izklopil omrežje 2G/GSM tam, kjer živim, mi je ostal alarmni sistem, ki bi ga lahko ne programira več ali celo nastavi časa. Nekega dne, ko sem se spraševal, kaj bi lahko naredil, da bi alarm znova deloval, se mi je zgodilo, da preverim, ali lahko Arduino sprejema signale iz senzorjev. Naletel sem na instuctable https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ in po nekaj poskusih ugotovil, da lahko sprejemam signale iz svojih obstoječih senzorjev. Začel sem postopek izgradnje alarmnega sistema, ki bi lahko nadomestil moj obstoječi alarm in bi zagotovil tudi večjo funkcionalnost. Eden od problemov s starim alarmom ni bil nikoli natančno vedeti, kateri od 25 senzorjev je ugasnil. Z dodajanjem LCD zaslona v novo zgradbo alarma na LCD -prikazovalniku zdaj dobim besedilo, ki natančno navaja, kateri senzor je bil aktiviran. Novi alarm lahko še vedno ročno aktivirajo moji obstoječi brezžični ključniki in ima uro v realnem času, ki mu omogoča samodejno aktiviranje in razorožitev ob prednastavljenih urah dneva.

Zaloge

Glejte dodatne opombe na koncu, da zagotovite, da uporabljate pravilno različico teh delov.

Arduino Uno ali podobno

433 ali 315 MHz sprejemniški modul za Arduino

Modul ure realnega časa DS3231 za Arduino

I2C 16x2 LDC modul za Arduino

Brezžična alarmna trstična stikala, senzorji gibanja in daljinski ključavnice po želji

Piezo zvonec

LED in 220 ohmski upor

Ogledna plošča (neobvezno, vendar priporočljivo)

Primerno napajanje za Arduino

Mostične žice itd

Računalnik z nameščenim Arduino IDE

Osnovno znanje o Arduinu

1. korak: Zaloge

Zaloge
Zaloge
Zaloge
Zaloge
Zaloge
Zaloge

Nekaj zgornjih slik zalog, ki jih potrebujete za ta projekt

2. korak: Povežite Ardunio in module, kot je prikazano na sliki

Povežite Ardunio in module, kot je prikazano na sliki
Povežite Ardunio in module, kot je prikazano na sliki

Piezo med zatičem 5 Arduina in zemljo

LED med zatičem 8 Arduina in 220ohmskim uporom nato na ozemljitev

Sprejemnik 433 ali 315 Mhz, VCC do 5V, GND v maso in eden od 2 podatkovnih zatičev na pin2 Arduina

I2C 16X2 LCD modul VCC do 5V, GND na maso, SCL SDA nožice na SCL SDA Arduina (pin A5 je SCL, pin A4 je SDA)

DS3231 RTC modul VCC do 5V, GND na maso, SCL SDA nožice na SCL SDA Arduina (drugi sklop se nahaja nad zatiči GND in AREF večine Arduino)

Vem, da nekateri od vas ne bodo potrebovali več informacij kot ta in spodnja skica, vendar se bom podrobneje posvetil vsem, ki bi želeli malo dodatne pomoči.

3. korak: Arduino IDE dodajte potrebne knjižnice

Arduino IDE dodajte potrebne knjižnice
Arduino IDE dodajte potrebne knjižnice
Arduino IDE dodajte potrebne knjižnice
Arduino IDE dodajte potrebne knjižnice
Arduino IDE dodajte potrebne knjižnice
Arduino IDE dodajte potrebne knjižnice

Arduino Sketch za zagon alarma uporablja nekatere knjižnice, ki privzeto še niso nameščene v Arduino IDE.

Če želite knjižnico RCSwitch dodati v IDE Arduino. Odprite Arduino IDE v zgornjem meniju izberite "Skica", nato v spustnem meniju izberite "Vključi knjižnico" in v naslednjem spustnem meniju izberite "Upravljanje knjižnic". Nato v polje "Filtriraj iskanje" vnesite "RCSW", nato kliknite namestitev za "rc-switch by sui77"

Podrobna navodila za dodajanje knjižnic na

Medtem ko smo pri tem, moramo dodati tudi knjižnice, imenovane Time, TimeAlarms, DS1307RTC in LiquidCrystal_I2C, enak postopek kot zgoraj, vendar iskanje imena vsake nove knjižnice in namestitev. Če niste prepričani, katere knjižnice uporabiti, si oglejte posnetke zaslona zgoraj.

Ura za realni čas DS3231 je združljiva in uporablja knjižnico DS1307RTC.

4. korak: Nato moramo dobiti kode za vaše senzorje

Nato moramo dobiti kode za vaše senzorje
Nato moramo dobiti kode za vaše senzorje
Nato moramo dobiti kode za vaše senzorje
Nato moramo dobiti kode za vaše senzorje

Spodaj sem predložil predlogo kode Arduino, vendar boste morali poiskati vrednosti za vsak vaš senzor in jih prilepiti v kodo.

Na obeh spletnih mestih je veliko informacij o tem, kako pridobiti te kode;

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

github.com/sui77/rc-switch/wiki

Vendar je tukaj moja skrajšana različica;

Če želite pridobiti kode, ki jih pošiljajo vaši senzorji in daljinski ključi, priključite Arduino, kot je sestavljen v 1. koraku, na računalnik prek kabla USB in odprite Arduino IDE. Nato v Arduino IDE pojdite na spustni meni »Datoteka«, nato pojdite na »Primeri«, se pomaknite navzdol po seznamu vzorčnih skic, dokler ne najdete »RCSWITCH«, nato izberite skico »ReceiveDemo_Advanced« in jo naložite v Arduino. Ko se skica uspešno naloži, odprite serijski monitor Arduino IDE, ki je še vedno priključen na vaš računalnik prek USB -ja. Sedaj sprožite prvega senzorja, za katerega želite dobiti kodo, se bo izhod RCSwitch prikazal v oknu serijskega monitorja. Za ta projekt iščemo decimalne kode, označene na posnetku zaslona 2. Senzor boste morali večkrat sprožiti, da poiščete decimalno vrednost, ki se najpogosteje pojavi, včasih se bodo vmešale različne vrednosti z resnično vrednostjo, kar je posledica z motnjami naključnih radijskih valov ali drugih naprav, ki delujejo na isti frekvenci.

Upoštevajte decimalno kodo senzorja za uporabo v naslednjem koraku. Ponovite za vse senzorje in daljinske ključavnice, ki jih želite uporabiti v projektu, pri tem pa spremljajte, katera koda gre s katerim senzorjem. Če uporabljate ključavnice za aktiviranje in razorožitev alarma, morate upoštevati različne kode za gumb za roko in gumb za razorožitev vsakega daljinskega upravljalnika.

5. korak: Predloga kode Arduino

Spodaj je kopija moje kode Arduino kot datoteke.ino z imenom Wireless_Alarm. Lahko ga kliknete in odpre se v Arduino IDE. Nisem programer, moja koda je delno sestavljena iz primerov v Arduino IDE, verjetno ni posebej elegantna, vendar deluje in je bila dolgo časa zanesljiva.

Ne pozabite shraniti skice, potem ko vnesete spremembe in vključite kode iz lastnih senzorjev.

6. korak: Kode, ki ste jih dobili v 5. koraku, prilepite v skico Arduino predloge

Zdaj koraki za prilagoditev kode za senzorje in daljinske ključavnice, ki jih uporabljate.

Če v IDE -ju odprete skico Wireless_Alarm, boste v vrstici 111 videli.

if (mySwitch.getReceivedValue () == 115166236) // Koda gumba za roko

Kjer se v obstoječi kodi piše 115166236, morate to številko zamenjati z decimalno kodo za gumb za roko na vašem daljinskem obesku za ključe, ki ste ga posneli v 5. koraku.

Na primer, če ste v koraku 5 dobili decimalno številko 1154321, bi spremenili vrstico 111 tako, da se zdaj bere;

if (mySwitch.getReceivedValue () == 1154321) // Koda gumba Fob arm

Sledite enakemu postopku za vrstico 125.

if (mySwitch.getReceivedValue () == 115166234) // Koda gumba za razorožitev Fob

Kodo gumba za razorožitev daljinskega upravljalnika, ki ste jo posneli v 5. koraku, nadomestite s 115166234.

Če želite za aktiviranje in razorožitev uporabiti več oddaljenih krmilnikov, kopirajte in prilepite vrstice od 111 do 136 tolikokrat, kot je potrebno, nato spremenite vrednosti tako, da ustrezajo drugim daljinskim ključavnicam, najbolje pa, da začnete z enim daljinskim upravljalnikom, dokler niste prepričani, da ste spremenili skica deluje.

Zdaj pa kodiranje alarmnih senzorjev v skici v vrstici 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Dejanje za pisarniško omaro pošiljatelja signala

Vzemite 1151640 in vnesite decimalno vrednost enega od alarmnih senzorjev.

Nato na vrstici 158.

lcd.print (F ("Pisarniška omara")); // natisnite sporočilo na lcd, da ugotovite, kateri senzor je bil aktiviran (in pojdite in poiščite vlomilca:)

Pisarniško omaro spremenite v tisto, kar želite prikazati na LCD -zaslonu tega senzorja. Na primer, če želite, da se glasi kuhinjsko ohišje, naj bo vrstica videti takole;

lcd.print (F ("kuhinjska omara")); // natisnite sporočilo na lcd, da ugotovite, kateri senzor je bil aktiviran (in pojdite in poiščite vlomilca:)

Imena ne smejo presegati 16 znakov.

Med vrsticami 165 in 187 je predloga za kopiranje in lepljenje tolikokrat, kolikor je potrebno, v vrstice neposredno pod 187. Številko za mySwitch.getReceivedValue () == zamenjajte z decimalko enega od drugih senzorjev, ki ste ga posneli v 5. koraku in spremenite ime znotraj "" v lcd.print (F ("senzor tukaj")); imenu, ki ga želite dati senzorju.

Če za aktiviranje in razorožitev alarma ne uporabljate daljinskih ključavnic, lahko preprosto prezrete vrstice 111-136 ali postavite // na začetek vsake neželene vrstice in Arduino jih ne bo prebral.

Po spremembah ne pozabite shraniti datoteke.

Korak 7: Naložite spremenjeni.ino v svoj Arduino in ga preizkusite

Naložite spremenjeni.ino v svoj Arduino in ga preizkusite
Naložite spremenjeni.ino v svoj Arduino in ga preizkusite
Naložite spremenjeni.ino v svoj Arduino in ga preizkusite
Naložite spremenjeni.ino v svoj Arduino in ga preizkusite
Naložite spremenjeni.ino v svoj Arduino in ga preizkusite
Naložite spremenjeni.ino v svoj Arduino in ga preizkusite

Ko je Arduino še vedno povezan z računalnikom prek USB -ja, naložite skico na ploščo Arduino. Ko je nalaganje uspešno zaključeno, se na LCD -prikazovalniku izpiše "Alarm On Disarmed". Pritisnite gumb za roko na daljinskem upravljalniku in na LCD -prikazovalniku se bo izpisalo "Alarm On Armed" in LED naj sveti, da vas obvesti, da je aktiviran, zdaj sprožite senzor, medtem ko je aktiviran, LCD mora prebrati Alarm, ki mu sledi časovni žig in na mestu, kjer je senzor, mora pisk zvoniti 2 minuti, razen če pritisnete gumb za izklop. Če tega rezultata ne dobite, znova preverite kode, ki ste jih dobili v 5. koraku, in spremembe, ki ste jih naredili v prejšnjem koraku, ponovno preverite tudi ožičenje vseh komponent. Če LCD sploh ne bere, je na zadnji strani modula LCD nastavitev kontrasta. Ko je kontrast pravilno nastavljen, če LCD še vedno ne bere, poskusite spremeniti naslov LCD iz 0x3f v 0x27 v vrstici 12 na skici. Odpravljanje težav z LCD -zaslonom tukaj I2C LCD vadnica

8. korak: Nastavitev časa na modulu RTC ter spreminjanje časa ročne in razorožitve

Upajmo, da je bil vaš RTC že nastavljen s pravilnim časom, če pa ne odprete IDE, izberite "Datoteka" in na spustnem seznamu kliknite "Primeri", se pomaknite navzdol do "DS1307RTC" in izberite skico "SetTime", prenesite skico v Arduino in nastavil bo uro v realnem času s časom iz vašega računalnika. Nato boste morali skico Wireless_Alarm znova naložiti v svoj Arduino.

Wireless_Alarm.ino, ki sem ga dal, bo privzeto nastavil alarm, da se samodejno aktivira vsako noč ob 22.15 in se vsako jutro izklopi ob 6.00. Če želite spremeniti te čase, spremenite skico v vrsticah 71 in 72. Čas je v oklepaju za Alarm.alarmRepeat v obliki HH, MM, SS. spremenite to na čas, ki vam ustreza.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // RAZKRITITEV čas

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

Torej, če želite čas razorožitve spremeniti na 9.15 in čas aktiviranja na 17.30, bi bila koda videti tako

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // RAZKRITITEV čas

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

Če ne želite, da se alarm samodejno aktivira in razoroži, // postavite pred 2 vrstici in se ne bosta uporabljali.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // RAZKRITITEV čas

//Alarm.alarmRepeat(22, 15, 0, EveningAlarm); // Ročni čas

Čas, ko se oglasi alarmni pisk, lahko spremenite s spreminjanjem vrstice 22

dolg interval const = 120000; // za milis zakasnitev za čas zvonjenja alarma

Interval je v milisekundah, zato 120000 = 120 sekund, če spremenite 120000 na 30000, se alarm oglasi 30 sekund.

Elektromagnet za zagon sirene, strobofona, piska z veliko glasnostjo itd. Je mogoče priključiti tudi na pin 7 ali pin 9 in bo deloval v "intervalu", kot je določeno zgoraj. Upoštevajte, da največja obremenitev za Arduino pin ne sme presegati 40 mA.

9. korak: Dodatne opombe

Pri izbiri sprejemniškega modula 433 ali 315 MHz za Arduino morate izbrati frekvenco, ki ustreza alarmnim senzorjem, ki jih nameravate uporabljati. Predlagam, da za najboljšo zmogljivost kupite modul, ki je opremljen z majhnimi spiralnimi spiralnimi antenami, poleg tega pa 17,3 mm dolge ravne žične antene povečajo tudi zmogljivost.

Pri 16x2 LCD modulu morate za uporabo navodil in kode, ki sem jih navedel tukaj, uporabiti 4 -polni I2C LCD, lahko bi bil izdelan s 16 -polnim standardnim LCD -jem, vendar tukaj ne bo deloval z ožičenjem ali kodo.

Brezžična alarmna trstična stikala, senzorji gibanja in daljinski ključi morajo biti 433 MHz ali 315 MHz, da se ujemajo s sprejemnikom, ki ga nameravate uporabljati, in naj uporabljajo kodiranje PT2262 ali EV1527.

Alarm je razširljiv in prilagodljiv, že sem dodal kartico SD za snemanje ob sprožitvi senzorjev, spremenil LCD, da sveti le, ko pritisnem gumb, in dodal 100 dB sireno, vendar tukaj nisem vključil podrobnosti, da bi članek ostal kot čim krajši in preprostejši. Upam, da bo delitev dela, ki sem ga opravil v zvezi s tem alarmom, koristil drugim.

Z veseljem odgovorim na vsa vprašanja.

Hvala.

Priporočena: