Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ

Përvoja me modemin GSM SIM900.

Vassilis Serasidis

Pajisja është projektuar për menaxhimin e energjisë në distancë pajisje të ndryshme(Për shembull, Modemët ADSL, kompjuterët personalë, ndricim dhomash, te ndryshme pajisje shtëpiake), dhe gjithashtu mund të monitorojë statusin e tetë linjat dixhitale dhe më pas informoni përdoruesin për statusin e këtyre linjave, d.m.th. mund të përdoret si një lloj sistemi sigurie. Kontrolli dhe informacioni i përdoruesit kryhet duke përdorur me SMS.

Karakteristikat kryesore të pajisjes:

  • kontrolloni 4 reletë (ndezur/fikur);
  • aftësia për të monitoruar statusin e stafetës dhe 8 hyrjet dixhitale për dërgim të mëtejshëm SMS për përdoruesin me qëllim të informimit për gjendja e tanishme;
  • qark i thjeshtë, numër i vogël i komponentëve të përdorur;
  • kontroll me SMS. Komandat e kontrollit janë të mbrojtura me fjalëkalim (mund të ndryshohen nga përdoruesi) për të parandaluar pozitive false.

Diagrami skematik i pajisjes është paraqitur në Fig. 1.

Baza e pajisjes është një mikrokontrollues i korporatës ATtiny2313 dhe një modul GSM i prodhuar nga kompania.

Mikrokontrolluesi IC2 funksionon në një frekuencë prej 4 MHz, e cila vendoset nga një kristal i jashtëm kuarci X1.



Fig.2 Pamja e jashtme Moduli GSM GM-47

Për Puna GSM moduli kërkon një kartë SIM, e cila lidhet drejtpërdrejt me modulin duke përdorur një mbajtës të veçantë. Mikrokontrolluesi dhe moduli GSM mundësohen nga rregullatori IC1 LM1117T 3.3 me një tension daljeje 3.3 V. Në përgjithësi, mikrokontrolluesi mbetet funksional brenda intervalit 2.7 V - 5.5 V (me frekuenca e funksionimit deri në 10 MHz), për të siguruar përputhjen nivelet logjike Ne mund të fuqizojmë modulin GSM dhe mikrokontrolluesin nga rregullatori IC1.

Komunikimi me modulin GSM kryhet me një shpejtësi prej 9600 bps duke përdorur komandat AT. Vlen të përmendet se nivelet e tensionit për këtë komunikim janë 3.3 V në Mikrokontrollues AVR dhe 2,75 V nga moduli GSM. Prandaj, një transistor T5 BC547 u përdor për të përshtatur nivelet.

Moduli është i lidhur duke përdorur një lidhës në tabelën e qarkut të printuar.



Fig.3 Pllakë qarku i printuar me lidhës të instaluar për modulin GM-47

Karta SIM lidhet duke përdorur folenë K15, e cila ka një ndërprerës kufitar të integruar SW për të zbuluar praninë e një karte në mbajtëse.

Rele kontrollohet duke përdorur çelsat e bërë në transistorë BC547


Fig.4 Pamja e jashtme bordi i qarkut të printuar me modul të instaluar

LED D6 është krijuar për të treguar statusin e lidhjes së rrjetit dhe nëse pulson, do të thotë një lidhje e suksesshme me celularin Rrjetet GSM, e cila mbështetet nga karta SIM. Nëse LED është vazhdimisht i ndezur, kjo do të thotë që moduli nuk mund të lidhet me rrjeti celular.

Moduli GSM ka hyrje/dalje dixhitale dhe analoge, por autori nuk i ka përdorur në këtë projekt për të eliminuar rrezikun e dëmtimit të modulit.

Çfarë detyrash kryen mikrokontrolluesi AVR?

Pas furnizimit me energji në tabelë, mikrokontrolluesi pret derisa të inicializohet moduli GSM, d.m.th. moduli duhet të lexojë kartën SIM dhe të lidhet me rrjetin GSM që ai mbështet.

Pas inicializimit të suksesshëm, mikrokontrolluesi dërgon një komandë AT, që nënkupton zgjedhjen e memories së modulit si ruajtje SMS. Duhet të ketë një përgjigje moduli për këtë komandë, përndryshe komanda dërgohet përsëri.

Pas zgjedhjes së memories, mikrokontrolluesi dërgon komandën e mëposhtme. Kjo komandë i tregon modulit se mesazhet do të lexohen format teksti(dhe jo formati PDU, i cili gjithashtu mbështetet nga moduli).

Pastaj vjen komanda, falë së cilës nga teksti mesazhe SMS disa informacione do të fshihen, për shembull Numri SMS serveri, data dhe ora. Kjo është bërë për të reduktuar SMS dhe për të thjeshtuar funksionimin e mikrokontrolluesit me to.

Komanda e mëposhtme është krijuar për të lexuar SMS të ruajtur në adresën e parë në kujtesën e modulit.

Nëse ka tekst SMS, mikrokontrolluesi e lexon atë dhe kontrollon për fjalëkalimin e saktë. Fjalëkalimi i paracaktuar është 1234, i cili më pas mund të ndryshohet nga përdoruesi. Pas kontrollit të fjalëkalimit, kontrollohet prania e simbolit "*", që do të thotë se fjalëkalimi ndryshohet në 4 shifrat (gërmat) pas simbolit "*".

Pas kësaj, SMS përpunohet më tej për të zbuluar komandën e rezervuar ku X- nënkupton numrin e stafetës (1-4), Y- komanda ndezje/fikje stafetë, mund të marrë vlerat 1 (ndezur) ose 0 (off). Për shembull, komanda Relay2=1 do të thotë aktivizoni stafetën nr. 2.

Pas kësaj, mikrokontrolluesi përpunon SMS më tej për praninë e një komande Statusi, dhe nëse ka, lexon gjendjen e tetë linjave dixhitale dhe gjendjen e të gjitha releve dhe dërgon një SMS me mesazh me tekst në lidhje me statusin e linjave të kontrolluara në numrin nga erdhi komanda SMS. Në të njëjtën kohë, mos harroni këtë kartë SIM duhet të ketë mjete për të dërguar SMS.

Pas të gjitha këtyre veprimeve, mikrokontrolluesi fshin mesazhin SMS që ndodhet në adresën e parë në memorien e modulit dhe vazhdon të presë që të merret mesazhi tjetër SMS.

Dërgimi i komandave me SMS nga një telefon celular ndjek një sintaksë specifike. Le ta shohim duke përdorur komandat si shembull:

  1. Skuadra:1234*5678 stafetë1=1 stafetë2=0 stafetë3=1 stafetë4=1 Statusi
    Këtu kemi ekipin më intensiv. Fillimisht dërgojmë fjalëkalimin (1234) dhe tregojmë se do të ndryshohet (*) në ​​5678. Më pas ndezim reletë nr. 1, 3, 4 dhe fikim stafetën nr. 2. Përveç kësaj, më pas duke dërguar një komandë kërkojmë informacion për gjendjen e 8 sensorëve dhe të gjitha reletë.
  2. Skuadra:1234 Rele1=1 Stafetë2=0 Stafetë3=1 Stafetë4=1 Status
    Në këtë komandë SMS ne ndezim reletë nr. 1, 3, 4, fikim stafetën nr. 2 dhe kërkojmë informacion për gjendjen e sensorëve dhe reletë.
  3. Skuadra: 1234 1=1 2=0 3=1 4=1 Statusi
    Kjo komandë është e ngjashme me komandën e konsideruar 2), këtu i kemi lënë jashtë fjalët.
  4. Skuadra:1234 Statusi
    Me ndihmë, ne kërkojmë vetëm informacione për statusin e sensorëve dhe releve.
  5. Skuadra:1234 Rele2=0
    Në këtë komandë, siç mund ta shihni, ne fikim vetëm stafetën nr. 2

Diagrami skematik, vizatimi i bordit të qarkut të printuar, burimi(Ambler AVR) - .

