Brezžični alarmni sistem, ki temelji na Arduinu. Budget GSM alarm z možgani iz Arduino Alarm na Arduino s sireno

Ta projekt se nanaša na razvoj in izboljšavo sistema za preprečevanje/nadzor kakršnih koli poskusov infiltracije s strani tatov. Razvita varnostna naprava uporablja vgrajeni sistem (vključuje mikrokrmilnik strojne opreme, ki uporablja odprtokodno programsko opremo in modem GSM), ki temelji na tehnologiji GSM (Globalni sistem za mobilne komunikacije).

V hišo je mogoče namestiti varnostno napravo. Senzor vmesnika protivlomnega alarma je prav tako povezan z varnostnim sistemom na osnovi krmilnika.
Ob poskusu prodora sistem pošlje opozorilno sporočilo (na primer sms) na lastnikov mobilni telefon ali na kateri koli vnaprej konfiguriran mobilni telefon v nadaljnjo obdelavo.

Varnostni sistem sestavljata mikrokrmilnik Arduino Uno in standardni modem SIM900A, ki temelji na GSM/GPRS. Celoten sistem lahko napaja katerikoli 12V 2A napajalnik/baterija.

Spodaj je diagram varnostnega sistema, ki temelji na Arduinu.

Delovanje sistema je zelo preprosto in ne zahteva razlage. Ko se sistem napaja, preide v stanje pripravljenosti. Ko so nožice priključka J2 v kratkem stiku, se na želeno mobilno številko pošlje vnaprej programirano opozorilno sporočilo. Na vhodni konektor J2 lahko priključite katerikoli detektor vdorov (kot je zaščita pred svetlobo ali senzor gibanja). Upoštevajte, da bo signal aktivnega nizkega (L) na pin 1 konektorja J2 aktiviral protivlomni alarm.

Poleg tega je bila sistemu dodana opcijska naprava za alarmiranje klicev. Aktivira telefonski klic, ko uporabnik pritisne tipko S2 (ali ko druga elektronska enota sproži alarm). Po pritisku na tipko “klic” (S2) lahko klic prekličete s pritiskom druge tipke S3 – tipke “končaj”. To možnost lahko uporabite za generiranje alarma »zgrešenega klica« v primeru vdora.

Vezje je zelo prilagodljivo, zato lahko uporablja kateri koli modem SIM900A (in seveda ploščo Arduino Uno). Pred začetkom sestavljanja skrbno preberite dokumentacijo modema. Tako bo proces izdelave sistema lažji in prijetnejši.

Seznam radioelementov

Imenovanje Vrsta Denominacija Količina OpombaTrgovinaMoja beležka
Arduino plošča

Arduino Uno

1 V beležnico
GSM/GPRS modemSIM900A1 V beležnico
IC1 Linearni regulator

LM7805

1 V beležnico
C1 100uF 25V1 V beležnico
C2 Elektrolitski kondenzator10uF 16V1 V beležnico
R1 upor

1 kOhm

1 V beležnico
LED1 Svetleča dioda 1 V beležnico
S1 GumbS fiksacijo1

So posebne strojne platforme, na podlagi katerih lahko ustvarite različne elektronske naprave, vključno z in. Naprave te vrste odlikuje preprosta zasnova in možnost programiranja algoritmov delovanja. Zahvaljujoč temu je alarmni sistem ustvarjen s pomočjo Arduina , se lahko maksimalno prilagodi objektu, ki ga bo varoval.

Kaj je modul Arduino?

Arduini so izvedeni v obliki majhnih plošč, ki imajo svoj mikroprocesor in pomnilnik. Plošča vsebuje tudi nabor funkcionalnih kontaktov, na katere lahko priključite različne elektrificirane naprave, vključno s senzorji, ki se uporabljajo za varnostne sisteme.

Procesor Arduino omogoča nalaganje programa, ki ga je napisal uporabnik sam. Z ustvarjanjem lastnega edinstvenega algoritma lahko zagotovite optimalne načine delovanja varnostnih alarmov za različne objekte in za različne pogoje uporabe in naloge, ki jih je treba rešiti.

