Kesäkauden alkaessa maalaistalo oli tarpeen suojata. Halusin tehdä yksinkertaisen mutta luotettavan murtohälytyksen matkapuhelimeen välitetyllä signaalilla. Päätettiin koota laite, jolla on hälytyslähetys matkapuhelimeen elektroninen Aliexpressiltä ostetut piirilevyt. Kuten he sanovat halpaa, mutta iloista. Tämän suunnittelun pääelementit ovat GSM SIM800L-moduuli ja Arduino-kortti (voit käyttää mitä tahansa - Nano, Uno, Pro Mini ja vastaavat).
Laitteessa on viisi hälytystuloa kosketusantureille. Jokaiseen tuloon voidaan kytkeä yksi tai useita sarjaan kytkettyjä antureita. Määritä luonnoksella nimi jokaiselle turvasilmukalle (esimerkiksi ovelle, ikkuna 1, ikkuna 2 ja niin edelleen). Turvalaite toimii näin: kun ensimmäisen silmukan sähköpiiri katkeaa, yksikkö soittaa ensin tilaajan ensimmäiseen puhelimeen, lopettaa puhelun ja myös numeroon 2. Nro 2 on välttämätön, koska jos yllättäen ensimmäinen tilaaja on offline-tilassa tai akku ja muut ongelmat ovat koukussa) Jos ensimmäistä seuraava silmukka laukaistaan, niin lähetetään SMS-viesti silmukan nimellä, joka toimi samassa tapauksessa molemmille tilaajanumeroille.
Työkalujen ja materiaalien luettelointi.
litium-ioni-akku vanhasta puhelimesta 3.7V \ 1600mA-1kpl
-johdot;
juotosrauta;
Testaaja;
-läpinäkyvä muovipakkaus -1kpl;
pukeminen Työläs Nano-1 kpl;
-resistorit 10kOhm-7kpl;
- foliotekstioliitistä valmistettu leipälauta;
- 1kpl virtakytkin;
- SIM800L-moduuli -1 kpl;
- laskutaulu 1-2A -1kpl;
- liittimet.
Ensimmäinen askel. GSM-turvalaitteen piirin kokoaminen.
Kuvaohjelma.
Juotostamme GSM SIM800L -moduulin ja Arduino-moduulin lisäosat leipälevylle. Tämä yksinkertaistaa asennusta ja helpottaa moduulien vaihtamista tarvittaessa. Juotosvastukset ja muut liitännät. SIM800L-moduulin RX-tappista saadut vastukset on kytketty Arduino D3-digitaalituloon vastaamaan molempien moduulien tulojen jännitettä. Arduino D4-D8 -tulot vedetään vastuksien läpi. Kytkin on asennettu SIM800 GSM-moduulin ja Arduino-kortin virransyöttöaukkoon koko järjestelmän virittämiseksi. Akun käyttö, joka antaa laitteen toimia kahden kolmen päivän ajan, jos verkkoa ei ole 220 V. Minun tapauksessani jännitemuunnin 12 V: n jännitteestä tuottaa 4,2 V: n jännitteen ja samanaikaisesti lataa akun (voit käyttää toista korttia, esimerkiksi TP4056 suojauksella).
Toinen vaihe. Laitteen ohjelmointi.
SIM-kortista PIN-koodit ja kaikki tarpeettomat toiminnot tulisi poistaa.Silti sinun on ensin määritettävä itse SIM800L-moduuli. Verkossa on paljon tästä aiheesta aiheellisia videoita, siinä ei ole mitään monimutkaista. Luonnoksessa ilmoitamme puhelinnumerosi, säädämme turvavyöhykkeiden nimiä, voit asettaa ajan järjestelmän valvonnalle (jos laite toimii oikein tietyn ajan kuluttua, tulee tekstiviestit). Täytä luonnos Arduinossa ja tarkista laitteen toiminta.
luonnos:
Merkkijonon numeroCall_1 = "79123456789"; // Tilaajan numero №1 puheluun
MerkkijonoSMS_1 = "+79123456789"; // SMS-tilaajan numero nro 1 (eroaa vain + -merkistä)
Merkkijonon numeroCall_2 = "79123456782"; // Tilaajan numero 2 puhelulle
Jono numeroSMS_2 = "+79123456782"; // SMS-tilaajan numero nro 2 (eroaa vain + -merkistä)
Merkkijono textZone_1 = "Hälytys! Alue1"; // Sen nimi on latina.
Merkkijono textZone_2 = "Hälytys! Zone2"; // Sen nimi on latina.
Merkkijono textZone_3 = "Hälytys! Zone3"; // Sen nimi on latina.
Merkkijono textZone_4 = "Hälytys! Zone4"; // Sen nimi on latina.
#sisältää
SoftwareSerial mySerial (2, 3);
#define pinSensor_0 4
#define pinSensor_1 5
#define pinSensor_2 6
#define pinSensor_3 7
#define pinSensor_4 8
tyhjä initGSM (tyhjä) {
viive (2000);
mySerial.begin (9600); // Aseta tiedonsiirtonopeus GSM-moduulilla 9600 Baud / s.
mySerial.println ("AT + CLIP = 1");
viive (300);
mySerial.println ("AT + CMGF = 1");
viive (300);
mySerial.println ("AT + CSCS = \" GSM \ "");
viive (300);
mySerial.println ("AT + CNMI = 2,2,0,0,0");
viive (300);
}
/ * Tekstiviestien lähettäminen * /
void sendSMS (merkkijonoteksti, kielipuhelin) {
mySerial.println ("AT + CMGS = \" "+ puhelin +" \ "");
viive (500);
mySerial.print (teksti);
viive (500);
mySerial.print ((char) 26);
viive (2500);
}
allekirjoittamaton pitkä ajastinTemp = 0;
uint8_t tuntia = 0;
uint8_t flagSensor_0 = 0;
uint8_t flagSensor_1 = 0;
uint8_t flagSensor_2 = 0;
uint8_t flagSensor_3 = 0;
uint8_t flagSensor_4 = 0;
tyhjä asennus () {
mySerial.begin (9600);
initGSM ();
pinMode (pinSensor_0, INPUT);
pinMode (pinSensor_1, INPUT);
pinMode (pinSensor_2, INPUT);
pinMode (pinSensor_3, INPUT);
pinMode (pinSensor_4, INPUT);
timerTemp = millis ();
}
tyhjä silmukka () {
if (millis () - timerTemp> = 3600000) {timerTemp = millis (); tuntia ++;}
if (tuntia> = 144) {// Vaihda järjestelmän ohjausaika omaan, 144 tuntiin.
sendSMS (merkkijono ("Järjestelmä toimii normaalisti.OK"), numeroSMS_1);
viive (10000);
sendSMS (merkkijono ("Järjestelmä toimii normaalisti.OK"), numeroSMS_2);
viive (10000);
tuntia = 0;
timerTemp = millis ();
}
if (flagSensor_0 == 0 && digitalRead (pinSensor_0) == 0) flagSensor_0 = 1;
if (flagSensor_1 == 0 && digitalRead (pinSensor_1) == 0) flagSensor_1 = 1;
if (flagSensor_2 == 0 && digitalRead (pinSensor_2) == 0) flagSensor_2 = 1;
if (flagSensor_3 == 0 && digitalRead (pinSensor_3) == 0) flagSensor_3 = 1;
if (flagSensor_4 == 0 && digitalRead (pinSensor_4) == 0) flagSensor_4 = 1;
if (flagSensor_0 == 1) {
Merkkijono komento;
komento = "ATD +" + numberCall_1 + ";"
mySerial.println (komento);
viive (20000);
mySerial.println ("ATH");
viive (1000);
komento = "ATD +" + numberCall_2 + ";";
mySerial.println (komento);
viive (20000);
mySerial.println ("ATH");
viive (1000);
flagSensor_0 = 2;
}
if (flagSensor_1 == 1) {
lähetäSMS (textZone_1, numeroSMS_1);
viive (10000);
lähetäSMS (textZone_1, numeroSMS_2);
viive (10000);
flagSensor_1 = 2;
}
if (flagSensor_2 == 1) {
lähetäSMS (textZone_2, numeroSMS_1);
viive (10000);
sendSMS (textZone_2, numeroSMS_2);
viive (10000);
flagSensor_2 = 2;
}
if (flagSensor_3 == 1) {
sendSMS (textZone_3, numeroSMS_1);
viive (10000);
sendSMS (textZone_3, numeroSMS_2);
viive (10000);
flagSensor_3 = 2;
}
if (flagSensor_4 == 1) {
lähetäSMS (textZone_4, numeroSMS_1);
viive (10000);
sendSMS (textZone_4, numeroSMS_2);
viive (10000);
flagSensor_4 = 2;
}
if (flagSensor_0 == 2 && digitalRead (pinSensor_0)! = 0) flagSensor_0 = 0;
if (flagSensor_1 == 2 && digitalRead (pinSensor_1)! = 0) flagSensor_1 = 0;
if (flagSensor_2 == 2 && digitalRead (pinSensor_2)! = 0) flagSensor_2 = 0;
if (flagSensor_3 == 2 && digitalRead (pinSensor_3)! = 0) flagSensor_3 = 0;
if (flagSensor_4 == 2 && digitalRead (pinSensor_4)! = 0) flagSensor_4 = 0;
}
Vaihe kolme. Laitteen terveyden tarkistaminen.
Kun virta kytketään, kun SIM800L-moduuli ja Arduino-kortti latautuvat, sinulla on noin 20 sekuntia poistua vartioidusta huoneesta. SIM800L-moduulissa LED ilmaisee verkon toiminnan; usein se etsii verkkoa; joka viides sekunti osoittaa verkon toiminnan. Kun laite löytää verkon, irrota vastaavat tietotulot, sen jälkeen puhelinverkkoyhteys tai SMS lähetetään. Joten laite toimii hyvin.
Valokuvien tekstiviestit. On mahdollista sisällyttää kaikki turvailmaisimet, joissa on ulostulot koskettimina, releet toimilaitteista, vain tarpeidesi ja mielikuvituksenne mukaisesti. Yleensä valmisimme yksinkertaisen turvalaitteen. Tällainen kotitekoinen vartija voidaan tehdä organisoimaan minkä tahansa esineiden suojaus. Hälytyslaitteen käynnistämiseksi sinun on syötettävä 4,2 volttia SIM800: n ja Arduinon kytkimen kautta. Ensimmäisessä sisäänkäynnissä puhelu siirtyy tilaajalle nro 1, minkä jälkeen puhelu siirtyy numeroon 2. Lisä nro 2 toimitetaan kopiointia varten. Avoimen silmukan numero 2,3,4,5 antaa tekstiviestien lähettämisen vastaavasti katkenneen silmukan nimen molemmille puhelimille. Sijoita kaikki levyt sopivaan tapaan. Mielestäni tämä on hyvä mielenkiintoinen laite, jota voidaan edelleen kehittää edelleen - lisätä GSM-liitännän, DMTF-ohjauksen ja paljon muuta.
Lisätietoja löytyy videosta
Toivotan teille kaikille terveyttä ja menestystä elämässä ja työssä!