Alarma wireless bazata pe Arduino. Sistem de alarma GSM bugetar cu creier de la Arduino Sistem de alarma Arduino cu sirena

Acest proiect se referă la dezvoltarea și îmbunătățirea unui sistem de prevenire/control a oricărei tentative de intrare a hoților. Dispozitivul de securitate dezvoltat utilizează un sistem încorporat (include un microcontroler hardware care utilizează cod sursă deschis și un modem gsm) bazat pe tehnologia GSM (Global System for Mobile Communications).

Dispozitivul de securitate poate fi instalat în casă. Senzorul de interfață de alarmă antiefracție este, de asemenea, conectat la sistemul de securitate bazat pe controler.
Când se încearcă o intruziune, sistemul trimite un mesaj de alertă (de ex. sms) telefonului mobil al proprietarului sau oricărui telefon mobil preconfigurat pentru procesare ulterioară.

Sistemul de securitate constă dintr-un microcontroler Arduino Uno și un modem standard SIM900A GSM/GPRS. Întregul sistem poate fi alimentat cu orice sursă/baterie de 12V 2A.

Mai jos este o diagramă a unui sistem de securitate bazat pe Arduino.

Funcționarea sistemului este foarte simplă și se explică de la sine. Când sistemul este alimentat, acesta intră în modul de așteptare. Când pinii conectorului J2 sunt scurtcircuitati, un mesaj de avertizare preprogramat este trimis la numărul de mobil dorit. Puteți conecta orice detector de intruziune (cum ar fi o protecție luminoasă sau un detector de mișcare) la conectorul de intrare J2. Rețineți că un semnal activ-scăzut (L) pe pinul 1 al conectorului J2 va activa alarma de efracție.

În plus, la sistem a fost adăugat un dispozitiv opțional de „apel-alarma”. Acesta va activa un apel telefonic atunci când utilizatorul apasă butonul S2 (sau când o altă unitate electronică inițiază o alarmă). După apăsarea butonului „apel” (S2), apelul poate fi anulat apăsând un alt buton S3, butonul „terminare”. Această opțiune poate fi folosită pentru a genera o alarmă „apel pierdut” în cazul unei intruziuni.

Circuitul este foarte flexibil, astfel încât poate folosi orice modem SIM900A (și bineînțeles placa Arduino Uno). Citiți cu atenție documentația modemului înainte de asamblare. Acest lucru va facilita și va face procesul de fabricare a sistemului plăcut.

Lista elementelor radio

Desemnare Tip de Denumirea Cantitate NotăScorBlocnotesul meu
Placa Arduino

Arduino Uno

1 La blocnotes
modem GSM/GPRSSIM900A1 La blocnotes
IC1 Regulator liniar

LM7805

1 La blocnotes
C1 100uF 25V1 La blocnotes
C2 condensator electrolitic10uF 16V1 La blocnotes
R1 Rezistor

1 kOhm

1 La blocnotes
LED1 Dioda electro luminiscenta 1 La blocnotes
S1 ButonCu fixare1

Sunt platforme hardware speciale pe baza cărora puteți crea diverse dispozitive electronice, inclusiv și. Dispozitivele de acest tip se caracterizează printr-un design simplu și capacitatea de a-și programa algoritmii de funcționare. Datorită acestui fapt, sistemul de alarmă creat folosind Arduino GSM , poate fi ajustat la maximum la obiectul pe care îl va proteja.

Ce este un modul Arduino?

Arduinos sunt implementate ca plăci mici care au propriul microprocesor și memorie. Placa contine si un set de contacte functionale la care pot fi conectate diverse dispozitive electrificate, inclusiv senzori folositi pentru sistemele de securitate.

Procesorul Arduino vă permite să încărcați singur un program scris de utilizator. Prin crearea propriului algoritm unic, puteți oferi moduri optime de funcționare a alarmelor de securitate pentru diferite obiecte și pentru diferite condiții de utilizare și sarcini de rezolvat.

Este dificil să lucrezi cu Arduino?