Për të komentuar materialet nga faqja dhe për të marrë akses të plotë në forumin tonë ju duhet regjistrohen .

  • A është e mundur të përdoret një telefon celular në vend të modulit GM-47 SM?Për mendimin tim, një celular është më i lehtë për t'u marrë dhe më i lirë
  • Module të tilla nuk janë të disponueshme në treg. Dhe kështu pajisje interesante. Në përgjithësi, shumë gjëra interesante janë publikuar këtu, nëse e gjithë kjo do të ishte në dispozicion për ne...
  • Kontrolli me SMS është i mundur duke përdorur një modem GSM ose një telefon që përdoret si modem i lidhur me një kompjuter. Jeni të interesuar për detajet e zbatimit? Apo është ky opsion përdorimi i një kompjuteri shumë i rëndë për ju!? Mund të përdorni një mikro PC ose një kontrollues të përputhshëm me një modul GSM; ky opsion është më kompakt. Pra, pajisjet e specializuara të përmendura më lart, të cilat në thelb janë një modem GSM + kompjuter, mund të zbatohen në mënyrë të pavarur nga komponentët më të disponueshëm.
  • Është e mundur, mendoj unë, të përdoren module të përputhshme, sistemet e komandës së të cilave janë të njëjta...
  • Në modulet GSM dhe telefonat celularë, komandat e specializuara AT përdoren për kontroll dhe monitorim, grupi i të cilave është në thelb i njëjtë për prodhues të ndryshëm dhe pajisje të ndryshme të ngjashme, dhe në varësi të specializimit të pajisjes dhe veçorive të grupit të komandave, janë përfshirë komanda të veçanta shtesë. Kjo pajisje mund të konvertohet për t'iu përshtatur pothuajse çdo moduli GSM ose celular. Ne bëjmë një lidhës kontrolli në tabelë, i cili kryhet në 2 ndërfaqe me tela UART, në vend të 20 - 40 këmbëve për modemin, dhe ne modifikojmë pak kodin burimor ASM, i cili është i disponueshëm për ne (i cili mund të mos jetë as i nevojshëm!) dhe, natyrisht, nën projekt i ri faqosja e re e tabelës. Dhe ne marrim pajisje universale menaxhimit dhe kontrollit.
  • Këtu është një opsion zbatimi telekomandë në një modul GSM të disponueshëm SIM300D - http://electromost.com/index/mnogofu...kontrolja/0-35 Kur duke përdorur SMS Ekziston një pikë - dërgimi i SMS nga operatori nuk është i standardizuar me kohë. Prandaj, nuk rekomandohet të menaxhoni pajisjet kritike në këtë mënyrë. Për më tepër, është e domosdoshme të gjurmoni konfirmimin e komandës së ekzekutuar - përndryshe SMS do të "tërhiqet" dhe nuk dihet nëse komanda është ekzekutuar apo jo :). Prandaj, kur përdorni komunikimi celular Ngarkesat duhet të menaxhohen në "kohë reale" me konfirmimin e komandave të ekzekutuara. Për shembull, përdorni GPRS. Ose të paktën DTMF - si në pajisjen, lidhja për të cilën u dha më sipër.
  • Zotërinj, ditë të mbarë të gjithëve! A ka provuar dikush ta montojë këtë pajisje? Përpjekjet e mia duke përdorur Moduli Neoway M590 nuk ishin të suksesshme. Pas leximit të SMS-së së marrë, mikrokontrolluesi ndalon për disa sekonda, më pas e fshin atë nga memoria dhe vazhdon të dërgojë komanda AT në modul në një cikël. Në këtë rast, as gjendja e stafetës nuk ndryshon dhe as mesazhi nuk dërgohet përmes komandës "Status". A ka dikush ndonjë mendim për këtë?
  • Firmware-i i pajisjes nuk funksionon. Unë gjithashtu montova një pajisje të tillë në një tabelë me instalime elektrike origjinale, dhe me GR-47. Reagimi është i njëjtë si i juaji. Kam lexuar gjithashtu në një forum perëndimor për problem i ngjashëm këtë pajisje. Për të mos u ngatërruar me listën në ASMA, e rishkrova atë në CodeVision AVR dhe futa optimizimin: mos e drejtoni vazhdimisht ciklin e votimit, por në fillim të punës me modemin, dërgoni një komandë për të lëshuar një mesazh në terminal. në lidhje me mbërritjen e një SMS, dhe më pas analizoni SMS-në pasi të arrijë mesazhi i marrjes.
  • Kështu që kërkua pothuajse të gjithë internetin në kërkim të së vërtetës, madje i shkrova autorit Serasidis Vasilis duke i kërkuar që të ndihmonte për ta kuptuar atë (në anglisht, sigurisht), por kurrë nuk arrita asgjë. Më duket se prita këtu qëndron në dallimin mes numrave tanë dhe atyre të huaj. Nga lista e programit është e qartë se ata e kanë këtë numër një shifër më shumë; në përputhje me rrethanat, është e nevojshme të rregulloni parametrin e regjistrit "No_Of_ignore_bytes" (R25) kudo. Edhe pse, mund të gaboj. Në një nga faqet e specializuara, ky problem u ngrit pikërisht si i yni, dhe duket se atje u zgjidh me sukses, por si ishte, për fat të keq, u heshti. Gjithashtu nuk është e mundur të regjistroheni në këtë faqe për të komunikuar me pjesëmarrësit e temës - ata ju nisin pa shpjegim, pikërisht në fazën e regjistrimit. Këtu është lidhja: http://www.edaboard.com/thread290544.html I dashur max7780, nëse pajisja juaj funksionon, a mund ta ndani programin? Unë do t'ju isha shumë mirënjohës, pasi njohuritë e mia në programim nuk më lejojnë të shkruaj të tilla program kompleks nga e para, as në ASMA, as në SI, por thjesht e kam thyer trurin për të zgjedhur ekzistuesin në dy muaj.
  • E kam montuar pajisjen 5 vjet më parë, nëse e gjej, ndoshta do të postoj kodin burim nesër. Por jo të gjitha funksionet zbatohen atje, për shembull, unë nuk krijova komandën e statusit, e cila lexon gjendjet e hyrjeve dhe nuk ka asnjë garanci që programi do të funksionojë me modemin tuaj; ndoshta ka disa ndryshime në përgjigjet ndaj komandat ose në vetë komandat. Gjithashtu, në kodin burimor origjinal nuk ka analizë të përgjigjes së modulit, modemi mund të raportojë një gabim dhe programi do të vazhdojë të lëshojë komanda, ose modemi thjesht mund të ngrijë dhe mikrokontrolluesi thjesht nuk do të jetë në gjendje ta rindizë atë. pasi që bordi origjinal nuk ka kontrollin e PowerPin-it të modulit. Unë do të analizoj fletën e të dhënave për modulin tuaj dhe do të ndihmoj sa më mirë që mundem. Dua të them gjithashtu se 590 është një katrahurë e rrallë, bleva tre module, vetëm një funksionoi normalisht pa defekte. Gjatë ribërjes së softuerit, detyra nuk ishte të siguronim funksionimin pa probleme të pajisjes për një kohë të gjatë, por thjesht të nisni harduerin, ka gjithashtu shumë kode jo optimale, do të ishte më mirë që unë t'ju dërgoja këtë program me email.
  • Nga dy modemet 590 që bleva, vetëm njëri funksionoi gjithashtu normalisht, i dyti dërgon të gjitha llojet e mbeturinave që mund të shihen në terminal. Unë u përpoqa të zgjedh shpejtësinë - ishte e padobishme. Dhe e dyta funksionon qartë me një shpejtësi prej 9600, por për disa arsye nuk dëshiron të jetë mik me mikrokontrolluesin, megjithëse këtu kemi zbuluar tashmë se problemi ka shumë të ngjarë në vetë programin. Megjithatë, për mua mbetet ende një mister pse funksionon për disa dhe jo për të tjerët. Duket se GM47 dhe NEOWAY kanë plotësisht të njëjtat protokolle komandimi AT, i vetmi ndryshim është se Neoway nuk ka një portë mikrofoni, që do të thotë se është e pamundur të zbatohet një thirrje zanore. A mbetën të njëjta qarku dhe kontrolluesi juaj, apo ndryshuan? Po, do të jem i lumtur për çdo zgjidhje, qoftë edhe "të papërpunuar", sepse atëherë ajo mund të modifikohet siç pritej. Gjëja kryesore është baza. Kështu që unë do të jem jashtëzakonisht mirënjohës nëse e dërgoni programin në adresë [email i mbrojtur], atëherë do të jetë e mundur të ecim më tej në këtë drejtim, sepse tani thjesht kam arritur në një qorrsokak...

Pra, pas një kohe të gjatë të kuptuarit të ndërlikimeve të punës me modulin GSM SIM900D, po shpallim projektin e parë të punës, duke kombinuar një sistem sigurie me aftësinë telekomandë. Shkurtimisht, pajisja është në gjendje të dërgojë SMS informuese nëse aktivizohet sensori i ndërhyrjes, të bëjë thirrje për të mundësuar monitorimin audio të dhomës, monitorimin e temperaturës dhe dërgimin e saj me SMS sipas kërkesës, si dhe kontrollimin e një sasie të ngarkesës bazuar në një komandë të dërguar. me SMS.

Kushdo që e ka ndjekur këtë temë e di që unë kam një modul GSM dhe një modul kontrolli për të - dy tabela të ndryshme, i lidhur me një sanduiç (shih tabelën me SIM900D dhe tabelën e kontrollit).Aktiv bordi i kontrollit Përveç mikrokontrolluesit ATmega32a, ekziston një modul energjie i bërë në një konvertues LM2596; ai fuqizon qarkun tension konstant 3.5 volt. Në thelb Çdo do të bëjë një burim tjetër energjie, gjëja kryesore është se është në gjendje të tërheqë shkurtimisht deri në 2 amper (ky është pikërisht konsumi i modulit GSM në kohën e regjistrimit).

Për hir të lehtësisë, një ekran nga një telefon Nokia3310 është i lidhur me bordin e kontrollit, metodat e punës me të cilat janë përshkruar tashmë më shumë se një herë në këtë faqe. Falë ekranit, mund të përcaktoni shpejt statusin e pajisjes dhe vlerën e sensorëve.

Si rezultat, diagrami i lidhjes që rezulton dukej kështu (i klikuar):

Numërimi i kunjave të mikrokontrolluesit në diagram është dhënë për një paketë DIP, kështu që nëse përsëritni qarkun duke përdorur një mikrokontrollues në një paketë TQFP, kini kujdes, numri i pineve është i ndryshëm. Mikrokontrolluesi është i akorduar nga një kuarc i jashtëm në 16 MHz.

Linjë Kontrolli kalimi nga kolektori i tranzistorit Q2 në portin PortD.4 i mikrokontrolluesit u shtua për risigurim dhe nevojitet për të monitoruar nëse moduli është i ndezur. Meqenëse pragu i fikjes për SIM900 është 3,2 volt, edhe me një rënie të lehtë të tensionit, moduli do të fiket automatikisht, ndërsa mikrokontrolluesi do të vazhdojë të punojë dhe të ekzekutojë programin (pragu i rivendosjes për ATmega32a është 2,7 volt). Ne gjendje pune ne kete linje eshte nivel i ulët. Nëse mikrokontrolluesi e zbulon atë në këtë linjë nivel të lartë, funksioni do të ekzekutohet Rifillo, fillo përsëri Moduli GSM.

Dhe kjo është se si duket në veprim për momentin.

Pas rishikimit përfundimtar të programit, e gjithë kjo do të futet në kasë dhe lidhjet e shkëputshme Ata do të vulosen për besueshmëri.

Ekrani tregon informacionin bazë për statusin e pajisjes: emrin e operatorit, cilësinë e sinjalit të komunikimit, vlerën e temperaturës nga sensori 18b20, statusin e daljes së ngarkesës dhe sensorin e ndërhyrjes, si dhe kohën dhe datë.

Video e aktivizimit të modulit

Ora dhe data janë marrë nga ora e integruar në modulin GSM. Për funksionimin e tyre, është e nevojshme të keni një bateri 3 volt të lidhur me pinin 15 (VRTC). Rekomandohet instalimi i diodës D1 me një rënie të tensionit të ulët, për shembull Schottky. Vendosja e orës dhe datës bëhet me dorë, komandat u përshkruan më herët

Afishohet data në formatin e marrë nga moduli, pra fillimisht viti, pastaj muaji dhe data. Nuk kam ndryshuar ende asgjë këtu.

Sensori DS18B20 është përgjegjës për matjen e temperaturës; ai është i lidhur me pinin PortD.3 të mikrokontrolluesit.

Mund të lidhni çdo ngarkesë me PortD.6 dhe ta kontrolloni atë nëpërmjet komandave SMS. Tani kam një LED të varur - D4 në diagram. Por asgjë nuk ju pengon të varni një stafetë ose triak këtu dhe të kontrolloni diçka më serioze.

Për qëllime sigurie, është planifikuar të përdoret një sensor lëvizjeje HC-SR501, i blerë në E-bay. Nëse aktivizohet, një logjik shfaqet në daljen e sensorit. Duke e kapur atë, mikrokontrolluesi do t'i japë një komandë duke dërguar SMS mesazhe nga Numri i telefonit të specifikuara në program.

Dalja e sensorit është e lidhur me kutinë PortD.7 të mikrokontrolluesit; në diagram, sensori zëvendësohet në mënyrë konvencionale nga një buton.

Në vend të një sensori lëvizjeje, mund të instaloni çdo mjet tjetër për zbulimin e ndërhyrjeve - sensorë të hapjes së dritareve dhe dyerve, sensorë të thyerjes së xhamit, sensorë fotoelektrikë etj. në përgjithësi, gjithçka që mund të bëjë imagjinata juaj.

Për të parandaluar dërgimin e përsëritur të SMS-ve paralajmëruese në rast të një aktivizimi të sensorit, është futur një kufizim në program: pas dërgimit të SMS-së së parë, vendoset një ndalim për dërgimin pasues. Për të riaktivizuar dërgimin e mesazheve të njoftimit kur sensori aktivizohet, duhet të dërgoni një SMS në modul me nga një ekip i caktuar. Kur dërgimi i SMS është i ndaluar, një pikëçuditëse do të shfaqet në ekran pranë statusit të sensorit.

Lista e komandave

Dhe këtu është lista e komandave në SMS që përpunon moduli. Për lehtësi dhe thjeshtësi, komandat janë dixhitale, ndoshta në versionet e ardhshme Firmware do të ketë emra komandash më kuptimplotë :)

0 - Shkëputja e ngarkesës (Pin PortD.6 është vendosur në 0 logjike)

1 - Ndizni ngarkesën (Pin PortD.6 është vendosur në 1 logjik)

2 - Pasi të ketë pranuar këtë komandë, moduli do të thërrasë përsëri numrin e telefonit të specifikuar në program

3 - Kërkoni bilanc dhe dërgojeni përsëri me SMS numri i specifikuar. Këtu është një nuancë e rëndësishme- përgjigjet për Kërkesat USSD duhet të vijë në latinisht. Përndryshe, në vend të tekstit kuptimplotë, përgjigja do të jetë një mesazh në kodim heksadecimal. Duhet të kontrolloni me operatorin tuaj se si të konvertoni USSD në latinisht. Për shembull, në kartën SIM që përdor nga Smarts, duhet të futni *102*1# (në megafon *105*0#)

4 - Kërkesa për temperaturë. Vlera e temperaturës do të na dërgohet me SMS.

5 - Lejo dërgimin e mesazheve nëse aktivizohet sensori i ndërhyrjes.

6 - Ndalimi i dërgimit të SMS njoftimeve nga sensori i ndërhyrjes.

? - Me këtë komandë, moduli do të na dërgojë një SMS që përmban informacion i pergjithshem në lidhje me pajisjen, si p.sh. vlera nga sensori i temperaturës, nëse ngarkesa është e ndezur, statusi i hyrjes nga sensori i ndërhyrjes dhe nëse lejohet dërgimi i mesazheve SMS nga ai.Për shembull, kështu mund të duket një mesazh: temperatura +24, ngarkesa e fikur, dalja e sensorit të lëvizjes 0, dërgimi i SMS nëse aktivizohet është i ndaluar.

Tani si të konfiguroni modulin për të dërguar SMS në numrin tuaj. Në arkivin me programin gjejmë skedarin kryesor të programit, ai quhet "program" :) dhe gjejmë një konstante në të:

Konst Numri i telefonit = "+7908390xxxx"

futni numrin tuaj të telefonit këtu, përpiloni programin dhe merrni skedar hex firmware.

Programi, si gjithmonë, është shkruar në Bascom-AVR, kështu që të kuptuarit e algoritmit për të punuar me modulin GSM është mjaft i thjeshtë. Paç fat!

Dhe së fundi, një demonstrim se si moduli përpunon komandat.

Falenderim i veçantë për mikun e vjetër të faqes Sergei RD3AVJ për pjesëmarrjen dhe ndihmën e tij në zhvillim!

UPD: nga 10/31/12

Kam modifikuar pak firmware-in, tani për të vendosur numrin në të cilin do të dërgohet SMS njoftimi, nuk keni nevojë të ripërpiloni programin. Mjafton të dërgoni një SMS me një mesazh në modul "Numri i parë" (pa thonjëza) dhe numri nga i cili është dërguar kjo komandë regjistrohet në memorien jo të paqëndrueshme të mikrokontrolluesit.


Përshëndetje!
Këtu lindi detyra për të menaxhuar Vilë, monitoroni temperaturën, dyert, dritaret. Dhe pastaj lindi pyetja në lidhje me mjetin e transmetimit të të dhënave. Epo, telat dhe një kanal radioje nuk nevojiten më për shkak të kostos së lartë, linjat e komunikimit me fibra optike janë thjesht një ëndërr, por GSM është ajo që ju nevojitet. Në fillim më ra syri tek telefonat e vjetër "Motorola", "Nokia", "SonyEricsson". Shikova, u ktheva dhe ndryshova mendje. Së pari, nuk doja të bashkoja kontaktet e butonit dhe nuk kishte asnjë reagim. Së dyti, të kuptuarit e softuerit të telefonit nuk është aspak një punë e madhe. Në përgjithësi, në mendime krijuese dhe lundrues në hapësira të hapura rrjet i gjere boteror Pas kapjes së disa viruseve, u gjet një kompromis. Dhe punoni me softuer dhe pa asnjë buton. Moduli i ofron të gjitha këto SIM900D. Pse më pëlqeu ai?
- E para është lehtësia e instalimit. Këtë do ta shihni më vonë. - E dyta është komunikimi nëpërmjet UART. (Kjo do të thotë MK + SIM900D = komunikim normal) - E treta është furnizimi me energji i modulit nga 3 në 4.8 volt. Hosh AVR, hosh ARM. Shije. Epo, mjaft me tekstet, është koha për t'u marrë me biznesin.
Ky modul duket si ky.

Në lidhje me instalimin. Siç mund ta shihni, moduli është krijuar për montimi në sipërfaqe. Dimensionet e jastëkëve të kontaktit janë mjaft të mëdha edhe për LUT. Më poshtë është një foto e pajisjes sime.

Siç mund ta shihni, asgjë e komplikuar. Tani le të flasim për diagramin e lidhjes për këtë mrekulli. Le të shohim manualin. Dhe ne shohim pinout.

Po, ka shumë gjëra, por ne nuk do t'i përdorim të gjitha. Gjëja e parë që duhet të bëjmë është të lidhim të gjitha kunjat "GND" së bashku. Nëse shikoni djathtas këndi i sipërm, atëherë mund të shihen tre gjetje të veçanta. Dy "GND" dhe "ANT". Këto përfundime janë vendosur në këtë mënyrë për një arsye. Le të shohim dokumentacionin për një foto të lidhjes së antenës.

Kontaktet 59 dhe 61 duhet të jenë sa më afër terminalit të antenës. Qarqe shtesë të theksuara në vija me pika nevojiten për të lidhur antenat me kabllo. Prandaj, lidha lidhësin SMA sa më afër kunjave 59, 60, 61 dhe nuk u mërzita me qarkun përkatës, ndërsa me antenë në një kabllo 3 metra dhe në një vend me pritje shumë të dobët, shtrydha 13 pikë. nga 31 nga moduli.Lidhësi është i dukshëm në foton e mësipërme. Më saktësisht, këmbët janë prej saj)) Vetë lidhësi është në anën tjetër. Në këtë rast, kontaktet 59 dhe 61 duket se përqafojnë antenën. Epo, diçka si kjo. Tjetra, le të flasim për kartën SIM. Për ta instaluar, përdora këtë lidhës (SIM ICA-501-006-01-F7)

Gjëja më interesante është se gjeta 3 opsione për pinout të kartave SIM. Cilin duhet të përdor? Unë nuk do të prezantoj ndonjë intrigë, por për thjeshtësi, do të jap pikën e këtij lidhësi. Pamje nga lart.

Por kjo nuk është e gjitha. Nëse shikoni në manual diagramin e lidhjes për kartën SIM, mund të shihni atje një mikroqark të caktuar të quajtur SMF05C. Ky mikroqark përmban deri në 5 dioda mbrojtëse. Nevojitet për të mbrojtur kontaktet e kartës SIM. Sigurisht, nuk keni pse ta instaloni, por atëherë bëni kujdes dhe mos i prekni kontaktet me gishta!!! Si njeri mëkatar, nuk mund të garantoj për veten time, ndaj e lidha mikruhun. Dhe këtu është vetë diagrami.

Natyrisht jepet për 8 kontakt kartën SIM, por për 6 do të jetë njësoj. Ka vërtet dy probleme me këtë mikroqark. E para është se ku dreqin mund ta gjesh atë. Dhe e dyta eshte madhesia e tij... Kur mora porosine dhe e nxora, e vendosa ne tavoline... Shkurt ne foton e dyte nga lart eshte salduar mes kartes SIM dhe baterise. Për krahasim, rezistorët janë 0805. Epo, në të djathtë është një transistor në një paketë SOT-23. Pra, duket sikur e kemi renditur kartën SIM, le të vazhdojmë. Dhe pastaj teknologjia e ndriçimit. Në përgjithësi, kjo nuk është për të gjithë. Meqenëse të gjitha këto sinjale mund të futen direkt në MK dhe le ta zgjidhë vetë atje. I nxora të gjitha nga sensi i tyre i bukurisë. Kështu që vendosni vetë.
- I pari është sinjali nëse moduli është i ndezur apo jo (STATUS) log 1 - I dyti është sinjali për praninë e regjistrimit të rrjetit (NETLIGHT) log 1/0 (pulsues) Nëse pulson me të njëjtën frekuencë, do të thotë se nuk jeni regjistruar në rrjet. Nëse hendeku është i gjatë, do të thotë se ka një lidhje me rrjetin. - E treta është një regjistër i sinjalit të thirrjeve/sms (RING) 0 Ndizet nëse disponohet telefonatë në hyrje dhe do të pulsojë kur merrni një mesazh SMS. Dy sinjalet e para duhet të lidhen nëpërmjet Transistor NPN në modalitetin kyç.

Dhe sinjali i tretë (RING) duhet të lidhet përmes një transistori PNP. Një sinjal tjetër i rëndësishëm është butoni për të ndezur dhe fikur modulin. (Ku do të ishim pa të). Kjo është ajo që na ofron manuali.

Kjo do të thotë, ne aplikuam log 1 në bazën e tranzitorit për 1 sekondë dhe moduli u ndez.
Tani le të flasim për të ushqyerit. Po, nuk do të më shqetësonte një pjatë e mirë mundjeje tani, apo jo? Mirë, le të vazhdojmë. Moduli mundësohet nga një tension prej 3 deri në 4.8 volt. Gjithçka duket e thjeshtë, por nuk është ashtu. Kur bëni një telefonatë, dërgoni një SMS ose kërkoni për një rrjet, moduli mund të kërkojë deri në 2A. Uau. Kështu që fansat e LM7805 dhe Krenok mund të zhgënjehen. Për fat të mirë, manuali përmban dy qarqe të bazuara në mikroqarqet MIC29302 (nuk e gjeta kurrë në shitje) dhe LM2596 (mund ta blini këtë). Por unë jam dembel dhe mbledh ushqim me këtë sasi e madhe Unë thjesht nuk e doja rripin. Kërkova në internet dhe e gjeta. Ka një stabilizues i mirë për procesorë të tillë si "Stump", "AMD" në 3.3V dhe deri në 7.5A. Epo, unë mendoj se kjo është ajo që ju nevojitet dhe ju mund të fuqizoni ARM dhe modulin. Këtu është një diagram i kësaj mrekullie.

Dhe ja si duket e montuar.

E instalova radiatorin nga frika; në parim, mikroqarku nuk nxehet edhe gjatë një telefonate. Dhe gjëja e fundit që duhet t'i kushtoni vëmendje është bateria. Është e nevojshme për të mbajtur gjallë orën e kohës reale. Gjëja më e rëndësishme është që këtë përfundim nuk mund ta lini në ajër. Personalisht, kam rënë dakord për lidhjen e baterisë, gjë që ju uroj. Ju, sigurisht, mund të ngjitni dy AA)) por është disi shumë i madh, por në formën e një tableti 2032 në 3v është ajo që ju nevojitet. Për fat të mirë, ato nuk janë të shtrenjta dhe ndarjet mund të ngjiten direkt në tabelë. Për mendimin tim kjo është zgjidhja më e thjeshtë. Ti vendos. Epo, kjo është e gjitha. Ja si duket gjithë ky turp bashkë dhe në gjendje pune.

Në artikullin tjetër do t'ju tregoj se si e prisha këtë modul, por programatikisht përmes terminalit duke përdorur komandat AT.
Unë parashtroj diagramet në PCAD-2006
Arkivi me skedarët e modulit GSM.
Arkivi me skedarët e bllokut të stabilizimit.
Vazhdimi i serisë së artikujve rreth modulit GSM.
Komandat AT.
Komunikimi i modulit me ATmega8515.
Pllakë zhvillimi e bazuar në SIM900D


Foli 14.03.13

Do të doja të dija më shumë rreth komandave AT, UART dhe punës direkt me këtë në CodeVision

Alexey 03/15/13

Unë i kuptoj komandat AT. Nuk dua të postoj gjysmën e punës sepse kam disa pyetje. Por me UART dhe CVAVR gjithçka është e thjeshtë. Sapo të kuptoj komandat AT, do të postoj menjëherë se cilat komanda dhe si t'i dorëzoj ato nga CVAVR.

Anatok 04.11.13

Është e gjitha e bukur. Por nëse alarmi do të punonte të paktën në minus 30 gradë dhe do të ngarkohej me panele diellore të fshehura, veçanërisht në dimër, atëherë do të kishte shumë njerëz që dëshironin të kishin një pajisje të tillë.

Alexey 04.11.13

Moduli GSM konsumon deri në 2A kur regjistrohet në rrjet ose kur bën një telefonatë ose kur komunikon nëpërmjet GPRS. Burime të tilla kërkojnë një bateri të mirë, dhe në -30 bateria nuk do të zgjasë shumë. Edhe në stacionet e motit në sensorë rrugësh, rekomandohet përdorimi i baterive të thjeshta.

Ariu 11.11.13

Nëse është akoma relevant dhe interesant...shikoni EAT për SIM900. Brenda ARM ka një SDK në të cilën mund të ngarkoni aplikacione në SIM900 nga të cilat mund të bëni shumë gjëra... për shembull, dërgoni të njëjtat komanda AT... + tastierë + ekran SPI... + 2 ADC :) Kalofshi një mbrëmje të këndshme :)

Ariu 11.11.13

Por është ende shumë bukur të bësh energji për të në L5973D. Po, është shkruar rreth 2A në fletën e të dhënave... por në praktikë këto janë impulse shumë afatshkurtra. Ajo funksionon shkëlqyeshëm për mua, për shembull me Arduino Mega, i cili vetë mundësohet nga Porta USB(e cila ka një rrymë prej 0,5 A)

Alexey 11.11.13

Ky është fërkimi. Ne fillim e kam ndezur edhe nga 7805, gjithcka ka funksionuar dhe me pas bam... Dhe kur lidhet me rrjetin fiket cdo gje dhe pastaj riniset. Me sa duket qeni roje rifillon pas një sulmi me ushqim. Dhe me L7953D do të jetë e bukur, por ku mund ta marr dhe sa do të kushtojë :) Kështu që kalova në IRU1075

Alexey 11.11.13

Kërkoj falje për gabimet, është GOODROYD-i i mallkuar që skalit kërpudhat për mua. Ai mendon se është më i zgjuar. Unë nuk do të modifikoj, le të ketë turp Google për punën e tyre.

Xha Misha 24.12.13

Kur regjistrohem në rrjetin Atmega, ai rindizet. Edhe pse kushton puls dcdc. Kondensatorë 200 mikrofarad. Dhe ndonjëherë funksionon në mënyrë të qëndrueshme. Unë tashmë jam i rraskapitur.

Alexey 25.12.13

Skema në studio. Është mjaft e vështirë të kuptosh problemin me fjalë.

Xha Misha 25.12.13
Xha Misha 25.12.13

Http:

Alexey 25.12.13
Sergej 19.07.14

Përshëndetje Alexey! Keni pllaka te gatshme me sim900 mund ti blej?

Alexey 19.07.14

Gati në çfarë kuptimi? Vetë moduli tashmë është montuar dhe gjithçka që mbetet është të bëhet një tabelë me daljet dhe hyrjet e nevojshme për një pajisje specifike. Ai në këtë artikull është vetëm një tabelë demo për korrigjimin e programeve. Një pajisje specifike kërkon dimensionet, vendndodhjen e lidhësve, daljet e kufjeve dhe mikrofonit. Ku do të jetë lidhësi i antenës? Jepni informacion më të detajuar për atë që ju nevojitet.

Andrey 28.09.14

Siç e kuptoj, ky është një prototip i shallit që mezi pres ta shoh. Vetëm në versionin komercial ishte i martuar me një furnizim me energji elektrike dhe i përmirësuar me dalje audio. Se ka një zhurmë të madhe.

Alexey 28.09.14

Në fakt është. Sapo vrava disa zogj me një gur. Zgjidhet problemi i vjetër me furnizimin me energji elektrike dhe përputhjen e nivelit në UART. Dhe për hyrje dhe dalje audio të shtuar elegant. Në fakt një celular i gatshëm.

Andrey 28.09.14

Do të doja të jap një kontribut për të ardhmen. në fakt këtë tarifë nyja e përfunduar. Dhe praktikisht mund të përdoret në produktin e përfunduar. megjithatë, ekziston një POR. Me një tendë meson, është më mirë ta vendosni sipër (lidhës i antenës, qasja në kartën SIM), kështu që këshillohet të lini vrima paralele me të gjitha kunjat për "periferikët" për të njëjtat kunja me mundësi duke i bashkuar ato në drejtim "poshtë". Ato. Desha këtë pajisje vendoseni në tabelën e mikrokontrolluesit, vendoseni nën tuajin, ngjitni lidhësit e çiftëzimit në të dhe vendoseni në ankorim. Gjithashtu me

Andrey 28.09.14

Unë hëngra gjysmën e mesazhit, por shpresoj se ideja është e qartë-)

Alexey 28.09.14
Sergej 02/01/15

Më tregoni pse moduli nxehet dhe nuk lidhet me rrjetin?

Alexey 02/01/15

Ka disa arsye për këtë. Së pari, të ushqyerit është tejkaluar. Së dyti, plusi i shkoi atij të përgjithshëm? Ju duhet të shikoni me kujdes këmbët e fuqisë. Së treti, nëse barku i modulit prek linjat e furnizimit. Ka disa kontakte teknologjike në bark që duhet të izolohen nga çdo përcjellës. Së katërti, terminali i antenës nuk është i shkurtuar përfundim i përgjithshëm. Për të qenë më të saktë, duhet të shikoni tabelën. Më dërgo tarifën me email dhe do të shoh nëse ka diçka që nuk shkon atje.

Sergej 02/01/15

Une kam pllaka fabrike, MasterKit BM8039 dhe te dyja kane te njejtin problem... kur fut nje karte SIM, moduli fillon te nxehet dhe nuk ka rrjet.

Alexey 02/01/15

Është mjaft e vështirë të thuhet. Qarku është në fabrikë, ju duhet të ngjiteni në tabelë. Nga dokumentacioni del qartë se bordi nuk ka diodat mbrojtëse të rekomanduara për kartën SIM. A kanë vetë karta dhe lidhësi të njëjtat kunja? Moduli 300 eshte i vjeter dhe per mendimin tim funksionon vetem me karta SIM 5V, por tani jane te gjitha 3V. Por mund të gaboj. Duhet të shikoni vetë tabelën, është kaq e vështirë të thuash diçka. Nëse simptoma është e njëjtë në të dyja, atëherë do të bija në drejtim të lidhësit dhe tensionit të kartave SIM. Edhe një herë, kartat moderne SIM janë 3 volt.

Sergej 02/01/15

Kushton sim900D...nuk ka dioda kur fus karten del rryme ne modul dhe fillon te ngrohet por psh ne karten SIM. nuk funksionon nga 9 metra...

Sergej 02/01/15

Fillimisht ata funksionuan mirë ... më pas diçka shkoi keq ... nuk mund ta kuptoj se çfarë..

Sergej 02/01/15

A ka ndonjë mënyrë për të kontrolluar modulin pa e shkëputur atë?

Alexey 02/01/15

Çfarë shkurtoi saktësisht? Nëse nuk ka energji në kartën SIM, atëherë kam frikë se linja për kartën SIM është e vdekur. Sa këmbë ka Simka? 6 apo 8? Për të kontrolluar, mund të komunikoni me modulin nëpërmjet autobusit UART 3, 4 këmbësh pa futur një kartë SIM. Nëse ai refuzon të pranojë komandat AT, atëherë mendoj se mund ta varrosim.

ANONIM 02/01/15

Nuk e di saktësisht se çfarë e shkurtoi atë .. 8 këmbë .. por si të komunikoj?

Alexey 02/01/15

A ka edhe 8 në lidhës? Merrni çipin FT232RL dhe montoni përshtatësin USB<->TTL, lidhni në UART të modulit, hapni një terminal, për shembull Putty, shkruani AT dhe shtypni enter. Nëse kthehet në rregull, atëherë gjithçka nuk ka humbur. Nëse ka heshtje... Në koshin e plehrave. Dhe po, çfarë lloj LED janë në tabelë? Si përcaktohet regjistrimi në rrjet?

Sergej 02.02.15 03:12

Ka edhe 8 në lidhës...ka dy LED në tabelë, jeshile dhe e kuqe, prania e rrjetit përcaktohet nga drita jeshile që pulson një herë në tre sekonda...a mund të fus disi një foto të tabelës ?

Alexey 02.02.15 07:42

Është më e lehtë të shkosh në forum.

Sergej 02.02.15 14:02

Nëse nuk futni një kartë SIM, a do të thotë se duhet të furnizoni modulin me energji elektrike?

Alexey 02.02.15 15:48

Nuk mund ta dalloj nga gjethet e çajit. Më duhet ose një skemë ose një tabelë. Dhe çfarë lidhje ka furnizimi me energji i modulit dhe kartës SIM? Ka shumë të ngjarë që kryqëzohet me ndonjë mikrokontrollues tjetër. Ai furnizon ushqimin. Në përgjithësi, keni nevojë për një diagram. Dhe është si të bësh një diagnozë përmes telefonit.

Sergej 02.02.15 15:56

Ku në forum mund ta postoj diagramin?

Sergej 02.02.15 15:57

Energjia vjen në modul vetëm kur futni një kartë SIM

Alexey 02.02.15 19:27

Epo, moduli SIM900D nuk e ka atë. Për të ndezur modulin, duhet të mbani nivelin e ulët në këmbën 12 dhe më pas ta ngrini atë. Karta SIM nuk mund të futet ose hiqet fare kur moduli është i ndezur, ekziston mundësia e djegies së portit. Nëse shikoni dokumentacionin, mund të gjeni rekomandime atje për instalimin e diodave mbrojtëse në linjën e portit të kartës SIM. Në forum. Krijo një temë dhe posto një foto.

Evgeniy 09/08/15 12:04

Kur aplikoj tension në modul, ka një potencial pozitiv në këmbën e 12-të dhe një potencial pozitiv në këmbën e 5-të (me kusht që këto këmbë të varen në ajër). Ju lutem më tregoni, a duhet të ketë një zero në këmbën e 5-të? Nëse jo, ju lutem më korrigjoni.

Alexey 09/08/15 13:21

Pjesa e 12-të është përfshirja e modulit. Kur futet energjia, mbi të varet 1. Për të ndezur modulin, duhet të shtypni këmbën e 12-të në telin e përbashkët për disa sekonda, domethënë të aplikoni 0. Kur energjia furnizohet me modulin 5, këmba duhet të tërhiqet në telin e përbashkët me dy rezistorë (kjo mund të shihet nga diagrami i lidhjes së transistorit në modalitetin e ndërprerës) dhe duhet të jetë 0, pasi baza duhet të tërhiqet deri në zero për të mbyllur plotësisht transistorin. Pas shtypjes së këmbës së 12-të në zero, 1 duhet të shfaqet në këmbën e 5-të, dhe pas një kohe një gjarpërim që tregon statusin e disponueshmërisë dhe lidhjes me rrjetin.

Pra, pas një kohe të gjatë të kuptuarit të ndërlikimeve të punës me modulin GSM SIM900D, po shpallim projektin e parë të punës që kombinon një sistem sigurie me mundësinë e telekomandimit. Shkurtimisht, pajisja është në gjendje të dërgojë SMS informuese nëse aktivizohet sensori i ndërhyrjes, të bëjë thirrje për të mundësuar monitorimin audio të dhomës, monitorimin e temperaturës dhe dërgimin e saj me SMS sipas kërkesës, si dhe kontrollimin e një sasie të ngarkesës bazuar në një komandë të dërguar. me SMS.

Kushdo që e ka ndjekur këtë temë e di që unë kam një modul GSM dhe një modul kontrolli për të - dy borde të ndryshme të lidhura me një sanduiç (shih tabelën me SIM900D dhe tabelën e kontrollit). Në bordin e kontrollit, përveç mikrokontrolluesit ATmega32a, ekziston një modul i energjisë i bërë në një konvertues LM2596; ai fuqizon qarkun me një tension konstant prej 3.5 volt. Në parim, çdo burim tjetër energjie do të bëjë, gjëja kryesore është se ai është i aftë të tërheqë shkurtimisht deri në 2 amper (ky është pikërisht konsumi i modulit GSM në kohën e regjistrimit).

Për hir të lehtësisë, një ekran nga një telefon Nokia3310 është i lidhur me bordin e kontrollit, metodat e punës me të cilat janë përshkruar tashmë më shumë se një herë në këtë faqe. Falë ekranit, mund të përcaktoni shpejt statusin e pajisjes dhe vlerën e sensorëve.

Si rezultat, diagrami i lidhjes që rezulton dukej kështu (i klikuar):

Numërimi i kunjave të mikrokontrolluesit në diagram është dhënë për një paketë DIP, kështu që nëse përsëritni qarkun duke përdorur një mikrokontrollues në një paketë TQFP, kini kujdes, numri i pineve është i ndryshëm. Mikrokontrolluesi është i akorduar nga një kuarc i jashtëm në 16 MHz.

Linjë Kontrolli kalimi nga kolektori i tranzistorit Q2 në portin PortD.4 i mikrokontrolluesit u shtua për risigurim dhe nevojitet për të monitoruar nëse moduli është i ndezur. Meqenëse pragu i fikjes për SIM900 është 3,2 volt, edhe me një rënie të lehtë të tensionit, moduli do të fiket automatikisht, ndërsa mikrokontrolluesi do të vazhdojë të punojë dhe të ekzekutojë programin (pragu i rivendosjes për ATmega32a është 2,7 volt). Në gjendje pune, kjo linjë është e ulët. Nëse mikrokontrolluesi zbulon se kjo linjë është e lartë, moduli GSM do të rifillojë funksionin.

Dhe kjo është se si duket në veprim për momentin.

Pas testimit përfundimtar të programit, e gjithë kjo do të futet në kuti dhe lidhjet e shkëputshme do të mbyllen për besueshmëri.

Ekrani tregon informacionin bazë për statusin e pajisjes: emrin e operatorit, cilësinë e sinjalit të komunikimit, vlerën e temperaturës nga sensori 18b20, statusin e daljes së ngarkesës dhe sensorin e ndërhyrjes, si dhe kohën dhe datë.

Video e aktivizimit të modulit

Ora dhe data janë marrë nga ora e integruar në modulin GSM. Për funksionimin e tyre, është e nevojshme të keni një bateri 3 volt të lidhur me pinin 15 (VRTC). Rekomandohet instalimi i diodës D1 me një rënie të tensionit të ulët, për shembull Schottky. Vendosja e orës dhe datës bëhet me dorë, komandat u përshkruan më herët

Data shfaqet në ekran në formatin e marrë nga moduli, domethënë fillimisht viti, pastaj muaji dhe data. Nuk kam ndryshuar ende asgjë këtu.

Sensori DS18B20 është përgjegjës për matjen e temperaturës; ai është i lidhur me pinin PortD.3 të mikrokontrolluesit.

Mund të lidhni çdo ngarkesë me PortD.6 dhe ta kontrolloni atë nëpërmjet komandave SMS. Tani kam një LED të varur - D4 në diagram. Por asgjë nuk ju pengon të varni një stafetë ose triak këtu dhe të kontrolloni diçka më serioze.

Për qëllime sigurie, është planifikuar të përdoret një sensor lëvizjeje HC-SR501, i blerë në E-bay. Nëse aktivizohet, një logjik shfaqet në daljen e sensorit. Duke e kapur atë, mikrokontrolluesi do të japë një komandë për të dërguar një mesazh SMS në numrin e telefonit të specifikuar në program.

Dalja e sensorit është e lidhur me kutinë PortD.7 të mikrokontrolluesit; në diagram, sensori zëvendësohet në mënyrë konvencionale nga një buton.

