Turinys:

Telefono apsaugos sistema su „Arduino“: 5 žingsniai
Telefono apsaugos sistema su „Arduino“: 5 žingsniai

Video: Telefono apsaugos sistema su „Arduino“: 5 žingsniai

Video: Telefono apsaugos sistema su „Arduino“: 5 žingsniai
Video: Тахометр / Бортовой компьютер / на Arduino 2024, Lapkritis
Anonim
Telefono apsaugos sistema su „Arduino“
Telefono apsaugos sistema su „Arduino“

Jei netaikysite šio projekto, jūsų namai bus neapsaugoti. Šis projektas padės jums suaktyvinti aliarmą mobiliuoju telefonu, kai įsibrovėlis įsibrauna į jūsų namus.

Tokiu būdu, jei naudosite šį projektą, gausite SMS žinutę mobiliuoju telefonu ir galėsite apsaugoti savo namus invazijos atveju.

Tam naudosime „Arduino“suderinamą plokštę su SIM800L moduliu ir PIR jutikliu. PIR jutiklis bus atsakingas už įsibrovėlio aptikimą, o SIM800L - už įspėjimo SMS siuntimą namų savininkui.

Prekės

  • „Arduino“suderinama lenta
  • PIR jutiklis
  • Rezistorius 10kR
  • Džemperiai
  • Protoboard
  • SIM800L modulis

1 žingsnis: projekto širdis

Projekto esmė - SIM800L modulis. Šis modulis galės priimti „Arduino“komandas ir siųsti SMS į vartotojo mobilųjį telefoną. Tokiu būdu vartotojas, gavęs įspėjimą, gali paskambinti policijai arba atlikti bet kokį kitą veiksmą.

„Arduino“suderinama valdyba bus atsakinga už jutiklio būsenos tikrinimą ir tada, jei aptiks įsibrovėlį, vartotojui atsiųs įspėjimo pranešimą.

Šis procesas atliekamas dėl valdymo komandų tarp „Arduino“ir SIM800L modulio. Todėl nuo to mes žingsnis po žingsnio supažindinsime jus su šios sistemos kūrimu, apsaugosite namus ir įspėsime jus, kai į ją įsiveržia bet koks įsibrovėlis.

Jei norite atsisiųsti „Arduino“suderinamą plokštę, galite pasiekti šią nuorodą ir gauti failus, kad galėtumėte nusipirkti plokštes JLCPCB.

Dabar pradėkime!

2 žingsnis: projekto elektroninė grandinė ir programavimas

Projektas Elektroninė grandinė ir programavimas
Projektas Elektroninė grandinė ir programavimas
Projektas Elektroninė grandinė ir programavimas
Projektas Elektroninė grandinė ir programavimas

Pirma, mes padarysime prieinamą elektroninę grandinę ir tada žingsnis po žingsnio aptarsime jums projekto kodą.

#include SoftwareSerial chip (10, 11);

Styga SeuNumero = "+5585988004783";

#define jutiklis 12

bool ValorAtual = 0, ValorAnterior = 0;

negaliojanti sąranka ()

{Serial.begin (9600); Serial.println („Inicializando Sistema…“); vėlavimas (5000); lustas.pradis (9600); vėlavimas (1000);

pinMode (jutiklis, Įvestis); // Configura o Pino do Sensor como Entrada

}

tuštumos kilpa ()

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

jei (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert; ValorAnterior = 1; }

jei (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude (); ValorAnterior = 0; }

}

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

{chip.println ("AT+CMGF = 1"); vėlavimas (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); vėlavimas (1000); String SMS = "Įspėjimas!"; lustas.println (SMS); vėlavimas (100); lustas.println ((char) 26); vėlavimas (1000); }

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

{chip.println ("AT+CMGF = 1"); vėlavimas (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); vėlavimas (1000); Styginių SMS = "Daugiau nebesikišti!"; lustas.println (SMS); vėlavimas (100); lustas.println ((char) 26); vėlavimas (1000); }

Toliau pateiktame kode iš pradžių paskelbėme serijinės komunikacijos biblioteką „SoftwareSerial.h“, kaip parodyta žemiau.

#įtraukti

Apibrėžus biblioteką, buvo apibrėžti ryšio kaiščiai Tx ir Rx. Šie kaiščiai yra alternatyvūs kaiščiai ir yra naudojami siekiant užtikrinti serijinį ryšį su kitais „Arduino“kaiščiais. „SoftwareSerial“biblioteka buvo sukurta tam, kad galėtumėte naudoti programinę įrangą funkcionalumui atkurti

Programinė įranga Serijos lustas (10, 11);

Po to buvo paskelbtas mobiliojo telefono numeris, rodomas žemiau.

Styga SeuNumero = "+5585988004783";

Elektroninio dizaino schema yra paprasta ir lengvai surenkama. Kaip matote grandinėje, „Arduino“suderinama plokštė yra atsakinga už jutiklio būsenos nuskaitymą ir tada SMS siuntimą namų savininkui.

Pranešimas bus išsiųstas, jei namuose bus aptiktas įsibrovėlis. PIR (pasyvus infraraudonųjų spindulių) jutiklis yra jutiklis, naudojamas infraraudonųjų spindulių signalo judėjimui aptikti. Iš „Arduino“siunčiamo signalo SIM800L modulis vartotojui atsiųs pranešimą.

Diodas bus naudojamas įtampai sumažinti, kad būtų galima tiekti SIM800L modulį. Kadangi modulis negali būti maitinamas 5 V įtampa. Tokiu būdu 4,3 V įtampa pateks į jūsų modulį ir užtikrins, kad jis veiks saugiai.