Modulele Arduino sunt foarte populare printre mulți utilizatori. Acest lucru a fost posibil datorită simplității și accesibilității sale.

Programele pentru controlul modulelor sunt scrise folosind C++ obișnuit și completări sub formă de funcții simple pentru controlul proceselor de intrare/ieșire pe contactele modulului. În plus, mediul software gratuit Arduino IDE, care funcționează sub Windows, Linux sau Mac OS, poate fi folosit și pentru programare.

Cu modulele Arduino, procedura de asamblare a dispozitivelor este mult simplificată. Alarma GSM pe Arduino poate fi creată fără a fi nevoie de un fier de lipit - asamblarea are loc folosind o placă, jumperi și fire.

Cum se creează o alarmă cu Arduino?

Principalele cerințe pe care trebuie să le îndeplinească un sistem de alarmă GSM creat pe Arduino includ:

  • anunță proprietarul obiectului despre spargere sau intrare;
  • suport pentru sisteme externe, cum ar fi sirena sonoră, lumini de semnalizare;
  • controlul alarmei prin SMS sau apel;
  • Funcționare autonomă fără alimentare externă.

Pentru a crea o alarmă veți avea nevoie de:

  • modul Arduino;
  • un set de senzori funcționali;
  • sau modem;
  • sursă de alimentare autonomă;
  • dispozitive executive externe.

O caracteristică distinctivă a modulelor Arduino este utilizarea plăcilor de expansiune speciale. Cu ajutorul lor, toate dispozitivele suplimentare sunt conectate la Arduino, care sunt necesare pentru a asambla configurația sistemului de securitate. Astfel de plăci sunt instalate deasupra modulului Arduino sub forma unui „sandwich”, iar dispozitivele auxiliare corespunzătoare sunt conectate la plăcile în sine.

Cum functioneaza?

Când unul dintre senzorii conectați este declanșat, un semnal este transmis către procesorul modulului Arduino. Folosind software-ul de utilizator descărcat, microprocesorul îl prelucrează conform unui anumit algoritm. Ca rezultat, poate fi generată o comandă de acționare a unui actuator extern, care este transmisă acestuia prin placa de interfață de expansiune corespunzătoare.

Pentru a oferi posibilitatea de a trimite semnale de avertizare proprietarului unei case sau apartament care este pazit, la modulul Arduino este conectat un modul GSM special printr-o placă de expansiune. Instalează o cartelă SIM de la unul dintre furnizorii de telefonie mobilă.

În absența unui adaptor GSM special, un telefon mobil obișnuit își poate juca și rolul său. Pe lângă trimiterea de avertismente prin SMS despre alarme și apelare, prezența unei conexiuni celulare vă va permite să controlați alarma GSM pe Arduino de la distanță, precum și să monitorizați starea obiectului prin trimiterea de solicitări speciale.

"Notă!

Pentru a comunica cu proprietarul obiectului, pe lângă modulele GSM, pot fi folosite și modemuri convenționale, care asigură comunicarea prin Internet.

În acest caz, atunci când senzorul este declanșat, semnalul procesat de procesor este transmis prin modem către un portal sau site special. Și deja de pe site, se realizează generarea automată de SMS-uri de avertizare sau trimiterea prin e-mail la e-mailul atașat.

concluzii

Utilizarea modulelor Arduino va permite utilizatorilor să proiecteze independent alarme GSM care pot funcționa cu diferiți senzori funcționali și pot controla dispozitivele externe. Datorită posibilității de utilizare a diverșilor senzori, funcțiile de alarmă pot fi extinse semnificativ și se poate crea un complex care va monitoriza nu numai siguranța obiectului, ci și starea acestuia. De exemplu, va fi posibil să se controleze temperatura din instalație, să detecteze scurgerile de apă și gaz, să se oprească alimentarea acestora în cazul unui accident și multe altele.

Senzorii cu infraroșu (IR) sunt utilizați de obicei pentru a măsura distanțe, dar pot fi folosiți și pentru a detecta obiecte. Prin conectarea mai multor senzori IR la Arduino, putem crea o alarmă de efracție.

Revizuire