Në vend të një sensori të lëvizjes, mund të instaloni çdo mjet tjetër për zbulimin e ndërhyrjeve - sensorë të hapjes së dritareve dhe dyerve, sensorë të thyerjes së xhamit, sensorë fotoelektrikë etj. në përgjithësi, gjithçka që imagjinata juaj mund të bëjë.

Për të parandaluar dërgimin e përsëritur të SMS-ve paralajmëruese në rast të një aktivizimi të sensorit, është futur një kufizim në program: pas dërgimit të SMS-së së parë, vendoset një ndalim për dërgimin pasues. Për të riaktivizuar dërgimin e mesazheve të njoftimit kur sensori aktivizohet, duhet të dërgoni një SMS me një komandë specifike në modul. Kur dërgimi i SMS është i ndaluar, një pikëçuditëse do të shfaqet në ekran pranë statusit të sensorit.

Lista e komandave

Dhe këtu është lista e komandave në SMS që përpunon moduli. Për lehtësi dhe thjeshtësi, komandat janë dixhitale; ndoshta në versionet e ardhshme të firmuerit do të ketë emra komandash më kuptimplotë :)

0 – Shkëputja e ngarkesës (pin PortD.6 është vendosur në 0 logjike)

1 – Aktivizoni ngarkesën (pin PortD.6 është vendosur në 1 logjik)

2 – Pasi të ketë pranuar këtë komandë, moduli do të thërrasë përsëri numrin e telefonit të specifikuar në program

3 – Kërkoni bilancin tuaj dhe dërgojeni me SMS në numrin e specifikuar. Ekziston një nuancë e rëndësishme këtu - përgjigjet për kërkesat e USSD duhet të vijnë në latinisht. Përndryshe, në vend të tekstit kuptimplotë, përgjigja do të jetë një mesazh në kodim heksadecimal. Duhet të kontrolloni me operatorin tuaj se si të konvertoni USSD në latinisht. Për shembull, në kartën SIM që përdor nga Smarts, duhet të futni *102*1# (në megafon *105*0#)

4 – Kërkesa për temperaturë. Vlera e temperaturës do të na dërgohet me SMS.

5 – Lejoni dërgimin e mesazheve nëse aktivizohet sensori i ndërhyrjes.

6 – Ndalimi i dërgimit të SMS njoftimeve nga sensori i ndërhyrjes.

? – Me këtë komandë, moduli do të na dërgojë një SMS që përmban informacione të përgjithshme për pajisjen, si vlerën nga sensori i temperaturës, nëse ngarkesa është e ndezur, statusi i hyrjes nga sensori i ndërhyrjes dhe nëse dërgohet SMS njoftimi prej tij eshte e lejuar. Për shembull, kështu mund të duket një mesazh: temperatura +24, ngarkesa e fikur, dalja e sensorit të lëvizjes 0, dërgimi i SMS nëse aktivizohet është i ndaluar.

Tani si të konfiguroni modulin për të dërguar SMS në numrin tuaj. Në arkivin me programin gjejmë skedarin kryesor të programit, ai quhet "program" 🙂 dhe gjejmë një konstante në të:

Konst Numri i telefonit = "+7908390xxxx"

Ne zëvendësojmë numrin tuaj të telefonit këtu, përpilojmë programin dhe marrim një skedar firmware hex.

Programi, si gjithmonë, është shkruar në Bascom-AVR, kështu që të kuptuarit e algoritmit për të punuar me modulin GSM është mjaft i thjeshtë. Paç fat!

Dhe së fundi, një demonstrim se si moduli përpunon komandat.

Falenderim i veçantë për mikun e vjetër të faqes Sergei RD3AVJ për pjesëmarrjen dhe ndihmën e tij në zhvillim!

UPD: nga 10/31/12

Kam modifikuar pak firmware-in, tani për të vendosur numrin në të cilin do të dërgohet SMS njoftimi, nuk keni nevojë të ripërpiloni programin. Mjafton të dërgoni një SMS me një mesazh në modul "Numri i parë"(pa thonjëza) dhe numri nga i cili është dërguar kjo komandë regjistrohet në memorien jo të paqëndrueshme të mikrokontrolluesit.

Më në fund, arrita të filloj të studioj ndoshta modulin më të njohur GSM në mjedisin DIY - GSM900. Çfarë është një modul GSM? Kjo është një pajisje që zbaton funksionet celular. Me fjalë të tjera, GSM900 ju lejon të telefononi abonentë të tjerë të rrjetit celular, të merrni telefonata, të dërgoni dhe të merrni mesazhe SMS. Dhe, natyrisht, transmetoni të dhëna duke përdorur protokollin GPRS.

Më duhej ky modul për mjaft kohë qellim specifik: është shfaqur një projekt për një sistem ndriçimi të kontrolluar nga distanca. Mënyra më e lehtë për të zgjidhur këtë problem është me mesazhe SMS: dërgoni një SMS - drita ndizet, dërgoni një tjetër - fiket. Ju nuk keni nevojë për telekomandë dhe të gjithë kanë një telefon (madje edhe njerëzit e pastrehë). Në fakt, në këtë artikull do të shqyrtoj pikërisht këtë opsion për përdorimin e modulit GSM900.

1. Firmware

Siç do ta kishte fati, përfundova me modulin GSM900A në duart e mia. Pasi lexova forumin e parë që hasa në lidhje me ringjalljen e kësaj gjëje, doli që shkronja A në emër do të thotë që moduli i përket rajonit aziatik. Dhe për këtë arsye, ai nuk do të punojë me operatorët tanë. Dëshpërim 🙁

Për fat të mirë, postimet e mëposhtme në të njëjtin forum përmbanin informacione qetësuese :) Doli që jo gjithçka është aq e keqe, dhe në mënyrë që moduli të funksionojë në rajonin tonë, ai thjesht duhet të rifreskohet. Ky proces përshkruhet mirë në blogun e kolegut tonë Alex-EXE: firmware "të gjitha në një" sim900
Do të përpiqem të bëj të njëjtën gjë, por edhe më në detaje, dhe duke marrë parasysh veçoritë e modulit tim.

Nëse keni modulin e duhur dhe nuk kërkohet firmware, mund të kaloni menjëherë te seksioni nr. 2.

Mjetet

Pra, le të bëjmë gjithçka gati së pari. mjetet e nevojshme. Së pari, direkt për firmuerin do t'ju duhet aplikacioni i shkarkimit të Tools Develop të Serisë SIM900, i cili mund të gjendet lehtësisht në internet ().

Së dyti, vetë skedari i firmuerit 1137B02SIM900M64_ST_ENHANCE do të jetë gjithashtu i dobishëm, i cili është gjithashtu i lehtë për t'u marrë ().

Së fundi, së treti, do të na duhet terminal i mirë për eksperimente me modulin. Unë zakonisht përdor TeraTerm, por këtë herë aftësitë e tij nuk ishin të mjaftueshme (ose nuk e kuptova). Më duhej të instaloja një përbindësh me një emër të shkëlqyer.

Lidhja me urën USB-UART

Tani lidhim linjat RX dhe TX me urën. Për këtë të fundit kam përdorur CP2102. Në rastin tim, në kundërshtim me logjikën, RX dhe TX e urës u lidhën me RX dhe TX të modulit GSM në mënyrë simetrike (dhe jo në mënyrë tërthore, siç është zakon).

Ju gjithashtu duhet të fuqizoni modulin nga një stallë dhe burim i fuqishëm, meqenëse rryma e pikut në modul mund të arrijë 2A (gjoja). I përshtatshëm për 4 bateri me madhësi AA. Diagrami i plotë i lidhjes duket si ky:

SIM900
CP2102 Gnd Gnd
CP2102 +5V VCC_MCU
CP2102 RX SIMR
CP2102TX SIMT
Burimi i jashtëm+5 V KVK5
Burimi i jashtëm Gnd Gnd
RST

Ky model nuk ka një buton rivendosjeje, kështu që për të ndezur firmuerin do të na duhet të hedhim pinin RST në tokë për disa sekonda. Për ta bërë këtë, ne do ta lëmë të varur në ajër për momentin.

Para-konfigurimi i modulit

Përpara se të fillojmë ndezjen e firmuerit, do të lidhemi me modulin dhe do të ndryshojmë shpejtësinë e tij UART. Për ta bërë këtë, hapni terminalin e terminalit, zgjidhni portin e duhur dhe vendosni kursin e këmbimit në 9600. Pas kësaj, klikoni "Connect".

