Alarma GSM bugetară cu creier Arduino

De asemenea, puteți trimite mesaje SMS, tot ce aveți nevoie pentru aceasta este un special Modul Arduino GSM/GPRS SIM900. Această placă Extensia este potrivită pentru plăcile comune Arduino UNO, MEGA și Leonardo. Cu ajutorul acestuia, puteți realiza o grămadă de proiecte diferite folosind Internetul GPRS sau accesul la rețeaua GSM. Va funcționa oriunde ar fi rețeaua mobilă. Folosind acest modul, puteți face Alarma GSM, care, împreună cu un sistem de supraveghere video, va oferi o protecție excelentă pentru locuința dumneavoastră.

Modulul vă permite să utilizați rețele Standardele GSM 850, GSM 900, GSM 1800, GSM 1900 și acceptă protocolul TCP cu acces la rețeaua GPRS.

Arduino GSM Modulul SIM900 poate fi folosit și pentru a efectua apeluri; În acest scop, placa are conectori speciali pentru conectarea unui microfon și difuzor. Modulul poate fi conectat și la un computer și poate trimite și primi date direct de pe PC. De exemplu, poți face corespondență în masă către abonații înregistrați pe cartela SIM în modul automat.

Caracteristici de conectare a plăcii GSM la plăcile Arduino Leonardo și Arduino Mega

Placa de expansiune GSM funcționează direct cu Arduino datorită bibliotecii Software Serial. La setări standard, pentru interacțiunea dintre modem și Arduino, pinii digitali nr. 2 și nr. 3 sunt conectați. Arduino Uno Aceste setări sunt potrivite, dar pentru funcționare corectă scut pe Arduino Leonardo sau Arduino Mega trebuie făcute modificări.

Pinul GSM_TX, numit și pinul #2 pe placa de expansiune, trimite informații către Arduino. Pentru a ști exact în ce moment este necesară citirea informațiilor, Arduino folosește un mecanism de întrerupere: la schimbare nivel digital semnal la acest pin, apare o întrerupere corespunzătoare. Cu toate acestea, pe Arduino Leonardo și Arduino Mega, pinul #2 nu acceptă întreruperi.

Pentru ca scutul să funcționeze normal pe Arduino Mega sau Leonardo, nu trebuie să îl schimbați deloc codul programului, biblioteca în sine schimbă numărul de pin Arduino RX atunci când selectează modelul corespunzător în meniul „Instrumente” al mediului de dezvoltare.

Arduino Leonardo


Pentru a funcționa corect cu Leonardo, biblioteca GSM folosește pinul digital nr. 8. Pentru a face acest lucru, pinii digitali nr. 2 și nr. 8 trebuie conectați cu un conductor pe placa de extensie GSM.

Pe spatele plăcii GSM, trebuie să îndoiți pinul corespunzător pinului nr. 2 în lateral, astfel încât să nu intre în contact cu Arduino Leonardo.

Arduino Mega2560


Biblioteca GSM pentru funcționarea corectă cu Mega folosește pinul digital nr. 10. Pe placa de expansiune GSM, este necesar să scurtcircuitați pinii digitali nr. 2 și nr. 10 cu un conductor, ca și în cazul Arduino Leonardo. Nu uitați să îndoiți reversul Placa GSM spre contactul pin corespunzător pinului nr. 2, astfel încât să nu atingă Arduino Mega.

Arduino este o platformă hardware folosită pentru creație rapidă diverse dispozitive electronice, inclusiv cele de securitate. Datorită designului simplu, simplității limbajului de programare, precum și utilizării codurilor deschise, chiar și un neprofesionist poate realiza în mod independent un sistem de alarmă multifuncțional pentru a-și proteja casa, cabana, apartamentul sau garajul. Modulul Arduino GSM va fi cea mai bună opțiune pentru crearea unui sistem de securitate bugetar care poate fi configurat optim pentru un anumit obiect.

Domeniul de aplicare

Platforma hardware Arduino este utilizată pe scară largă în procesul de creare a diverselor sisteme electroniceși dispozitive care pot primi și procesa semnale de la diverse analogice funcționale sau senzori digitali si senzori. Rezultatele procesării semnalelor primite pot fi controlate de actuatoare externe și sisteme conectate la Arduino.

Un exemplu de utilizare a acestor module în videoclip:

Scop

Platforma hardware Arduino face posibilă interacțiunea eficientă cu mediul controlat printr-o gamă largă de senzori funcționali care pot controla diverși parametri. Datorită acestui fapt, pe baza unor astfel de platforme, este posibil să se formeze complexe de securitate care vor monitoriza mișcările de-a lungul perimetrului protejat, deschiderea ferestrelor și ușilor și deteriorarea sticlei. Pe langa senzorii de tip securitate, puteti folosi si senzori de temperatura, senzori pentru monitorizarea scurgerilor de apa sau gaz.

Utilizarea cu platforma Arduino GSM modul, informații despre o situație de pericol sau de urgență la o instalație pot fi furnizate proprietarului cât mai repede posibil. În acest scop, se utilizează una dintre rețelele operatorilor de telefonie mobilă.

Trăsătură distinctivă Dispozitivele Arduino este că microcontrolerul lor poate fi programat de către utilizator însuși folosind Limbajul Arduino, bazat pe Cablare. Datorită acestui fapt, toată lumea poate programa algoritmul de operare al creatului alarma antiefractie așa cum este necesar pentru un anumit obiect protejat și specificul aplicării acestuia.

Beneficiile utilizării

Astăzi există multe platforme hardware și microcontrolere de la care pot primi informații senzori externi, procesați-l și trimiteți semnale de control către sisteme executive. Platforma Arduino simplifică cât mai mult implementarea proceselor enumerate și are o gamă largă de avantaje față de alte dispozitive de acest gen.

  1. Cost scăzut. Platformele sunt dispozitive destul de ieftine în comparație cu analogii lor, ceea ce nu le afectează în niciun fel funcționalitatea.
  2. Multiplatformă. Software-ul Arduino funcționează eficient sub astfel de platforme de operare, cum ar fi Windows, Linux, Macintosh-OSX.
  3. Ușurință de programare. Pentru configurarea microcontrolerelor se folosește mediul de programare Processing. Este optim potrivit atât pentru profesioniști, cât și pentru cei mici utilizatori experimentați, care funcționează cu dispozitive Arduino.
  4. Posibilitate de îmbunătățire. Software-ul Arduino specializat este diferit sursă deschisă, care permite utilizatorilor experimentați să-l adapteze la cerințe specifice.

Fiabilitate ridicată a platformei hardware. Plăcile Arduino sunt disponibile cu microcontrolere ATMEGA8 și ATMEGA168 (modele anterioare) și cu controlere ATmega32u4, Atmel ATmega328 (modele mai noi), care sunt foarte funcționale și fiabile.

Principiul de funcționare

Pentru a asigura funcționalitatea completă sisteme de securitate sau alte dispozitive construite folosind platforme Arduino, trebuie să aveți un modul GSM pentru Arduino. Poate fi folosit pentru a accesa Internetul, a efectua apeluri vocale sau a trimite mesaje SMS.

Placa GSM foloseste un radio modem special M10, interactiunea cu care este asigurata prin comenzi AT speciale. Schimbul de informații cu modemul este implementat folosind software interfață serială, deținând coduri digitale.

Modemul GSM folosit în Arduino este un modem cu 4 benzi care poate funcționa la următoarele frecvențe: GSM 850MHz și 900MHz, PCS1900MHz și DCS1800MHz. Modemul acceptă protocoale precum TCP/UDP și HTTP, oferind conexiuni prin GPRS. Viteza de transmisie a pachetelor de informații în acest mod va fi de aproximativ 90 kbit/sec.

Trimiterea SMS-urilor prin Arduino și modulul GSM este implementată dacă este disponibilă cartela SIM instalată unul dintre operatorii de telefonie mobilă”.

În plus, se va putea transfera mesaje vocale, efectuați apeluri - pentru aceasta aveți nevoie suplimentar de un microfon și difuzor extern. Instalarea unui card SIM vă va permite să utilizați Arduino în modul celular sau GPRS.

Cum se conectează module la Arduino

Înainte de a conecta modulul GSM la Arduino în slotul său, ar trebui să instalați o cartelă SIM adecvată de la unul dintre operatorii celulari. După aceasta, modulul este conectat la platforma hardware Arduino în conformitate cu instrucțiunile și firmware-ul său este flash. În acest scop, se folosește un PC, care este conectat la dispozitiv cu ajutorul unui cablu USB. După descărcare Mediul Arduino Ar trebui să apăsați butonul Încărcare, care va începe procesul de descărcare a software-ului. Odată ce acest proces este finalizat, platforma poate fi deconectată de la computer și alimentată de sistem extern nutriţie.

Caracteristici comparative ale modulelor GSM

Piața de consum oferă o selecție largă de module GSM diferite pentru Arduino. Mai jos sunt principalele caracteristici ale celor mai populare.

Neoway M590

Modulul Arduino GSM M590 este wireless dispozitiv de comunicare utilizate pentru primirea și transmiterea informațiilor în rețele comunicatii mobile. Modulul acestei serii este creat pe o placă cu cablare minimă și este poziționat ca modul GSM pentru platforma hardware Arduino.

Cu acest dispozitiv puteți stabili comunicații mobile cu telefon extern, trimite mesaje SMS, schimbă informații prin Standard GPRS Clasa-10. Modulul acestui design nu are o intrare pentru microfon, ceea ce limitează posibilitatea de a primi comunicații vocale - se poate stabili o conexiune, dar sunetul nu va fi transmis.

Pentru a controla M590, sunt utilizate comenzi AT, care sunt emise prin comunicare serială. Frecvențele de la 900 MHz la 1800 MHz sunt utilizate ca frecvențe radio de operare. Tensiunea de alimentare este în intervalul 3,3...5 V. Prin urmare, modulul Neoway M590 GSM se conectează la Arduino printr-un convertor special de tensiune de la 5 V la 3,3 V.

Modul GSM SIM800L

Modulul compact Sim800l GPRS GSM este un dispozitiv care este utilizat pentru a susține comunicațiile mobile. Modulul este construit pe bezea SIM-800L, creată de SIMCom Wireless Solutions și este conceput pentru a oferi servicii serviciilor. retele de informatii GPRS\GSM, folosind frecvențe de la 850 MHz la 1900 MHz. Poate fi folosit pentru a trimite mesaje SMS, a efectua apeluri și a face schimb de informații prin canale GPRS.

Modulul GSM este echipat cu o antenă dacă trebuie să îmbunătățiți nivelul semnalului, puteți utiliza antene suplimentare. Pentru a controla modulul, se poate folosi un PC, conectat printr-o placă specială de conversie a interfeței USB-UART sau direct prin UART în sine. Dacă se utilizează modulul Sim800l GPRS GSM , conexiunea la Arduino trebuie implementată printr-un convertor de nivel logic. Acest lucru se datorează faptului că SIM800L are o valoare a tensiunii pe logic nivel înalt este de 2,8 V, iar în Arduino - 3,3...5 V.

GPRS Shield de la Seeed Studio

Conectarea modulului GSM la Arduino va oferi posibilitatea de a utiliza tehnologiile de schimb de date GSM/GPRS, precum și de a efectua apeluri și de a trimite mesaje SMS. Dispozitivele de acest tip sunt construite folosind modulul SIMCom SIM900. Au un slot pentru instalarea unei cartele SIM, un conector pentru conectarea unei antene externe și un set de mufe de 3,5 mm pentru intrare și ieșire audio. Controlul și lucrul cu Arduino GSM Shield se realizează prin conexiuni seriale și un set de comenzi AT specializate.

Acest modul este taxa speciala, folosit pentru a controla dispozitive digitale de la distanță, precum și pentru schimbul de informații. Utilizarea SIM900 permite Arduino să funcționeze folosind tehnologii GSM/GPRS, oferind comunicare vocală, trimiterea de SMS-uri și schimbul de date folosind rețelele celulare și mobile.

Pentru a opera acest modul, la el sunt conectate un controler de control, o sursă de alimentare, o antenă și este instalată și o cartelă SIM operator de telefonie mobilă. Folosind jumperi speciali, configurați metoda de schimb de date cu controlerul. Dacă este necesar, puteți conecta un difuzor și un microfon.

Modulul GSM și GPRS din proiectele Arduino vă permite să vă conectați la dispozitive autonome de la distanță printr-un comunicare celulară. Putem trimite comenzi către dispozitiv și primi informații de la acesta folosind comenzi SMS sau printr-o conexiune la Internet deschisă prin GPRS. În acest articol ne vom uita la cele mai populare module pentru Arduino, vom înțelege conexiunea și ne vom uita la exemple de programare.

Module GSM GPRS

Modulul GSM este folosit pentru a extinde capacitățile plăcilor obișnuite Arduino - trimiterea de SMS-uri, efectuarea de apeluri, schimbul de date prin GPRS. Sunt diverse tipuri module, cele mai utilizate sunt SIM900, SIM800L, A6, A7.

Descrierea modulului SIM900

Modulul SIM900 este utilizat în diverse sisteme automatizate. Prin folosirea interfață UART datele sunt schimbate cu alte dispozitive. Modulul oferă posibilitatea de a efectua apeluri și de a schimba mesaje text. Modulul este implementat pe componenta SIM900, creată de SIMCom Wireless Solution.

Specificatii:

  • Gama de tensiune 4,8-5,2V;
  • ÎN modul normal curentul atinge 450 mA, curentul maxim în modul impuls 2 A;
  • suport 2G;
  • Putere de transmisie: 1 W 1800 si 1900 MHz, 2 W 850 si 900 MHz;
  • Încorporat protocoale TCPși UDP;
  • GPRS multi-slot clasa 10/8;
  • Temperatura de functionare de la -30C la 75C.

Folosind dispozitivul, puteți urmări traseul de transport împreună cu GLONASS sau dispozitiv GPS. Abilitatea de a trimite mesaje SMS este folosită în alarmă fără firși diverse sisteme de securitate.

Descrierea modulului SIM800L

Modulul se bazează pe componenta SIM800L și este folosit pentru trimiterea de SMS-uri, efectuarea de apeluri și schimbul de date prin GPRS. În modul este instalată o cartelă micro SIM. Dispozitivul are o antenă încorporată și un conector la care vă puteți conecta antenă externă. Alimentarea la modul vine de la sursă externă sau printr-un convertor DC-DC. Controlul se realizează folosind un computer prin UART, Arduino, Raspberry Pi sau dispozitive similare.

Specificatii:

  • Gama de tensiune 3.7V – 4.2V;
  • Suport pentru rețea cu 4 benzi 900/1800/1900 MHz;
  • GPRS clasa 12 (85,6 kB/s);
  • Curent maxim 500 mA;
  • suport 2G;
  • Căutare automată în patru intervale de frecvență;
  • Temperatura de functionare de la -30C pana la 75C.

Descrierea modulului A6

Modulul A6 a fost dezvoltat de AI-THINKER în 2016. Dispozitivul este utilizat pentru schimbul de mesaje SMS și pentru schimbul de date prin GPRS. Placa se caracterizează prin consum redus de energie și dimensiuni reduse. Dispozitivul este pe deplin compatibil cu operatorii de telefonie mobilă ruși.

Specificatii:

  • Domeniu de tensiune 4,5 – 5,5V;
  • Alimentare 5V;
  • Interval de temperatură de funcționare de la -30C la 80C;
  • Consum maxim de curent 900mA;
  • GPRS clasa 10;
  • Sprijin protocoale PPP, TCP, UDP, MUX.

Modulul acceptă carduri microsim.

Descrierea modulului A7

A7 este cel mai recent modul de la AI-THINKER. În comparație cu predecesorul său, A6 are GPS încorporat, permițând un design simplificat al dispozitivului.

Specificatii:

  • Gama de tensiune de operare 3.3V-4.6V;
  • Tensiune de alimentare 5V;
  • Frecvențe 850/900/1800/1900 MHz;
  • GPRS Clasa 10: Max. 85,6 kbit;
  • Suprimarea ecoului și a zgomotului.

Dispozitivul acceptă carduri microSIM. Modulul acceptă schimbul de apeluri, schimbul de mesaje SMS, transmiterea datelor prin GPRS, primirea semnalelor prin GPS.

De unde să cumpărați module GSM pentru Arduino

În mod tradițional, înainte de a începe, câteva sfaturi și link-uri utile vânzătorilor Aliexpress.

Modul KEYES SIM900 GSM GPRS de foarte înaltă calitate Modul SIM800C pentru Arduino de la un furnizor de încredere
Shield pentru dezvoltare, compatibil cu Arduino, bazat pe modulul SIM900 GPRS/GSM Mini modul ieftin A6 GPRS GSM

Conectarea scutului GSM GPRS la Arduino

În această secțiune ne vom uita la întrebări Conexiuni GSM– module pentru placa Aduino. Aproape toate exemplele se bazează pe Arduino Uno, dar majoritatea exemplelor vor fi folosite și pentru plăci Mega, Nano etc.

Conectarea modulului SIM800

Pentru a vă conecta, aveți nevoie de o placă Arduino, un modul SIM800L, un convertor de tensiune redus, fire de conectare și o baterie de 12V. Modulul SIM800L necesită o tensiune Arduino non-standard de 3,7 V, aceasta necesită un convertor de tensiune redus.

Pinout-ul modulului SIM800 este prezentat în figură.

Placa Arduino trebuie conectată la computer prin cablu USB. Conectați o baterie de 12V printr-un convertor: -12V la masă Arduino, de la masă la convertor negativ, +12V la convertor pozitiv. Ieșirile de la modulul TX și RX trebuie conectate la pinii 2 și 3 de pe Arduino. Mai multe module pot fi conectate la orice pin digital.

Modulul de conectare A6

Modulul A6 este mai ieftin decât SIM900 și este foarte ușor de conectat la Arduino. Modulul este alimentat de o tensiune de 5V, astfel încât conexiunea nu necesită elemente suplimentare de reducere a tensiunii.

Pentru a vă conecta veți avea nevoie de o placă Arduino (în în acest caz, revizuit Arduino UNO), modul GSM A6, fire de conectare. Schema de conectare este prezentată în figură.

Pinul RX de la modulul GSM trebuie conectat la TX de pe placa Arduino, pinul TX trebuie conectat la pinul RX de pe Arduino. Masa de la modul este conectata la masa de pe microcontroler. Pinul Vcc de pe modulul GSM trebuie conectat la PWR_KEY.

Conexiune folosind scutul GSM-GPRS

Înainte de conectare, este important să acordați atenție tensiunii de alimentare a scutului. Curentul la momentul unui apel sau trimitere de date poate atinge valori de 15-2 A, deci nu ar trebui să alimentați scutul direct de la Arduino.

Înainte de a vă conecta la Arduino, trebuie să instalați o cartelă SIM pe scutul GSM-GPRS. De asemenea, trebuie să instalați jumperii TX și RX, așa cum se arată în figură.

Conexiunea se face după cum urmează - primul contact (fir galben din figură) de la scut trebuie conectat la TX de pe Arduino. Al doilea pin (firul verde) se conectează la RX de pe Arduino. Terenul din scut este legat de pământul din aruino. Alimentarea microcontrolerului este furnizată printr-un cablu USB.

Dispunerea conexiunii dintre scut și placa Arduino este prezentată în figură.

Pentru a funcționa, va trebui să instalați biblioteca GPRS_Shield_Arduino.

Pentru a verifica corectitudinea circuitului asamblat, trebuie să faceți următoarele: conectați RESET și GND pe Arduino (acest lucru va duce la transferul datelor direct de la scut la computer), introduceți cartela SIM în scut și porniți puterea scutului. Placa Arduino trebuie conectată la computer și apăsat butonul de pornire. Dacă totul este conectat corect, LED-ul roșu se va aprinde și LED-ul verde va clipi.

Scurtă descriere a interacțiunii prin comenzi AT

Comenzile AT sunt un set echipe speciale pentru un modem, constând din scurt șiruri de text. Pentru ca modemul să recunoască comanda dată, liniile trebuie să înceapă cu literele la. Șirul va fi acceptat când modemul este conectat modul de comandă. Comenzile AT pot fi trimise folosind fie o comunicare software, și manual de la tastatură. Aproape toate comenzile pot fi împărțite în 3 moduri - test, în care modulul răspunde dacă acceptă comanda; citire – emitere parametrii curenti echipe; scrie – vor fi scrise valori noi.

Lista celor mai utilizate comenzi AT:

  • AT – pentru a verifica dacă modulul este conectat corect. Dacă totul este OK, se returnează OK.
  • A/ – repetă comanda anterioară.
  • AT+IPR? – obținerea de informații despre viteza portului. Răspunsul va fi +IPR: 0 OK (0 în acest caz este automat).
  • AT+ICF? – setarea transmisiei. Răspunsul va fi +ICF: bit, parity.
  • AT+IFC? – controlul transmisiei. Răspunsul va fi +IFC: terminal de la modul, modul de la terminal (0 – fără control, 1 – controlul programului, 2 – hardware).
  • AT+GCAP – arată capabilitățile modulului. Un exemplu de răspuns este +GCAP:+FCLASS,+CGSM.
  • AT+GSN – obținerea modulului IMEI. Exemplu de răspuns 01322600XXXXXXX.
  • AT+COPS? – arată operatorii disponibili.
  • AT+CPAS – stare modul. Răspuns +CPAS: 0. 0 – gata de lucru, 3 – apel primit, 4 – conexiune vocală, 2 – necunoscut.
  • AT+CCLK? – informații despre ora și data curente.
  • AT+CLIP=1 – activați/dezactivați ID apelant. 1 – activat, 0 – dezactivat.
  • AT+CSCB=0 – primirea de mesaje SMS speciale. 0 – permis, 1 – dezactivat.
  • AT+CSCS= „GSM” – codificarea mesajelor SMS. Puteți selecta una dintre următoarele codificări: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
  • AT+CMEE=0 – primirea informațiilor de eroare.
  • AT+CPIN=XXXX – introduceți codul PIN al cartelei SIM.
  • AT&F – resetează la setările din fabrică.
  • AT+CPOWD=1 – oprire urgentă (0) sau normală (1) a modulului.
  • ATD+790XXXXXXX – apelați la numărul +790XXXXXXXXX.
  • ATA – răspuns la apel.
  • AT+CMGS="+790XXXXXXXXX">Test sms – trimiterea unui mesaj SMS la numărul +790XXXXXXXX.

În acest caz, am luat în considerare comenzi de bază pentru modulul SIM900. Pentru module diferite comenzile pot varia ușor. Datele pentru modul vor fi furnizate prin program special„terminal” care trebuie instalat pe computer. De asemenea, puteți trimite comenzi către modul prin monitorul portului din Arduino IDE.

Schițe pentru lucrul cu modulul GSM

Trimiterea de SMS folosind SIM900 ca exemplu

Înainte de a trimite un mesaj, trebuie să configurați modulul. În primul rând, trebuie să vă convertiți în format text mesaj transmis. Există o comandă AT+CMGF=1 pentru aceasta. Trebuie să convertiți codificarea în GSM utilizând comanda AT+CSCS="GSM". Această codificare este cea mai convenabilă, deoarece caracterele sunt reprezentate în cod ASCII, care este ușor de înțeles de către compilator.

Apoi trebuie să formați un mesaj SMS. Pentru a face acest lucru, este trimisă o comandă cu numărul de abonat AT+CMGS=»+79XXXXXXXXXX» r, ca răspuns vi se cere să introduceți un text SMS. Trebuie să trimiteți un mesaj. La finalizare, trebuie să trimiteți codul combinat Ctrl+Z, modulul va permite trimiterea textului către destinatar. Când mesajul este trimis, va fi returnat OK.

Interacțiunea cu modulul se bazează pe indici care sunt alocați fiecărui mesaj nou. Folosind acest index, puteți specifica ce mesaj să ștergeți sau să citiți.

Primirea SMS-urilor. Pentru a citi un mesaj SMS, utilizați comanda AT + CNMI = 2,2,0,0,0. Când va ajunge modulul? mesaj text, va trimite la port serial+CMTI: „SM”,2 (în acest caz 2 este numărul secvenței mesajului). Pentru a-l citi, trebuie să trimiteți comanda AT+CMGR=2.

