Përmbajtje:

Sistemi i Sigurisë Telefonike me Arduino: 5 hapa
Sistemi i Sigurisë Telefonike me Arduino: 5 hapa

Video: Sistemi i Sigurisë Telefonike me Arduino: 5 hapa

Video: Sistemi i Sigurisë Telefonike me Arduino: 5 hapa
Video: SKR Pro V1.1 - DRV8825 stepper driver install 2024, Nëntor
Anonim
Sistemi i Sigurisë Telefonike me Arduino
Sistemi i Sigurisë Telefonike me Arduino

Shtëpia juaj do të jetë e pambrojtur nëse nuk e zbatoni këtë projekt. Ky projekt do t'ju ndihmojë të aktivizoni një alarm përmes telefonit celular kur një ndërhyrës hyn në shtëpinë tuaj.

Në këtë mënyrë, nëse përdorni këtë projekt, do të merrni një SMS përmes telefonit celular dhe do të jeni në gjendje ta mbani shtëpinë tuaj të mbrojtur në rast të pushtimeve.

Për këtë, ne do të përdorim Bordin e pajtueshëm Arduino me modulin SIM800L dhe sensorin PIR. Sensori PIR do të jetë përgjegjës për zbulimin e pranisë së një ndërhyrës dhe SIM800L do të jetë përgjegjës për dërgimin e një SMS alarmi tek pronari i shtëpisë.

Furnizimet

  • Bordi i pajtueshëm me Arduino
  • Sensori PIR
  • Rezistencë 10kR
  • Kërcyesit
  • Protoboard
  • Moduli SIM800L

Hapi 1: Zemra e Projektit

Thelbi i projektit është moduli SIM800L. Ky modul do të jetë në gjendje të marrë komanda Arduino dhe të dërgojë SMS në celularin e përdoruesit. Në atë mënyrë, kur përdoruesi merr alarmin, ai mund të telefonojë policinë ose të kryejë çdo lloj veprimi tjetër.

Bordi i pajtueshëm Arduino do të jetë përgjegjës për kontrollimin e gjendjes së sensorit dhe më pas do të dërgojë një mesazh paralajmërues tek përdoruesi nëse zbulon praninë e një ndërhyrës.

Ky proces kryhet falë komandave të kontrollit midis Arduino dhe Modulit SIM800L. Prandaj, nga ajo, ne do t'ju prezantojmë hap pas hapi që ju të ndërtoni këtë sistem, të lini shtëpinë tuaj të mbrojtur dhe t'ju paralajmërojmë sa herë që ndonjë ndërhyrës e pushton atë.

Nëse dëshironi të shkarkoni Bordin e pajtueshëm Arduino, mund të hyni në këtë lidhje dhe të merrni skedarët për të blerë tabelat tuaja në JLCPCB.

Tani, le të fillojmë!

Hapi 2: Qarku Elektronik i Projektit dhe Programimi

Projekti Qarku Elektronik dhe Programimi
Projekti Qarku Elektronik dhe Programimi
Projekti Qarku Elektronik dhe Programimi
Projekti Qarku Elektronik dhe Programimi

Së pari, ne do ta bëjmë qarkun elektronik të disponueshëm dhe më pas do të diskutojmë kodin e projektit hap pas hapi për ju.

#përfshi çipin SoftwareSerial (10, 11);

String SeuNumero = "+5585988004783";

#përcaktoni sensorin 12

bool ValorAtual = 0, ValorAnterior = 0;

void setup ()

{Serial.fillo (9600); Serial.println ("Sistemi Inicializando …"); vonesa (5000); chip.filloj (9600); vonesa (1000);

pinMode (sensor, INPUT); // Konfigurimi i Pino do Sensor në Entrada

}

lak void ()

{// Le o valor do pino do sensor ValorAtual = digitalRead (sensor);

nëse (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert; ValorAnterior = 1; }

nëse (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude (); ValorAnterior = 0; }

}