Senzorii cu infraroșu (IR) sunt utilizați de obicei pentru a măsura distanțe, dar pot fi folosiți și pentru a detecta obiecte. Senzorii IR constau dintr-un transmițător infraroșu și un receptor infraroșu. Emițătorul emite impulsuri de radiație infraroșie, în timp ce receptorul detectează orice reflexie. Dacă receptorul detectează o reflexie, înseamnă că există un obiect în fața senzorului la o anumită distanță. Dacă nu există reflexie, nu există nici un obiect.

Senzorul IR pe care îl vom folosi în acest proiect detectează reflexiile într-un anumit interval. Acești senzori au un mic dispozitiv liniar de cuplare a sarcinii (CCD) care detectează unghiul la care radiația IR revine la senzor. După cum se arată în figura de mai jos, senzorul transmite un impuls infraroșu în spațiu, iar când un obiect apare în fața senzorului, pulsul este reflectat înapoi către senzor la un unghi proporțional cu distanța dintre obiect și senzor. Receptorul senzorului detectează și emite unghiul și, folosind această valoare, puteți calcula distanța.

Conectând câțiva senzori IR la Arduino, putem realiza o alarmă de efracție simplă. Vom pune senzori pe tocul ușii și, prin alinierea corectă a senzorilor, vom putea detecta când cineva intră pe ușă. Când se întâmplă acest lucru, ieșirea senzorului IR se va schimba și vom detecta această schimbare citind constant ieșirea senzorilor cu Arduino. În acest exemplu, știm că un obiect trece prin ușă atunci când ieșirea senzorului IR depășește 400. Când se întâmplă acest lucru, Arduino va declanșa o alarmă. Pentru a reseta alarma, utilizatorul poate apăsa butonul.

Accesorii

  • 2 x senzor de distanta IR;
  • 1 x Arduino Mega 2560
  • 1 x sonerie;
  • 1 x buton;
  • 1 x rezistor de 470 ohmi;
  • 1 x tranzistor NPN;
  • săritori.

Schema de conectare

Circuitul pentru acest proiect este prezentat în figura de mai jos. Ieșirile celor doi senzori IR sunt conectate la pinii A0 și A1. Ceilalți doi pini sunt conectați la pinii de 5V și GND. Un sonerie de 12 volți este conectat la pinul 3 printr-un tranzistor și un buton folosit pentru a dezactiva alarma este conectat la pinul 4.


Fotografia de mai jos arată cum am lipit senzorii pe tocul ușii pentru acest experiment. Desigur, în cazul utilizării constante, ai instala senzorii diferit.


Instalare

  1. Conectați pinii de 5V și GND ai plăcii Arduino la pinii de alimentare și GND ai senzorilor. De asemenea, le puteți furniza energie externă.
  2. Conectați pinii de ieșire ai senzorilor la pinii A0 și A1 ai plăcii Arduino.
  3. Conectați pinul 3 al Arduino la baza tranzistorului printr-un rezistor de 1K.
  4. Aplicați 12V la colectorul tranzistorului.
  5. Conectați conductorul pozitiv al soneriei de 12 V la emițător și cel negativ la șina de masă.
  6. Conectați pinul 4 la pinul 5V printr-un buton. Din motive de siguranță, este întotdeauna cel mai bine să faceți acest lucru printr-un rezistor mic suplimentar pentru a evita fluxul mare de curent.
  7. Conectați placa Arduino la computer printr-un cablu USB și încărcați programul pe microcontroler folosind Arduino IDE.
  8. Porniți placa Arduino folosind sursa de alimentare, bateria sau cablul USB.

Codul

const int buzzer=3; // pinul 3 este ieșirea către buzer const int buton=4; // pinul 4 este butonul de intrare void setup() ( pinMode(buzzer,OUTPUT); // setați pinul 3 la ieșire pinMode(pushbutton,INPUT); // setați pinul 4 la intrare) void loop() ( // citește ieșirea ambilor senzori și comparați rezultatul cu valoarea de prag int senzor1_value = analogRead(A0); int sensor2_value = analogRead(A1); if (sensor1_value > 400 || senzor2_value > 400) ( while(true) ( ​​​​digitalWrite() buzzer,HIGH) ; // activați alarma dacă (digitalRead(pushbutton) == HIGH) break; ) ) else ( digitalWrite(buzzer,LOW); // dezactivați alarma ) )

