Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Këshilla
  • Sistem alarmi GSM me kosto të ulët me tru nga Arduino. Ne e kontrollojmë prizën me SMS

Sistem alarmi GSM me kosto të ulët me tru nga Arduino. Ne e kontrollojmë prizën me SMS

Një artikull për ata që duan të detyrojnë Arduino të dërgojë SMS përmes kësaj Moduli GSM ... Moduli NEOWAY M590 i bazuar në çipin SIM900 është i përshtatshëm për krijimin e një alarmi shtëpiak, shtëpi inteligjente. Ekziston gjithashtu një modul alternativ GSM që lidhet drejtpërdrejt me Arduino përmes 5 Volt: Sim800L EVB v2.0

Formulimi i problemit

  • Duke përdorur vetëm modulin Arduino dhe GSM, kontrolloni LED përmes një telefonate.
  • Dërgoni SMS (ndërsa përmes komandës që vjen përmes monitorit të portit në Arduino IDE)

Lidhja me Arduino

Ne lidhim modulin GSM me Arduino.
Moduli 5V -> 5V Arduino
Moduli GND -> GND Arduino
Moduli TX -> pin2 dixhital Arduino
Moduli RX -> pin3 dixhital Arduino
Ju mund të shihni pinout në foto. Rendi i kontakteve është si më poshtë: 1 - + 5V, 2 - GND, 7 - TX, 8 - RX.


Mund ta fuqizoni modulin nga 4V në 5V, unë përdora një dalje 5 volt.

Moduli kërkon një furnizim të veçantë me energji elektrike, sepse konsumon deri në 2A piku. Me shumë mundësi, kondensatori nuk do t'ju shpëtojë. Prandaj, kur mundësohet nga Arduino, ai mund të mos funksionojë ose të jetë me buggy.

Toka e Arduino dhe moduli GSM duhet të lidhen me furnizim të veçantë të energjisë, por së pari duhet të matni tensionin midis këtyre "bazave" me një multimetër. Disa furnizime me energji kompjuteri kanë një rënie të tensionit deri në 100 V nëpër shasinë USB dhe tokëzimin. Rryma atje është e pakët dhe nuk mund të vrasë, por është e lehtë të shkatërrosh Arduino ose modulin GSM, ose të dyja.

Skicë

#përfshi< SoftwareSerial... h> SoftwareSerial mySerial (2, 3); // RX, TX int ch = 0; int led = 13; String val = ""; konfigurimi i zbrazët () (
vonesë (2000); // koha për të inicializuar modulin pinMode (led, OUTPUT); digitalWrite (led, LOW); Serial... fillimi (9600); // shpejtësia e portit Serial... println ("GSM testues v1.0"); mySeriali. fillimi (9600); mySeriali. println ("AT + CLIP = 1"); // aktivizoni vonesën AON (100); mySeriali. println ("AT + CMGF = 1"); // Mënyra e kodimit të SMS - normale (për anglisht) vonesë (100); mySeriali. println ("AT + CSCS = \" GSM \ ""); // modaliteti i kodimit të tekstit vonesë (100); ) void loop () (nëse (mySerial. disponohet ()) ( // nëse moduli GSM na ka dërguar diçka, atëherë ndërsa (mySerial. në dispozicion ()) ( // ruani vargun e hyrjes në variablin val ch = mySeriali. lexoni (); val + = char (ch); vonesë (10); ) if (val. indexOf ("UNAZE")> - 1) ( // nëse gjendet një telefonatë, atëherë kontrolloni numrin nëse (val. indexOf ("71234567890")> - 1) ( // nëse numri i telefonuesit është i yni. Fusni numrin tuaj pa "+" Serial... println ( "--- U Zbulua unaza KRYESORE ---"); mySeriali. println ("ATH0"); // prish lidhjen digitalWrite (led, LARTË); // ndizni LED-in për 3 sekonda vonesë (3000); digitalWrite (led, LOW); // fik rele)) tjetër Serial... println (val); // printoni linjën e marrë në monitorin e portit val = ""; ) nese ( Serial... në dispozicion ()) ( // nëse diçka është futur në monitorin e portit derisa ( Serial... në dispozicion ()) ( // ruajeni vargun në variablin val ch = Serial... lexoni (); val + = char (ch); vonesë (10); ) //mySerial.println(val); // transferimi i të gjitha komandave të shtypura në monitorin e portit në modulin GSM if (val. indexOf ("sendsms")> - 1) ( // nëse keni parë komandën për të dërguar SMS sms (String ("përshëndetje botë"), String ("+71234567890")); // dërgoni SMS në numrin +71234567890) val = ""; // e qartë)) sms e pavlefshme (teksti i vargut, telefoni i vargut) // procedura për dërgimin e SMS { Serial... println ("Dërgimi SMS filloi"); mySeriali. println ("AT + CMGS = \" "+ telefon +" \ ""); vonesë (500); mySeriali. print (tekst); vonesë (500); mySeriali. print ((char) 26); vonesë (500); Serial... println ("Dërgimi SMS përfundoi"); vonesë (2000); )

Ekzaminimi


GPRS

Në versionin e konsideruar të modulit 1.30, mbështetja GPRS është shkurtuar. Nuk munda të lidhesha me serverin me emrin e tij DNS (për shembull mysite.ru), doli vetëm nga adresa IP. Nuk kishte probleme të tilla në një modul tjetër SIM800L.

Lista e disa komandave AT:

Kjo bibliotekë ju lejon të kryeni shumicën e operacioneve bazë të kryera nga një telefon GSM: të punoni me thirrje zanore, të dërgoni dhe të merrni SMS, si dhe të lidheni me internetin përmes GPRS.

Pllaka e zgjerimit GSM përmban një modem që transmeton të dhëna në rrjetin GSM përmes portës serike. Të gjitha operacionet kryhen nga modemi në formën e një sekuence komandash AT. Për të përmirësuar lexueshmërinë e kodit, biblioteka abstrakton funksionet e nivelit të ulët që funksionojnë me modemin dhe kartën SIM. Modemi GSM komunikon me Arduino nëpërmjet një ndërfaqe serike duke përdorur bibliotekën SoftwareSerial.

Çdo komandë e ekzekutuar nga modemi, si rregull, është një fragment i një sekuence komandash që synojnë kryerjen e një funksioni. Biblioteka GSM është projektuar duke pasur parasysh këtë dhe është në gjendje të marrë / kthejë informacion në çdo fazë të ekzekutimit të një sekuence komandash.

Struktura e bibliotekës

Funksionaliteti i bibliotekës GSM është mjaft i gjerë, kështu që kombinon disa klasa të ndryshme:

  • Klasa Gsm përgjegjës për kontrollin e modemit të radios. Kjo klasë përmban funksione të nivelit të ulët për lidhjen dhe regjistrimin e një karte zgjerimi në rrjetin GSM. Një shembull i kësaj klase duhet të deklarohet në të gjitha programet që përdorin GSM / GPRS.
  • Klasa GSMVoiceCall përgjegjës për thirrjet zanore.
  • Klasa GSM_SMS përgjegjës për dërgimin dhe marrjen e mesazheve SMS.
  • Klasa GPRS përgjegjës për lidhjen në internet.
  • Në klasë GSMClient implementoi një klient të ngjashëm me klientin në bibliotekat Ethernet dhe WiFi.
  • Në klasë GSMSserver implementoi një server të ngjashëm me serverin në bibliotekat Ethernet dhe WiFi. Shënim: disa ISP/operatorë bllokojnë lidhjet hyrëse nga rrjeti global i internetit, duke lejuar vetëm lidhje intranet. Kontrolloni me operatorin tuaj celular për kufizimet e zbatueshme të transferimit të të dhënave.
  • Shumë klasa ndihmëse si Skaneri GSMS, GSMModem dhe etj.

Pajtueshmëria e bibliotekës Ethernet

Është bërë çdo përpjekje nga zhvilluesit për të siguruar që biblioteka GSM të jetë sa më e përputhshme me bibliotekën Ethernet. Për shkak të kësaj, transferimi i kodit duke përdorur bibliotekat Ethernet ose WiFi në një Arduino me një kartë zgjerimi GSM duhet të jetë mjaft i lehtë. Megjithatë, për të ekzekutuar programe të shkruara për Ethernet, nuk mjafton thjesht të kopjoni kodin në kartën e zgjerimit GSM. Kjo mund të kërkojë ndryshime të vogla në program, të tilla si lidhja e bibliotekave GSM dhe GPRS, marrja e cilësimeve të rrjetit nga ofruesi, etj.

Shembuj të

Të gjithë shembujt e punës me bordin e zgjerimit GSM mund të ndahen në mënyrë konvencionale në dy grupe. Grupi i parë përmban shembuj që demonstrojnë aftësitë e bordit (për shembull, dërgimi i një mesazhi SMS, lidhja me internetin, etj.). Grupi i dytë është një paketë veglash me të cilën mund të korrigjoni funksionalitetin e bibliotekës dhe harduerit Arduino në një nivel të ulët.

Arduino është një platformë harduerike që përdoret për të krijuar shpejt një shumëllojshmëri pajisjesh elektronike, përfshirë ato të sigurisë. Falë dizajnit të thjeshtë, thjeshtësisë së gjuhës së programimit, si dhe përdorimit të kodeve të hapura, edhe një joprofesionist mund të bëjë në mënyrë të pavarur një alarm shumëfunksional për të ruajtur shtëpinë, vilën, apartamentin ose garazhin e tij. Moduli Arduino GSM do të jetë alternativa më e mirë për krijimin e një sistemi sigurie buxhetore që mund të konfigurohet në mënyrë optimale për një objekt specifik.

Zona e aplikimit

Platforma harduerike Arduino përdoret gjerësisht në procesin e krijimit të sistemeve dhe pajisjeve të ndryshme elektronike që mund të marrin dhe përpunojnë sinjale nga sensorë dhe sensorë analogë ose dixhitalë funksionalë të ndryshëm. Rezultatet e përpunimit të sinjaleve të marra mund të përdoren për të kontrolluar aktivizuesit e jashtëm dhe sistemet e lidhura me Arduino.

Një shembull i përdorimit të këtyre moduleve në video:

Emërimi

Platforma e harduerit Arduino bën të mundur ndërveprim efektiv me mjedisin e kontrolluar përmes një game të gjerë sensorësh funksionalë që mund të monitorojnë parametra të ndryshëm. Falë kësaj, në bazë të platformave të tilla, është e mundur të formohen komplekse sigurie që do të monitorojnë lëvizjet përgjatë perimetrit të mbrojtur, hapjen e dritareve dhe dyerve dhe dëmtimin e xhamit. Përveç sensorëve të sigurisë, mund të përdoren edhe sensorë të temperaturës, sensorë të kontrollit të rrjedhjeve të ujit ose gazit.

Duke përdorur modulin Arduino GSM me platformën, informacioni për një rrezik ose një situatë emergjente në objekt mund t'i dërgohet pronarit sa më shpejt që të jetë e mundur. Për këtë qëllim përdoret një nga rrjetet e operatorëve celularë.

Një tipar dallues i pajisjeve Arduino është se mikrokontrolluesi i tyre mund të programohet nga përdoruesi duke përdorur gjuhën Arduino bazuar në Wiring. Falë kësaj, të gjithë mund të programojnë algoritmin për funksionimin e alarmit të krijuar të hajdutëve siç kërkohet për një objekt specifik të mbrojtur dhe veçoritë e aplikimit të tij.

Përfitimet e përdorimit

Sot ka shumë platforma harduerike dhe mikrokontrollues që mund të marrin informacion nga sensorë të jashtëm, ta përpunojnë atë dhe të dërgojnë sinjale kontrolli në sistemet ekzekutive. Platforma Arduino thjeshton zbatimin e proceseve të listuara sa më shumë që të jetë e mundur dhe ka një gamë të gjerë avantazhesh ndaj pajisjeve të tjera të këtij lloji.

  1. Çmim i ulët. Platformat janë pajisje mjaft të lira në krahasim me homologët e tyre, gjë që në asnjë mënyrë nuk ndikon në funksionalitetin e tyre.
  2. Ndër-platformë. Softueri Arduino funksionon në mënyrë efektive në platforma të tilla operative si Windows, Linux, Macintosh-OSX.
  3. Lehtësia e programimit. Për të konfiguruar mikrokontrolluesit, përdoret mjedisi i programimit Processing. Është ideal si për përdoruesit profesionistë ashtu edhe për përdoruesit e papërvojë që punojnë me pajisjet Arduino.
  4. Përmirësimi. Softueri i specializuar Arduino është me burim të hapur, i cili lejon përdoruesit me përvojë ta përshtatin atë me kërkesat specifike.

Besueshmëri e lartë e platformës harduerike. Pllakat Arduino janë të disponueshme me mikrokontrolluesit ATMEGA8 dhe ATMEGA168 (modelet e mëparshme) dhe me kontrollorët ATmega32u4, Atmel ATmega328 (modele më të reja), të cilët janë shumë funksionalë dhe të besueshëm.

Parimi i funksionimit

Për të siguruar funksionimin plotësisht funksional të sistemeve të sigurisë ose pajisjeve të tjera të ndërtuara duke përdorur platformat Arduino, duhet të keni një modul GSM për Arduino. Mund të përdoret për të hyrë në internet, për të bërë thirrje zanore ose për të dërguar mesazhe SMS.

Pllaka GSM përdor një modem të veçantë radio M10, ndërveprimi me të cilin sigurohet nga komanda speciale AT. Shkëmbimi i informacionit me modemin realizohet duke përdorur një ndërfaqe serike softuerike që zotëron kode dixhitale.

Modemi GSM i përdorur në Arduino është një modem me 4 breza që mund të funksionojë në frekuencat e mëposhtme: GSM 850MHz dhe 900MHz, PCS1900MHz dhe DCS1800MHz. Modemi mbështet protokolle të tilla si TCP / UDP dhe HTTP, të cilat ofrojnë lidhje nëpërmjet GPRS. Shpejtësia e transmetimit të paketave të informacionit në këtë mënyrë do të jetë rreth 90 kbps.

Dërgimi i SMS përmes modulit Arduino dhe GSM zbatohet nëse ekziston një kartë SIM e instaluar e një prej operatorëve celularë.

Përveç kësaj, do të jetë e mundur të transmetoni mesazhe zanore, të bëni thirrje - kjo kërkon një mikrofon shtesë dhe një altoparlant të jashtëm. Instalimi i një karte SIM do të lejojë që Arduino të përdoret në modalitetin celular ose GPRS.

Si të lidhni modulet me arduino

Përpara se të lidhni modulin GSM me Arduino, duhet të instalohet një kartë SIM e përshtatshme e një prej operatorëve celularë në folenë e saj. Pas kësaj, moduli lidhet me platformën harduerike Arduino në përputhje me udhëzimet dhe kryhet firmware-i i tij. Për këtë, përdoret një PC, i cili lidhet me pajisjen duke përdorur një kabllo USB. Pas ngarkimit të mjedisit Arduino, shtypni butonin Upload, i cili do të fillojë procesin e ngarkimit të softuerit. Pas përfundimit të këtij procesi, platforma mund të shkëputet nga kompjuteri dhe të mundësohet nga një sistem i jashtëm i energjisë.

Karakteristikat krahasuese të moduleve GSM

Tregu i konsumit ka një përzgjedhje të gjerë të moduleve të ndryshme GSM për Arduino. Më poshtë janë karakteristikat kryesore të më të njohurve.

Neoway M590

Moduli Arduino GSM M590 është një pajisje komunikimi me valë që përdoret për të marrë dhe transmetuar informacion në rrjetet celulare. Moduli i kësaj serie është krijuar në një tabelë me rripa minimale dhe pozicionohet si një modul GSM për platformën harduerike Arduino.

Duke përdorur këtë pajisje, mund të krijoni një komunikim celular me një telefon të jashtëm, të dërgoni mesazhe SMS, të shkëmbeni informacione sipas standardit GPRS Class-10. Moduli i këtij dizajni nuk ka një hyrje mikrofoni, gjë që kufizon aftësinë për të marrë komunikim zanor - mund të vendoset një lidhje, por zëri nuk do të transmetohet.

M590 kontrollohet nga komandat AT nëpërmjet komunikimit serial. Frekuencat nga 900 MHz deri në 1800 MHz përdoren si radio frekuenca pune. Tensioni i furnizimit është në intervalin 3.3 ... 5 V. Prandaj, moduli Neoway M590 GSM është i lidhur me Arduino përmes një konverteri special të tensionit 5 V "3.3 V.

Moduli GSM SIM800L

Moduli kompakt Sim800l GPRS GSM i referohet pajisjeve që përdoren për të mbështetur komunikimet celulare. Moduli është ndërtuar në beze SIM-800L, krijuar nga SIMCom Wireless Solutions dhe është krijuar për të ofruar shërbime për shërbimet e rrjeteve të informacionit GPRS \ GSM, duke përdorur frekuenca nga 850 MHz në 1900 MHz. Mund të përdoret për të dërguar mesazhe SMS, për të bërë telefonata dhe për të shkëmbyer informacione nëpërmjet kanaleve GPRS.

Moduli GSM kompletohet me një antenë; nëse keni nevojë të përmirësoni nivelin e sinjalit, mund të përdorni antena shtesë. Për të kontrolluar modulin, mund të përdoret një PC, i lidhur nëpërmjet një bordi të veçantë për konvertimin e ndërfaqeve USB-UART, ose drejtpërdrejt përmes vetë UART. Nëse përdorni modulin Sim800l GPRS GSM , lidhja me Arduino duhet të zbatohet përmes një konverteri të nivelit logjik. Kjo për faktin se në SIM800L vlera e tensionit në një nivel të lartë logjik është 2.8 V, dhe në Arduino - 3.3 ... 5 V.

GPRS Shield nga Seed Studio

Lidhja e modulit GSM me Arduino do të sigurojë mundësinë për të përdorur teknologjitë e shkëmbimit të të dhënave GSM / GPRS, si dhe për të bërë thirrje dhe për të dërguar mesazhe SMS. Pajisjet e këtij lloji janë ndërtuar duke përdorur modulin SIMCom SIM900. Ata kanë një vend për instalimin e një karte SIM, një lidhës për një antenë të jashtme, një grup folesh 3.5 mm për hyrjen dhe daljen audio. Arduino GSM Shield kontrollohet dhe operohet duke përdorur lidhje serike dhe një grup komandash të specializuara AT.

Ky modul është një tabelë e veçantë që përdoret për të kontrolluar pajisjet dixhitale nga distanca, si dhe për të shkëmbyer informacione. Përdorimi i SIM900 lejon Arduino të punojë duke përdorur teknologjitë GSM / GPRS, duke ofruar komunikim zanor, dërgimin e SMS dhe shkëmbimin e të dhënave duke përdorur rrjetet celulare dhe celulare.

Për funksionimin e këtij moduli, një kontrollues kontrolli, një burim energjie, një antenë janë të lidhur me të dhe është instaluar gjithashtu një kartë SIM e një operatori celular. Duke përdorur kërcyes të veçantë, konfigurohet metoda e shkëmbimit të të dhënave me kontrolluesin. Nëse është e nevojshme, mund të lidhni një altoparlant dhe mikrofon.

Moduli GSM dhe GPRS në projektet Arduino ju lejon të lidheni me pajisje autonome në distancë nëpërmjet komunikimit të rregullt celular. Ne mund të dërgojmë komanda te pajisjet dhe të marrim informacion prej tyre duke përdorur komandat SMS ose nëpërmjet një lidhjeje interneti të hapur nëpërmjet GPRS. Në këtë artikull, ne do të shikojmë modulet më të njohura për Arduino, do të kuptojmë lidhjen dhe do të shqyrtojmë shembuj programimi.

Modulet GSM GPRS

Moduli GSM përdoret për të zgjeruar aftësitë e bordeve konvencionale Arduino - dërgimi i SMS, kryerja e thirrjeve, shkëmbimi i të dhënave përmes GPRS. Ka lloje të ndryshme modulesh, më të përdorurat janë SIM900, SIM800L, A6, A7.

Përshkrimi i modulit SIM900

Moduli SIM900 përdoret në sisteme të ndryshme të automatizuara. Ndërfaqja UART përdoret për të shkëmbyer të dhëna me pajisje të tjera. Moduli ofron mundësinë për të bërë thirrje, për të shkëmbyer mesazhe me tekst. Puna e modulit lëshohet në komponentin SIM900, krijuar nga SIMCom Wireless Solution.

Specifikimet:

  • Gama e tensionit 4.8-5.2V;
  • Në modalitetin normal, rryma arrin 450 mA, rryma maksimale në modalitetin pulsues është 2 A;
  • mbështetje 2G;
  • Fuqia e transmetimit: 1 W 1800 dhe 1900 MHz, 2 W 850 dhe 900 MHz;
  • Ka protokolle të integruara TCP dhe UDP;
  • GPRS multi-slot klasi 10/8;
  • Temperatura e punës nga -30C deri në 75C.

Duke përdorur pajisjen, mund të gjurmoni rrugën e transportit së bashku me një pajisje GLONASS ose GPS. Aftësia për të dërguar mesazhe SMS përdoret në sinjalizimin me valë dhe në sisteme të ndryshme sigurie.

Përshkrimi i modulit SIM800L

Moduli bazohet në komponentin SIM800L dhe përdoret për dërgimin e SMS, kryerjen e thirrjeve dhe shkëmbimin e të dhënave nëpërmjet GPRS. Një kartë mikro SIM është instaluar në modul. Pajisja ka një antenë të integruar dhe një lidhës me të cilin mund të lidhni një antenë të jashtme. Fuqia në modul furnizohet nga një burim i jashtëm ose përmes një konverteri DC-DC. Kontrolli kryhet duke përdorur një kompjuter nëpërmjet UART, Arduino, Raspberry Pi ose pajisje të ngjashme.

Specifikimet:

  • Gama e tensionit 3.7V - 4.2V;
  • Mbështetje për rrjetin me 4 breza 900/1800/1900 MHz;
  • GPRS klasa 12 (85.6 kB / s);
  • Rryma maksimale 500 mA;
  • mbështetje 2G;
  • Kërkim automatik në katër diapazon frekuencash;
  • Temperatura e punës nga -30C deri në 75C.

Përshkrimi i modulit A6

Moduli A6 u zhvillua nga AI-THINKER në 2016. Pajisja përdoret për shkëmbimin e mesazheve SMS dhe shkëmbimin e të dhënave nëpërmjet GPRS. Pllaka ka konsum të ulët të energjisë dhe madhësi të vogël. Pajisja është plotësisht e pajtueshme me operatorët celularë rusë.

Specifikimet:

  • Gama e tensionit 4.5 - 5.5V;
  • Furnizimi me energji elektrike 5V;
  • Gama e temperaturës së funksionimit nga -30C deri në 80C;
  • Konsumi maksimal i rrymës 900mA;
  • GPRS Klasa 10;
  • Mbështet protokollet PPP, TCP, UDP, MUX.

Moduli mbështet kartat microsym.

Përshkrimi i modulit A7

A7 është moduli më i fundit nga AI-THINKER. Krahasuar me paraardhësin e tij, A6 ka GPS të integruar për të thjeshtuar dizajnin e pajisjes.

Specifikimet:

  • Gama e tensionit operativ 3.3V-4.6V;
  • Tensioni i furnizimit 5V;
  • Frekuencat 850/900/1800/1900 MHz;
  • GPRS Klasa 10: Maks. 85.6 kbps;
  • Eko dhe shtypja e zhurmës.

Pajisja mbështet kartat mikro SIM. Moduli mbështet shkëmbimin e thirrjeve, shkëmbimin e mesazheve SMS, transmetimin e të dhënave përmes GPRS, marrjen e sinjaleve përmes GPS.

Ku të blini module GSM për arduino

Tradicionalisht, para fillimit, disa këshilla dhe lidhje të dobishme për shitësit Aliexpress.

AT + CMGF = 1 Përfshirë modaliteti i tekstit (SMS vetëm në latinisht)
AT + CSCS = "GSM" Përfshirë regjimit
AT + CLIP = 1 mundësojnë identifikimin e numrit të thirrjes në hyrje
Nëse dërgoni një komandë me 0, identifikimi i numrit do të çaktivizohet dhe moduli do të dërgojë vetëm mesazhin "RING" në vend të numrit të telefonuesit.
AT + CMGS = "+ 79123456789" Dërgimi i SMS
ATI Merrni informacionin e pajisjes
AT + IPR = 19200 përcaktimi i shpejtësisë së portit
AT + GSN do të kthejë IMEI të modulit
AT + CCLK? lexoni kohën nga moduli
AT + CCLK = "vv / mm / dd, hh: mm: ss + zz" ku shkon sipas radhës "viti / muaji / data, ora: minuta: sekonda + zona kohore". Të dhënat duhet të dërgohen me zero kryesore, domethënë, për shembull, nëse muaji që kemi është "4", atëherë "04" duhet të dërgohen.
Mund ta ktheni orën dhe datën aktuale duke dërguar të njëjtën komandë, vetëm me shenjën "?":
AT + CMEE = 0 niveli i informacionit të gabimit. Mund të jetë nga 0 në 2.
0 - me aftësi të kufizuara. Ai thjesht do të shkruajë ERROR.
1 - kodi i gabimit. Do të kthejë një kod gabimi numerik.
2 - përshkrimi i gabimit. Ai do të shkruajë se çfarë saktësisht nuk i pëlqen në ekip.
Për të punuar me modulin përmes terminalit, është më i përshtatshëm të përdorni mënyrat ATV1, ATE1 AT + CMEE = 2, për të komunikuar me mikrokontrolluesin është më mirë të përdorni ATV0, ATE0 dhe AT + CMEE = 0 - kjo do ta bëjë atë më e lehtë për të përpunuar përgjigjet e marra.
Këto cilësime nuk ruhen pas rindezjes së modulit, prandaj është e nevojshme që këto komanda të përfshihen në kodin e programit.
AT + CSQ informacion mbi cilësinë e sinjalit.
Moduli do të kthejë dy numra + CSQ: 17.0
17 - niveli i sinjalit. Mund të jetë në intervalin 0..31 ose 99. Sa më shumë, aq më mirë, por 99 do të thotë mungesë e tij.
0 - shkalla e gabimit të komunikimit (i ashtuquajturi RXQUAL). Mund të jetë nga 0 në 7, sa më i ulët të jetë numri, aq më i mirë është cilësia e lidhjes.
AT + POLICIA? informacion rreth operatorit në rrjetin e të cilit është regjistruar moduli
ATD + 79121234567; duke formuar një numër. (";" domosdoshmërisht)
Moduli do të telefonojë numrin e specifikuar dhe do të kthejë një nga opsionet
BUSY - numri është i zënë
PA DIALTONE - nuk ka sinjal në linjë
JO MBARTËS - nuk ka rrjet ose problem tjetër (për shembull, nuk ka para në llogari)
PËRGJIGJE NA - pa përgjigje
LIDHJE - ka një kontakt!
AT + CMGR = 3.0
Moduli GSM GPRS KEYES SIM900 me cilësi shumë të lartë Moduli SIM800C për arduino nga një furnizues i besueshëm
Mburoja e zhvillimit të pajtueshëm me Arduino bazuar në modulin SIM900 GPRS / GSM Moduli i lirë mini A6 GPRS GSM

