LAKI PINGVINI
GSM moduli
Ćaskanje sa Arduinom
D. PETROVIĆ
1. februar 2021.

Kao prozor u svet, mikrokontroleri na raspolaganju imaju Wi-Fi i Ethernet, o čemu smo više puta pisali. Podrazumeva se da oni treba da imaju pristup lokalnoj mreži, bilo žičano, bilo bežično. Međutim, ukoliko je u pitanju projekat gde tako nešto nije dostupno, ne znači da naše mogućnosti tu prestaju. Mikrokontroleri na raspolaganju imaju GSM/GPRS modeme, sa kojima komuniciraju na nivou AT komandi. O AT komandama bilo je reči na ovim stranicama, ali u manjoj meri. Razlog tome je što pored standardnog seta AT komandi, imamo i one usko vezane za sam modem, kao i firmver. Mi smo pripremili nekoliko ovih modula, pa, da krenemo redom.

SIM900

Modem SIM900 dolazi iz kompanije SIMCom u formi modula. Modem je četvoropojasni (quad-band) GSM/GPRS i radi na sledećim frekvencijama: GSM 850 megaherca, EGSM 900 megaherca, DCS 1800 megaherca i PCS 1900 megaherca. Ove frekvencije modem može da pretraži automatski, ali možemo da mu dodelimo neku komandom AT+CBAND. Modem je dimenzija 24 puta 24 milimetra i ima čak 68 pedova raspoređenih sa strana, što je za lemljenje lemilicom pravi izazov. Radni naponi modema kreću se od 3,2 do 4,8 volti. Što se tiče tehničkih karakteristika za povezivanje, za GPRS je predodređen multi-slot klase 10. Protok podataka za uplink i downlink je 42,8 i 85,6 kilobita u sekundi. Integrisani protokoli su TCP/IP, a tu je i podrška za PBCCH, CSD, USSD, SMS, FAX, Audio, SIM, RTC i drugo. Modemom komuniciramo preko serijskog terminala pri 1200 do 115200 bita u sekundi. Pinout modema sadrži veći broj GPIO, preko kojih SIM900 ostvaruje I2C, PWM, dok ih je devet predodređeno za brojčanik/tastaturu u formatu redovi/kolone.

Mi smo SIM900 nabavili u obliku šilda (GPRS Shield) i možemo da ga koristimo uz Uno, Megu i slično. Šild ima prolazne headere, tako da se postojeći pinout domaćina može nesmetano koristiti. Za komunikaciju sa mikrokontrolerom koristi se serijski interfejs RX/TX (pinovi 0 i 1). S obzirom na to da nam isti terminal treba i za debagovanje, ako koristimo Uno, na šildu je izveden i kompletan pinout modema, između ostalih i RX/TX. Da bi se koristili ovi izdvojeni pinovi, potrebno je prebaciti džampere kojima biramo koji pinout serijskog interfejsa ćemo koristiti. Ako je odabir SoftwareSerial, tada se koriste GPIO7 i 8. Do izdvojenih pinova imamo i dva 3,5-milimetarska konektora za mikrofon i zvučnike. Prema dokumentaciji, šild bi trebalo napajati sa pet volti i dva ampera preko naponskog priključka. Naponski regulator omogućava korišćenje i većih napona (devet volti i jedan amper ili 12 volti i jedan amper). Modem kod poziva troši oko 200 miliampera, uz do 450 miliampera za GPRS, međutim, u takozvanom predajnom burstu, potrošnja struje ide i do dva ampera. Do naponskog konektora je i selektor odabira napajanja, a od tastera imamo i jedan za uključivanje modema. Lemljenjem džampera do GPIO13, ostavljamo modem stalno uključenim. Za potrebe testiranja, imamo izvedene pinove sa GND i 4,1V i GND i 5 VCC. GSM antena od tri dBi može se zameniti jačom, a sa modemom je povezana preko u.FL konektora. Sa donje strane je SIM podnožje, kao i kućište RTC baterije (CR1220). Setovanje vremena obavljamo sa AT+CCLK. Za to vreme šild nas obaveštava o svom statusu preko tri crvene LED.