Video

Astăzi vom vorbi despre modul de utilizare Arduino colectarea sistem de securitate. „Paza” noastră va păzi un circuit și va controla un anunț.

Pentru Arduino, aceasta nu este o problemă și, după cum veți vedea din codul programului și diagrama dispozitivului, puteți crește cu ușurință numărul de puncte de acces protejate și numărul de dispozitive de notificare sau indicare.
sistem de securitate poate fi folosit pentru a proteja atat obiecte mari (cladiri si structuri), cat si obiecte mici (sicrie, seifuri), ba chiar si cutii si valize portabile. Deși trebuie să fii mai atent cu acesta din urmă, dacă instalezi un sistem de securitate, de exemplu, pe o valiză cu care te hotărăști să călătorești, iar sistemul de avertizare funcționează la un aeroport, atunci cred că vei avea o conversație serioasă cu serviciul local de securitate :-)

Principiul simplificat de funcționare a dispozitivului este următorul (Fig. 1). După pornirea alimentării, dispozitivul intră în modul de funcționare și așteaptă armarea. Armarea și dezarmarea se efectuează cu un singur buton. Pentru a crește securitatea, este mai bine să plasați acest buton în interiorul încăperii protejate (seif sau cutie). Înainte de a activa modul de securitate, ușa trebuie să fie ușor deschisă. Când porniți modul de securitate (apăsând butonul), circuitul electronic așteaptă până când închideți ușa camerei (ușa seifului, capacul cutiei etc.).

Orice tip de întrerupător de limită trebuie instalat pe ușă (sau ușă), despre asta mai târziu. Închiderea (sau deschiderea), întrerupătorul de limită va informa dispozitivul că circuitul protejat este închis, iar dispozitivul va intra în modul armat. Sistemul vă va anunța despre trecerea la modul armat cu două semnale scurte (ca în alarmele auto). În acest mod, dispozitivul „prinde” deschiderea ușii. După deschiderea ușii, sistemul așteaptă câteva secunde (aceasta este o valoare configurabilă, aproximativ zece secunde pentru camere, una sau două pentru o cutie) pentru dezarmare, dacă acest lucru nu se întâmplă, sirena se aprinde. Algoritmul și circuitul sunt proiectate în așa fel încât sirena să poată fi oprită numai prin dezasamblarea completă a carcasei și oprirea alimentării.

Dispozitiv sistem de securitate foarte simplu (fig. 2). În centrul consiliului Arduino. Întrerupătoarele de limită sunt conectate ca un buton obișnuit, prin rezistențe de tragere. Mă voi opri asupra întrerupătoarelor de limită separat. Ele sunt în mod normal închise și în mod normal deschise. Puteți activa un buton obișnuit ca întrerupător de limită, doar cursa unui buton obișnuit este foarte mare, jocul ușii este de obicei mai mare. Prin urmare, este necesar să veniți cu un fel de împingător pentru buton și să-l arcuiți pentru a nu rupe butonul cu ușa. Ei bine, dacă nu este prea leneș, atunci puteți merge la magazin și puteți cumpăra un întrerupător magnetic (comutator cu lame) (Fig. 3), nu se teme de praf și poluare.

Un întrerupător de limită pentru alarme auto este de asemenea potrivit (Fig. 4). Trebuie remarcat faptul că programul este scris pentru comutatorul Reed. Când ușa este închisă, contactul ei este închis. Dacă utilizați un comutator de alarmă pentru mașină, atunci când ușa este închisă, cel mai probabil va fi deschisă, iar în locurile corespunzătoare din cod va trebui să schimbați de la 0 la 1 și invers.