Lidhja e mburojës GSM GPRS me Arduino

Në këtë seksion, ne do të shqyrtojmë çështjet e lidhjes së moduleve GSM me bordin aduino. Pothuajse të gjithë shembujt bazohen në Arduino Uno, por shumica e shembujve do të shkojnë për bordet Mega, Nano, etj.

Lidhja e modulit SIM800

Për t'u lidhur, ju nevojitet një tabelë Arduino, një modul SIM800L, një konvertues i tensionit në ulje, tela për lidhje dhe një bateri 12 V. Moduli SIM800L kërkon një tension prej 3.7 V, i cili është jo standard për Arduino, për këtë ju nevojitet një konvertues i tensionit në rënie.

Pika e modulit SIM800 tregohet në figurë.

Bordi Arduino duhet të lidhet me kompjuterin përmes një kabllo USB. Lidhni një bateri 12 V përmes konvertuesit: -12 V në tokëzimin Arduino, nga toka në konvertues në minus, + 12 V në konvertues në plus. Daljet nga moduli TX dhe RX duhet të lidhen me kunjat 2 dhe 3 në Arduino. Module të shumta mund të lidhen me çdo kunj dixhitale.

Lidhja e modulit A6

Moduli A6 është më i lirë se SIM900 dhe lidhet shumë lehtë me Arduino. Moduli mundësohet nga 5V, prandaj elementë shtesë reduktues të tensionit nuk kërkohen për lidhje.

Për t'u lidhur, do t'ju duhet një bord Arduino (në këtë rast, konsiderohet Arduino UNO), moduli GSM A6, telat lidhës. Diagrami i lidhjes është paraqitur në figurë.

Pini RX nga moduli GSM duhet të lidhet me TX në tabelën Arduino, kunja TX duhet të lidhet me pinin RX në Arduino. Toka nga moduli është e lidhur me tokën në mikrokontrollues. Pini Vcc në modulin GSM duhet të lidhet me PWR_KEY.

Lidhja nëpërmjet mburojës GSM-GPRS

Para lidhjes, është e rëndësishme t'i kushtoni vëmendje tensionit të mburojës. Rryma në momentin e një telefonate ose dërgimit të të dhënave mund të arrijë vlerat 15-2 A, kështu që nuk duhet të ndizni mburojën direkt nga Arduino.

Përpara se të lidheni me Arduino, duhet të instaloni një kartë SIM në mburojën GSM-GPRS. Ju gjithashtu duhet të vendosni kërcyesit TX dhe RX siç tregohet në figurë.

Lidhja bëhet si më poshtë - kontakti i parë (teli i verdhë në figurë) nga mburoja duhet të lidhet me TX në Arduino. Kunja e dytë (teli jeshil) lidhet me RX në Arduino. Toka nga mburoja lidhet me tokën nga aruino. Mikrokontrolluesi mundësohet nëpërmjet një kablloje USB.

Paraqitja e lidhjes midis mburojës dhe tabelës Arduino është paraqitur në figurë.

Për të punuar, duhet të instaloni bibliotekën GPRS_Shield_Arduino.

Për të kontrolluar korrektësinë e qarkut të montuar, duhet të bëni sa më poshtë: lidhni RESET dhe GND në Arduino (kjo do të çojë në faktin që të dhënat do të transmetohen drejtpërdrejt nga mburoja në kompjuter), futni kartën SIM në mburojën dhe ndizni fuqinë e mburojës. Bordi Arduino duhet të lidhet me kompjuterin dhe duhet të shtypet butoni i energjisë. Nëse gjithçka është e lidhur siç duhet, LED-i i kuq do të ndizet dhe e gjelbërta do të pulsojë.

Përshkrim i shkurtër i ndërveprimit nëpërmjet komandave AT

Komandat AT janë një grup komandash të veçanta për modemin, të përbërë nga vargje të shkurtra teksti. Që modemi të njohë komandën e dhënë, rreshtat duhet të fillojnë me shkronjat në. Vargu do të pranohet kur modemi është në modalitetin e komandës. Komandat AT mund të dërgohen ose duke përdorur softuerin e komunikimit ose manualisht nga tastiera. Pothuajse të gjitha komandat mund të ndahen në 3 mënyra - modaliteti i testimit, në të cilin moduli përgjigjet nëse e mbështet komandën; lexim - lëshimi i parametrave të komandës aktuale; regjistrim - do të regjistrohen vlera të reja.

Lista e komandave AT më të përdorura:

  • AT - për të kontrolluar nëse moduli është i lidhur saktë. Nëse gjithçka është në rregull, ajo kthehet në rregull.
  • A / - përsëritni komandën e mëparshme.
  • AT + IPR? - marrjen e informacionit për shpejtësinë e portit. Përgjigja është + IPR: 0 OK (0 në këtë rast është automatike).
  • AT + ICF? - vendosja e transmetimit. Përgjigja do të jetë + ICF: bit, barazi.
  • AT + IFC? - kontrolli i transmetimit. Përgjigja do të jetë + IFC: terminali nga moduli, moduli nga terminali (0 - pa kontroll, 1 - kontrolli i softuerit, 2 - kontrolli i harduerit).
  • AT + GCAP - tregon aftësitë e modulit. Një shembull i një përgjigjeje është + GCAP: + FCLASS, + CGSM.
  • AT + GSN - marrja e modulit IMEI. Shembull përgjigje 01322600XXXXXXXXX.
  • AT + POLICIA? - tregon operatorët e disponueshëm.
  • AT + CPAS - statusi i modulit. Përgjigje + CPAS: 0. 0 - gati për punë, 3 - thirrje hyrëse, 4 - lidhje zanore, 2 - e panjohur.
  • AT + CCLK? - informacion për kohën dhe datën aktuale.
  • AT + CLIP = 1 - aktivizoni / çaktivizoni ID-në e telefonuesit. 1 - i aktivizuar, 0 - i çaktivizuar.
  • AT + CSCB = 0 - merrni mesazhe të veçanta SMS. 0 - i aktivizuar, 1 - i çaktivizuar.
  • AT + CSCS = "GSM" - kodimi i mesazheve SMS. Mund të zgjidhni një nga kodimet e mëposhtme: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
  • AT + CMEE = 0 - marrja e informacionit në lidhje me gabimin.
  • AT + CPIN = XXXX - vendosni kodin pin të kartës SIM.
  • AT&F - rivendosni në cilësimet e fabrikës.
  • AT + CPOWD = 1 - mbyllje urgjente (0) ose normale (1) e modulit.
  • ATD + 790XXXXXXXXX - telefononi në numrin + 790XXXXXXXXX.
  • ATA - përgjigjja e thirrjes.
  • AT + CMGS = "+ 790XXXXXXXXX"> Test sms - dërgimi i një mesazhi SMS në numrin + 790XXXXXXXXX.

Në këtë rast, merren parasysh komandat bazë për modulin SIM900. Për module të ndryshme, komandat mund të ndryshojnë pak. Të dhënat për modulin do të ushqehen përmes një programi të veçantë "terminal", i cili duhet të instalohet në kompjuter. Ju gjithashtu mund të dërgoni komanda në modul përmes monitorit të portit në Arduino IDE.

Skica për të punuar me modulin GSM

Dërgimi i SMS në shembullin e SIM900

Para se të dërgoni një mesazh, duhet të konfiguroni modulin. Para së gjithash, ju duhet të përktheni mesazhin e transmetuar në format teksti. Për këtë ekziston një komandë AT + CMGF = 1. Është e nevojshme të transferoni kodimin në GSM me komandën AT + CSCS = "GSM". Ky kodim është më i përshtatshmi, pasi aty karakteret përfaqësohen në kodin ASCII, të cilin përpiluesi e kupton lehtësisht.

Pastaj duhet të shkruani një mesazh SMS. Për ta bërë këtë, dërgohet një komandë me numrin e pajtimtarit AT + CMGS = "+ 79XXXXXXXXX" r, si përgjigje sugjerohet të shkruani një tekst SMS. Ju duhet të dërgoni një mesazh. Kur të përfundoni, duhet të dërgoni kodin e kombinimit Ctrl + Z, moduli do të lejojë dërgimin e tekstit te adresuesi. Kur mesazhi të jetë dërguar, ai do të kthehet në rregull.

Ndërveprimi me modulin bazohet në indekset që i caktohen çdo mesazhi të ri. Ky indeks mund të përdoret për të treguar se cilin mesazh duhet fshirë ose lexuar.

Marrja e SMS-ve. Për të lexuar mesazhe SMS, përdorni komandën AT + CNMI = 2,2,0,0,0. Kur moduli merr një mesazh me tekst, ai do të dërgojë në portën serike + CMTI: "SM", 2 (në këtë rast, 2 është numri i sekuencës së mesazhit). Për ta lexuar atë, duhet të dërgoni komandën AT + CMGR = 2.

Marrja e një telefonate zanore. Para së gjithash, për një bisedë, duhet të lidhni një altoparlant dhe një mikrofon me modulin. Kur merrni një telefonatë, do të shfaqet numri nga i cili është bërë. Për të kryer punën, duhet të aktivizoni bibliotekën GSM:

#përfshi

Nëse karta SIM është e bllokuar, duhet të futni kodin e saj pin. Nëse nuk kërkohet një kod pin, kjo fushë duhet të lihet bosh.

#define PINNUMBER ""

Në konfigurimin (), duhet të kryhet inicializimi i transferimit të të dhënave në kompjuter. Hapi tjetër është krijimi i një variabli lokal për të gjurmuar statusin e lidhjes së rrjetit. Skica nuk do të funksionojë derisa karta SIM të lidhet me rrjetin.

boolean joConnected = e vërtetë;

Funksioni gsmAccess.begin () përdoret për t'u lidhur me rrjetin. Kur të vendoset lidhja, vlera GSM_READY do të kthehet.

vcs.hangCall (); - një funksion që tregon se modemi është gati për të marrë telefonata.