I gjithë komunikimi me modulin ndodh nëpërmjet komandave AT.

Gjëja e parë që i themi modulit do të jetë komanda më primitive AT: "AT". Ky është një lloj ping, të cilit moduli duhet t'i përgjigjet me fjalën "OK".

Nëse gjithçka shkoi mirë dhe moduli me të vërtetë na u përgjigj "OK", ne dërgojmë komandën e vendosjes së shpejtësisë:

AT+IPR=115200

Në fund të komandës duhet të ketë një karakter të kthimit të karrocës - CR. Në tabelën ASCII ka kodin 13 (ose 0x0D in sistemi heksadecimal). Simboli do të futet automatikisht nëse kontrolloni kutinë "+CR" pranë linjës së hyrjes në terminalin tonë. Terminalet e tjerë gjithashtu kanë cilësime të ngjashme.

Në përgjigje të komandës së futur ne do të marrim përsëri "OK".

Do të na duhet ky cilësim për të shpejtuar procedurën e firmuerit. Përndryshe, siç theksoi Alex-EXE në blogun e tij, firmware do të zgjasë rreth një orë.

Vendosja e programit

Pasi të gjitha telat janë futur në prizë vendet e duhura, dhe moduli është gati për firmware, hapni aplikacionin Tools Develop për shkarkimin e Serisë SIM900. Vendosja e programit përbëhet nga vetëm disa pika:

  • Në fushën Target ne tregojmë çipin e synuar. Për disa arsye nuk mund të ngarkoja firmuerin në SIM900A, kështu që zgjodha "SIM900";
  • zgjidhni portin e duhur në fushën Port;
  • Vendosni Baud Rate në 115200;
  • në fund, specifikoni skedarin e firmuerit në fushën Core File (skedari me shtrirjen cla).

Kjo është ajo me cilësimet.

Firmware

Tani ne kryejmë në mënyrë rigoroze dhe të vazhdueshme gjashtë hapa të rëndësishëm.

  • Ne lidhim energjinë me modulin (4 bateritë tona). Drita e kuqe e energjisë duhet të ndizet dhe drita e statusit duhet të fillojë të pulsojë.
  • Ne lidhim USB-UART me kompjuterin.
  • Ne mbyllim telin RST në tokë (mos harroni se gjatë gjithë kësaj kohe ai ishte i varur në ajër).
  • Klikoni butonin Start Download në program.
  • Ne numërojmë deri në tre në kokën tonë dhe e heqim RST-në nga toka.

Presim 6 minuta derisa firmware të përfundojë.

Çfarë kemi pas firmuerit?

Së pari, moduli tani mund të punojë me operatorët tanë. Së dyti, ne instaluam firmware të zgjeruar, ndër veçoritë e të cilit, për shembull, është marrja e koordinatave të modulit nga kullat e qelizave, punojnë me me e-mail dhe akses në një memorie shtesë prej 2,5 MB.

2. Eksperimente me modulin GSM

Tani le të përpiqemi të kryejmë operacione të ndryshme të dobishme me modulin. Së pari, vendosni kodin tuaj PIN (nëse keni një):

AT+CPIN=8899

Përgjigja e modulit do të jetë:

CPIN: GATI.

Pas kësaj do të marrim disa informacione nga moduli.

AT+GMR - identifikuesi i firmuerit. AT+GSN - IMEI. AT+CPAS - statusi (0 - gati për punë, 2 - i panjohur, 3 - thirrje hyrëse, 4 - lidhje zanore). AT+COPS? - informacion rreth operatorit.

Telefonata

Tani le të thërrasim një numër. Kjo bëhet duke përdorur komandën:

ATD+790XXXXXXXXX;

Pikëpresja në fund të komandës është shumë e rëndësishme, mos e harroni!

Nëse dikush telefonon pajisjen gjatë një sesioni UART, mesazhi i mëposhtëm do të kthehet:

Ju mund t'i përgjigjeni thirrjes (marr) me komandën:

Nëse kufjet dhe një mikrofon janë të lidhura me modulin, mund të komunikoni me një pajtimtar në distancë sikur të përdorni një celular të rregullt.

Komanda përfundon thirrjen:

Dërgimi i SMS

Së pari le ta ndezim modaliteti i tekstit mesazhet:

AT+CMGF=1

dhe vendosni kodimin:

AT+CSCS= "GSM"

Moduli gjithashtu mbështet kodime të tjera që janë më të përshtatshme sistemet automatike. Por për eksperimentet tona, është më e përshtatshme të përdorim modalitetin GSM, në të cilin telefoni është specifikuar në numra dhe teksti i mesazheve është shkruar në Kodimi ASCII. Tani le t'i dërgojmë dikujt një mesazh:

AT+CMGS="+79123456789"

Dhe në fund të komandës ju duhet të shtoni dy karaktere shërbimi menjëherë: CR dhe LF. Në Terminal, kjo mund të bëhet duke kontrolluar CR=CR+LF, ose duke shtuar manualisht në fund të rreshtit: AT+CMGS=»+79123456789″&0D&0A

Pas futjes së kësaj komande, simboli ">" do të merret si përgjigje, duke treguar fillimin e futjes së një mesazhi. Ne shkruajmë një tekst:

Përshendetje Botë!

Në fund të mesazhit do të na duhet të dërgojmë një nga dy personazhe të veçanta. Për të dërguar një mesazh, futni një karakter nga tabela ASCII me numrin 26. Për të anuluar dërgimin, futni një karakter me numrin 27.

Në terminalin që përdorim, për të dërguar një karakter me kod, mund të përdorni një nga dy shprehjet: në heksadecimal: $1A dhe në dhjetor: #026

Merr SMS

Nëse një SMS i dërgohet pajisjes gjatë një sesioni, do të kthehet një mesazh në formatin e mëposhtëm:

CMTI: "SM",4

këtu 4 është numri i mesazhit të palexuar në hyrje.

AT+CMGR=4

Si përgjigje marrim:

CMGR: "REC READ","+790XXXXXXXXX","","13/09/21,11:57:46+24" Përshëndetje Botë! Ne rregull

Në përgjithësi, gjithçka është e thjeshtë. Kjo është mjaft e mjaftueshme që ne të realizojmë planet tona. Për një studim më të thellë të aftësive të GFM900, unë rekomandoj të lexoni një artikull tjetër nga Alex-EXE: at-commands modem gsm sim900

3. Ndërveprimi me mikrokontrolluesit

Në përgjithësi, për të menaxhuar pajisje të jashtme Nuk është aspak e nevojshme të çiftoni modulin GSM900 me një mikrokontrollues tjetër. Ju mund të futni programin tuaj në këtë modul, i cili do të bëjë gjithçka që dëshironi me kunjat falas GPIO. Sidoqoftë, në shumicën e tabelave të gatshme GPIO-të nuk janë të drejtuara, kështu që për të krijuar një prototip të pajisjes së synuar do të përdorim më së shumti Arduino i thjeshtë Uno/Nano.

Arduino dhe GSM900 do të komunikojnë nëpërmjet të njëjtës ndërfaqe UART. Për ta bërë këtë, lidhni këto dy pajisje sipas skemës së mëposhtme:

GSM900 GND VCC_MCU SIMT SIMR
Arduino Uno GND +5 V RX TX

Tani le të krijojmë një program që do të kapë mesazhet SMS dhe do të ndezë LED në këmbën nr. 13 për disa sekonda. Me këtë ne simulojmë kontrollin e një pajisjeje të jashtme.

Const String spin = "1234"; const int rel_pin = 13; String ss = ""; // Dërgo një kod PIN të pavlefshëm sendPin())( String cmd = "AT+CPIN="+spin+char(0x0D); Serial.print(cmd); ) // Ndiz LED-in për 2 sekonda Void receiveSMS(String s)( digitalWrite(rel_pin, LARTË); vonesë (2000); digitalWrite(rel_pin, LOW); ) // Analizimi i një vargu që erdhi nga moduli void parseString(String src) (bool collect = false; String s = "" ; për(bajt i =0;i

Ne ngarkojmë programin në Arduino dhe testojmë sistemin. Nëse gjithçka është bërë si duhet, dërgimi i një mesazhi SMS në pajisje do të ndezë LED për 2 sekonda. Sigurisht, në vend të një LED, mund të ndizni / fikni një stafetë të fuqishme me të cilën është lidhur bojleri i ngrohjes në një shtëpi të vendit.

Artikujt më të mirë mbi këtë temë