Cuprins:

Sistem de alarmă wireless Arduino care utilizează senzori existenți: 9 pași (cu imagini)
Sistem de alarmă wireless Arduino care utilizează senzori existenți: 9 pași (cu imagini)

Video: Sistem de alarmă wireless Arduino care utilizează senzori existenți: 9 pași (cu imagini)

Video: Sistem de alarmă wireless Arduino care utilizează senzori existenți: 9 pași (cu imagini)
Video: Sfaturi pentru instalare, programare sistem de alarma PARADOX cu senzori wireless si senzori pe fir 2024, Iulie
Anonim
Sistem de alarmă wireless Arduino care utilizează senzori existenți
Sistem de alarmă wireless Arduino care utilizează senzori existenți
Sistem de alarmă wireless Arduino care utilizează senzori existenți
Sistem de alarmă wireless Arduino care utilizează senzori existenți
Sistem de alarmă wireless Arduino care utilizează senzori existenți
Sistem de alarmă wireless Arduino care utilizează senzori existenți
Sistem de alarmă wireless Arduino care utilizează senzori existenți
Sistem de alarmă wireless Arduino care utilizează senzori existenți

Acest proiect poate fi construit în aproximativ o jumătate de oră la un cost de aproximativ 20,00 USD dacă aveți senzori de alarmă wireless de 433 MHz sau 315 MHz.

Poate fi, de asemenea, un proiect complet nou, cu senzori de alarmă fără fir, cum ar fi detectoare de mișcare în infraroșu și comutatoare reed, disponibile ușor și ieftin online. Căutați doar senzori de 433 MHz sau 315 MHz care utilizează codificare PT2262 sau EV1527.

Sunt sigur că sunt mulți oameni ca mine care au achiziționat un sistem de alarmă GSM / 2G cu senzori fără fir și au fost mulțumiți de el, totuși, când rețeaua 2G / GSM a fost oprită în locul în care locuiesc, am rămas cu un sistem de alarmă pe care l-am putut nu mai programează și nici măcar nu setează ora pe el. Într-o zi, întrebându-mă ce aș putea face pentru ca alarma mea să funcționeze din nou, mi-a venit în minte să verific dacă un Arduino ar putea primi semnale de la senzori. Am dat peste un https://www.instructables.com/id/Decoding-and-sending-433MHz-RF-codes-with-Arduino-/ instuctabil și, după câteva experimente, am stabilit că aș putea primi semnalele de la senzorii mei existenți. Am început procesul de construire a unui sistem de alarmă care să poată înlocui alarma mea existentă și să ofere, de asemenea, o funcționalitate sporită. Una dintre problemele cu vechea alarmă nu a fost niciodată să știu exact care dintre cei 25 de senzori s-a declanșat, adăugând un ecran LCD la noua mea construcție de alarmă. Acum primesc text pe LCD care indică exact ce senzor a fost activat. Noua alarmă poate fi încă armată manual de butoanele mele cheie fără fir existente și are un ceas în timp real pentru a-i permite să se înarmeze și să se dezarmeze automat la orele predefinite ale zilei.

Provizii

Consultați note suplimentare la final pentru a vă asigura că utilizați versiunea corectă a acestor piese.

Arduino Uno sau similar

Modul receptor 433 sau 315 MHz pentru Arduino

DS3231 Modul Ceas în timp real pentru Arduino

Modul I2C 16x2 LDC pentru Arduino

Comutatoare reed fără fir de alarmă, senzori de mișcare și portofele de la distanță după dorință

Buzzer piezo

Rezistor LED și 220 ohmi

Panou (opțional, dar recomandat)

Alimentare adecvată pentru Arduino

Fire de jumper etc.

PC cu Arduino IDE instalat

Cunoștințe de bază despre Arduino

Pasul 1: consumabile

Provizii
Provizii
Provizii
Provizii
Provizii
Provizii

Câteva imagini de mai sus cu consumabilele de care veți avea nevoie pentru acest proiect

Pasul 2: Conectați Ardunio și modulele așa cum se arată în imagine

Conectați Ardunio și modulele așa cum se arată în imagine
Conectați Ardunio și modulele așa cum se arată în imagine

Piezo între pinul 5 al Arduino și pământ

LED între pinul 8 al Arduino și la un rezistor de 220ohm, apoi la pământ

Receptor 433 sau 315 Mhz, VCC la 5V, GND la masă și unul dintre cei 2 pini de date la pin2 ai Arduino

Modul LCD I2C 16X2 VCC la 5V, GND la masă, pinii SCL SDA la SCL SDA ai Arduino (pinul A5 este SCL, pinul A4 este SDA)

DS3231 Modul RTC VCC la 5V, GND la masă, pinii SCL SDA la SCL SDA ai Arduino (există al doilea set situat deasupra pinilor GND și AREF ai celor mai multe Arduino)

Știu că unii dintre voi nu vor mai avea nevoie de informații decât aceasta și schița atașată mai jos, dar voi intra în câteva detalii pentru oricine dorește puțină asistență suplimentară.

Pasul 3: Adăugați biblioteci necesare la IDE Arduino

Adăugați biblioteci necesare la IDE-ul Arduino
Adăugați biblioteci necesare la IDE-ul Arduino
Adăugați biblioteci necesare la IDE-ul Arduino
Adăugați biblioteci necesare la IDE-ul Arduino
Adăugați biblioteci necesare la IDE-ul Arduino
Adăugați biblioteci necesare la IDE-ul Arduino

Arduino Sketch pentru a rula alarma folosește unele biblioteci care nu sunt deja instalate în mod implicit pe IDE-ul Arduino.

Pentru a adăuga biblioteca RCSwitch la IDE-ul Arduino. Deschideți IDE-ul Arduino din meniul de sus selectați „Schiță”, apoi din meniul derulant selectați „Includeți bibliotecă” și din următoarea listă derulantă selectați „Gestionați bibliotecile”. Apoi, în caseta „Filtrați căutarea”, tastați „RCSW”, apoi faceți clic pe instalare pentru „rc-switch by sui77”

Instrucțiuni detaliate despre adăugarea de biblioteci la

În timp ce ne aflăm, trebuie să adăugăm și bibliotecile numite Time, TimeAlarms, DS1307RTC și LiquidCrystal_I2C, aceeași procedură ca mai sus, dar căutând numele fiecărei noi biblioteci și instalând. Vedeți capturile de ecran de mai sus dacă nu sunteți sigur ce biblioteci să utilizați.

Ceasul DS3231 în timp real este compatibil și folosește biblioteca DS1307RTC.

Pasul 4: În continuare trebuie să obținem codurile pentru senzorii dvs

În continuare trebuie să obținem codurile pentru senzorii dvs
În continuare trebuie să obținem codurile pentru senzorii dvs
În continuare trebuie să obținem codurile pentru senzorii dvs
În continuare trebuie să obținem codurile pentru senzorii dvs

Am furnizat mai jos șablonul codului Arduino, dar va trebui să găsiți valorile pentru fiecare dintre senzorii dvs. și să le lipiți în cod.

Există informații detaliate despre cum să obțineți aceste coduri pe ambele site-uri;

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

github.com/sui77/rc-switch/wiki

Cu toate acestea, aici este versiunea mea abreviată;

Pentru a obține codurile pe care le trimit senzorii și telecomandele, atașați Arduino așa cum este asamblat la pasul 1 la un computer prin cablu USB și deschideți IDE-ul Arduino. Apoi, în IDE-ul Arduino, accesați meniul derulant „Fișier”, apoi accesați „Exemple” derulați în jos lista exemplelor de schițe până când găsiți „RCSWITCH”, apoi selectați schița „ReceiveDemo_Advanced” și încărcați-l în Arduino. Odată ce schița a încărcat cu succes, deschideți monitorul serial al IDE-ului Arduino, acesta fiind încă atașat la computerul dvs. prin USB. Acum declanșați primul dintre senzorii pentru care doriți să obțineți codul, ieșirea de la RCSwitch va apărea în fereastra monitorului serial. Pentru acest proiect căutăm codurile zecimale, astfel cum sunt evidențiate în captura de ecran 2. Va trebui să declanșați senzorul de mai multe ori în căutarea valorii zecimale care apare cel mai des, uneori vor exista diferite valori amestecate cu valoarea adevărată, acest lucru este cauzat prin interferență de la unde radio aleatorii sau alte dispozitive care funcționează pe aceeași frecvență.

Rețineți codul zecimal al senzorului pentru utilizare la pasul următor. Repetați pentru toți senzorii și telecomandele pe care doriți să le utilizați în proiect, urmărind care este codul cu ce senzor. Dacă folosiți chei pentru armarea și dezarmarea alarmei, va trebui să notați diferitele coduri pentru butonul de armare și butonul de dezarmare al fiecărei telecomenzi.

Pasul 5: șablon de cod Arduino