getvoiceCallStatus () - Përcakton statusin e skicës. Nëse dikush telefonon, ai kthen RECEIVING CALL. Për të regjistruar numrin, duhet të përdorni funksionin retrieveCallingNumber (). Kur telefonata të përgjigjet, TALKING do të kthehet. Skica më pas do të presë për një rresht të ri për të ndërprerë bisedën.

Krijoni një lidhje GPRS dhe dërgoni të dhëna në një server në distancë

Së pari, duhet të instaloni bibliotekën SoftwareSerial, e cila ju lejon të siguroni transferimin e informacionit serik dhe të lidhni modulin GSM dhe mikrokontrolluesin Arduino.

Për të dërguar të dhëna në server, duhet të dërgoni komandat e mëposhtme:

AT + SAPBR = 1.1 - Hapja e transportuesit.

Tre komandat e ardhshme lidhen me vendosjen e cilësimeve të lidhjes së rrjetit.

AT + SAPBR = 3,1, \ ”APN \”, \ ”internet.mts.ru \” - zgjidhni operatorin mts, emrin e pikës së hyrjes.

AT + SAPBR = 3,1, \ ”USER \”, \ ”mts \” - zgjedhja e përdoruesit mts.

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

AT + SAPBR = 1.1 - vendosja e lidhjes.

AT + HTTPINIT - inicializoni http.

AT + HTTPPARA = "URL", - adresa URL.

AT + HTTPREAD - duke pritur për një përgjigje.

AT + HTTPTERM - ndaloni http.

Nëse gjithçka është bërë si duhet, linjat me komanda AT do të shfaqen në monitorin e portit. Nëse nuk ka lidhje me modemin, ai do të tregojë një rresht në të njëjtën kohë. Nëse lidhja GPRS është vendosur me sukses, LED në modul do të fillojë të pulsojë.

Unë dua t'ju prezantoj me një mënyrë shumë të thjeshtë për të kontrolluar furnizimin me energji elektrike nga distanca.
Ne do të përdorim priza të gatshme të kontrolluara me radio, kështu që nuk kemi nevojë të lidhim asgjë. Kjo është shumë interesante, sepse 220 V (për fillestarët) është më mirë të lihet vetëm.

Kodi

Nëse nuk përdorni GSMSHIELD, por ndonjë bibliotekë tjetër, atëherë kodi sigurisht që do të jetë i ndryshëm, por parimi do të jetë i njëjtë. Në intervale të caktuara kohore, kontrollojmë nëse kemi SMS të palexuar, i analizojmë dhe nëse një komandë e vlefshme ka ardhur nga një numër i autorizuar, atëherë dërgojmë një sinjal radioje duke përdorur funksionet mySwitch.switchOff ose mySwitch.switchOn, duke i kaluar adresën e prizës.
Përafërsisht. Në rastin tim, për mburojën e Seeedstudio, më duhej të hyja në GSM.cpp dhe të ndryshoja kunjat e vendosura në 7 dhe 8./ * Shembull i kodit të ndërprerësit GSM Arduino Ndez/fik priza të kontrolluara me radio Autor: Vladislav Ross, 2014 Kontakt: [email i mbrojtur] Ju duhet të shkarkoni: 1. rc-switch https://code.google.com/p/rc-switch/ 2. GSMSHIELD http://www.gsmlib.org/ Për GSMSHIELD: * Për të ndryshuar kunjat për Serialin e Softuerit, përdorni dy linjat në GSM.cpp. * Nëse jeni duke përdorur Mega, hiqni komentin "#define MEGA" në HWSerial.h * Ju mund të aktivizoni mesazhet e korrigjimit në portën serike duke përcaktuar DEBUG_ON * / #include "SIM900.h" #include #include "sms.h" #include "call.h" #include // 433MHz pin transmetues konst bajt RCpin = 12; char groupAdresa = "11111"; char smsLetters = "ABC"; char * Adresat e pajisjes = ("10000", // A "01000", // B "00100" // C); char adminNumber = "+74991356235"; // numrin tuaj të telefonit CallGSM thirrje; SMSGSM sms; RCSwitch mySwitch = RCSwitch (); numri char; statistika e bajtit = 0; char smsText; pozicioni i bajtit; pajisje intShkronjaIdx = -1; bajt i, j; konfigurimi i zbrazët () (gsm.fillim (2400); vonesë (10000); për (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?

Nëse prizat nuk duan të kalojnë në asnjë, mund të provoni të merrni një sinjal nga telekomanda juaj te marrësi. Ekziston një kod shembull në rc-switch.

Ç'pritet më tej?

Si mund të zhvillohet më tej ky projekt:
Së pari, ne kemi ende një tufë kunjash të mbetura në vetë Arduino dhe në mburojën GSM. Mund të lidhni disa sensorë ose pajisje me to. Për shembull, bëni monitorim në distancë të temperaturës ose ujitje të luleve.
Së dyti, ne përdorëm vetëm SMS, dhe moduli mund të transmetojë ende zë dhe GPRS. GPRS mund të transferojë shumë më tepër të dhëna. Përveç kësaj, nuk mund ta mbyllni telefonin kur telefononi, por, për shembull, merrni një telefonatë dhe ju lejoni të dëgjoni se çfarë po ndodh në vend.
Është gjithashtu e mundur që ju të dëshironi të merrni SMS kontrolli jo nga një numër, por nga disa. Në këtë rast, unë do të rekomandoja ruajtjen e numrave në librin e adresave në bibliotekë, ka funksione përkatëse.

Artikujt kryesorë të lidhur