Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Sfat
  • Alarma GSM bugetară cu creier Arduino. Controlăm priza prin SMS

Alarma GSM bugetară cu creier Arduino. Controlăm priza prin SMS

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

Formularea problemei

  • Folosind numai 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ă eșueze.

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. niste 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ță

#include< SoftwareSerial. h> SoftwareSerial mySerial(2, 3); // RX, TX int ch = 0 ; int led = 13 ; String val = "" ; void setup() (
întârziere (2000); //timpul de inițializare a modulului pinMode (led, OUTPUT) ; digitalWrite(led, LOW); Serial. începe(9600); //viteza portului Serial. 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ă)î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()) ( //salvați șirul de intrare în variabila val ch = mySerial. citit(); val += char (ch); întârziere (10); ) dacă (val . indexOf ( „RING”) > - 1 ) ( //dacă este detectat un apel, atunci verificați numărul dacă (val . indexOf ( "71234567890" ) > - 1 ) ( //dacă numărul apelantului este al nostru. Introduceți numărul fără „+” Serial. println( "--- INEL MASTER DETECTAT ---"); mySerial. println("ATH0"); //întrerupe conexiunea digitalWrite(led, HIGH); //aprinde LED-ul timp de 3 secundeîntârziere (3000); digitalWrite(led, LOW); //oprește releul ) ) altfel Serial. println(val); //tipărește linia primită pe monitorul portului val = "" ; ) dacă ( Serial. disponibil () ) ( //dacă este introdus ceva în monitorul portului in timp ce ( Serial. disponibil () ) ( //salvează șirul în variabila val ch = Serial. citit(); val += char (ch); întârziere (10); ) //mySerial.println(val); //transferul tuturor comenzilor introduse în monitorul portului către modulul GSM dacă (val . indexOf ( „sendsms”) > - 1 ) ( //dacă vedeți comanda pentru a trimite SMS sms(String("bună lume"), String("+71234567890")); //trimite SMS la numărul +71234567890) val = "" ; //clear ) ) void sms (String text , String phone ) //procedura de trimitere SMS { Serial. println("Trimitere SMS a început"); mySerial. println ("AT+CMGS=\"" + telefon + "\"" ); întârziere (500); mySerial. print(text); întârziere (500); mySerial. imprimare ((car ) 26 ); întârziere (500); Serial. println („SMS trimitere completă”); întârziere (2000); )

Examinare


GPRS

Î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:

Această bibliotecă vă permite să efectuați majoritatea operațiunilor de bază efectuate de un telefon GSM: lucrați cu apeluri vocale, trimiteți și primiți SMS-uri și conectați-vă la Internet prin GPRS.

Placa de extensie GSM conține un modem care îi transmite datele primite prin intermediul rețelei GSM. port serial. Toate operațiunile sunt efectuate de modem ca o secvență de comenzi AT. Pentru a îmbunătăți lizibilitatea codului, biblioteca extrage funcții de nivel scăzut care funcționează cu modemul și cartela SIM. Modemul GSM interacționează cu Arduino printr-o interfață serială folosind biblioteca SoftwareSerial.

Fiecare comandă executată de modem, de regulă, este un fragment dintr-o secvență de comenzi care vizează îndeplinirea unei funcții. Biblioteca GSM este concepută având în vedere acest lucru și este capabilă să primească/returneze informații în orice etapă a secvenței de comandă.

Structura bibliotecii

Funcționalitatea bibliotecii GSM este destul de largă, așa că combină mai multe clase diferite:

  • Clasă GSM este responsabil pentru controlul modemului radio. Această clasă conține funcții de nivel scăzut pentru conectarea și înregistrarea unei plăci de extensie într-o rețea GSM. O instanță a acestei clase trebuie să fie declarată în toate programele care utilizează GSM/GPRS.
  • Clasă GSMVoiceCall responsabil pentru apelurile vocale.
  • Clasă GSM_SMS este responsabil pentru trimiterea și primirea mesajelor SMS.
  • Clasă GPRS este responsabil pentru conectarea la Internet.
  • In clasa GSMClient a fost implementat un client similar cu clientul din bibliotecile Ethernet și WiFi.
  • In clasa GSMServer a fost implementat un server similar cu serverul din bibliotecile Ethernet și WiFi. Notă: Unii ISP-uri/operatori blochează conexiunile de intrare de la rețea globală de internet, permițând doar conexiuni intranet. Consultați operatorul pentru restricțiile aplicabile privind datele.
  • O mulțime de clase de ajutor ca GSMScanner, GSMModem si etc.

Compatibil cu biblioteca Ethernet

Dezvoltatorii au depus toate eforturile pentru a se asigura că biblioteca GSM este cât mai compatibilă cu biblioteca Ethernet. Datorită acestui fapt, transferul codului care utilizează biblioteci Ethernet sau WiFi către un Arduino cu o placă de expansiune GSM ar trebui să fie destul de simplu. Cu toate acestea, pentru a rula programe scrise pentru Ethernet pe o placă de extensie GSM, nu este suficient să copiați pur și simplu codul. Acest lucru poate necesita modificări minore ale programului, cum ar fi conectarea bibliotecilor GSM și GPRS, obținerea setărilor de rețea de la furnizor etc.

Exemple

Toate exemplele de lucru cu un card de extensie GSM pot fi împărțite în două grupuri. Primul grup este reprezentat de exemple care demonstrează capacitățile plăcii (de exemplu, trimiterea de mesaje SMS, conectarea la Internet etc.). Al doilea grup este instrumentele cu care puteți depana funcționalitatea bibliotecii și hardware-ul Arduino la un nivel scăzut.

Arduino este o platformă hardware folosită pentru creație rapidă variat dispozitive electronice, inclusiv cele de securitate. Datorită designului său necomplicat, simplității limbajului de programare și ușurinței în utilizare sursa deschisa chiar și un non-profesionist va putea 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.

Zona 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 către extern actuatoareș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.

Folosind modulul Arduino GSM cu platforma, informațiile 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 alarmă anti-efracție 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, procesează-l și trimit semnale de control către sistemele executive. Platforma Arduino simplifică pe cât posibil execuția proceselor enumerate și deține gamă largă avantaje față de alte dispozitive de acest fel.

  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 specializat Arduino este diferit sursa deschisa, care permite utilizatorilor experimentați să-l adapteze la cerințe specifice.

Fiabilitate ridicată a platformei hardware. Placi Arduino sunt disponibile cu microcontrolere ATMEGA8 și ATMEGA168 (modele anterioare) și cu controlere ATmega32u4, Atmel ATmega328 (modele mai noi), care diferă funcționalitate ridicată si fiabilitate.

Principiul de funcționare

Pentru a asigura funcționarea completă a sistemelor de securitate sau a altor 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 pachete informativeî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 hardware Platforma ArduinoÎn conformitate cu instrucțiunile, firmware-ul său este instalat. Î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 la 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 un dispozitiv de comunicație fără fir folosit pentru a primi și transmite informații în rețele comunicatii mobile. Modulul acestei serii este creat pe o placă cu cablare minimă și este poziționat ca un modul GSM pentru platforma hardware Arduino.

Cu acest dispozitiv puteți stabili comunicații mobile cu telefon extern, trimiteți mesaje SMS, faceți schimb de informații folosind standardul GPRS Class-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 folosite 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 între 3,3...5 V. Prin urmare, GSM Modulul Neoway M590 este conectat 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. retelelor 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ă aveți nevoie 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 niveluri logice. Acest lucru se datorează faptului că SIM800L are o valoare a tensiunii pe logic nivel inalt 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 o placă specială folosită pentru control dispozitive digitale de la distanță, precum și pentru schimbul de informații. Utilizarea SIM900 permite Arduino să funcționeze folosind tehnologii GSM/GPRS, oferind Comunicatie vocala, 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 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 distanță dispozitive de sine stătătoare prin regulat 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. Exista tipuri diferite module, cele mai utilizate sunt SIM900, SIM800L, A6, A7.

Descrierea modulului SIM900

Modulul SIM900 este utilizat în diverse sisteme automatizate. Folosind interfața 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.

Specificații:

  • Gama de tensiune 4,8-5,2V;
  • ÎN Mod normal curentul ajunge la 450mA, curent maxim in modul puls 2 A;
  • suport 2G;
  • Putere de transmisie: 1 W 1800 si 1900 MHz, 2 W 850 si 900 MHz;
  • Incorporat 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 alarma wirelessș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.

Specificații:

  • 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 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.

Specificații:

  • 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;
  • Suporta 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.

Specificații:

  • 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.

AT+CMGF=1 Pe modul text(SMS numai în latină)
AT+CSCS= „GSM” Pe regim
AT+CLIP=1 activați identificarea numărului de apel primit
Dacă trimiteți o comandă cu 0, 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 se poate trimite prin trimiterea aceleiași comenzi, 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. Va reveni 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. Cu cât mai mult, cu atât 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, cu cât numărul este mai mic, cu atât calitatea comunicării este mai bună.
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
CONECTARE - există un contact!
AT+CMGR=3,0
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 vom analiza problemele legate de conectarea modulelor GSM la 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 circuit asamblat trebuie să faceți următoarele: conectați RESET și GND pe Arduino (acest lucru va duce la transferul datelor direct de pe 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 – parametrii de comandă curent de ieșire; 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 întoarce 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, paritate.
  • 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 muncă, 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 sosi modulul? mesaj text, va trimite către portul serial +CMTI: „SM”,2 (în acest caz 2 este număr de serie mesaje). Pentru a-l citi, trebuie să trimiteți comanda AT+CMGR=2.

Recepţie apel voce. Î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. Urmatorul 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 conexiunea este stabilită, 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ă.

Vreau să vă prezint un mod foarte simplu telecomandă alimentare electrică
Vom folosi prize RC gata făcute, așa că nu va trebui să lipim nimic. Acest lucru este foarte tare, pentru că este mai bine să nu atingeți 220 V (pentru începători).

Cod

Dacă nu utilizați GSMSHIELD, ci o altă bibliotecă, atunci codul va fi desigur diferit, dar principiul va fi același. La anumite intervale, verificăm dacă avem vreun SMS necitit, le analizăm, iar dacă a venit o comandă validă de la un număr autorizat, trimitem un semnal radio cu funcțiile mySwitch.switchOff sau mySwitch.switchOn, trecându-le adresa priză.
Notă in cazul meu, pentru scutul de la Seeedstudio, a trebuit sa intru in GSM.cpp si sa schimb pinii specificati la 7 si 8./* Arduino GSM-switch exemplu cod Pornire/oprire prize controlate radio Autor: Vladislav Ross, 2014 Contact: [email protected] Trebuie să descărcați: 1. rc-switch https://code.google.com/p/rc-switch/ 2. GSMSHIELD http://www.gsmlib.org/ Pentru GSMSHIELD: * Pentru a schimba pinii pentru Software Serial, utilizați cele două linii din GSM.cpp. *Dacă tu esti folosind Mega, decomentează linia „#define MEGA” în HWSerial.h * Puteți activa mesajele de depanare pe portul serial definind DEBUG_ON */ #include „SIM900.h” #include #include „sms.h” #include „call.h” #include // 433MHz pin transmițător const byte RCpin = 12; char groupAddress = "11111"; char smsLetters = "ABC"; char* deviceAddresses = ( "10000", //A "01000", //B "00100" //C ); char adminNumber = "+74991356235"; //numărul dvs. de telefon Apelați apel GSM; SMSGSM sms; RCSwitch mySwitch = RCSwitch(); numărul de caractere; octet stat=0; char smsText; pozitia octetului; int deviceLetterIdx = -1; octetul i,j; void setup() (gsm.begin(2400); delay(10000); for(i = 1; i<= 21; i++) { sms.DeleteSMS(i); } mySwitch.enableTransmit(RCpin); }; void loop() { //hang up all incoming calls /*stat=call.CallStatus(); if(stat==CALL_INCOM_VOICE) { call.HangUp(); }*/ position = sms.IsSMSPresent(SMS_UNREAD); //get new SMS if (position) { sms.GetSMS(position, number, smsText, 10); sms.DeleteSMS(position); if(strcmp(number, adminNumber) == 0) //accept SMS only from defined number { for (i = 0; i < sizeof(smsText) - 1; i++) { if(deviceLetterIdx != -1) { //got letter, now expecting 0 or 1 if(smsText[i] == "0") { mySwitch.switchOff(groupAddress, deviceAddresses); delay(500); } if(smsText[i] == "1") { mySwitch.switchOn(groupAddress, deviceAddresses); delay(500); } deviceLetterIdx = -1; } else { //waiting for letter A,B,C... for(j = 0; j < sizeof(smsLetters) - 1; j++) { if(smsLetters[j] == smsText[i]) { deviceLetterIdx = j; break; } } } } } } delay(10000); }; GitHub .

Probleme?

Dacă prizele nu doresc să treacă la niciuna, puteți încerca să primiți un semnal de la telecomanda originală la receptor. rc-switch are cod exemplu.

Ce urmeaza?

Cum se poate dezvolta acest proiect în continuare?
În primul rând, mai avem o grămadă de pini pe Arduino în sine și pe scutul GSM. Puteți conecta unii senzori sau dispozitive la ei. De exemplu, faceți monitorizarea temperaturii de la distanță sau udați flori.
În al doilea rând, am folosit doar SMS-uri, iar modulul poate transmite și voce și GPRS. GPRS poate transfera mult mai multe date. În plus, nu trebuie să închizi când apelezi, ci, de exemplu, să accepți apelul și să-i lași să asculte ce se întâmplă pe loc.
De asemenea, este posibil să doriți să primiți SMS-uri de control nu de la un număr, ci de la mai multe. În acest caz, aș recomanda stocarea numerelor în agendă; biblioteca are funcțiile corespunzătoare.

Cele mai bune articole pe această temă