Mai jos este o copie a codului meu Arduino ca fișier.ino numit Wireless_Alarm. Puteți face clic pe el și ar trebui să se deschidă în IDE-ul Arduino. Nu sunt programator, codul meu este asamblat parțial din exemplele din Arduino IDE, probabil că nu este deosebit de elegant, dar funcționează și a fost fiabil pe o perioadă lungă de timp.

Nu uitați să salvați din nou schița după ce efectuați modificările pentru a include codurile din propriii senzori.

Pasul 6: lipiți codurile pe care le-ați obținut la Pasul 5 în schița Arduino Sketch

Acum pașii pentru personalizarea codului pentru senzorii și telecomandele pe care le utilizați.

Dacă deschideți schița Wireless_Alarm în IDE, veți vedea la linia 111.

if (mySwitch.getReceivedValue () == 115166236) // Cod buton braț Fob

În cazul în care în codul existent se citește 115166236, trebuie să înlocuiți acel număr cu cod zecimal pentru butonul de armare de pe telecomandă, pe care l-ați înregistrat la pasul 5.

De exemplu, dacă în pasul 5 ai obținut o zecimală 1154321, ai modifica linia 111 pentru a citi acum;

if (mySwitch.getReceivedValue () == 1154321) // Cod buton braț Fob

Urmați aceeași procedură pentru linia 125.

if (mySwitch.getReceivedValue () == 115166234) // Cod buton dezarmare Fob

Înlocuiți codul butonului de dezarmare a telecomandei pe care l-ați înregistrat la pasul 115166234.

Dacă doriți să utilizați mai multe telecomandă pentru armare și dezarmare, copiați și lipiți liniile 111 până la 136 de câte ori este necesar, apoi modificați valorile pentru a se potrivi celorlalte telecomandă, dar cel mai bine este să începeți cu o singură telecomandă până când sunteți sigur că ați modificat schița funcționează.

Acum, la codificarea senzorilor de alarmă din schița de la linia 140

if (ledState == HIGH && mySwitch.getReceivedValue () == 1151640) // Acțiune pentru dulapul biroului expeditorului de semnal

Scoateți 1151640 și introduceți valoarea zecimală a unuia dintre senzorii de alarmă.

Apoi la linia 158.

lcd.print (F ("dulap de birou")); // tipărește mesajul pe LCD pentru a ști care senzor a fost activat (și du-te și găsește spărgătorul:)

Schimbați dulapul Office cu orice doriți să fie afișat pe ecranul LCD pentru senzorul respectiv. De exemplu, dacă doriți să citească kitchendoor, faceți ca linia să arate astfel;

lcd.print (F ("Kitchendoor")); // tipărește mesajul pe LCD pentru a ști care senzor a fost activat (și du-te și găsește spărgătorul:)

Numele nu trebuie să depășească 16 caractere.

Între liniile 165 și 187 este un șablon pentru copiere și lipire de câte ori este necesar pe liniile direct sub 187. Înlocuiți numărul după mySwitch.getReceivedValue () == cu zecimalul unuia dintre ceilalți senzori pe care l-ați înregistrat la pasul 5 și schimbați numele în "" în lcd.print (F ("sensornamehere")); la numele pe care doriți să-l dați senzorului.

Dacă nu utilizați telecomandă pentru a activa și dezarma alarma, puteți ignora liniile 111-136 sau pune // la începutul fiecărei linii nedorite, iar Arduino nu le va citi.

Nu uitați să salvați fișierul după ce ați făcut modificările.

Pasul 7: Încărcați.ino modificat în Arduino și testați

Încărcați.ino modificat în Arduino și testați
Încărcați.ino modificat în Arduino și testați
Încărcați.ino modificat în Arduino și testați
Încărcați.ino modificat în Arduino și testați
Încărcați.ino modificat în Arduino și testați
Încărcați.ino modificat în Arduino și testați