Recepţie apel vocal. În primul rând, pentru a avea o conversație, trebuie să conectați un difuzor și un microfon la modul. Când se primește un apel, va fi afișat numărul de la care a fost efectuat. Pentru a funcționa, trebuie să activați biblioteca GSM:

#include

Dacă cartela SIM este blocată, trebuie să introduceți codul PIN al acesteia. Dacă nu este necesar un cod PIN, acest câmp trebuie lăsat necompletat.

#define PINNUMBER „”

În setup(), transferul de date către computer trebuie inițializat. Următorul pas va crea o variabilă locală pentru a urmări starea conexiunii la rețea. Schița nu va rula până când cartela SIM este conectată la rețea.

boolean notConnected = adevărat;

Funcția gsmAccess.begin() este utilizată pentru a vă conecta la rețea. Când se stabilește conexiunea, va fi returnată valoarea GSM_READY.

vcs.hangCall(); – o funcție care indică faptul că modemul este pregătit pentru a primi apeluri.

getvoiceCallStatus() – determină starea schiței. Dacă cineva sună, returnează RECEIVINGCALL. Pentru a înregistra un număr, trebuie să utilizați funcția retrieveCallingNumber(). Când se răspunde la apel, TALKING va reveni. Schița va aștepta apoi personajul linie nouă pentru a întrerupe conversația.

Stabiliți o conexiune GPRS și trimiteți date către un server de la distanță

Mai întâi trebuie să instalați biblioteca SoftwareSerial, care vă permite să oferiți transfer de informații seriale și să conectați modulul GSM și microcontrolerul Arduino.

Pentru a trimite date către server trebuie să trimiteți următoarele comenzi:

AT+SAPBR=1,1 – Carrier de deschidere.

Următoarele trei comenzi sunt legate de setarea setărilor de conexiune la rețea.

AT+SAPBR=3,1,\”APN\”,\”internet.mts.ru\” – alegere operator mts, numele punctului de acces.

AT+SAPBR=3,1,\”USER\”,\” mts \” – selectați utilizatorul mts.

AT+SAPBR=3,1,\”PWD\”,\”mts\”

AT+SAPBR=1,1 – stabilirea conexiunii.

AT+HTTPINIT – inițializare http.

AT+HTTPPARA=”URL”, – adresa URL.

AT+HTTPREAD – în așteptarea unui răspuns.

AT+HTTTERM – opriți http.

Dacă totul este făcut corect, liniile cu comenzi AT vor apărea în monitorul portului. Dacă nu există nicio conexiune cu modemul, acesta va afișa câte o linie odată. Când conexiunea GPRS este stabilită cu succes, LED-ul de pe modul va începe să clipească.

Un articol pentru cei care vor să forțeze Arduino să trimită SMS prin aceasta modul GSM . Modulul NEOWAY M590 bazat pe cipul SIM900 este potrivit pentru creare sistem de alarma de casa, casă inteligentă. Există, de asemenea, un modul GSM alternativ care se conectează direct la Arduino prin 5 Volți: Sim800L EVB v2.0

Enunțarea problemei

  • Folosind doar Arduino și un modul GSM, controlați LED-ul printr-un apel de pe telefon.
  • Trimiteți SMS (în timp ce printr-o comandă care vine prin monitorul portului din Arduino IDE)

Conectarea la Arduino

Conectăm modulul GSM la Arduino.
Modul 5V -> 5V Arduino
Modul GND -> Arduino GND
Modul TX -> digital pin2 Arduino
Modul RX -> digital pin3 Arduino
Pinout-ul poate fi văzut în fotografie. Ordinea contactelor este următoarea: 1 - +5V, 2 - GND, 7 - TX, 8 - RX.


Modulul poate fi alimentat de la 4V la 5V, eu am folosit ieșirea de 5 volți.

Modulul necesită alimentare separată deoarece consumă până la 2A la vârf. Cel mai probabil, un condensator nu va ajuta. Prin urmare, atunci când este alimentat de Arduino, este posibil să nu funcționeze sau să nu funcționeze.

Masa Arduino și modulul GSM cu sursă de alimentare separată trebuie conectată, dar mai întâi trebuie să măsurați tensiunea dintre aceste „împământări” cu un multimetru. Unele blocuri de calculatoare Sursele de alimentare au o scădere potențială pe carcasă și masă USB de până la 100V. Curentul de acolo este mic și nu poate ucide, dar este ușor să distrugi un Arduino sau un modul GSM sau ambele împreună.

Schiţa

#include< SoftwareSerial. h> SoftwareSerial mySerial(2, 3);
// RX, TX int ch = 0 ; int led = 13 ; String val = "" ; int led = 13 ; void setup() ( întârziere (2000); //timpul de inițializare a modulului pinMode (led, OUTPUT) ; digitalWrite(led, LOW); Serial. începe(9600); //viteza portului. println ("Tester GSM v1.0"); mySerial. începe(9600); mySerial. println ("AT+CLIP=1"); //activează întârzierea ID apelant (100); mySerial. println ("AT+CMGF=1"); //Mod de codare SMS - normal (pentru engleză) int led = 13 ;întârziere (100); mySerial. println("AT+CSCS=\"GSM\"" );//modul de codare a textului întârziere (100);) bucla nulă () ( if (mySerial . available () ) ( //dacă modulul GSM ne-a trimis ceva, atunciîn timp ce (mySerial.available()) ( int led = 13 ;//salvați șirul de intrare în variabila val ch = mySerial. citire(); val += char (ch);întârziere (10); int led = 13 ;) dacă (val . indexOf ( „RING”) > - 1 ) ( //dacă este detectat un apel, atunci verificați numărul dacă (val . indexOf ( "71234567890" ) > - 1 ) ( int led = 13 ;) dacă (val . indexOf ( „RING”) > - 1 ) ( //dacă numărul apelantului este al nostru. Introduceți numărul fără „+”. println( int led = 13 ;"--- INEL MASTER DETECTAT ---" ); mySerial. println("ATH0"); //rup conexiunea digitalWrite(led, HIGH); //aprinde LED-ul timp de 3 secundeîntârziere (3000); digitalWrite(led, LOW); { int led = 13 ;//oprește releul ) ) altfel int led = 13 ;. println(val);

//tipărește linia primită pe monitorul portului


val = "" ;

În versiunea de modul 1.30 în curs de revizuire, suportul GPRS este redus. Nu am putut să mă conectez la server după numele lui DNS (de exemplu mysite.ru), am reușit doar prin adresa lui IP. Nu au existat astfel de probleme în celălalt modul SIM800L.

Lista unor comenzi AT:

GSM-lib scris pentru Arduino versiuni IDE 1.0. Descărcați cea mai recentă versiune a bibliotecii de pe exemple gata făcute poate fi folosit din depozitul de proiect. Pentru a instala, despachetați arhiva GSM în directorul biblioteci (/arduino-1.0/libraries/GSM). După pornirea mediului Dezvoltare Arduino, în meniul programului „Fișier -> Exemple” va apărea articolul GSM, cu exemple de schițe.

Biblioteca GSM este proiectată să funcționeze cu scutul „ ”. Este compatibil hardware cu Placi Arduino(Uno, Duemilanove și alți analogi). Când utilizați alte plăci, poate fi necesar să faceți modificări la GSM.cpp pentru a indica portul corect la care este conectată linia de activare a modemului de la scut.

ÎN momentul prezent Biblioteca implementează următoarea funcționalitate.

  • Înregistrare în rețeaua GSM
  • Se trimite SMS
  • Primirea și analizarea SMS-urilor
  • Primiți apeluri primite
  • Verificarea stării conexiunii cu Rețeaua GSM, refacerea rețelei în caz de pierdere a semnalului

Înregistrare în rețeaua GSM

Pentru a înregistra modemul în rețea, trebuie să specificați codul PIN al cartelei SIM. Este important să rețineți că dacă specificați număr greșit, cartela SIM poate fi blocată, deoarece functia de initializare se va repeta periodic pana cand noroc. Procesul de inițializare durează de obicei aproximativ 1 minut.

Inițializarea primară este efectuată în funcția setup().

#include #include const char PIN PROGMEM = "0000"; // PIN void setup() (în timp ce (GSM.Init(PIN))<0); // Регистрация в сети GSM.NewSMSindic(); // Настройка индикатора новых SMS GSM.WaitCall(); // Ждем входящие вызовы GSM.WaitSMS(); // Ждем входящих SMS }

Se trimite SMS

Pentru a trimite mesaje text, utilizați funcția SendSMS(), care trece 2 parametri - numărul destinatarului SMS și mesajul în sine.

În timp ce(GSM.SendSMS(RemoteID, „Bună ziua de la Arduino!”)< 0);

Unde RemoteID este numărul destinatarului. Este de preferat să plasați această constantă în antetul programului.

Const char RemoteID PROGMEM = "+79280000000";

Textul mesajului poate fi, de asemenea, generat dinamic.

String textMessage; textMessage += "Senzor1"; textMessage += "Senzor2"; char Out; textMessage.toCharArray(Out,(textMessage.length())+1); while(GSM.SendSMS(RemoteID, Out)< 0);

Primirea și analizarea SMS-urilor

Pentru a citi mesajele SMS primite, utilizați funcția ReadSMS(), căreia îi trec 2 parametri - indexul SMS și indicatorul unde va fi copiat textul. Mai jos este un fragment dintr-o schiță care analizează textul unui mesaj primit. Când SMS-ul este egal cu 1, efectuăm o acțiune, iar când este egal cu 2, facem o altă acțiune. Pentru un exemplu complet al schiței SmsCheck.ino, vezi exemple.