Ali je težko delati z Arduinom?

Moduli Arduino so zelo priljubljeni med številnimi uporabniki. To je postalo mogoče zaradi svoje preprostosti in dostopnosti.

Programi za krmiljenje modulov so napisani z običajnim C++ in dodatki v obliki enostavnih funkcij za krmiljenje I/O procesov na pinih modula. Poleg tega je za programiranje mogoče uporabiti brezplačno programsko opremo Arduino IDE, ki deluje pod Windows, Linux ali Mac OS.

Z moduli Arduino je postopek sestavljanja naprav bistveno poenostavljen. Alarmni sistem GSM na Arduino je mogoče ustvariti brez potrebe po spajkalniku - montaža poteka z uporabo mize, mostičkov in žic.

Kako ustvariti alarm z uporabo Arduina?

Osnovne zahteve, ki jih mora izpolnjevati DIY gsm alarmni sistem, ustvarjen na Arduinu, vključujejo:

  • o vlomu ali vstopu obvesti lastnika objekta;
  • podpora za zunanje sisteme, kot so zvočna sirena, opozorilne luči;
  • nadzor alarma preko SMS ali klica;
  • avtonomno delovanje brez zunanjega napajanja.

Če želite ustvariti alarm, boste potrebovali:

  • Arduino modul;
  • niz funkcionalnih senzorjev;
  • ali modem;
  • avtonomni vir energije;
  • zunanji aktuatorji.

Posebnost modulov Arduino je uporaba posebnih razširitvenih plošč. Z njihovo pomočjo se na Arduino povežejo vse dodatne naprave, ki so potrebne za sestavo konfiguracije varnostnega sistema. Takšne plošče so nameščene na vrhu modula Arduino v obliki "sendviča", ustrezne pomožne naprave pa so povezane s samimi ploščami.

Kako deluje?

Ko se sproži eden od priključenih senzorjev, se signal prenese na procesor modula Arduino. S pomočjo prenesene uporabniške programske opreme jo mikroprocesor obdela po določenem algoritmu. Kot rezultat tega se lahko generira ukaz za upravljanje zunanjega aktuatorja, ki se nanj prenese prek ustrezne plošče razširitvenega vmesnika.

Za zagotovitev možnosti pošiljanja opozorilnih signalov lastniku hiše ali stanovanja, ki je zaščiteno, je poseben GSM modul povezan z modulom Arduino prek razširitvene plošče. Vanj je nameščena kartica SIM enega od mobilnih ponudnikov.

Če ni posebnega adapterja za GSM, lahko svojo vlogo opravi navaden mobilni telefon. Poleg pošiljanja SMS sporočil, ki opozarjajo na alarm in klicanje, vam bo prisotnost mobilne povezave omogočila daljinsko upravljanje alarmnega sistema GSM na Arduinu, pa tudi spremljanje stanja objekta s pošiljanjem posebnih zahtev.

"Opomba!

Za komunikacijo z lastnikom objekta se poleg GSM modulov lahko uporabljajo navadni modemi, ki omogočajo komunikacijo preko interneta.”

V tem primeru se ob sprožitvi senzorja signal, ki ga obdela procesor, prenese preko modema na poseben portal ali spletno mesto. In s spletnega mesta se samodejno ustvari opozorilno SMS ali e-poštno sporočilo na povezano e-pošto.

zaključki

Uporaba modulov Arduino bo uporabnikom omogočila samostojno oblikovanje GSM alarmov, ki lahko delujejo z različnimi funkcionalnimi senzorji in krmilijo zunanje naprave. Zahvaljujoč možnosti uporabe različnih senzorjev je mogoče funkcije alarma znatno razširiti in ustvariti kompleks, ki bo spremljal ne le varnost predmeta, temveč tudi njegovo stanje. Na primer, mogoče bo nadzorovati temperaturo v objektu, zaznati puščanje vode in plina, zapreti njihovo oskrbo v nujnih primerih in še veliko več.

