» elektronik » Arduino »Vi foretager den enkleste signalering på GSM SIM800L og Arduino til at give, garage

Vi foretager den enkleste signalering på GSM SIM800L og Arduino til at give, garage


Da sommersæsonen begyndte, var der behov for at beskytte landstedet. Jeg ønskede at lave en enkel, men pålidelig tyverialarm med et signal sendt til en mobiltelefon. Det blev besluttet at samle en enhed med alarmoverførsel til en mobiltelefon baseret på elektronisk printkort købt på Aliexpress. Som de siger billigt, men muntert. Hovedelementerne i dette design er GSM SIM800L-modulet og Arduino-tavlen (du kan bruge alle - Nano, Uno, Pro Mini og lignende).

Enheden har fem alarmindgange til kontaktsensorer. En eller flere sensorer, der er tilsluttet i serie, kan forbindes til hver indgang. I en skitse skal du tildele et navn til hver sikkerhedssløjfe (for eksempel en indgangsdør, vindue 1, vindue 2 osv.). Sikkerhedsanordningen fungerer sådan: Når det første kredsløbs elektriske kredsløb er brudt, foretager enheden først et opkald til abonnentens første telefon, derefter stopper opkaldet og også til nr. 2. Nr. 2 er nødvendig i betragtning af, at hvis den første abonnent pludselig er offline, eller batteriet og andre problemer er tilsluttet). Hvis løkken efter den første udløses, sendes der en SMS-besked med navnet på den løkke, der i samme tilfælde fungerede til begge antal abonnenter.

Tælling af værktøjer og materialer.
lithium-ion-batteri fra en gammel telefon 3,7 V \ 1600mA-1 stk
-forbindende ledninger;
lodning jern;
A tester;
-transparent plastkasse -1stk;
dress-up Arduino Nano -1 stk;
-resistorer 10kOhm-7stk;
- brødbræt lavet af foliet tekstolit;
- 1 stk strømafbryder;
- SIM800L-modul -1stk;
- sænkningsplade 1-2A -1stk;
- terminalstik.

Første trin. Montering af et kredsløb på en GSM-sikkerhedsenhed.
Fotografering.


Vi lodder plug-in-puder til GSM SIM800L-modulet og Arduino-modulet til brødbrættet, dette forenkler installationen og gør det let at udskifte moduler om nødvendigt. Loddemodstande og andre forbindelser. Modstandene fra RX-stiften på SIM800L-modulet er forbundet til Arduino D3-indgangen for at matche spændingen på indgange fra begge moduler. Arduino D4-D8-indgange trækkes gennem modstande. Kontakten er monteret i SIM800 GSM-modulets strømforsyningsspalte og Arduino-kortet til tilkobling af hele systemet. Brug af et batteri, der tillader enheden at fungere i to tre dage i fravær af et 220 V. Netværk. I mit tilfælde producerer spændingsomformeren fra spændingen på 12 V en spænding på 4,2 V og oplader samtidig batteriet (du kan bruge et andet kort, for eksempel TP4056 med beskyttelse).

Andet trin. Enhedsprogrammering.
På SIM-kortet skal PIN-koder og alle unødvendige funktioner slettes.Stadig skal du først konfigurere selve SIM800L-modulet. Der er en masse videoer om dette emne på netværket, der er ikke noget kompliceret ved det. I skitsen angiver vi dine telefonnumre, justerer navnene på sikkerhedszoner, du kan indstille tidspunktet for overvågning af systemet (hvis enheden fungerer korrekt efter et bestemt tidspunkt, kommer en kontrol-SMS). Udfyld skitsen i Arduino, og kontroller enhedens funktion.

skitse:


String numberCall_1 = "79123456789"; // Abonnentnummer №1 for et opkald
String numberSMS_1 = "+79123456789"; // Abonnentnummer nr. 1 for SMS (adskiller kun i + -tegnet)

String numberCall_2 = "79123456782"; // Abonnent nummer 2 for et opkald
String numberSMS_2 = "+79123456782"; // Abonnentnummer nr. 2 for SMS (afviger kun i + -tegnet)

String textZone_1 = "Alarm! Zone1"; // Navnet er på latin.
String textZone_2 = "Alarm! Zone2"; // Navnet er på latin.
String textZone_3 = "Alarm! Zone3"; // Navnet er på latin.
String textZone_4 = "Alarm! Zone4"; // Navnet er på latin.

#include 
SoftwareSerial mySerial (2, 3);

#definér pinSensor_0 4
#definér pinSensor_1 5
#definér pinSensor_2 6
#definér pinSensor_3 7
#definér pinSensor_4 8

void initGSM (void) {
  forsinkelse (2000);
  mySerial.begin (9600); // Indstil kommunikationshastigheden med GSM-modulet 9600 Baud / sek.
  mySerial.println ("AT + CLIP = 1");
  forsinkelse (300);
  mySerial.println ("AT + CMGF = 1");
  forsinkelse (300);
  mySerial.println ("AT + CSCS = \" GSM \ "");
  forsinkelse (300);
  mySerial.println ("AT + CNMI = 2,2,0,0,0");
  forsinkelse (300);
}

/ * SMS-afsendelse * /
ugyldig sendSMS (strengtekst, strengtelefon) {
  mySerial.println ("AT + CMGS = \" "+ telefon +" \ "");
  forsinkelse (500);
  mySerial.print (tekst);
  forsinkelse (500);
  mySerial.print ((char) 26);
  forsinkelse (2500);
}


usigneret lang timerTemp = 0;
uint8_t timer = 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;

ugyldig opsætning () {
  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 ();
}

void loop () {
    if (millis () - timerTemp> = 3600000) {timerTemp = millis (); timer ++;}

  if (timer> = 144) {// Skift systemkontroltid til vores egen, 144 timer. antal timer.
    sendSMS (String ("Systemet fungerer normalt.OK"), nummerSMS_1);
    forsinkelse (10000);
    sendSMS (String ("Systemet fungerer normalt.OK"), nummerSMS_2);
    forsinkelse (10000);
    timer = 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) {
    Strengkommando;

    kommando = "ATD +" + nummerCall_1 + ";"
    mySerial.println (kommando);
    forsinkelse (20000);
    mySerial.println ("ATH");
    forsinkelse (1000);

   
    kommando = "ATD +" + nummerCall_2 + ";";
    mySerial.println (kommando);
    forsinkelse (20000);
    mySerial.println ("ATH");
    forsinkelse (1000);

    flagSensor_0 = 2;
  }


  if (flagSensor_1 == 1) {
    sendSMS (textZone_1, nummerSMS_1);
    forsinkelse (10000);
    sendSMS (textZone_1, nummerSMS_2);
    forsinkelse (10000);
    flagSensor_1 = 2;
  }


  if (flagSensor_2 == 1) {
    sendSMS (textZone_2, nummerSMS_1);
    forsinkelse (10000);
    sendSMS (textZone_2, nummerSMS_2);
    forsinkelse (10000);
    flagSensor_2 = 2;
  }


  if (flagSensor_3 == 1) {
    sendSMS (textZone_3, nummerSMS_1);
    forsinkelse (10000);
    sendSMS (textZone_3, nummerSMS_2);
    forsinkelse (10000);
    flagSensor_3 = 2;
  }


  if (flagSensor_4 == 1) {
    sendSMS (textZone_4, nummerSMS_1);
    forsinkelse (10000);
    sendSMS (textZone_4, nummerSMS_2);
    forsinkelse (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;
}


Trin tre. Kontrol af enhedens helbred.
Vi foretager den enkleste signalering på GSM SIM800L og Arduino til at give, garage

Når der tilsluttes strøm, mens SIM800L-modulet og Arduino-kortet indlæses, har du cirka 20 sekunder på at forlade det beskyttede rum. På SIM800L-modulet indikerer LED'en netværksaktivitet; ofte søger den efter et netværk; en gang hvert femte sekund indikerer det netværksdrift. Når enheden finder et netværk, skal du afbryde de tilsvarende sikkerhedsindgange, hvorefter der kommer en opkalds- eller SMS-afsendelse. Så enheden fungerer fint.

Foto SMS. Det vil være muligt at inkludere alle sikkerhedsdetektorer med udgange i form af kontakter, relæer fra aktuatorer, kun i overensstemmelse med dine behov og fantasi. Generelt fremstillede vi en enkel sikkerhedsenhed. En sådan hjemmelavet vagt kan laves til at organisere beskyttelsen af ​​ethvert objekt. For at tænde for alarmenheden skal du levere 4,2 volt gennem kontakten på SIM800 og Arduino. Ved den første indgang går et opkald til abonnenten nr. 1, hvorefter det skifter til nr. 2. Yderligere nr. 2 leveres til duplikering. Den åbne løkke nummer 2,3,4,5 giver udstedelse af sms med henholdsvis det specifikke navn på den brudte sløjfe på begge telefoner. Vi placerer alle tavler i ethvert tilfælde i et passende tilfælde. Generelt synes jeg, dette er en god interessant enhed, der kan videreudvikles yderligere - tilføj funktionerne i et GSM-stik, DMTF-kontrol og meget mere.

Flere detaljer kan ses i videoen

Jeg ønsker Dem al helbred og succes i livet og arbejdet!
8.8
8.4
8.4

Tilføj en kommentar

    • smilesmilxaxaokdontknowyahoonea
      bossscratchnarrejaja-jaaggressivhemmelighed
      undskylddansdance2dance3benådninghjælpdrikkevarer
      stop-vennergodgoodgoodfløjtedånetunge
      røgklappecrayerklærerspottendedon-t_mentiondownloade
      hedeirefullaugh1mdamødemoskingnegativ
      not_ipopcornstraffelæseskræmmeforskrækkelsersøg
      hånethank_youdetteto_clueumnikakutenig
      dårligbeeeblack_eyeblum3blushpralekedsomhed
      censureretpleasantrysecret2truesejryusun_bespectacled
      SHOKRespektlolprevedvelkommenkrutoyya_za
      ya_dobryihjælperenne_huliganne_othodiFludforbudtæt
3 kommentarer
Gæst Alexander
Der er et spørgsmål, der kræves 10kΩ 10W modstande eller 0,25W eller hvad?
God dag. Men kan jeg tilføje noget, så med en vellykket opkald blokeres input? for at undgå cyklisk opkald i nærværelse af et lavt niveau ved en af ​​inputene!
Du kan bruge et andet kort, for eksempel TP4056 med beskyttelse
Ikke muligt, men har brug for. Derudover ikke under alle omstændigheder, men som med rette sagt, med beskyttelse, det vil sige, foruden TP4056 skulle der være to mindre IC'er, inklusive DW01 eller dens analoge.
Ud over sikkerhedssløjfer er det meget ønskeligt at styre spændingen ved indgangen til TP4056.

Vi råder dig til at læse:

Giv den til smartphonen ...