U našim testovima smo SIM900 podvrgli raznim testovima. Testirali smo jačinu prijemnog signala, povezivanje. Zatim slali i primali poruke, govorne pozive, ali i slali HTTP zahteve (GET i POST). Komandom AT+HTTPREAD možemo čitati pripremljene podatke sa servera, najčešće u obliku JSON paketa. Sa ovim šildom nismo imali niti jedan problem.

SIM800L

Još jedan modem iz SIMComa je model sa oznakom SIM800L. Radi na istim frekvencijama, ali uz GPRS multi-slot klase 12. Sam modem je malo manjih dimenzija i dolazi u LGA pakovanju, tako da na lemilicu u ovom slučaju možemo da zaboravimo. Preko pinouta možemo pristupiti serijskom portu, USB portu, a tu su i GPIO. Preko njih imamo pristup RTC, PWM, audio in/out, dok „L” u oznaci znači da ovaj modem dolazi i sa FM radiom. SIM800C dolazi i sa Bluetoothom. Postoji i SIM800F čiji su pinout i layout kompatibilni sa SIM900, kao i dual-SIM verzija SIM868. Radni naponi su slični kao kod SIM900, od 3,4 do 4,4 volta. Kod SIM800L protok GPRS podataka u oba smera iznosi do 85,6 kilobita po sekundi. Podržani su sledeći protokoli: PAP, TCP/IP, CSD, zatim, SMS, CSD, USSD, AMR, i drugo.

Naš primerak dolazi u formi modula, sa slotom za mikro SIM 2G karticu ispod. Sa strana je pinout gde su izvedeni RING, DTR, MICP(N), SPKP(N), NET, RST, RXD i TXD. Preko ovih pinova povezujemo modem sa mikrofonom, zvučnicima i serijskim terminalom ili mikrokontrolerom. Modul nema naponski regulator, tako da ovde imamo manji problem. Atipičan napon možemo rešiti nekim naponskim regulatorom, imajući u vidu i 3,3V GPIO logiku. Sa druge strane, SIM800L perfektno će raditi na litijum-polimerskoj bateriji i njenih 3,7 volti. Potrošnja struje skoro je identična onoj na SIM900. Na mrežu, modul se povezuje preko spiralne antene koja dolazi nezalemljena, a tu je i u.FL konektor, gde se odgovarajuća antena mora dokupiti. Vredna pomena je još samo jedna LED: u zavisnosti od režima treptanja, dobićemo informacije o povezanosti na mrežu, GPRS-u i stanju slanja SMS-ova i poziva.

S obzirom na razliku u naponu na GPIO, sa petovoltnim Unom povezivanje bi trebalo da ide preko naponskog razdelnika na TX liniji (ili logic level šiftera). Mi smo se opredelili za 10K otpornik između RX modema i TX mikrokontrolera. Između GND i RX modema postavili smo 20K otpornik. GPIO na SIM800L nisu tolerantni na pet volti.

U našim testovima primetili smo da sa četiri volta na VCC prijem signala je bio ravan nuli (AT+CSQ). Tek sa 4,2 volta modem je počeo da radi kako treba, ali nam je već na 4,3 volta izbacio „Overvoltage” upozorenje. Sve AT komande koje smo koristili za SIM900 radile su i ovde i bez problema smo probali SMS i pozivanje. Naravno, probali smo i GET i POST zahteve, kao i čitanje sa servera komandom AT+HTTPREAD. Jedini objektivan problem je radni napon, jer je modul, po našem mišljenju, morao da dođe i sa adekvatnim rešenjem. Set AT komandi u vezi sa FM radijom sastoji se iz šest komandi, gde osim uključivanja FM prijemnika, možemo pojačati zvučnik, promeniti frekvenciju ili skenirati jačinu signala i FM frekventni opseg. Pritom, da kažemo da su jedinice izražene u veličinama od 100 kiloherca, pa tako za 94,9 megaherca kucamo „949”.

GA6

Iako na mnogim mestima stoji da je ovaj modem kopija Ai-Thinkerovog A6, on to nije u potpunosti, nažalost. Iz firme Goouuu Tech imamo modem sa vrlo malo tehničke dokumentacije i još manje podataka na mreži generalno. Mi smo, ipak, uspeli da je se dokopamo, ali na kineskom. Ono što znamo je da su isti frekventni opsezi dostupni i na ovom modemu. GPRS je klase 10, a od funkcionalnosti, tu su SMS, Audio, TCP/IP i drugo. Protok GPRS podataka je na nivou SIM900. Sam modem dolazi u SMT42 pakovanju i radi na naponima od 3,5 do 4,2 volta.

Modem smo nabavili u obliku modula koji jako podseća na A6. Ono što je dobro, na ploči postoji naponski regulator (MP1584) i modem možemo napajati sa pet volti. Uz modem, takođe, dolazi spiralna antena, ali i u.FL konektor. Ove spiralne antene su diskutabilnog kvaliteta. Mnogi problemi koji se pojavljuju prilikom konekcije i testiranja ovog modema, a na koje smo naišli, bili su prouzrokovani lošim prijemom signala. Srećom, imali smo i jaču u.FL antenu. Drugi problem koji je čest na mreži (važi i za SIM800L) je pogrešno okretanje mikro-SIM kartice, čije je ležište ispod. Pinout nudi jedno od rešenja za probleme sa lošom dokumentacijom. Naime, preko HTX i HRX serijskog terminala, na ovaj modem se može flešovati zvanični Ai-Thinkerov firmver za pravi A6, na čijim stranicama se nalazi i detaljno uputstvo. Za komunikaciju sa mikrokontrolerom, koristimo URX i UTX. Na raspolaganju su nam još GPIO za mikrofon i zvučnik, kao i GPIO14. Modul ima i dve LED, gde je crvena PWR, a zelena STAT.

Uz modem GA6 probali smo setove AT komandi koje prema tehničkoj dokumentaciji idu uz A6. Postoje manje razlike gde nam modul osim ERR greške izbaci i koju komandu očekuje. Pa, tako, ako nakon povezivanja na mrežu odmah idemo na AT+HTTPGET, modem osim greške izbacuje i da prethodno očekuje AT+INITHTTP. Ovakvu pomoć nismo videli kod SIMCom i Ai-Thinker firmvera.

A9G - Pudding

Kao prava poslastica, na kraju nam je ostao A9G iz Ai-Thinkera (proizvođača koji stoji iza ESP8266). Postoji i A9, a razlika je u tome što G model u sebi sadrži i GPS/BDS prijemnik. O GPS modulima ćemo više nekom drugom prilikom, tako da ćemo se ovde osvrnuti samo na osnovno. Modem dolazi u SMD54 pakovanju i radi na gorepomenutim frekvencijama. GPRS multi-slot je klase 12, a preko GPIO na A9G pristupamo I2C, USB, UART, SDMMC i ADC. Preciznost GPS prijemnika je 2,5 metra po horizontali i 3,5 metra po visini. GPS prijemniku treba i do 27 sekundi za uspostavljanje veze sa prvim satelitom, dok se to vreme posle spušta ispod jedne sekunde.

Ovde smo uspeli da se nekako dokopamo A9G razvojne ploče (problemi sa visokom poštarinom). Razvojna ploča sve probleme pojednostavljuje, a uz nju dobijamo GPS i GSM antene. Testiranje GPS u kućnoj varijanti je skoro nemoguće, te smo pripremili i GPS antenu sa nekih dva metra kabla (dovoljno do prozora). Na ploču se povezuju preko jasno označenih IPEX konektora. Inače, oznake bočnih pinova su, iako pretrpane, ipak jasno označene. Ovde imamo manju zamerku, jer su konektori antena jako blizu GPIO i zakretanjem, kablići od antena ih lako mogu dodirnuti. Na ploči imamo već ugrađen mikrofon, kao i mesta da se doda drugi preko žica. Imamo dve LED, tastere za RST i PWR, ali i mesto za čip LIS3DHx. Dodatkom ovog akcelerometra, razvojna ploča dobija potpuno drugu dimenziju i ostaje žal zbog toga što ga proizvođač izostavlja. Sa donje strane su mikro-SIM ležište, ali i slot mikroSD kartice. Pinout sadrži čak 29 izvedenih pinova, od kojih su označeni svi bočni, ali ne i oni na zadnjoj strani. Srećom, Ai-Thinker nije bilo ko i tehnička dokumentacija je odlična, uz retke PDF-ove na kineskom (od kojih je i skup AT komandi, nažalost). Za napajanje imamo mikro-USB port (samo za napajanje), ali i pinove. Preko VUSB napajamo regulisanim naponom od pet volti, a imamo i VBAT ako je projekat na baterije.