Infrardeči (IR) senzorji se običajno uporabljajo za merjenje razdalj, vendar jih je mogoče uporabiti tudi za zaznavanje predmetov. S povezavo več IR senzorjev na Arduino lahko ustvarimo varnostni alarm.

Pregled

Infrardeči (IR) senzorji se običajno uporabljajo za merjenje razdalj, vendar jih je mogoče uporabiti tudi za zaznavanje predmetov. IR senzorji so sestavljeni iz infrardečega oddajnika in infrardečega sprejemnika. Oddajnik oddaja impulze infrardečega sevanja, medtem ko sprejemnik zazna morebitne odboje. Če sprejemnik zazna odsev, to pomeni, da je na neki razdalji pred senzorjem nek predmet. Če ni refleksije, ni predmeta.

IR senzor, ki ga bomo uporabili v tem projektu, zazna odboj v določenem obsegu. Ti senzorji imajo majhno linearno nabojno sklopljeno napravo (CCD), ki zaznava kot, pod katerim se IR svetloba vrne v senzor. Kot je prikazano na spodnji sliki, senzor oddaja infrardeči impulz v prostor in ko se predmet pojavi pred senzorjem, se impulz odbije nazaj na senzor pod kotom, ki je sorazmeren z razdaljo med objektom in senzorjem. Senzorski sprejemnik zazna in odda kot, s pomočjo te vrednosti pa lahko izračunate razdaljo.

Če na Arduino povežemo nekaj IR senzorjev, lahko naredimo preprost varnostni alarm. Na okvir vrat bomo namestili senzorje in s pravilno namestitvijo senzorjev bomo lahko zaznali, kdaj nekdo stopi skozi vrata. Ko se to zgodi, se bo izhod IR senzorja spremenil in to spremembo bomo zaznali z nenehnim branjem izhoda senzorjev z uporabo Arduina. V tem primeru vemo, da gre predmet skozi vrata, ko odčitek IR senzorja preseže 400. Ko se to zgodi, bo Arduino sprožil alarm. Za ponastavitev alarma lahko uporabnik pritisne gumb.

Dodatki

  • 2 x IR senzor razdalje;
  • 1 x Arduino Mega 2560;
  • 1 x brenčalo;
  • 1 x gumb;
  • 1 x 470 Ohm upor;
  • 1 x NPN tranzistor;
  • skakalci.

Shema povezave

Diagram za ta projekt je prikazan na spodnji sliki. Izhoda dveh IR senzorjev sta povezana na nožici A0 in A1. Druga dva zatiča sta povezana z zatičima 5V in GND. 12-voltno brenčalo je prek tranzistorja priključeno na pin 3, gumb za utišanje alarma pa na pin 4.


Spodnja fotografija prikazuje, kako smo za ta poskus prilepili senzorje na okvir vrat. Seveda, če bi ga redno uporabljali, bi senzorje namestili drugače.


Namestitev

  1. Priključite zatiče 5V in GND na plošči Arduino na zatiče za napajanje in GND senzorjev. Lahko jih napajate tudi z zunanjim napajanjem.
  2. Priključite izhodne zatiče senzorjev na zatiče A0 in A1 plošče Arduino.
  3. Priključite pin 3 Arduina na osnovo tranzistorja prek upora 1 k ohmov.
  4. Priključite 12 V na kolektor tranzistorja.
  5. Priključite pozitivni vodnik 12-voltnega brenčala na oddajnik in negativni vodnik na ozemljitveno vodilo.
  6. Priključite pin 4 na pin 5V preko gumba. Iz varnostnih razlogov, da bi se izognili velikemu toku toka, je vedno bolje, da to storite z dodatnim majhnim uporom.
  7. Povežite ploščo Arduino z računalnikom prek kabla USB in naložite program v mikrokrmilnik z uporabo Arduino IDE.
  8. Napajajte ploščo Arduino z napajalnikom, baterijo ali kablom USB/

Koda

const int brenčalo=3; // pin 3 je izhod za brenčalo const int pushbutton=4; // pin 4 je vhod za gumb void setup() ( pinMode(buzzer,OUTPUT); // nastavite pin 3 na izhod pinMode(pushbutton,INPUT); // nastavite pin 4 na vhod) void loop() ( / / preberi izhod obeh senzorjev in primerjaj rezultat z vrednostjo praga int sensor1_value = analogRead(A0); int sensor2_value = analogRead(A1); if (sensor1_value > 400 ||sensor2_value > 400) ( while(true) ( ​​​​digitalWrite(buzzer,HIGH) ; // vklopi alarm if(digitalRead(pushbutton) == HIGH) break; ) ) else ( digitalWrite(buzzer,LOW); // izklopi alarm ) )

Video

Danes bomo govorili o tem, kako uporabljati Arduino zbirati varnostni sistem. Naša "varnost" bo varovala en tokokrog in nadzorovala eno sireno.

Za Arduino to ni problem in, kot boste videli iz programske kode in diagrama naprave, lahko enostavno povečate število zaščitenih dostopnih točk in število naprav za obveščanje ali prikazovanje.
Varnostni sistem se lahko uporablja za zaščito velikih predmetov (zgradb in objektov) in majhnih predmetov (škatle, sefi) in celo prenosnih kovčkov in kovčkov. Čeprav je pri slednjem treba biti previden, če na primer namestite varnostni sistem na kovček, s katerim se odločite potovati, in se na kakšnem letališču sproži opozorilni sistem, potem mislim, da se boste resno pogovorili z lokalna varnostna služba :-)

Poenostavljeno načelo delovanja naprave je naslednje (slika 1). Po vklopu napajanja naprava preide v način delovanja in čaka na vklop. Vklop in izklop se izvede z enim gumbom. Za večjo varnost je bolje, da ta gumb postavite znotraj zaščitenega prostora (sefa ali škatle). Pred vklopom varnostnega načina je treba vrata rahlo odpreti. Ko vklopite varnostni način (pritisnite gumb), elektronsko vezje počaka, dokler ne zaprete vrat v prostor (vrata trezorja, pokrov škatle itd.).

Na vratih (ali vratih) je treba namestiti končno stikalo katere koli vrste, več o tem kasneje. Z zapiranjem (ali odpiranjem) bo končno stikalo obvestilo napravo, da je zaščiteno vezje zaprto, in naprava bo prešla v varnostni način. O vstopu v varnostni način vas bo sistem obvestil z dvema kratkima signaloma (kot pri avtomobilskih alarmih). V tem načinu naprava "ujame" odpiranje vrat. Po odpiranju vrat sistem počaka nekaj sekund (to je nastavljiva vrednost, približno deset sekund za sobe, eno ali dve za boks), da se varnostni način izklopi, če se to ne zgodi, se vključi sirena. Algoritem in vezje sta zasnovana tako, da lahko sireno izklopite samo tako, da popolnoma razstavite ohišje in izklopite napajanje.

Naprava varnostni sistem zelo preprosto (slika 2). Na podlagi plošče Arduino. Končna stikala so povezana kot navaden gumb, preko vlečnih uporov. Ločeno se bom osredotočil na končna stikala. So normalno zaprti ali normalno odprti. Navadno tipko lahko vklopite kot končno stikalo, le hod navadne tipke je zelo velik, zračnost vrat je običajno večja. Zato je treba izmisliti nekakšen potiskalnik za gumb in ga vzmetiti, da gumba ne zlomite z vrati. No, če niste preveč leni, lahko greste v trgovino in kupite magnetno stikalo (reed stikalo) (slika 3), ne boji se prahu in umazanije.

Primerno je tudi končno stikalo za avtoalarme (slika 4). Treba je opozoriti, da je program napisan za reed stikalo. Ko so vrata zaprta, je njihov kontakt zaprt. Če uporabljate stikalo za avtomobilski alarm, bodo vrata, ko so zaprta, najverjetneje odprta, na ustreznih mestih v kodi pa boste morali spremeniti 0 v 1 in obratno.

Kot sireno predlagam uporabo zvočne sirene PKI-1 IVOLGA, proizvedene v Belorusiji (slika 5). Napajalna napetost 9 - 15 V, delovni tok 20 - 30 mA. To omogoča uporabo z baterijskim napajanjem. Hkrati "proizvaja" 95 - 105 dB.

S takšnimi lastnostmi bo zvenel nekaj deset minut iz baterije Krona. Našel sem ga na internetu za 110 rubljev. Tam reed stikalo z magnetom stane približno 30 rubljev. Stikalo za avtomobilski alarm je bilo kupljeno pri avtomobilskih delih za 28 rubljev. Tranzistor KT315 lahko vzamete s katero koli črko ali zamenjate s katerim koli sodobnim silicijevim tranzistorjem z nizko močjo ustrezne prevodnosti. Če glasnost ene sirene ne zadošča (kdo ve, morda želite, da se sliši več kilometrov daleč), lahko povežete več siren vzporedno ali vzamete močnejšo, le v tem primeru je treba tranzistor zamenjati z močnejši (na primer znani tranzistorski sklop ULN2003). Kot priključke za priključitev reed stikala in sirene sem uporabil najpreprostejše priključke za avdio / video naprave - cena na radijskem trgu je 5 rubljev. za par.

Telo naprave je lahko zlepljeno iz plastike ali vezanega lesa; če je zaščiten resen predmet, je bolje, da je kovinski. Za večjo zanesljivost in varnost je priporočljivo, da v ohišje postavite baterije ali akumulatorje.

Za poenostavitev programske kode niso bili uporabljeni elementi za varčevanje z energijo, baterije pa ne zdržijo dolgo. Kodo lahko optimizirate ali še bolje, radikalno predelate z uporabo prekinitvene obdelave dogodkov in mirovanja MK. V tem primeru naj bi napajanje iz dveh zaporedno povezanih kvadratnih baterij (9 V) zadostovalo za nekaj mesecev.

Zdaj koda

// konstante
gumb const int = 12; // žebljiček za gumb
const int gerkon = 3; // zatič za reed stikalo
const int sirena = 2; // kontrolni zatič sirene
const int led = 13; // indikatorski zatič
// spremenljivke
int buttonState = 0; // stanje gumba
int gerkonState = 0; // stanje reed stikala
int N = 0; // deaktiviraj števec gumbov
void setup() (
// krmiljenje sirene in indikatorja - izhod
pinMode(sirena, IZHOD);
pinMode(led, IZHOD); // gumb in reed stikalo - vhodi
pinMode(gerkon, INPUT);
pinMode(gumb, INPUT);
}
void loop()
digitalWrite(led, HIGH);
while(buttonState= =0)( // čakalna zanka, dokler ne pritisnemo gumba
buttonState = digitalRead(gumb); // za preklop v varnostni način
}
digitalWrite(led, LOW);
buttonState = 0; // ponastavi vrednost gumba
while(gerkonState= =0)( // zanka, dokler ne zapremo vrat
}
zamuda (500); // :-)
digitalWrite(sirena, HIGH); // Koda
zamuda (100); // indikacije
digitalWrite(sirena, LOW); // omogoči
zamuda (70); // način
digitalWrite(sirena, HIGH); // varnost
zamuda (100); // opozorilo
digitalWrite(sirena, LOW); // zvok
while(gerkonState= =1)( // počakajte, da se vrata odprejo
gerkonState = digitalRead(gerkon);
}
za (int i=0; i<= 5; i++){ // 7,5 секунды на нажатие
buttonState = digitalRead(gumb); // tajni gumb
if (buttonState = = HIGH) ( // sledenje našemu - tujemu
N=N+1;
}
zamuda (1500); // skrivna funkcija :-)))
}
if (N > 0) ( // najpomembnejša stvar
digitalWrite(sirena, LOW); // ne vklopi sirene
}
sicer (
digitalWrite(sirena, HIGH); // ali vključite sireno
}
digitalWrite(led, HIGH); // vklopi indikator N = 0;
buttonState = 0;
zamuda (15000); // opomnik za telebane, ki imajo radi
digitalWrite(led, LOW); // pritisnite gumbe brez zakasnitve prekinitve (1000);

Preprost domači varnostni alarm z uporabo Arduino Uno je tema tega pregleda. Kljub dejstvu, da so bili mikrokrmilniki te družine prvotno namenjeni poučevanju študentov, je povsem mogoče narediti resnično uporaben projekt na Arduinu. Varnostni alarmi za dom ali vrt bodo lastnika lahko opozorili na izredni dogodek in poslali sporočilo senzorjev na pametni telefon.

Domači alarm z uporabo Arduina

Poglejmo, kako narediti alarm za hišo, podeželski vrt ali garažo z uporabo Arduino Uno ali Nano. Pri projektu smo uporabili senzor gibanja, senzor vode in temperaturo - to je nabor osnovnih senzorjev za najenostavnejši sistem opozarjanja. Izvedeli boste o prelomu vodovodne cevi, padcu temperature v hiši ali nepooblaščenih osebah, ki vstopajo v prostor kadarkoli in kjerkoli.

Arduino senzorji za varnostne alarme

V tem projektu smo uporabili star pametni telefon za prenos informacij preko interneta. V skladu s tem mora biti na lokaciji vaše nepremičnine signal GPRS in vsak mobilni operater mora imeti najpreprostejšo tarifo z dostopom do interneta. Če ti pogoji niso izpolnjeni, potem je varnostni sistem opremljen z zvočno sireno, ki lahko tudi prestraši roparje.

Projekt uporablja najpreprostejše senzorje - temperaturni senzor DHT11, senzor puščanja vode, ki ga lahko izdelate sami, in senzor gibanja. Če se odločate za izdelavo kompleksnejšega alarmnega sistema, vam priporočamo, da si ogledate projekt požarnega ali GSM alarmnega sistema. Prav tako boste morali namestiti aplikacijo na svoj pametni telefon in registrirati dva Twitter računa.

Kako narediti alarm Arduino

Za ta projekt bomo potrebovali:

  • Arduino Uno / Arduino Nano / Arduino Mega plošča;
  • pametni telefon z dostopom do interneta;
  • senzor temperature in vlažnosti DHT11;
  • senzor puščanja vode;
  • senzor gibanja in gumb (stikalo);
  • LED diode, upori, žice itd.


Skico alarma, vse potrebne knjižnice in aplikacijo za pametni telefon lahko prenesete v enem arhivu. Upoštevajte, da Arduino ne bo mogoče upravljati na daljavo, saj je projekt čim preprostejši. O odčitkih senzorjev, nameščenih v hiši, lahko izveste šele prek sporočil na vašem pametnem telefonu po določenem času ali ko se senzor sproži.

Skica varnostnega alarma na Arduino Uno/Nano

#vključi // povezovanje knjižnice SoftwareSerial.h SoftwareSerial mySerial(2, 3); // določite pine rx oziroma tx#vključi // povežite knjižnico za senzor DHT dht (16, DHT11); // sporočite, na katerih vratih bo senzor int tmp; #define PIR 5 // vrata za priključitev senzorja gibanja int pir; #definiraj KNP 7 // vrata za povezavo stikala int knp; #define WTR 19 // vrata za priključitev vodnega senzorja int wtr; #define LED 11 // vrata za priključitev LED#define BUZ 9 // vrata za priključitev piezodinamičnega zvočnika // nizi za identifikacijo informacij, prejetih na pametni telefon Niz stringT = Niz ("*" ); Niz stringP = niz ("^" ); Niz nizW = Niz ("-" ); Niz stringH = niz ("#"); // spremenljivke za števce, štetje ciklov itd. dolgo gibanje brez znaka; nepodpisana dolga ura; bajt 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); // preverjanje LED in piska ob vklopu pinMode(BUZ, IZHOD); pinMode(LED, IZHOD); analogWrite(LED, 255); ton (BUZ, 100); zamuda (1000); analogWrite(LED, 0); noTone(BUZ); zamuda (1000); ) void loop() (tmp = dht.readTemperature(); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); // zagon števca ura = millis(); // 3600000 milisekund je 1 ura, 10800000 je 3 ure // če so minile 3 ure, pošljite podatke v pametni telefon // po potrebi vnesite svoje vrednosti namesto 10800000 if (millis() - ura > 10800000) ( mySerial.println(tmp + stringT); mySerial.println(stringH); // pošlje signal, da so minile 3 ure } // štetje ciklov, pošiljanje podatkov na pametni telefon vsak deseti cikel c--; Serial.print(c); Serijski .println (" - zanka" ); Serial.println(""); zamuda (1000); noTone(BUZ); če (c > 10) ( c = 10; ) če (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // pošlji vrednost temperature mySerial.println(pir + stringP); // pošiljanje prisotnosti gibanja v hiši mySerial.println(wtr + stringW); // pošiljanje podatkov iz vodnih senzorjev // SENZOR GIBANJA JE AKTIVIRAN IN GUMB JE IZKLOPLJEN - PRIŽGITE LUČ if (pir == HIGH && knp == LOW ) ( analogWrite (LED, 255); ) // SENZOR GIBANJA JE IZKLOPLJEN IN GUMB JE IZKLOPLJEN - IZKLOP LUČI if (pir == LOW && knp == LOW ) ( motion = millis (); while (pir == LOW ) ( tmp = dht.readTemperature (); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); c--; Serial .print (c); Serial .println (" - cikel"); Serial .println ( "" ); delay (1000); noTone (BUZ); if (c > 10 ) ( c = 10; ) če (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // pošlji vrednost temperature mySerial.println(pir + stringP); // pošiljanje prisotnosti gibanja v hiši mySerial.println(wtr + stringW); // pošiljanje podatkov iz vodnih senzorjev // prikaz vseh podatkov iz senzorjev na monitorju številke vrat 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(""); ) // INTERVAL IZKLOPA LUČI V MILISEKUNDAH if (milis() - gibanje > 5000) ( analogWrite (LED, 0); break ; ) if (pir == HIGH ) ( analogWrite (LED, 255); break ; ) ) // SENZOR GIBANJA SE JE AKTIVIRAL IN GUMB JE VKLOPLJEN - ZAGON ČASOVNIKA if (pir == HIGH && knp == HIGH ) (motion = millis(); delay(1000); analogWrite(LED, 255); Serial.println( "SENZOR SPROŽEN"); Serial.println(""); zamuda (1000); medtem ko (knp == HIGH) ( tmp = dht.readTemperature(); pir = digitalRead(PIR); knp = digitalRead(KNP); wtr = analogRead(WTR); c--; Serial .print (c); Serial . println (" - zanka"); Serijski .println ( ""); zakasnitev (1000); noTone (BUZ); če (c > 10) ( c = 10; ) če (c< 1) { s1 = 0; s2 = 0; s3 = 0; mySerial.println (tmp + stringT); // pošlji vrednost temperature mySerial.println(pir + stringP); // pošiljanje prisotnosti gibanja v hiši mySerial.println(wtr + stringW); // pošiljanje podatkov iz vodnih senzorjev // prikaz vseh podatkov iz senzorjev na monitorju številke vrat 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(""); ) // ČE JE SENZOR GIBANJA ONEMOGOČEN - POŠILJANJE SPOROČILA NA BLUETOOTH if (knp == LOW ) ( Serial .println ( "ALARM IZKLJUČEN"); Serial.println(""); zamuda (1000); ) // ČE JE PRETEKOLO VEČ KOT 10 SEKUND - POŠILJANJE SPOROČILA NA BLUETOOTH if (milis () - gibanje > 10000 && s1 != 1) ( m = 1; goto message1; ) zakasnitev (1000); ) ) // ČE JE PRIDELO PUŠČANJE VODE - POŠLJITE SPOROČILO NA BLUETOOTH if (wtr > 500 && s2 != 2) ( m = 2; goto message2; ) if (wtr > 500) ( tone (BUZ, 400); ) if (wtr<= 500) { noTone (BUZ); } // ČE TEMPERATURA PADE - POŠLJI SPOROČILO NA BLUETOOTHče(tmp< 20 && s3 != 3) { m = 3; goto message3; } if (tmp < 20) { tone (BUZ, 200); } if (tmp >= 20) ( noTone (BUZ); ) message1: while (m == 1) ( Serial .println ( "ALARM POSLAN NA BLUETOOTH" // pošlji vrednost temperature mySerial.println(1 + stringP); // pošiljanje prisotnosti gibanja v hiši mySerial.println(wtr + stringW); // pošiljanje podatkov iz vodnih senzorjev s1 = 1; m = 0; odmor ; ) sporočilo2: medtem ko (m == 2) ( Serijski .println ( "SIGNAL ZA PUŠČANJE VODE POSLAN NA BLUETOOTH"); Serial.println(""); zamuda (1000); mySerial.println(tmp + stringT); // pošlji vrednost temperature mySerial.println(pir + stringP); // pošiljanje prisotnosti gibanja v hiši mySerial.println(500 + nizW); // pošiljanje podatkov iz vodnih senzorjev s2 = 2; m = 0; odmor ; ) message3: while (m == 3) ( Serial .println ( "SIGNAL TEMPERATURE POSLAN NA BLUETOOTH"); Serial.println(""); zamuda (1000); mySerial.println(20 + nizT); // pošlji vrednost temperature mySerial.println(pir + stringP); // pošiljanje prisotnosti gibanja v hiši mySerial.println(wtr + stringW); // pošiljanje podatkov iz vodnih senzorjev s3 = 3; m = 0; odmor ; ) )

Pojasnila kode:

Na prvi pogled se lahko shema zdi zapletena, vendar ni. Alarm lahko sestavite na katero koli ploščo, vključno z Arduino Uno. Namesto LED lahko uporabite LED trak, vendar mora biti napajanje za ploščo 12 voltov, LED trak pa ne priključite na 5V, ampak na pin Vin Arduino. Pri LED diodah lahko za napajanje tokokroga uporabite običajen 5-voltni polnilnik za telefon.

Namestitev aplikacije na pametni telefon za alarm

Če želite namestiti aplikacijo, prenesite datoteko home_twit.apk na svoj telefon prek kabla USB, jo poiščite v pomnilniku telefona in kliknite »Namesti«. Ta telefon mora biti vedno v območju signala Arduino Bluethoth. Po namestitvi odprite aplikacijo in kliknite gumb »Prilagodi«. Tukaj boste morali določiti najnižjo in najvišjo vrednost temperature, pri kateri bo sporočilo poslano.

In zdaj je najtežji del nastavitev Twitter računov. V nastavitvah določite Twitter uporabniško ime, kateremu boste poslali sporočilo. Prav tako morate zagotoviti prijavo API ključ in Tajni ključ API-ja v čigavem imenu bodo sporočila prejeta. Zadnje novosti so posledica boja proti neželeni pošti in zbiranja informacij o uporabnikih na družbenem omrežju. Kako pridobiti ključ API in skrivnost API - preberite v tem pregledu.

Na telefon, ki bo vedno z vami in bo prejemal sporočila, boste morali namestiti uradno aplikacijo Twitter iz PlayMarketa in se vanjo prijaviti z zahtevano prijavo. Posledično bo aplikacija signalizaciya.apk iz telefona, ki se nahaja v hiši, zbirala podatke iz senzorjev Arduino in jih preko zasebnega sporočila preko Twitterja poslala uporabniku, pod katerega prijavo ste namestili Twitter aplikacijo.

Če imate kakršne koli težave z nastavitvami alarma na Arduinu, napišite svoja vprašanja v komentarje k temu pregledu.