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.
- 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.
- Multiplatformă. Software-ul Arduino funcționează eficient sub astfel de platforme de operare, cum ar fi Windows, Linux, Macintosh-OSX.
- 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.
- 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:
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 |