Ca sirenă, îmi propun să folosim anunțul sonor PKI-1 IVOLGA de producție belarusă (Fig. 5). Tensiune de alimentare 9 - 15 V, curent de lucru 20 - 30 mA. Acest lucru îi permite să fie utilizat cu alimentarea bateriei. În același timp, „da” 95 - 105 dB.

Cu astfel de caracteristici ale bateriei Krona, va suna câteva zeci de minute. L-am găsit pe internet pentru 110 de ruble. În același loc, un comutator de lame cu magnet costă aproximativ 30 de ruble. Comutatorul de la alarma auto din piesele auto a fost cumpărat cu 28 de ruble. Tranzistorul KT315 poate fi luat cu orice literă sau înlocuit cu orice tranzistor modern de siliciu de joasă putere cu conductivitate corespunzătoare. Daca volumul unui anuntator nu este suficient (cine stie, poate vrei sa fii auzit multi kilometri), poti conecta mai multe anuntatoare in paralel sau poti lua unul mai puternic, doar in acest caz tranzistorul trebuie inlocuit cu un mai mult. unul puternic (de exemplu, ansamblul familiar de tranzistori ULN2003). Ca conectori pentru conectarea unui comutator cu lame și o sirenă, am folosit cei mai simpli conectori pentru dispozitive audio / video - prețul pe piața radio este de 5 ruble. pentru un cuplu.

Corpul dispozitivului poate fi lipit din plastic sau placaj; dacă un obiect serios este păzit, atunci este mai bine să-l faceți din metal. Baterii sau acumulatori pentru a crește fiabilitatea și siguranța, este de dorit să se plaseze în interiorul carcasei.

Pentru a simplifica codul programului, nu au fost folosite elemente de economisire a energiei, iar bateriile nu sunt suficiente pentru o lungă perioadă de timp. Puteți optimiza codul sau, chiar mai bine, îl puteți reface radical, aplicând gestionarea evenimentelor pe întreruperi și modul de repaus MK. În acest caz, alimentarea de la două baterii pătrate conectate în serie (9 V) ar trebui să dureze câteva luni.

Acum codul