Cu Arduino încă conectat la computerul dvs. prin USB încărcați schița pe placa Arduino. Odată ce încărcarea este finalizată cu succes, ecranul LCD ar trebui să citească „Alarmă activată dezarmată”. Apăsați butonul de armare de pe telecomandă, iar ecranul LCD ar trebui să citească „Alarmă activată” și LED-ul ar trebui să fie aprins pentru a vă informa că este înarmat, declanșați acum un senzor în timp ce este înarmat, ecranul LCD ar trebui să citească Alarma urmată de un marcaj de timp și în poziția senzorului, bip-ul ar trebui să sune timp de 2 minute, cu excepția cazului în care apăsați butonul de dezarmare. Dacă nu obțineți acest rezultat, verificați din nou codurile pe care le-ați obținut la Pasul 5 și modificările pe care le-ați făcut codului în pasul anterior, verificați din nou cablajul tuturor componentelor. Dacă ecranul LCD nu citește deloc, există o reglare a contrastului pe partea din spate a modulului LCD. Odată ce contrastul este setat corect dacă LCD-ul încă nu citește, încercați să schimbați adresa LCD-ului de la 0x3f la 0x27 la linia 12 din schiță. Depanare LCD aici Tutorial I2C LCD

Pasul 8: Setarea timpului pe modulul RTC și schimbarea timpilor de armare și dezarmare

Sperăm că RTC-ul dvs. a fost deja setat cu ora corectă, dar dacă nu deschideți IDE, selectați „Fișier” și din meniul derulant faceți clic pe „Exemple”, derulați în jos până la „DS1307RTC” și selectați schița „SetTime”, descărcați schița în Arduino și va seta ceasul în timp real cu ora de pe computerul dvs. Va trebui apoi să reîncărcați schița Wireless_Alarm pe Arduino.

Wireless_Alarm.ino pe care l-am furnizat va seta în mod implicit alarma să se activeze automat la 22.15 în fiecare seară și să se dezarmeze la 6.00 în fiecare dimineață. Pentru a schimba aceste ore, modificați Schița la liniile 71 și 72. Ora este între paranteze după Alarm.alarmRepetați în format HH, MM, SS. schimbați acest lucru în orice moment vi se potrivește.

Alarm.alarmRepeat (6, 00, 0, MorningAlarm); // Timp DESARM

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

Deci, pentru a schimba timpul de dezarmare la 9.15am și timpul de armare la 17.30, codul ar arăta astfel

Alarm.alarmRepeat (9, 15, 0, MorningAlarm); // Timp DESARM

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

Dacă nu doriți ca alarma să se armeze și să se dezarmeze, puneți automat // în fața celor 2 linii și acestea nu vor fi utilizate.

//Alarm.alarmRepeat(6, 00, 0, MorningAlarm); // Timp DESARM

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

Timpul pentru care sună semnalul sonor de alarmă poate fi modificat modificând linia 22

const interval lung = 120000; // pentru întârziere în milis pentru durata sunetelor de alarmă

Intervalul este în milisecunde, deci 120000 = 120 secunde, schimbarea 120000 la 30000 ar face alarma să sune 30 de secunde.

Un solenoid pentru a rula o sirenă, o lumină stroboscopică, un semnal sonor de volum mare etc. poate fi, de asemenea, conectat la pinul 7 sau pinul 9 și va rula pentru „intervalul” așa cum este setat mai sus. Rețineți că sarcina maximă pentru un pin Arduino nu trebuie să depășească 40mA.

Pasul 9: Note suplimentare

Când selectați un modul receptor 433 sau 315 MHz pentru Arduino, ar trebui să alegeți frecvența pentru a se potrivi cu senzorii de alarmă pe care intenționați să îi utilizați. Vă sugerez să cumpărați un modul care vine cu o antenă spirală mică spirală pentru cea mai bună performanță, alternativ o antenă cu sârmă dreaptă lungă de 17,3 mm crește, de asemenea, performanța.

Cu modulul LCD 16x2 trebuie să utilizați un LCD I2C cu 4 pini pentru a utiliza instrucțiunile și codul pe care le ofer aici, acesta ar putea fi realizat cu un LCD standard cu 16 pini, dar nu va funcționa cu cablarea sau codul de aici.

Comutatoarele reed fără fir de alarmă, senzorii de mișcare și telecomandele trebuie să fie de 433 MHz sau 315 MHz pentru a se potrivi cu receptorul pe care intenționați să îl utilizați și ar trebui să utilizeze codificarea PT2262 sau EV1527.

Alarma este extensibilă și adaptabilă, am adăugat deja un card SD pentru a înregistra când sunt declanșați senzorii, am modificat ecranul LCD pentru a fi aprins doar când este apăsat un buton și am adăugat o sirenă de 100 dB, dar nu am inclus detalii aici pentru a păstra articolul ca cât mai scurt și simplu posibil. Sper că împărtășirea muncii pe care am făcut-o la această alarmă va fi utilă pentru alții.

Mă bucur să răspund la orice întrebare.

Mulțumiri.

Recomandat: