» Electronics » Arduino »Ginagawa namin ang pinakasimpleng signalization sa GSM SIM800L at Arduino para sa pagbibigay, garahe

Ginagawa namin ang pinakasimpleng signalization sa GSM SIM800L at Arduino para sa pagbibigay, garahe


Sa pagsisimula ng panahon ng tag-araw, kailangang protektahan ang bahay ng bansa. Nais kong gumawa ng isang simple ngunit maaasahang burglar alarm na may isang signal na ipinadala sa isang cell phone. Napagpasyahan na mag-ipon ng isang aparato na may paghahatid ng alarma sa isang cell phone batay sa electronic binili ang mga circuit board sa Aliexpress. Tulad ng sinasabi nila na mura ngunit masayang. Ang mga pangunahing elemento ng disenyo na ito ay ang module ng GSM SIM800L at ang Arduino board (maaari mong gamitin ang anumang - Nano, Uno, Pro Mini at iba pa).

Ang aparato ay may limang mga input ng alarma para sa mga sensor ng contact. Ang isa o maraming mga sensor na nakakonekta sa serye ay maaaring konektado sa bawat input.Sa isang dibuho, magtalaga ng isang pangalan sa bawat loop ng seguridad (halimbawa, isang pintuan ng pasukan, window 1, window 2, at iba pa). Ang aparato ng seguridad ay gumagana tulad nito: kapag ang electric circuit ng unang loop ay nasira, ang unit ay unang tumawag sa unang telepono ng tagasuskribi, pagkatapos ay ititigil ang tawag at din sa No. 2. Kinakailangan ang No. 2 dahil sa biglaang ang unang tagasuskribi ay nasa offline o ang baterya at iba pang mga problema ay nakabitin) Kung ang loop kasunod ng una ay na-trigger, pagkatapos ay isang mensahe ng SMS ay ipinadala na may pangalan ng loop na nagtrabaho, sa parehong kaso, sa parehong mga numero ng tagasuskribi.

Pag-bilang ng mga tool at materyales.
lithium-ion na baterya mula sa isang lumang telepono na 3.7V \ 1600mA-1pc
-konekta sa mga wire;
paghihinang iron;
tester;
-transparent na kahon ng plastik -1pcs;
pagbabayad Arduino Nano -1 mga PC;
-resistor 10kOhm-7pcs;
- tinapay na gawa sa foil textolite;
- 1pcs power switch;
- module ng SIM800L -1pcs;
- pagbaba ng board 1-2A -1pcs;
- mga konektor ng terminal.

Unang hakbang. Pagtitipon ng isang circuit circuit ng aparato ng GSM.
Scheme ng larawan.


Nagbebenta kami ng mga plug-in pad para sa GSM SIM800L module at ang Arduino module sa breadboard, pinapasimple nito ang pag-install at ginagawang madali itong palitan ang mga module kung kinakailangan. Mga resistors ng nagbebenta at iba pang mga koneksyon. Ang mga resistor mula sa RX pin ng module ng SIM800L ay konektado sa input ng Arduino D3 digital upang tumugma sa boltahe ng mga input ng parehong mga module. Ang mga input ng Arduino D4-D8 ay nakuha sa pamamagitan ng mga resistor. Ang switch ay naka-mount sa puwang ng power supply ng SIM800 GSM module at ang Arduino board para sa arming ng buong sistema. Ang paggamit ng isang baterya, na magpapahintulot sa aparato na gumana para sa dalawang tatlong araw sa kawalan ng isang 220 V network. Sa aking kaso, ang boltahe converter mula sa boltahe ng 12 V ay gumagawa ng isang boltahe ng 4.2 V at sa parehong oras singilin ang baterya (maaari kang gumamit ng isa pang board, halimbawa TP4056 na may proteksyon).

Pangalawang hakbang. Pagprograma ng aparato.
Sa SIM card, dapat tanggalin ang mga code ng PIN at lahat ng mga hindi kinakailangang pag-andar.Gayunpaman, kailangan mo munang i-configure ang module mismo ng SIM800L.Maraming mga video sa paksang ito sa network, walang kumplikado tungkol dito. Sa sketch ipinapahiwatig namin ang iyong mga numero ng telepono, ayusin ang mga pangalan ng mga zone ng seguridad, maaari mong itakda ang oras para sa pagsubaybay sa system (kung gumagana nang maayos ang aparato pagkatapos ng isang tinukoy na oras, isang control SMS ay darating). Punan ang sketch sa Arduino at suriin ang operasyon ng aparato.

Sketch:


String numberCall_1 = "79123456789"; // Numero ng Subscriber №1 para sa isang tawag
String numberSMS_1 = "+79123456789"; // Numero ng Subscriber No. 1 para sa SMS (naiiba lamang sa + sign)

String numberCall_2 = "79123456782"; // Subscriber number 2 para sa isang tawag
String numberSMS_2 = "+79123456782"; // Numero ng Subscriber Blg 2 para sa SMS (naiiba lamang sa + sign)

String textZone_1 = "Alarm! Zone1"; // Ang pangalan nito ay nasa Latin.
String textZone_2 = "Alarm! Zone2"; // Ang pangalan nito ay nasa Latin.
String textZone_3 = "Alarm! Zone3"; // Ang pangalan nito ay nasa Latin.
String textZone_4 = "Alarm! Zone4"; // Ang pangalan nito ay nasa Latin.

#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

walang bisa initGSM (walang bisa) {
  pagkaantala (2000);
  mySerial.begin (9600); // Itakda ang bilis ng komunikasyon sa module ng GSM 9600 Baud / sec.
  mySerial.println ("AT + CLIP = 1");
  pagkaantala (300);
  mySerial.println ("AT + CMGF = 1");
  pagkaantala (300);
  mySerial.println ("AT + CSCS = \" GSM \ "");
  pagkaantala (300);
  mySerial.println ("AT + CNMI = 2,2,0,0,0");
  pagkaantala (300);
}

/ * Pagpapadala ng SMS * /
walang bisa sendSMS (String text, String phone) {
  mySerial.println ("AT + CMGS = \" "+ telepono +" \ "");
  pagkaantala (500);
  mySerial.print (teksto);
  pagkaantala (500);
  mySerial.print ((char) 26);
  pagkaantala (2500);
}


hindi naka-lock na mahabang timerTemp = 0;
uint8_t oras = 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;

walang pag-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 = millis ();
}

walang bisa na loop () {
    kung (millis () - timerTemp> = 3600000) {timerTemp = millis (); oras ++;}

  kung (oras> = 144) {// Baguhin ang oras ng control ng system sa aming sarili, 144 na oras. bilang ng oras.
    sendSMS (String ("Gumagana ang normal ng system.OK"), numberSMS_1);
    pagkaantala (10000);
    sendSMS (String ("Gumagana ang normal ng system.OK"), numberSMS_2);
    pagkaantala (10000);
    oras = 0;
    timerTemp = millis ();
  }
 
  kung (flagSensor_0 == 0 && digitalRead (pinSensor_0) == 0) flagSensor_0 = 1;
  kung (flagSensor_1 == 0 && digitalRead (pinSensor_1) == 0) flagSensor_1 = 1;
  kung (flagSensor_2 == 0 && digitalRead (pinSensor_2) == 0) flagSensor_2 = 1;
  kung (flagSensor_3 == 0 && digitalRead (pinSensor_3) == 0) flagSensor_3 = 1;
  kung (flagSensor_4 == 0 && digitalRead (pinSensor_4) == 0) flagSensor_4 = 1;

  kung (flagSensor_0 == 1) {
    Utos ng String;

    command = "ATD +" + numberCall_1 + ";"
    mySerial.println (utos);
    pagkaantala (20000);
    mySerial.println ("ATH");
    pagkaantala (1000);

   
    command = "ATD +" + numberCall_2 + ";";
    mySerial.println (utos);
    pagkaantala (20000);
    mySerial.println ("ATH");
    pagkaantala (1000);

    bandilaSensor_0 = 2;
  }


  kung (flagSensor_1 == 1) {
    ipadalaSMS (textZone_1, bilangSMS_1);
    pagkaantala (10000);
    ipadalaSMS (textZone_1, bilangSMS_2);
    pagkaantala (10000);
    bandilaSensor_1 = 2;
  }


  kung (flagSensor_2 == 1) {
    ipadalaSMS (textZone_2, bilangSMS_1);
    pagkaantala (10000);
    ipadalaSMS (textZone_2, bilangSMS_2);
    pagkaantala (10000);
    bandilaSensor_2 = 2;
  }


  kung (flagSensor_3 == 1) {
    ipadalaSMS (textZone_3, bilangSMS_1);
    pagkaantala (10000);
    ipadalaSMS (textZone_3, bilangSMS_2);
    pagkaantala (10000);
    bandilaSensor_3 = 2;
  }


  kung (flagSensor_4 == 1) {
    ipadalaSMS (textZone_4, bilangSMS_1);
    pagkaantala (10000);
    ipadalaSMS (textZone_4, bilangSMS_2);
    pagkaantala (10000);
    bandilaSensor_4 = 2;
  }

  kung (flagSensor_0 == 2 && digitalRead (pinSensor_0)! = 0) flagSensor_0 = 0;
  kung (flagSensor_1 == 2 && digitalRead (pinSensor_1)! = 0) flagSensor_1 = 0;
  kung (flagSensor_2 == 2 && digitalRead (pinSensor_2)! = 0) flagSensor_2 = 0;
  kung (flagSensor_3 == 2 && digitalRead (pinSensor_3)! = 0) flagSensor_3 = 0;
  kung (flagSensor_4 == 2 && digitalRead (pinSensor_4)! = 0) flagSensor_4 = 0;
}


Hakbang tatlo. Sinusuri ang kalusugan ng aparato.
Ginagawa namin ang pinakasimpleng signalization sa GSM SIM800L at Arduino para sa pagbibigay, garahe

Kapag inilalapat ang kapangyarihan, habang ang module ng SIM800L at ang Arduino board ay naglo-load, mayroon kang mga 20 segundo na umalis sa silid na binabantayan. Sa module ng SIM800L, ipinapahiwatig ng LED ang aktibidad ng network; madalas na naghahanap ito ng isang network; minsan bawat limang segundo ay nagpapahiwatig ito ng pagpapatakbo ng network. Kapag natagpuan ng aparato ang isang network, idiskonekta ang kaukulang mga input ng seguridad, pagkatapos nito magkakaroon ng dial-up o pagpapadala ng SMS. Kaya ang aparato ay gumagana nang maayos.

Photo SMS. Posible na isama ang anumang mga detektor ng seguridad na may mga output sa anyo ng mga contact, relay mula sa mga actuators, alinsunod sa iyong mga pangangailangan at imahinasyon. Sa pangkalahatan, gumawa kami ng isang simple, aparato sa seguridad. Ang nasabing isang gawang bantay sa bahay ay maaaring gawin upang ayusin ang proteksyon ng anumang mga bagay. Upang i-on ang aparato ng alarma, kailangan mong magbigay ng 4.2 Volts sa pamamagitan ng switch sa SIM800 at Arduino. Sa unang pasukan, isang tawag ang ipapasa sa subscriber No. 1, pagkatapos nito ay lumipat sa No. 2. Karagdagang No 2 ay ibinibigay para sa pagdoble. Ang bukas na numero ng loop 2,3,4,5 ay gumagawa ng pagpapalabas ng SMS na may tukoy na pangalan ng sirang loop, ayon sa pagkakabanggit, sa parehong mga telepono. Ilalagay namin ang lahat ng mga board sa anumang naaangkop na kaso. Sa pangkalahatan, sa palagay ko ito ay isang mahusay na kagiliw-giliw na aparato na maaaring higit pang mapaunlad - idagdag ang mga pag-andar ng isang GSM socket, kontrol ng DMTF at marami pa.

Higit pang mga detalye ang maaaring makita sa video

Nais ko sa iyo ang lahat ng kalusugan at tagumpay sa buhay at trabaho!
8.8
8.4
8.4

Magdagdag ng isang puna

    • ngitinakangitixaxaok langhindi alamyahoonea
      bosskumamottangaoooo-ooagresibolihim
      sorrysayawsayaw2sayaw3kapatawarantumulonginumin
      humintomga kaibiganmabutigoodgoodsipolswoondila
      usokpumapalakpakkrayolaipahayagnakakainisdon-t_mentionpag-download
      initnakakainistumawa1mdapagpupulongnakikipag-usapnegatibo
      hindi_ipopcornparusahanbasahintakottakotpaghahanap
      panunuyasalamat_youitoto_clueumniktalamaksumang-ayon
      masamabeeeblack_eyeblum3namulamagyabanginip
      censoredkaaya-ayalihim2nagbabantatagumpayyusun_bespectacled
      shokrespektlolnagustuhanmaligayang pagdatingkrutoyya_za
      ya_dobryikatulongne_huliganne_othodimapusokpagbabawalmalapit
3 komentaryo
Panauhang Alexander
Mayroong isang katanungan, 10kΩ 10W resistors ay kinakailangan o 0.25W o ano?
Magandang araw. Ngunit maaari ba akong magdagdag ng isang bagay upang sa isang matagumpay na dial-up, ang mga pag-input ay naharang? upang maiwasan ang pag-dial ng cyclic sa pagkakaroon ng isang mababang antas sa isa sa mga input!
maaari kang gumamit ng isa pang board, halimbawa TP4056 na may proteksyon
Hindi posible, ngunit kailangan. Bukod dito, hindi pa man, ngunit, tulad ng wastong sinabi, na may proteksyon, iyon ay, bukod sa TP4056 dapat mayroong dalawa pang maliliit na IC, kasama ang DW01 o ang pagkakatulad nito.
Bilang karagdagan sa mga loop ng seguridad, kanais-nais na kontrolin ang input boltahe ng TP4056.

Pinapayuhan ka naming basahin:

Ipasa ito para sa smartphone ...