Puddingom možemo upravljati putem seta AT komandi, ali i preko SDK, koji uz instrukcije možemo preuzeti sa zvanične GitHub stranice. SDK (software development kit) omogućava korišćenje svih aspekata modema, počevši od funkcionalnosti, pa do hardvera. Kompletan set instrukcija i API takođe su dostupni, uz primere vezane za GPIO, ADC, UART, I2C, SPI, RTC, i tako dalje. Čak SDK omogućava podizanje lightweight operativnog sistema. Opisivanje kompletne procedure bi nam oduzelo mnogo prostora u časopisu, a mi vam predlažemo da skoknete na i.sk.rs/357843. Set AT komandi dozvoljava osnovne funkcije, poput SMS, Voice, GPS i HTTP. Pristup GPIO, i SD slotu preko AT komandi, za sada, nije omogućen. Ipak, omogućene su neke dodatne funkcije, poput MQTT i Gizwitsa.

Mi smo, uz malo muke sa tehničkom dokumentacijom na kineskom, ipak bez problema uspeli da šaljemo i primamo SMS poruke, kao i pozive. GPS je takođe radio bez problema, kao i slanje GET zahteva komandom AT+HTTPGET. Zahteve serveru možemo slati i POST zahtevom, ali, nažalost, nije moguće i čitanje sa servera. Kao highlight, navodimo upotrebu ovog uređaja kao uređaja za praćenje. Komandom AT+GIZQRCODE dobijamo QR kôd u tekstualnom formatu koji nekim QR generatorom generišemo u QR kôd. Kôd koristimo za uparivanje u okviru A9Tracker aplikacije koju preuzimamo sa zvaničnog sajta. Uz dodatu AT komandu i par dodira na ekranu, dobijamo mapu sa trenutnom pozicijom A9G, a samim tim i našeg vozila. Mi nismo najzadovoljniji ovom aplikacijom. Iz nekog razloga, zumiranjem se mapa ne uveličava. GPS dobijamo na dva načina: sa AT+LOCATION dobijamo tačnu i veoma preciznu geografsku širinu i dužinu, a sa AT+GPSRD dobijamo isto to, ali u NMEA formatu. Osim malo specifičnijeg formata, ova druga komanda dozvoljava i cikličan upit za pozicijom, dok se kod prve to radi samo upitom. Podatke dobijene preko terminala možemo uneti u neki od online servisa, poput gps-coordinates.net ili Google Maps.

• • •

Svi modemi koje smo koristili imaju svoje prednosti i mane. Prilikom povezivanja sa mikrokontrolerom, najveći problem može da predstavlja razlika u naponu logičkih pinova i samo napajanje, možda veći i od samih AT komandi. Takođe, ostaje pitanje do kada će se uopšte moći koristiti. Mnoge zemlje su ukinule 2G i pitanje je kada će se to desiti kod nas. 3G modemi su osetno skuplji, i do deset puta. Za testiranje smo koristili FTDI UART adapter koji je i za preporuku. Od softvera smo koristili AT Command Tester V27, koji bi uz neke druge modeme pružio i više. Ai-Thinker Serial Tool je isto odlično rešenje; čak nudi i sastavljanje niza seta komandi uz delay, a koji pokrenemo odjednom, te tako možemo da simuliramo realnu upotrebu. S obzirom na to da se prvi oslanja na m2msupport.net, sa fenomenalnim primerima i pojašnjenjima, između ove dve alatke je „mrtva trka”. Prilikom naših testova sa slanjem podataka na udaljeni server, koristeći Uno, naišli smo na problem u vidu TX bafera. Da ne ulazimo ovaj put u to kako serijski interfejs funkcioniše, trebalo bi povesti računa o nepotrebno dugačkim nazivima varijabli i stranica. Povećanje bafera za Uno znači smanjivanje dostupne memorije, koje ionako ima malo.

Terminologija

GSM - Global System for Mobile Comunications

Globalni standard za mobilne komunikacije i predstavlja drugu generaciju (2G). Nastao je u Finskoj pre 30 godina, ali polako postaje deo istorije. Podrška za SMS i roming, način prenosa glasa prevaziđeni su novim tehnologijama. Svojevremeno je iskorak napravljen prelaskom na 2,5G (GPRS), ali tehnološki je davno prevaziđen. U mnogim zemljama 2G je ukinut.

GPRS - General Packet Radio Service

Zamišljen kao iskorak u vidu proširenja GSM mogućnosti dodavanjem pristupa internetu, sa svojim skromnim mogućnostima, standard je krenuo u zaborav kao i 2G. Ipak, neće tako brzo, jer je ujedno i sastavni deo 3G standarda.

GPS - Global Positioning System

Globalni sistem pozicioniranja nastao je kao projekat koji je razvila američka vojska, a trenutno se vodi kao javno dobro. Sistem od 24 satelita šalje radio-signale ka Zemlji. Od uređaja na Zemlji se ne zahteva da šalju bilo kakav signal. Prijemnici su na osnovu dobijenih signala u stanju da odrede geografsku širinu i dužinu, kao i nadmorsku visinu. Sistem nije svemoguć: na prijem utiču snaga antena; zatim, signal je nedostupan ili manje dostupan u tunelima, u zgradama i slično.

AT komande

AT komande su komande kojima kontrolišemo modeme. AT(ention) komande su proizišle iz Hayes komandi gdese koriste i kao podsistem. Osnovna podela bila bi na komande za testiranje, čitanje, podešavanje i izvršne. AT komande još delimo na standardne, koje svaki modem mora da podržava, ali i na usko specifične, koje direktno zavise od modema i njegovih mogućnosti. Ne postoji jedinstven set AT komandi koji će, recimo, pripremiti modem i poslati HTTP GET zahtev ka serveru. Za svaki modem postoji set dostupnih AT komandi u okviru tehničke dokumentacije. Neka uputstva su na engleskom, ali mnoga, nažalost, samo na kineskom jeziku.

Primeri AT komandi za SIM900

Slanje SMS poruke:

ATE1 - uključujemo ECHO komandu

AT+CPIN? - proveravamo da li je PIN lock isključen (READY)

AT+CMGF=1 - postavljamo modem za tekstualne poruke

AT+CREG? - proveravamo registraciju na mreži (CREG: 0,1)

AT+CMGS="+381xxxxx" - tel. broj u međunarodnom formatu

>Text poruke - tekst poruke

>^Z - Ovim završavamo slanje

Slanje GET zahteva:

AT+CGATT=1 - povezivanje na GPRS

AT+CSTT="APN","","" - povezivanje sa provajderom (access point network)

AT+CIICR - povezivanje na bežičnu mrežu

AT+CREG? - proveravamo registraciju na mreži (CREG: 0,1)

AT+SAPBR=2,1 - upit za GPRS (2,1)

AT+SAPBR=1,1 - otvaramo GPRS

AT+HTTPINIT - start sesije

AT-HTTPPARA="URL","http://www.somesite.com/index.php?x=1" - URL adresa

AT+HTTPPARA="CID",1 - Context ID

AT+HTTPACTION=0 - Puštamo ceo set komandi u akciju

AT+HTTPTERM - Zatvaramo sesiju

Čitanje GET zahteva:

---- Isto kao i za GET iznad

AT+HTTPACTION=0

AT+HTTPREAD - dobijamo pripremljen sadržaj

AT+HTTPTERM

Glasovni poziv (slušalice i mikrofon):

AT+CPIN? - provera SIM lock (READY)

AT+CREG? - provera registracije na mreži

AT+COPS? - provera podatka sa kartice i mreže

AT+CSQ - možemo proveriti i jačinu signala, gde su prve dve cifre i jačina u dBm

ATD+ +381xxxxxxx; - tel. broj u međunarodnom formatu

ATH - prekidamo vezu

Setovi komandi se donekle razlikuju od modema do modema i potrebno je prelistati tehničku dokumentaciju.

Biblioteke

Za GSM modeme postoji nekoliko biblioteka. Ako pogledamo u .h fajlove, videćemo da su sve funkcije koje koristimo u okviru biblioteka, zapravo, samo omotač oko AT komandi, radi uprošćavanja. Iako i mi uvek radije pribegavamo gotovim rešenjima, jako je bitno da se shvati kako modemi rade putem AT komandi. Biblioteka za modeme na raspolaganju ima više, poput GPRS_SIM900, GSMSHIELD, TinyGSM i GSM-Library. Za SIM800L trebalo bi obratiti pažnju na Adafruit FONA, gde zaista ima dosta primera.


PRETHODNI TEKST
SLEDEĆI TEKST
Najčitanije
Igre
Telefoni
Hardver
Softver
Nauka
Aktuelno štampano izdanje
DECEMBAR 2023
Microsoft Windows 11 23H2
Sveže oprani Prozori
Windows Copilot, ugrađeni AI pomoćnik, već sada je daleko više od toga što je Cortana ikad bila i mogla da bude...
Asus ROG Maximus Z790 Formula
Hladna zimi, hladna leti
Uz Raptor Lake Refresh generaciju Intelovih Core procesora paralelno je „osvežena” i ponuda modela matičnih ploča...
Apple Watch Ultra 2 i Apple Watch Series 9
Ovogodišnji „ vršioci dužnosti”
Oba sata dolaze sa preinstaliranim WatchOS-om 10.x i to je jedna od značajnih novina...
Asus ROG Ally Z1 Extreme
Saveznik je stigao!
Ovo je Windows PC, oličen u formi ručne igračke konzole, što ga već na prvu loptu razlikuje od najvećeg konkurenta, Valveovog Steam Decka...
Estetska vizija Pavela Surovog
Arhetipsko kulturno nasleđe i AI
Kako to izgleda kad AI u svoje ruke uzme neko ko i te kako ume da ga iskoristi kao alatku?
Razvoj traktorskog snopa
Svemirski čistač
Naučnici su na korak od stvaranja tehnologije koja je donedavno bila sastavni deo naučne fantastike...
Samsung Galaxy Tab S9 FE+
Povoljan kvalitet
Uređaj laserski fokusiran na zonu gde se preklapaju vrh srednjeg dela tržišta i početak onog najvišeg...
Borba YouTubea protiv adblockera
Reklamokalipsa YouTubea
Alphabet očekuje da mu se vrati uloženo, što je sasvim normalno, ali sam kvalitet usluge na svim nivoima opada u svim Googleovim proizvodima...
Regulacija kripto-trgovanja
Kripto-tržište u paklenoj kuhinji
Tržište kripto-valuta i srodnih finansijskih instrumenata pretrpelo je još jedan veliki i razočaravajući potres...
Alan Wake II
Ovo je hrabar, na momente lud i superpretenci-ozan, ali nikada dosadan eksperiment kombinovanja naracije i gejmpleja...
The Talos Principle 2
Bolju, impresivniju, zarazniju i produkcijski napucaniju glavolomku u ovome trenutku nećete naći...
Call of Duty: Modern Warfare III
Kampanja je kratka, multiplayer recikliran, a glavna novost je zombi režim DMZ, posuđen iz Warzonea...
© 2023 Svet kompjutera. Sva prava zadrzana.
Novi broj - Arhiva - Forum - O nama