// permanent
buton const int = 12; // buton pin
const int gerkon = 3; // pin pentru comutator cu lame
const int sirena = 2; // pin de control al sirenei
const int led = 13; // indicator indicator
// variabile
int buttonState = 0; // starea butonului
intgerkonState=0; // starea comutatorului cu lame
int N = 0; // contorul butonului de dezarmare
void setup()(
// control sirenă și indicator - ieșire
pinMode(sirena, OUTPUT);
pinMode(led, OUTPUT); // buton și comutator lamelă - intrări
pinMode(gerkon, INPUT);
pinMode(buton, INPUT);
}
void loop()(
digitalWrite(led, HIGH);
while(buttonState= =0)( // așteaptă bucla până când butonul este apăsat
buttonState = digitalRead(button); // pentru a comuta în modul armat
}
digitalWrite(led, LOW);
buttonState=0; // resetați valoarea butonului
while(gerkonState= =0)( // buclă până când închidem ușa
}
întârziere (500); // :-)
digitalWrite(sirena, HIGH); // Codul
întârziere (100); // indicații
digitalWrite(sirena, LOW); // include
întârziere (70); // modul
digitalWrite(sirena, HIGH); // paznici
întârziere (100); // notificare
digitalWrite(sirena, LOW); // sunet
while(gerkonState= =1)( // așteaptă deschiderea ușii
gerkonState = digitalRead(gerkon);
}
pentru (int i=0; i<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead(button); // buton secret
if (buttonState = = HIGH) ( // ține evidența proprie - a altcuiva
N=N+1;
}
întârziere (1500); // caracteristica secreta :-)))
}
dacă (N > 0) ( // cel mai important
digitalWrite(sirena, LOW); // nu porniți sirena
}
altceva(
digitalWrite(sirena, HIGH); // sau aprinde sirena
}
digitalWrite(led, HIGH); // aprinde indicatorul N = 0;
buttonState=0;
întârziere (15000); // memento pentru manechinilor cărora le place
digitalWrite(led, LOW); // butoane fara intarziere intrerupere (1000);

O simplă alarmă de efracție pentru o casă pe Arduino Uno este subiectul acestei recenzii. În ciuda faptului că microcontrolerele acestei familii au fost inițial destinate predării studenților, este foarte posibil să se realizeze un proiect cu adevărat util pe Arduino. Alarmele de securitate pentru o casă sau o grădină vor putea avertiza proprietarul despre o urgență și vor putea trimite un mesaj de la senzori către un smartphone.

Alarma de acasă Arduino

Luați în considerare cum să realizați un sistem de alarmă pentru o casă, o grădină suburbană sau un garaj pe un Arduino Uno sau Nano. În proiect, am folosit un senzor de mișcare, un senzor de apă și temperatură - acesta este un set de senzori de bază pentru cel mai simplu sistem de avertizare. Veți ști despre o rupere a conductei de apă, o scădere a temperaturii în casă sau pătrunderea unor străini în cameră în orice moment și în orice loc.

Senzori Arduino pentru alarme antiefractie

În acest proiect, am folosit un smartphone vechi pentru a transmite informații prin Internet. În consecință, la locația proprietății dvs., trebuie să existe un semnal GPRS și orice operator de telefonie mobilă are cel mai simplu tarif conectat la acces la Internet. Dacă aceste condiții nu sunt îndeplinite, atunci sistemul de securitate are o sirenă sonoră, care poate, de asemenea, să sperie hoți.

Proiectul folosește cei mai simpli senzori - un senzor de temperatură DHT11, un senzor de scurgeri de apă DIY și un senzor de mișcare. Dacă vă decideți să realizați un sistem de alarmă mai complex, vă recomandăm să vă uitați la proiectul de alarmă sau alarmă de incendiu pe GSM. De asemenea, va trebui să instalați aplicația pe smartphone și să înregistrați două conturi Twitter.

Cum se face o alarmă Arduino

Pentru acest proiect vom avea nevoie de:

  • placa Arduino Uno / Arduino Nano / Arduino Mega;
  • smartphone cu acces la internet;
  • senzor de temperatura si umiditate DHT11;
  • senzor de scurgeri de apă (senzor de apă);
  • senzor de mișcare și buton (comutator);
  • LED-uri, rezistențe, fire etc.


Schița pentru alarmă, toate bibliotecile necesare și aplicația pentru smartphone pot fi descărcate într-o singură arhivă. Rețineți că nu va fi posibil să controlați de la distanță Arduino, deoarece proiectul este cât se poate de simplu. Puteți afla despre citirile senzorilor instalați în casă în mesajele de pe smartphone-ul dvs. numai după o anumită perioadă de timp sau când un senzor este declanșat.

Schiță de alarmă antiefracție pe Arduino Uno / Nano

#include // conectarea bibliotecii SoftwareSerial.h SoftwareSerial mySerial(2, 3); // specificați pinii rx și respectiv tx#include // conectați biblioteca pentru senzor DHT dht(16, DHT11); // spuneți pe ce port va fi senzorul int tmp; #define PIR 5 // port pentru conectarea unui senzor de mișcare int pir; #definiți KNP 7 // port pentru conectarea comutatorului int knp; #define WTR 19 // port pentru conectarea unui senzor de apă intwtr; #define LED 11 // port pentru conectarea LED-urilor#define BUZ 9 // port pentru conectarea unui difuzor piezo // șiruri pentru identificarea informațiilor primite pe smartphone String șirT = String("*" ); String șirP = String("^" ); String șirW = String("-" ); String șirH = String("#" ); // variabile pentru contoare, numărătoare de bucle etc. moțiune lungă nesemnată; oră lungă nesemnată; octet m, s1, s2, s3, c = 10; void setup()( mySerial.begin(9600); Serial.begin(9600); dht.begin(); pinMode(PIR, INPUT); analogWrite(PIR, LOW); pinMode(KNP, INPUT); analogWrite(KNP, LOW); pinMode (WTR, INPUT); analogWrite (WTR, LOW); // Testează LED-urile și buzzerele la pornire pinMode(BUZ, OUTPUT); pinMode(LED, IEȘIRE); analogWrite(LED, 255); ton (BUZ, 100); întârziere (1000); analogWrite(LED, 0); nuTone(BUZ); întârziere (1000); ) void loop()( tmp = dht.readTemperature(); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); // pornește contorul ora = milis(); // 3600000 milisecunde este 1 oră, 10800000 este 3 ore // dacă au trecut 3 ore, trimitem date către smartphone // dacă este necesar, puneți propriile valori în loc de 10800000 if (millis () - oră > 10800000) ( mySerial.println(tmp+stringT); mySerial.println(stringH); // trimite un semnal că au trecut 3 ore } // numărăm ciclurile, la fiecare al zecelea ciclu trimitem date către smartphone c--; Serial.print(c); Serial .println("- bucla"); Serial.println(""); întârziere (1000); nuTone(BUZ); dacă (c > 10) ( c = 10; ) dacă (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // trimite valoarea temperaturii mySerial.println(pir + stringP); // trimite prezența mișcării în casă mySerial.println(wtr+stringW); // trimite date de la senzorii de apă // SENSORUL DE MIȘCARE A FUNCȚIONAT ȘI BUTONUL ESTE OPRIT - APRIȚI LUMINA if (pir == HIGH && knp == LOW ) ( analogWrite (LED, 255); ) // SENSORUL DE MIȘCARE ESTE DEZACTIVAT ȘI BUTONUL ESTE OPRIT - OPRIȚI LUMINA if (pir == LOW && knp == LOW ) ( mișcare = millis (); while (pir == LOW ) ( tmp = dht.readTemperature (); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); c--; Serial .print(c); Serial .println("- buclă"); Serial .println(""); delay(1000); noTone(BUZ); if(c > 10) ) (c = 10; ) dacă (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // trimite valoarea temperaturii mySerial.println(pir + stringP); // trimite prezența mișcării în casă mySerial.println(wtr+stringW); // trimite date de la senzorii de apă // afișează toate datele de la senzori pe monitorul numărului de port Serial.print("TMP = "); Serial.println(tmp); Serial.print("PIR = "); Serial.println(pir); Serial.print("KNP="); Serial.println(knp); Serial.print("WTR="); Serial.println(wtr); Serial.println(""); ) // INTERVALUL DE stingere a luminii în milisecunde if (millis() - mișcare > 5000) ( analogWrite (LED, 0); break ; ) if (pir == HIGH ) ( analogWrite (LED, 255); break ; ) ) ) // SENSORUL DE MIȘCARE ACTIVAT ȘI BUTONUL ESTE PORNIT - PORNIREA TIMERULUI if (pir == HIGH && knp == HIGH ) ( mișcare = millis(); delay(1000); analogWrite(LED, 255); Serial.println( "SENZORUL A FUNCȚIONAT"); Serial.println(""); întârziere (1000); în timp ce (knp == HIGH) ( tmp = dht.readTemperature (); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); c--; Serial .print (c); Serial . println ("- bucla"); Serial .println (""); delay(1000); noTone(BUZ); if (c > 10) ( c = 10; ) if (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // trimite valoarea temperaturii mySerial.println(pir + stringP); // trimite prezența mișcării în casă mySerial.println(wtr+stringW); // trimite date de la senzorii de apă // afișează toate datele de la senzori pe monitorul numărului de porturi Serial.print("TMP = "); Serial.println(tmp); Serial.print("PIR = "); Serial.println(pir); Serial.print("KNP="); Serial.println(knp); Serial.print("WTR="); Serial.println(wtr); Serial.println(""); ) // DACĂ SENSORUL DE MIȘCARE ESTE DEZACTIVAT - TRIMITEREA UNUI MESAJ LA BLUETOOTH if (knp == LOW ) ( Serial .println ( „ALARMA DEZACTIVATĂ”); Serial.println(""); întârziere (1000); ) // DACĂ AU TRECUT MAI MULT DE 10 SECUNDE - TRIMITEȚI UN MESAJ LA BLUETOOTH if (millis () - motion > 10000 && s1 != 1) ( m = 1; goto message1; ) delay (1000); ) ) // DACĂ ESTE O SCURTARE DE APA - TRIMITEREA UN MESAJ LA BLUETOOTH dacă (wtr > 500 && s2 != 2) ( m = 2; du-te la mesaj2; ) dacă (wtr > 500) ( ton (BUZ, 400); ) dacă (wtr<= 500) { noTone (BUZ); } // DACĂ TEMPERATURA ESTE SCADĂ - TRIMITERE UN MESAJ LA BLUETOOTH dacă (tmp< 20 && s3 != 3) { m = 3; goto message3; } if (tmp < 20) { tone (BUZ, 200); } if (tmp >= 20) ( noTone (BUZ); ) mesaj1: while (m == 1) ( Serial .println ( „ALARMA TRIMISĂ LA Bluetooth” // trimite valoarea temperaturii mySerial.println(1+stringP); // trimite prezența mișcării în casă mySerial.println(wtr+stringW); // trimite date de la senzorii de apă s1 = 1; m = 0; pauză ; ) mesaj2: while (m == 2) ( Serial .println ( „ALARMA SCURTĂRII DE APĂ TRIMISĂ PE BLUETOOTH”); Serial.println(""); întârziere (1000); mySerial.println(tmp+stringT); // trimite valoarea temperaturii mySerial.println(pir + stringP); // trimite prezența mișcării în casă mySerial.println(500+stringW); // trimite date de la senzorii de apă s2 = 2; m = 0; pauză ; ) mesaj 3: while (m == 3) ( Serial .println ( „SEMNAL DE TEMPERATURĂ TRIMIS LA Bluetooth”); Serial.println(""); întârziere (1000); mySerial.println(20+stringT); // trimite valoarea temperaturii mySerial.println(pir + stringP); // trimite prezența mișcării în casă mySerial.println(wtr+stringW); // trimite date de la senzorii de apă s3 = 3; m = 0; pauză ; ) )

Explicații pentru cod:

La prima vedere, schema poate părea complicată, dar nu este. Alarma poate fi asamblată pe orice placă, inclusiv pe Arduino Uno. În loc de LED-uri, puteți folosi o bandă LED, dar, în același timp, sursa de alimentare a plăcii va trebui să fie de 12 volți și conectați banda LED nu la 5V, ci la pinul Vin Arduino. Cu LED-uri, puteți folosi un încărcător de telefon obișnuit de 5 volți pentru a alimenta circuitul.

Instalarea unei aplicații pe un smartphone pentru alarmă

Pentru a instala aplicația, descărcați fișierul home_twit.apk pe telefon printr-un cablu USB, găsiți-l în memoria telefonului și faceți clic pe „Instalare”. Acest telefon trebuie să fie întotdeauna în zona Bluetooth a semnalului Arduino. Odată instalată, deschideți aplicația și faceți clic pe butonul „Setări”. Aici va trebui să specificați temperatura minimă și maximă la care va fi trimis mesajul.

Și acum cel mai dificil lucru este configurarea conturilor Twitter. Specificați în setări login-ul utilizatorului pe Twitter, căruia îi veți trimite un mesaj. De asemenea, trebuie să introduceți o autentificare cheie APIși cheie secretă APIîn numele căruia vor fi primite mesajele. Cele mai recente inovații se datorează luptei împotriva spam-ului și colectării de informații despre utilizatori pe rețeaua de socializare. Cum să obțineți o cheie API și un secret API - citiți această recenzie.

Pe un telefon care va fi mereu cu tine și va primi mesaje, va trebui să instalezi aplicația oficială Twitter de la PlayMarket și să te autentifici cu autentificarea necesară. Drept urmare, aplicația signalizaciya.apk de pe telefonul din casă va colecta date de la senzorii Arduino și le va trimite sub formă de mesaj personal prin Twitter utilizatorului sub a cărui login ați instalat aplicația Twitter.

Dacă aveți probleme cu setările de alarmă pe Arduino - scrieți întrebările dvs. în comentariile acestei recenzii.