Dacă (GSM.CheckSMS()== 1) ( //Există un SMS nou GSM.ReadSMS(NewSMS_index, (char*) SMStxt); GSM.DeleteAllSMS(); // Şterge SMS (nu vom acumula!) strSMS = String( SMStxt); if(strSMS == "1") ( // efectuează acțiunea 1 aici) if(strSMS == "2") ( // execută acțiunea 2 aici) GSM.WaitCall();

Nota. Biblioteca GSM poate funcționa numai cu caractere latine, nu este acceptată în prezent.

Primiți apeluri primite

Această funcționalitate este utilă atunci când trebuie să obțineți un răspuns destul de rapid din partea scutului. În timp ce mesajele SMS pot fi livrate cu o ușoară întârziere, apelurile primite apar aproape instantaneu. În plus, utilizarea unei astfel de funcționalități va fi gratuită dacă nu ridicați telefonul.

De exemplu, puteți efectua un apel către scut, puteți verifica numărul apelantului pe Arduino și, dacă se potrivește cu numărul șablonului, trimiteți-i un SMS cu citirile senzorului. Următorul fragment implementează o funcționalitate similară. Pentru versiunea completă a schiței CallCheck.ino, vedeți exemple.

Dacă (IncomingCall == 1) ( //a sosit un apel! în timp ce (GSM.TerminateCall()<0); // Ложим трубку IncomingCall = 0; // Проверяем, если номер звонящего CallerID совпал с шаблоном RemoteID if (strstr_P(CallerID, RemoteID)) { while(GSM.SendSMS(RemoteID, "Hello from Arduino!") < 0);// SMS из SRAM памяти } GSM.WaitCall(); }

Verificarea stării conexiunii cu rețeaua GSM

Există situații în care conexiunea la rețea se pierde. Pentru a detecta pierderea rețelei, utilizați funcția CheckStatus(), care returnează 0 atunci când conexiunea la rețea este pierdută. Un exemplu de utilizare este dat în următorul bloc de cod.

// La anumite intervale verificăm starea conexiunii GPRS! if(currentMillis - previousMillis > interval) ( if ((GSM.CheckStatus() != 1)) ( // Conexiunea GPRS nu a fost stabilită! while (GSM.Init(PIN))<0); // Делаем инициализацию } GSM.WaitCall(); currentMillis = previousMillis = millis(); }

Executarea comenzilor AT arbitrare dintr-o schiță

Pentru a executa comenzi AT dintr-o schiță, este utilizată funcția WriteStr_P().

GSM.WriteStr_P(PSTR("AT\r\n"));

AT+CMGF=1 Pe modul text(SMS numai în latină)
AT+CSCS= „GSM” Pe regim
AT+CLIP=1 activați ID-ul apelantului apel primit
Dacă trimiteți o comandă cu 0, atunci identificarea numărului va fi dezactivată și modulul va trimite doar mesajul „SONERI” în loc de numărul apelantului.
AT+CMGS="+79123456789" Se trimite SMS
ATI Obțineți informații despre dispozitiv
AT+IPR=19200 setarea vitezei portului
AT+GSN va returna IMEI-ul modulului
AT+CCLK? citiți ora din modul
AT+CCLK=„aa/ll/zz,hh:mm:ss+zz” unde comanda este „an/lună/data, oră: minute: secunde + fus orar” Datele trebuie trimise cu zerouri la început, adică, de exemplu, dacă luna noastră este „4”, atunci trebuie trimis „04” .
Ia-l înapoi ora curentă iar data poate fi trimisa trimitand aceeasi comanda, doar cu semnul "?"
AT+CMEE=0 nivelul de informații despre eroare. Poate fi de la 0 la 2.
0 - dezactivat. Va scrie pur și simplu EROARE.
1 - cod de eroare. Se va întoarce cod digital erori.
2 - descrierea erorii. Va scrie exact ce nu-i place la echipă.
Pentru a lucra cu modulul prin terminal, modurile ATV1, ATE1 AT+CMEE=2 sunt mai convenabile pentru comunicarea cu microcontrolerul, este mai bine să utilizați ATV0, ATE0 și AT+CMEE=0 - acest lucru va ușura; procesează răspunsurile primite.
Aceste setări nu sunt salvate după repornirea modulului, așa că trebuie să includeți aceste comenzi în codul programului.
AT+CSQ informații despre calitatea semnalului.
Modulul va returna două numere +CSQ: 17.0
17 - nivelul semnalului. Poate fi în intervalul 0..31 sau 99. Decat mai multe subiecte mai bine, dar 99 înseamnă absența lui.
0 - rata de eroare de comunicare (așa-numita RXQUAL). Poate fi de la 0 la 7 decât numărul mai putine subiecte calitatea comunicarii este mai buna.
AT+COPS? informații despre operatorul în a cărui rețea este înregistrat modulul
ATD+79121234567; formarea unui număr. (";" Neapărat)
Modulul va apela numărul specificatși va returna una dintre opțiuni
OCUP - numărul este ocupat
FĂRĂ TON DE DIALTON - fără semnal pe linie
FĂRĂ CARRIER - fără rețea sau altă problemă (de exemplu, fără bani în cont)
RĂSPUNS NA - nici un răspuns
CONECTAȚI - există un contact!
AT+CMGR=3,0