void IntrudeAlert () // Funcao para enviar mensagem de alerta Umidade Baixa

{chip.println ("AT+CMGF = 1"); vonesa (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); vonesa (1000); String SMS = "Paralajmërim ndërhyrës!"; chip.println (SMS); vonesë (100); çip.println ((char) 26); vonesa (1000); }

void NoMoreIntrude () // Funcao para enviar mensagem de alerta Umidade Normal

{chip.println ("AT+CMGF = 1"); vonesa (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); vonesa (1000); String SMS = "Jo më shumë ndërhyrje!"; chip.println (SMS); vonesë (100); çip.println ((char) 26); vonesa (1000); }

Në kodin e treguar më poshtë, ne fillimisht deklaruam bibliotekën e komunikimit serik SoftwareSerial.h, siç tregohet më poshtë.

#përfshi

Pas përcaktimit të bibliotekës, u përcaktuan kunjat e komunikimit Tx dhe Rx. Këto kunja janë kunja alternative dhe përdoren për të lejuar komunikimin serik në kunjat e tjera Arduino. Biblioteka SoftwareSerial u krijua për t'ju lejuar të përdorni softuerin për të përsëritur funksionalitetin

SoftuerSipi serik (10, 11);

Pas kësaj, numri i telefonit celular u deklarua është treguar më poshtë.

String SeuNumero = "+5585988004783";

Skema e dizajnit elektronik është e thjeshtë dhe e lehtë për tu montuar. Siç mund ta shihni në qark, Bordi i pajtueshëm Arduino është përgjegjës për leximin e statusit të sensorit dhe më pas dërgimin e një SMS tek pronari i shtëpisë.

Mesazhi do të dërgohet nëse zbulohet një ndërhyrës brenda shtëpisë. Sensori PIR (Infra i Kuq Pasiv) është një sensor i përdorur për të zbuluar lëvizjen nga sinjali infra të kuqe. Nga sinjali i dërguar në Arduino, moduli SIM800L do t'i dërgojë një mesazh përdoruesit.

Dioda do të përdoret për të siguruar një rënie të tensionit për të furnizuar modulin SIM800L. Meqenëse moduli nuk mund të fuqizohet me 5V. Në këtë mënyrë, një tension prej 4.3V do të arrijë për të fuqizuar modulin tuaj dhe për të siguruar që ai punon në mënyrë të sigurt.

Hapi 3: Funksioni Void Setup ()

Në funksionin e konfigurimit të zbrazët, ne do të fillojmë komunikimin serik dhe do të konfigurojmë pinin e sensorit si një hyrje. Rajoni i kodit është paraqitur më poshtë.

void setup ()