3 veiksmas: funkcija „Tuštumos nustatymas“()

Naudodami tuštumos nustatymo funkciją, inicijuosime nuoseklųjį ryšį ir sukonfigūruosime jutiklio kaištį kaip įvestį. Žemiau pateikiamas kodo regionas.

negaliojanti sąranka ()

{

Serial.begin (9600); Serial.println ("Inicializando Sistema …"); uždelsimas (5000); lustas.pradis (9600); vėlavimas (1000); pinMode (jutiklis, Įvestis); // „Configura o Pino do Sensor como Entrada“}

Kaip matote, abu serijiniai ryšiai buvo inicijuoti. „Serial.begin“naudojamas inicijuoti vietinę „Arduino“seriją ir lustą. Pradžia yra serija, emuliuota per „SoftwareSerial“biblioteką. Po to mes atliksime tuštumos ciklo funkciją.

4 žingsnis: projektas ir „Void Loop“funkcija

Projektas ir „Void Loop“funkcija
Projektas ir „Void Loop“funkcija
Projektas ir „Void Loop“funkcija
Projektas ir „Void Loop“funkcija

Dabar mes pristatysime pagrindinę programavimo logiką tuštumos ciklo funkcijoje.

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

jei (ValorAtual == 1 && ValorAnterior == 0)

{IntrudeAlert ();

ValorAnterior = 1;

}

jei (ValorAtual == 0 && ValorAnterior == 1)

{NoMoreIntrude ();

ValorAnterior = 0;

}

}

Pirma, signalas iš PIR buvimo jutiklio bus nuskaitytas, kaip parodyta žemiau.

ValorAtual = digitalRead (jutiklis);

Po to bus patikrinta, ar kintamojo ValorAtual vertė yra 1 arba 0, kaip parodyta žemiau.

if (ValorAtual == 1 && ValorAnterior == 0) {IntrudeAlert ();

ValorAnterior = 1;

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

ValorAnterior = 0;

}

Jei kintamasis „ValorAtual“yra 1, o kintamieji „ValorAnterior“yra 0, jutiklis iš tikrųjų yra įjungtas ir iš anksto išjungtas (ValorAnterior == 0). Tokiu būdu funkcija bus įvykdyta ir vartotojas gaus pranešimą į jūsų mobilųjį telefoną. Po to kintamojo ValorAnterior vertė bus lygi 1.

Tokiu būdu kintamasis ValorAnterior bus signalizuojamas, kad įjungta tikroji jutiklio būsena.

Dabar, jei kintamojo ValorAtual vertė yra 0, o ValorAnterior kintamojo vertė lygi 0, jutiklis neaptinka įsibrovimo ir tada įjungiama jo vertė.

Tokiu būdu sistema išsiųs pranešimą vartotojo mobiliojo telefono numeriui ir atnaujins faktinę jutiklio reikšmę 0. Ši vertė parodys, kad jutiklis šiuo metu neveikia.

Pranešimai, išsiųsti vartotojui, pateikti aukščiau.

Dabar mes išmoksime, kaip naudotis funkcija, skirta siųsti pranešimus naudotojo mobiliajam telefonui.

5 veiksmas: pranešimų siuntimo funkcijos

Šioje sistemoje yra dvi funkcijos. Tai yra tos pačios struktūros funkcijos. Skirtumas tarp jų yra pavadinimas ir išsiųsta žinutė, tačiau ją išanalizavę pamatysime, kad jie yra visiškai vienodi.

Toliau pristatysime visą funkcijų struktūrą ir aptarsime kodą.

void IntrudeAlert () // Funcao para enviar mensagem de alerta Umidade Baixa {chip.println ("AT+CMGF = 1"); vėlavimas (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); vėlavimas (1000); Styginių SMS = "Atidarytos durys!"; lustas.println (SMS); vėlavimas (100); lustas.println ((char) 26); vėlavimas (1000); }

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

{chip.println ("AT+CMGF = 1"); vėlavimas (1000); chip.println ("AT + CMGS = \" " + SeuNumero +" / "\ r"); vėlavimas (1000); String SMS = "Uždarytos durys!"; lustas.println (SMS); vėlavimas (100); lustas.println ((char) 26); vėlavimas (1000); }

SIM800L modulis naudoja AT komandą savo funkcijoms valdyti. Todėl per šias komandas mes išsiųsime pranešimą naudotojo mobiliajam telefonui.

AT+CGMF = 1 naudojamas moduliui sukonfigūruoti veikti SMS teksto režimu. Po uždelsimo sistema siunčia pranešimą vartotojui per šią komandą.

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

Komandoje SIM800L modulis bus paruoštas siųsti pranešimą apie SeuNumero eilutėje užregistruotą mobiliojo telefono numerį. Po to sistema įkelia pranešimą į eilutę ir siunčia vartotojo mobilųjį telefoną, kaip parodyta žemiau.

String SMS = "Uždarytos durys!"; lustas.println (SMS); vėlavimas (100); lustas.println ((char) 26); vėlavimas (1000);

Ženklas (26) naudojamas pranešti apie pranešimo pabaigą. Šis darbo procesas yra panašus, kai dvi funkcijos siunčia pranešimą vartotojui.

Padėkos

Dabar mes vertiname JLCPCB paramą atliekant šį darbą ir, jei jus domina, spustelėkite šią nuorodą ir atsisiųskite „Arduino“suderinamą plokštę.

Rekomenduojamas: