Yaz sezonunun başlamasıyla birlikte kır evini korumaya ihtiyaç vardı. Bir cep telefonuna gönderilen bir sinyal ile basit ama güvenilir bir hırsız alarmı yapmak istedim. Alarm iletimli bir cihazın bir cep telefonuna monte edilmesine karar verildi. elektronik devre kartları aliexpress satın. Dedikleri gibi ucuz ama neşeli. Bu tasarımın ana unsurları GSM SIM800L modülü ve Arduino kartıdır (herhangi birini kullanabilirsiniz - Nano, Uno, Pro Mini ve benzeri).
Cihazda kontak sensörleri için beş alarm girişi bulunur. Her girişe seri olarak bağlanan bir veya birkaç sensör bağlanabilir.Çizimde, her güvenlik döngüsüne bir ad atayın (örneğin, bir giriş kapısı, pencere 1, pencere 2, vb.). Güvenlik cihazı şu şekilde çalışır: ilk halkanın elektrik devresi kesildiğinde, ünite önce abonenin ilk telefonuna bir çağrı yapar, daha sonra çağrıyı durdurur ve ayrıca No.2'ye. Aniden ilk abonenin çevrimdışıysa veya pil ile diğer sorunların takılı kalması durumunda 2 numaralı numara gereklidir). İlkini izleyen döngü tetiklenirse, aynı durumda her iki abone numarasına da çalışan döngü adıyla bir SMS mesajı gönderilir.
Araç ve malzemelerin numaralandırılması.
eski bir telefondan lityum-iyon pil 3.7V \ 1600mA-1 adet
- bağlantı telleri;
havya;
Bir test;
- şeffaf plastik kutu -1 adet;
elbise-up Arduino Nano -1 adet;
-dirençler 10kOhm-7 adet;
- folyo textolitten yapılmış breadboard;
- 1 adet güç anahtarı;
- SIM800L modülü -1 adet;
- düşürme tahtası 1-2A -1 adet;
- terminal konektörleri.
İlk adım. Bir güvenlik GSM cihazı devresinin montajı.
Fotoğraf şeması.
GSM SIM800L modülü ve Arduino modülü için geçmeli pedleri breadboard'a lehimliyoruz, bu kurulumu kolaylaştırıyor ve gerekirse modüllerin değiştirilmesini kolaylaştırıyor. Lehim dirençleri ve diğer bağlantılar. SIM800L modülünün RX pininden dirençler, her iki modülün giriş voltajına uyacak şekilde Arduino D3 dijital girişine bağlanır. Arduino D4-D8 girişleri dirençlerden çekilir. Anahtar, tüm sistemi devreye almak için SIM800 GSM modülünün ve Arduino kartının güç kaynağı boşluğuna monte edilmiştir. Cihazın 220 V şebekesi olmadan iki üç gün çalışmasına izin verecek bir pil kullanılması .. Benim durumumda, 12 V voltajından gelen voltaj dönüştürücü, 4.2 V'luk bir voltaj üretir ve aynı zamanda pili şarj eder (örneğin TP4056 korumalı başka bir kart kullanabilirsiniz).
İkinci adım. Cihaz programlama.
SIM kartta PIN kodları ve tüm gereksiz işlevler silinmelidir.Yine de, önce SIM800L modülünün kendisini yapılandırmanız gerekir.Ağ üzerinde bu konuda çok fazla video var, bu konuda karmaşık bir şey yok. Çizimde telefon numaralarınızı belirtiyoruz, güvenlik bölgelerinin adlarını ayarlıyoruz, sistemi izleme zamanını ayarlayabilirsiniz (cihaz belirli bir süre sonra düzgün çalışıyorsa, bir kontrol SMS'i gelir). Arduino'daki çizimi doldurun ve cihazın çalışmasını kontrol edin.
eskiz:
Dize numberCall_1 = "79123456789"; // Bir çağrı için abone numarası №1
Dize numarasıSMS_1 = "+79123456789"; // SMS için 1 numaralı abone (yalnızca + işaretinde farklılık gösterir)
Dize numberCall_2 = "79123456782"; // Çağrı için abone numarası 2
Dize numarasıSMS_2 = "+79123456782"; // SMS için 2 numaralı abone (yalnızca + işaretinde farklılık gösterir)
String textZone_1 = "Alarm! Bölge1"; // Adı Latince.
String textZone_2 = "Alarm! Zone2"; // Adı Latince.
String textZone_3 = "Alarm! Zone3"; // Adı Latince.
String textZone_4 = "Alarm! Zone4"; // Adı Latince.
#include
SoftwareSerial mySerial (2, 3);
#define pinSensor_0 4
#define pinSensor_1 5
#define pinSensor_2 6
#define pinSensor_3 7
#define pinSensor_4 8
void initGSM (void) {
gecikme (2000);
mySerial.begin (9600); // GSM modül 9600 Baud / sn ile iletişim hızını ayarlayın.
mySerial.println ("AT + CLIP = 1");
gecikme (300);
mySerial.println ("AT + CMGF = 1");
gecikme (300);
mySerial.println ("AT + CSCS = \" GSM \ "");
gecikme (300);
mySerial.println ("AT + CNMI = 2,2,0,0,0");
gecikme (300);
}
/ * SMS gönderme * /
void sendSMS (Dize metni, Dize telefonu) {
mySerial.println ("AT + CMGS = \" "+ telefon +" \ "");
gecikme (500);
mySerial.print (metin);
gecikme (500);
mySerial.print ((karakter) 26);
gecikme (2500);
}
unsigned long timerTemp = 0;
uint8_t saat = 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;
void setup () {
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 = milis ();
}
void loop () {
if (millis () - timerTemp> = 3600000) {timerTemp = millis (); saat ++;}
if (hours> = 144) {// Sistem kontrol süresini kendi saatimizle değiştirin, 144 saat. saat sayısı.
sendSMS (String ("Sistem normal çalışır.OK"), numberSMS_1);
gecikme (10000);
sendSMS (String ("Sistem normal olarak çalışır.OK"), numberSMS_2);
gecikme (10000);
saat = 0;
timerTemp = milis ();
}
if (flagSensor_0 == 0 && digitalRead (pinSensor_0) == 0) flagSensor_0 = 1;
eğer (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) {
String komutu;
command = "ATD +" + numberCall_1 + ";"
mySerial.println (komut);
gecikme (20000);
mySerial.println ("ATH");
gecikme (1000);
command = "ATD +" + numberCall_2 + ";";
mySerial.println (komut);
gecikme (20000);
mySerial.println ("ATH");
gecikme (1000);
flagSensor_0 = 2;
}
eğer (flagSensor_1 == 1) {
sendSMS (textZone_1, numberSMS_1);
gecikme (10000);
sendSMS (textZone_1, numberSMS_2);
gecikme (10000);
flagSensor_1 = 2;
}
if (flagSensor_2 == 1) {
sendSMS (textZone_2; sayıSMS_1);
gecikme (10000);
sendSMS (textZone_2; sayıSMS_2);
gecikme (10000);
flagSensor_2 = 2;
}
if (flagSensor_3 == 1) {
sendSMS (textZone_3; sayıSMS_1);
gecikme (10000);
sendSMS (textZone_3; sayıSMS_2);
gecikme (10000);
flagSensor_3 = 2;
}
if (flagSensor_4 == 1) {
sendSMS (textZone_4; sayıSMS_1);
gecikme (10000);
sendSMS (textZone_4; sayıSMS_2);
gecikme (10000);
flagSensor_4 = 2;
}
if (flagSensor_0 == 2 && digitalRead (pinSensor_0)! = 0) flagSensor_0 = 0;
eğer (flagSensor_1 == 2 && digitalRead (pinSensor_1)! = 0) flagSensor_1 = 0;
if (flagSensor_2 == 2 && digitalRead (pinSensor_2)! = 0) flagSensor_2 = 0;
eğer (flagSensor_3 == 2 && digitalRead (pinSensor_3)! = 0) flagSensor_3 = 0;
if (flagSensor_4 == 2 && digitalRead (pinSensor_4)! = 0) flagSensor_4 = 0;
}
Üçüncü adım. Cihazın sağlığını kontrol etme.
Güç uygulandığında, SIM800L modülü ve Arduino kartı yüklenirken, korunan odadan çıkmak için yaklaşık 20 saniyeniz vardır. SIM800L modülünde LED, ağ etkinliğini gösterir; genellikle bir ağ arar; beş saniyede bir ağ çalışmasını gösterir. Cihaz bir ağ bulduğunda, karşılık gelen güvenlik girişlerinin bağlantısını kesin, bundan sonra bir çevirmeli bağlantı veya SMS gönderme olacaktır. Böylece cihaz iyi çalışıyor.
Fotoğraf SMS. Bu cihaza, kontaklar, aktüatörlerden gelen röleler, sadece ihtiyaçlarınıza ve hayal gücünüze uygun olarak çıkışları olan herhangi bir güvenlik dedektörü dahil etmek mümkün olacaktır. Genel olarak, basit bir güvenlik cihazı ürettik. Böyle bir ev yapımı bekçi, herhangi bir nesnenin korunmasını organize etmek için yapılabilir. Alarm cihazını açmak için, SIM800 ve Arduino üzerindeki anahtar aracılığıyla 4.2 Volt beslemeniz gerekir. İlk girişte 1 No'lu aboneye bir çağrı geçecek, daha sonra 2 No'lu duruma geçecektir. Çoğaltma için ek No. 2 sağlanmıştır. 2,3,4,5 numaralı açık döngü, her iki telefonda da sırasıyla bozuk döngünün özel adıyla SMS verilmesini sağlar. Tüm panoları uygun bir kutuya yerleştireceğiz. Genel olarak, bunun daha da geliştirilebilecek iyi bir ilginç cihaz olduğunu düşünüyorum - bir GSM soketi, DMTF kontrolü ve çok daha fazlasını ekleyin.
Daha fazla ayrıntı videoda görülebilir
Size yaşamda ve işte sağlık ve başarılar diliyorum!