{

Serial.filloj (9600); Serial.println ("Inicializando Sistema …"); vonesë (5000); chip.filloj (9600); vonesa (1000); pinMode (sensor, INPUT); // Konfigurimi i Pino do Sensor në Entrada}

Siç mund të shihet, të dy komunikimet serike u inicializuan. Serial.begin përdoret për të inicializuar serialin vendas të Arduino dhe chip.begin është seriali i emuluar përmes bibliotekës SoftwareSerial. Pas kësaj, ne do të për funksionin void loop.

Hapi 4: Projekti dhe funksioni i lakut të zbrazët

Projekti dhe funksioni i lakut të zbrazët
Projekti dhe funksioni i lakut të zbrazët
Projekti dhe funksioni i lakut të zbrazët
Projekti dhe funksioni i lakut të zbrazët

Tani, ne do të paraqesim logjikën kryesore të programimit në funksionin e lakut void.

void loop () {// Le o valor do pino do sensor ValorAtual = digitalRead (sensor);

nëse (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert ();

ValorAnterior = 1;

}

nëse (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude ();

ValorAnterior = 0;

}

}

Së pari, sinjali nga sensori i pranisë PIR do të lexohet siç tregohet më poshtë.

ValorAtual = digitalRead (sensor);

Pas kësaj, do të verifikohet nëse vlera në ndryshoren ValorAtual është 1 ose 0, siç tregohet më poshtë.

nëse (ValorAtual == 1 && ValorAnterior == 0) {IntrudeAlert ();

ValorAnterior = 1;

} if (ValorAtual == 0 && ValorAnterior == 0) {NoMoreIntrude ();

ValorAnterior = 0;

}

Rasti i ndryshores ValorAtual është 1 dhe variablat ValorAnterior është 0, sensori në të vërtetë aktivizohet dhe paraprakisht çaktivizohet (ValorAnterior == 0). Në këtë mënyrë, funksioni do të ekzekutohet dhe përdoruesi do të marrë mesazhin në celularin tuaj. Pas kësaj, vlera e ndryshores ValorAnterior do të jetë e barabartë me 1.

Në këtë mënyrë, variabla ValorAnterior do të sinjalizohet se gjendja aktuale e sensorit aktivizohet.

Tani, në rast se vlera e ndryshores ValorAtual është 0 dhe vlera e ndryshores ValorAnterior është e barabartë me 0, sensori nuk zbulon ndërhyrje dhe më pas aktivizohet vlera e tij.

Në këtë mënyrë, sistemi do të dërgojë mesazhin për celularin e përdoruesit dhe do të përditësojë vlerën aktuale të sensorit për 0. Kjo vlerë do të tregojë se sensori nuk është aktivizuar për momentin.

Mesazhet që janë dërguar për përdoruesit janë paraqitur më lart.

Tani, ne do të mësojmë se si të punojmë me funksionin për të dërguar mesazhe për celularin e përdoruesit.

Hapi 5: Funksionet për të dërguar mesazhe

Në këtë sistem, ekzistojnë dy funksione. Ato janë funksione me të njëjtën strukturë. Dallimi midis tyre është emri dhe mesazhi i dërguar, por kur ta analizojmë, do të shohim se ato janë krejtësisht të njëjta.

Tjetra, ne do të paraqesim strukturën e plotë të funksioneve dhe do të diskutojmë kodin.

void IntrudeAlert () // Funcao para enviar mensagem de alerta Umidade Baixa {chip.println ("AT+CMGF = 1"); vonesa (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); vonesa (1000); SMS me varg = "Dera e Hapur!"; chip.println (SMS); vonesë (100); çip.println ((char) 26); vonesa (1000); }

void NoMoreIntrude () // Funcao para enviar mensagem de alerta Umidade Normal

{chip.println ("AT+CMGF = 1"); vonesa (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); vonesa (1000); SMS me varg = "Dera e Mbyllur!"; chip.println (SMS); vonesë (100); çip.println ((char) 26); vonesa (1000); }

Moduli SIM800L përdor komandën AT për të kontrolluar funksionet e tij. Prandaj, përmes këtyre komandave, ne do të dërgojmë mesazhin për celularin e përdoruesit.

AT+CGMF = 1 përdoret për të konfiguruar modulin për të punuar në modalitetin SMS Text. Pas vonesës, sistemi do të dërgojë mesazhin për përdoruesin përmes komandës së mëposhtme.

chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r");

Në komandë, moduli SIM800L do të përgatitet për të dërguar një mesazh për numrin e celularit të regjistruar në vargun SeuNumero. Pas kësaj, sistemi do të ngarkojë mesazhin në varg dhe do të dërgojë për celularin e përdoruesit, siç tregohet më poshtë.

SMS me varg = "Dera e Mbyllur!"; chip.println (SMS); vonesë (100); çip.println ((char) 26); vonesa (1000);

Shenja (26) përdoret për të sinjalizuar fundin e mesazhit. Ky proces pune është i ngjashëm për dy funksione për të dërguar një mesazh për përdoruesin.

Mirënjohje

Tani, ne vlerësojmë mbështetjen e JLCPCB për të kryer këtë punë dhe, nëse jeni të interesuar, hyni në lidhjen e mëposhtme dhe shkarkoni Bordin e pajtueshëm Arduino.

Recommended: