GSM-moduuli SIM900A. Laiteohjelmisto ja käyttö. GSM-hallinta SIM900D-moduulin perusteella

GSM ja GPRS-moduuli Arduino-projekteissa voit muodostaa yhteyden kaukosäätimeen itsenäisiä laitteita tavallisen kautta matkapuhelinviestintä. Voimme lähettää laitteeseen komentoja ja vastaanottaa siitä tietoa tekstiviestikomennoilla tai GPRS:n kautta avatun Internet-yhteyden kautta. Tässä artikkelissa tarkastelemme Arduinon suosituimpia moduuleja, ymmärrämme yhteyden ja katsomme ohjelmointiesimerkkejä.

GSM GPRS -moduulit

GSM-moduulia käytetään laajentamaan tavallisten Arduino-korttien ominaisuuksia - lähettää tekstiviestejä, soittaa puheluita, vaihtaa tietoja GPRS:n kautta. Olla olemassa erilaisia moduulit, yleisimmin käytetyt SIM900, SIM800L, A6, A7.

SIM900-moduulin kuvaus

SIM900-moduulia käytetään erilaisissa automatisoidut järjestelmät. UART-liitännän avulla tietoja vaihdetaan muiden laitteiden kanssa. Moduuli tarjoaa mahdollisuuden soittaa puheluita ja vaihtaa tekstiviestejä. Moduuli on toteutettu SIM900-komponentilla, jonka on luonut SIMCom Wireless Solution.

Tekniset tiedot:

  • Jännitealue 4,8-5,2V;
  • SISÄÄN normaalitila virta saavuttaa 450mA, maksimivirta sisään pulssitila 2 A;
  • 2G-tuki;
  • Lähetysteho: 1 W 1800 ja 1900 MHz, 2 W 850 ja 900 MHz;
  • Sisäänrakennettu TCP-protokollat ja UDP;
  • GPRS-monipaikkaluokka 10/8;
  • Käyttölämpötila -30C - 75C.

Laitteen avulla voit seurata kuljetusreittiä yhdessä GLONASS- tai GPS-laite. Mahdollisuutta lähettää tekstiviestejä käytetään langattomissa hälyttimissä ja erilaisissa turvajärjestelmissä.

SIM800L-moduulin kuvaus

Moduuli perustuu SIM800L-komponenttiin ja sitä käytetään tekstiviestien lähettämiseen, puheluihin ja tiedonvaihtoon GPRS:n kautta. Mikro-SIM-kortti on asennettu moduuliin. Laitteessa on sisäänrakennettu antenni ja liitin, johon voit liittää ulkoinen antenni. Virta moduuliin tulee ulkoinen lähde tai DC-DC-muuntimen kautta. Ohjaus suoritetaan tietokoneella UART-, Arduino-, Raspberry Pi- tai vastaavilla laitteilla.

Tekniset tiedot:

  • Jännitealue 3,7V – 4,2V;
  • Tuki 4-kaistaiselle verkolle 900/1800/1900 MHz;
  • GPRS-luokka 12 (85,6 kB/s);
  • Maksimivirta 500 mA;
  • 2G-tuki;
  • Automaattinen haku neljällä taajuusalueella;
  • Käyttölämpötila -30C - 75C.

Moduulin A6 kuvaus

A6-moduulin kehitti AI-THINKER vuonna 2016. Laitetta käytetään SMS-viestien ja datan vaihtoon GPRS:n kautta. Maksu on erilainen alhainen kulutus energiaa ja pientä kokoa. Laite on täysin yhteensopiva venäläisten matkapuhelinoperaattoreiden kanssa.

Tekniset tiedot:

  • Jännitealue 4,5 – 5,5V;
  • Virtalähde 5V;
  • Käyttölämpötila-alue -30C - 80C;
  • Suurin virrankulutus 900mA;
  • GPRS Class 10;
  • Tuki PPP-protokollat, TCP, UDP, MUX.

Moduuli tukee microsim-kortteja.

Moduulin A7 kuvaus

A7 on AI-THINKERin uusin moduuli. Edeltäjäänsä verrattuna A6:ssa on sisäänrakennettu GPS, mikä mahdollistaa yksinkertaistetun laitesuunnittelun.

Tekniset tiedot:

  • Käyttöjännitealue 3,3V-4,6V;
  • Syöttöjännite 5V;
  • Taajuudet 850/900/1800/1900 MHz;
  • GPRS-luokka 10: Max. 85,6 kbit;
  • Kaiun ja kohinan vaimennus.

Laite tukee microSIM-kortteja. Moduuli tukee puheluiden vaihtoa, tekstiviestien vaihtoa, tiedonsiirtoa GPRS:n kautta, signaalien vastaanottoa GPS:n kautta.

Mistä ostaa GSM-moduuleja Arduinolle

Perinteisesti, ennen kuin aloitat, muutama vinkki ja hyödyllisiä linkkejä Aliexpressin myyjille.

Erittäin laadukas KEYES SIM900 GSM GPRS -moduuli SIM800C-moduuli Arduinolle luotettavalta toimittajalta
Shield kehitystä varten, yhteensopiva Arduinon kanssa, perustuu SIM900 GPRS/GSM-moduuliin Edullinen mini A6 GPRS GSM-moduuli

GSM GPRS -suojan yhdistäminen Arduinoon

Tässä osiossa tarkastelemme kysymyksiä GSM-yhteydet– moduulit Aduino-kortille. Lähes kaikki esimerkit perustuvat Arduino Uno, mutta suurimmaksi osaksi esimerkit toimivat myös Mega-, Nano- jne. levyille.

SIM800-moduulin liittäminen

Liittämistä varten tarvitset Arduino-kortin, SIM800L-moduulin, jännitemuuntimen, liitäntäjohdot ja 12V akun. SIM800L-moduuli vaatii ei-standardin 3,7 V:n Arduino-jännitteen.

SIM800-moduulin pinout on esitetty kuvassa.

Arduino-levy on liitettävä tietokoneeseen kautta USB kaapeli. Liitä 12V akku muuntimen kautta: -12V Arduino-maahan, maadosta miinusmuuntimeen, +12V plusmuuntimeen. TX- ja RX-moduulin lähdöt on kytkettävä Arduinon nastoihin 2 ja 3. Useita moduuleja voidaan liittää mihin tahansa digitaaliseen nastaan.

Liitäntämoduuli A6

A6-moduuli on halvempi kuin SIM900, ja se on erittäin helppo yhdistää Arduinoon. Moduuli saa virtaa 5V jännitteestä, joten liitäntä ei vaadi ylimääräisiä jännitettä alentavia elementtejä.

Yhdistämistä varten tarvitset Arduino-levyn (in tässä tapauksessa arvosteltu Arduino UNO), GSM-moduuli A6, liitäntäjohdot. Kytkentäkaavio näkyy kuvassa.

GSM-moduulin RX-nasta on kytkettävä Arduino-levyn TX-liittimeen, TX-nasta on kytkettävä Arduinon RX-nastaan. Moduulin maadoitus on kytketty mikro-ohjaimen maahan. GSM-moduulin Vcc-nasta on kytkettävä liitäntään PWR_KEY.

Yhteys GSM-GPRS-suojauksella

Ennen kytkemistä on tärkeää kiinnittää huomiota suojavaipan syöttöjännitteeseen. Virta puhelun tai tiedon lähetyksen aikana voi saavuttaa arvot 15-2 A, joten sinun ei pitäisi antaa virtaa suojalle suoraan Arduinosta.

Ennen kuin muodostat yhteyden Arduinoon, sinun on asennettava SIM-kortti GSM-GPRS-suojaan. Sinun on myös asennettava TX- ja RX-silpat, kuten kuvassa.

Kytkentä tehdään seuraavasti - ensimmäinen kosketin (kuvassa keltainen johto) suojasta on kytkettävä Arduinon TX-liitäntään. Toinen nasta (vihreä johto) liitetään Arduinon RX:ään. Kilven maa on yhdistetty aruinon maahan. Virta syötetään mikro-ohjaimeen USB-kaapelin kautta.

Suojan ja Arduino-levyn välisen liitännän asettelu näkyy kuvassa.

Toimiaksesi sinun on asennettava GPRS_Shield_Arduino-kirjasto.

Oikeuden tarkistamiseksi koottu piiri sinun on tehtävä seuraava: yhdistä RESET ja GND Arduinoon (tämä johtaa siihen, että tiedot siirretään suoraan suojasta tietokoneeseen), aseta SIM-kortti suojukseen ja kytke suojuksen virta päälle. Arduino-levy pitää liittää tietokoneeseen ja painaa virtapainiketta. Jos kaikki on kytketty oikein, punainen LED syttyy ja vihreä LED vilkkuu.

Lyhyt kuvaus vuorovaikutuksesta AT-komentojen kautta

AT-komennot ovat joukko erikoisjoukkueet modeemille, joka koostuu lyhyestä tekstijonoja. Jotta modeemi tunnistaisi sille annetun komennon, rivien tulee alkaa kirjaimilla at. Merkkijono hyväksytään, kun modeemi on kytkettynä komentotila. AT-komennot voidaan lähettää käyttämällä joko viestintää ohjelmisto, ja manuaalisesti näppäimistöltä. Lähes kaikki komennot voidaan jakaa kolmeen tilaan - testi, jossa moduuli vastaa tukeeko se komentoa; read – tulostaa nykyiset komentoparametrit; kirjoittaa – uusia arvoja kirjoitetaan.

Luettelo eniten käytetyistä AT-komennoista:

  • AT – tarkistaa, onko moduuli kytketty oikein. Jos kaikki on kunnossa, palautetaan OK.
  • A/ – toista edellinen komento.
  • AT+IPR? – tiedon saaminen portin nopeudesta. Vastaus on +IPR: 0 OK (tässä tapauksessa 0 on automaattinen).
  • AT+ICF? – vaihteiston asetus. Vastaus on +ICF: bitti, pariteetti.
  • AT+IFC? – vaihteiston ohjaus. Vastaus on +IFC: liitin moduulista, moduuli liittimestä (0 – ei ohjausta, 1 – ohjelman ohjaus, 2 – laitteisto).
  • AT+GCAP – näyttää moduulin ominaisuudet. Esimerkkivastaus on +GCAP:+FCLASS,+CGSM.
  • AT+GSN – IMEI-moduulin hankkiminen. Esimerkkivastaus 01322600XXXXXXXX.
  • AT+COPS? – näyttää käytettävissä olevat operaattorit.
  • AT+CPAS – moduulin tila. Vastaus +CPAS: 0. 0 – valmis työhön, 3 – saapuva puhelu, 4 – puheyhteys, 2 – tuntematon.
  • AT+CCLK? – tiedot nykyisestä kellonajasta ja päivämäärästä.
  • AT+CLIP=1 – ota soittajan tunnus käyttöön/pois käytöstä. 1 – käytössä, 0 – pois käytöstä.
  • AT+CSCB=0 – erikoistekstiviestien vastaanottaminen. 0 – sallittu, 1 – estetty.
  • AT+CSCS= “GSM” – SMS-viestien koodaus. Voit valita yhden seuraavista koodauksista: IRA, GSM, UCS2, HEX, PCCP, PCDN, 8859-1.
  • AT+CMEE=0 – vastaanotetaan virhetietoja.
  • AT+CPIN=XXXX – anna SIM-kortin PIN-koodi.
  • AT&F – tehdasasetusten palautus.
  • AT+CPOWD=1 – kiireellinen (0) tai normaali (1) moduulin sammutus.
  • ATD+790XXXXXXXX – soita numeroon +790XXXXXXXX.
  • ATA – vastaa puheluun.
  • AT+CMGS=”+790XXXXXXXX”>Testisms – tekstiviestin lähettäminen numeroon +790XXXXXXXX.

Tässä tapauksessa mietimme peruskomennot SIM900-moduulille. Komennot voivat vaihdella hieman eri moduuleilla. Moduulin tiedot toimitetaan kautta erikoisohjelma"pääte", joka on asennettava tietokoneellesi. Voit myös lähettää komentoja moduuliin Arduino IDE:n porttimonitorin kautta.

Luonnokset GSM-moduulin kanssa työskentelemiseen

Esimerkkinä tekstiviestien lähettäminen SIM900:lla

Ennen kuin lähetät viestin, sinun on määritettävä moduuli. Ensinnäkin sinun on muutettava muotoon tekstimuoto lähetetty viesti. Tätä varten on komento AT+CMGF=1. Sinun on muutettava koodaus GSM:ksi komennolla AT+CSCS="GSM". Tämä koodaus on kätevin, koska merkit esitetään ASCII-koodissa, jonka kääntäjä ymmärtää helposti.

Sitten sinun on valittava tekstiviesti. Tätä varten lähetetään komento tilaajanumerolla AT+CMGS=»+79XXXXXXXXXX» r, vastauksena sinua pyydetään kirjoittamaan tekstiviesti. Sinun täytyy lähettää viesti. Kun olet valmis, sinun on lähetettävä yhdistelmäkoodi Ctrl+Z, moduuli sallii tekstin lähettämisen vastaanottajalle. Kun viesti on lähetetty, palautetaan OK.

Vuorovaikutus moduulin kanssa perustuu indekseihin, jotka määritetään jokaiselle uudelle viestille. Tämän hakemiston avulla voit määrittää, mikä viesti poistetaan tai luetaan.

SMS-vastaanottaminen. Tekstiviestin lukemiseksi käytä komentoa AT + CNMI = 2,2,0,0,0. Milloin se saapuu moduuliin? tekstiviesti, hän lähettää osoitteeseen sarjaportti+CMTI: “SM”,2 (tässä tapauksessa 2 – sarjanumero viestit). Sen lukemiseksi sinun on lähetettävä komento AT+CMGR=2.

Vastaanotto äänipuhelu. Ensinnäkin, jotta voit keskustella, sinun on liitettävä kaiutin ja mikrofoni moduuliin. Kun puhelu saapuu, näytetään numero, josta se on soitettu. Toimiaksesi sinun on otettava GSM-kirjasto käyttöön:

#sisältää

Jos SIM-kortti on lukittu, sinun on annettava sen PIN-koodi. Jos PIN-koodia ei vaadita, tämä kenttä tulee jättää tyhjäksi.

#define PINNUMBER ""

Setup()-toiminnossa tiedonsiirto tietokoneeseen on alustettava. Seuraava askel luo paikallisen muuttujan verkkoyhteyden tilan seuraamiseksi. Luonnos ei käynnisty ennen kuin SIM-kortti on liitetty verkkoon.

boolean notConnected = tosi;

GsmAccess.begin()-funktiota käytetään yhteyden muodostamiseen verkkoon. Kun yhteys on muodostettu, arvo GSM_READY palautetaan.

vcs.hangCall(); – toiminto, joka ilmaisee, että modeemi on valmis vastaanottamaan puheluita.

getvoiceCallStatus() – määrittää luonnoksen tilan. Jos joku soittaa, se palauttaa RECEIVING CALL. Numeron tallentamiseksi sinun on käytettävä retrieveCallingNumber()-funktiota. Kun puheluun vastataan, TALKING palaa. Luonnos odottaa sitten hahmoa uusi rivi keskeyttääksesi keskustelun.

Muodosta GPRS-yhteys ja lähetä tiedot etäpalvelimelle

Ensin sinun on asennettava SoftwareSerial-kirjasto, jonka avulla voit tarjota sarjamuotoisen tiedonsiirron ja yhdistää GSM-moduulin ja Arduino-mikro-ohjaimen.

Jos haluat lähettää tietoja palvelimelle, sinun on lähetettävä seuraavat komennot:

AT+SAPBR=1,1 – avaava kantoaalto.

Seuraavat kolme komentoa liittyvät verkkoyhteysasetusten määrittämiseen.

AT+SAPBR=3,1,\”APN\”,\”internet.mts.ru\” – valinta mts-operaattori, yhteysosoitteen nimi.

AT+SAPBR=3,1,\”USER\”,\” mts \” – valitse mts-käyttäjä.

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

AT+SAPBR=1,1 – yhteyden muodostus.

AT+HTTPINIT – http-alustus.

AT+HTTPPARA=”URL”, – URL-osoite.

AT+HTTPREAD – odottaa vastausta.

AT+HTTPTERM – lopeta http.

Jos kaikki on tehty oikein, porttimonitoriin ilmestyvät rivit AT-komennoilla. Jos modeemiin ei ole yhteyttä, se näyttää rivi kerrallaan. Kun GPRS-yhteys on muodostettu onnistuneesti, moduulin LED-valo alkaa vilkkua.

Viime aikoina niitä on ollut monia erilaisia ​​vaihtoehtoja GSM-hälytyslaitteiden kaaviot. Jos tämä kaava käyttää GSM-moduuli, niin useimmissa tapauksissa se on laajalle levinnyt moduuli, jonka on valmistanut kiinalainen SimCom SIM300. Tämä moduuli on osoittautunut erittäin hyväksi sekä luotettavuuden että alhaisten kustannusten suhteen.
Laitteesta löytyy kuvaus GSM-hälyttimet perustuu kirjoittajan kehittämään SIM300-moduuliin. Siellä on myös piirustuksia painetut piirilevyt ja täysi versio mikro-ohjaimen laiteohjelmistosta. Myös alla tämä järjestelmä hälytysjärjestelmä, erilaisia ​​laajennusmoduuleja, kaukosäätimiä, näppäimistön ohjausyksiköitä, virtalähteitä on kehitetty...
Mutta valmistaja ilmoitti, että vuoden 2010 lopusta alkaen SIM3xx-linjan GSM-moduulien tuotanto lopetetaan. On suositeltavaa käyttää sitä sen sijaan uusi moduuli, saman valmistajan valmistama - SIM900. Lisäksi, kuten todettiin, SIM900 on paljon toimivampi kuin "esi-isänsä", ja mikä on meille yksi parhaista tärkeät kriteerit, halvempaa.

Jotain SIM900:sta...

Joten mikä on SIM900-moduuli? Otetaan tietolomake ja yritetään lukea se.
SIM900-moduuli on nelikaistainen GSM/GPRS-laite, joka toimii taajuuksilla 850/900/950/1900 MHz ja joka on suunniteltu siirtämään ääntä, dataa, SMS viestit jne.
Perus tekniset tiedot moduuli:
Taajuusalue:
GSM850, EGSM900, DCS1800, PCS1900
Kanssa yhteensopiva GSM-vaiheen 2/2+ kanssa.
Lähetetty teho:
luokka 4 (2W/900 MHz)
luokka 1 (1W/1800 MHz)

Ohjaus: AT-komennot (GSM 07.10)
Moduulin syöttöjännite: 3,4 - 4,5 V
Kulutusvirta:
lepotilassa - 1,5 mA
siirtotilassa - 500 mA asti
enimmäismäärä - 1,8 A
Työskentelylämpötila: -30… +80 C
Mitat: 24x24x3 mm
Paino: 3,4 g
Kuten näet, tämä moduuli Mitat eroavat edeltäjästään SIM3xx-moduulista noin puolitoista kertaa. Mutta parametrien ja toiminnallisuuden suhteen se on myös suuruusluokkaa parempi.


Kuva 1 - Ulkomuoto GSM SIM900 moduuli



Kuva 2 – SIM900-moduulin nastamääritykset

Moduulin ulkonäkö näkyy kuvassa. 1, ja tappien jako on kuvassa. 2. Kuvista voidaan päätellä, että vakiorajapintojen lisäksi luontainen aikaisemmat mallit(UART-portit tiedonsiirtoa varten, STATUS-moduulin tilalähtö, SIM-kortin liitäntänastat jne.), useita uusia on lisätty (KBR/KBC-näppäimistön liitäntänastat, PWM PWM-lähtö, NRESET-moduulin nollausnasta).
Koska tätä moduulia ei ole tämän artikkelin kirjoittamishetkellä vielä täysin "testattu" Ukrainan laajuudessa, ohjelmistoa parannetaan jatkuvasti kuvauksessa, jotka eivät pahenna työtä kokonaisuudessaan .

Laitteen perusparametrit

Tämä laite on jatkoa kirjoittajan kehittämälle GSM-hälytyslaitteiden sarjalle. Siksi parametrit ovat suurelta osin samat.
Neljän hälytyssilmukan (AL) tilan valvonta kaikissa toimintatiloissa, paitsi ohjelmointitilassa, ja silmukoiden tilan näyttäminen käyttämällä LED-ilmaisimet sijaitsee laitteen etupaneelissa (merkkivalo ilmaisee "silmukka sisään hyvässä kunnossa", toisessa tapauksessa - hälytyssilmukassa on katkos tai oikosulku).
Hälytyssilmukat voivat sisältää:
> magneettikoskettimen merkinantolaitteet (reed kytkimet SMK, SOMK);
> "Foil"- ja "Window"-tyyppiset ilmaisimet;
> paloilmaisimet (IP-104, IP-105);
> liike-, äänenvoimakkuus-, lyöntianturit;
> muut anturit, joilla on suljettu lähtö normaalitilassa ja avoimet koskettimet rikkomuksen sattuessa.
Laitteen tuki seuraavat tyypit hälytysalueet (silmukat):
"normaali" ("Hälytys" -signaali luodaan välittömästi, kun vastaanotetaan signaali hälytyssilmukan eheyden rikkomisesta; silmukkaa ei palauteta aktivoinnin jälkeen);
"viiveellä" (käyttäjälle annetaan aikaa poistua ja astua sisään, jotta hänellä on aikaa käynnistää laite ja poistua esineestä tai avata esine ja sammuttaa laite);
"käytävä" (kun vyöhyke laukeaa ja palaa sitten normaalitilaan tämä tyyppi vyöhyke on viritetty uudelleen);
"24 tuntia, tulipalo" (hälytyssilmukka on jatkuvasti suojattu, pois päältä ja pois päältä suoritetaan erityisellä SMS-komennolla);
"kellon ympäri, hälytyspainike» (hälytyssilmukka on jatkuvasti viritetty, poiskytkeminen ja virittäminen tapahtuu erityisellä SMS-komennolla, kun silmukka laukeaa, vain valitaan, lähetetään tekstiviesti sabotaasista, sireeni ei syty);
"pois käytöstä" (järjestelmä ei vastaa AL-tulon muutoksiin).
"Turvallisuus"-tilan käyttöönotto käyttämällä "piilotettua" tai "salaista" painiketta, "salaista" kytkintä (jonka sijasta voidaan käyttää näppäimistöä, jossa on normaalisti avoimet kontaktit, kuten "Satel") tai kaukosäätimellä kaukosäädin, TouchMemory-näppäin (Dallas) tai lisänäppäimistö ohjaimen laiteohjelmistosta riippuen. Tässä kuvattu laiteohjelmisto käyttää vain "salaista" kytkintä, muista versioista keskustellaan myöhemmin.
Laitteen kahta käyttötilaa tuetaan:
GSM-hälytys (GSM-pääte on kytketty ja sen kanssa vaihdetaan tietoja);
autonominen hälytysjärjestelmä (GSM-pääte ei osallistu järjestelmän toimintaan, laite toimii autonomisena hälytysjärjestelmänä).
Virityksen purkaminen ja virittäminen soittamalla tietystä puhelimesta (voidaan poistaa käytöstä) lähettämällä vastaava tekstiviesti järjestelmän tilasta.
Vahvistustekstiviestin lähettäminen, kun kohde otetaan suojan alle (voidaan poistaa käytöstä).
"Hälytys"-signaalin generointi (sireenin kytkeminen päälle, "hälytys"-tietojen lähettäminen kännykkä) jos vähintään yhden hälytyssilmukan eheys on rikottu ("katkos" tai "oikosulku").
Tekstiviestien lähettäminen ja automaattinen valinta kolmeen matkapuhelin- tai lankapuhelinnumeroon (jos teleoperaattorisi tukee tekstiviestitoimintoja).
Laitteen kytkeminen "Disarmed"-tilaan käyttämällä vain kaukosäädintä, näppäimistöä, vastaanottamalla tekstiviesti matkapuhelinnumerosta 1 ja (tai) soittamalla tästä numerosta (voidaan poistaa käytöstä), sekä "salainen" kytkin, riippuen ohjaimen laiteohjelmistosta.
Mahdollisuus kauko-ohjata laitetta lähettämällä tietyn sisällön tekstiviestejä (voidaan poistaa käytöstä).
Laitteen päätoimintojen ja parametrien (puhelinnumerot, viive, sireenin toiminta-aika jne.) ohjelmointi tietokoneella Lite ohjelmat Ohjelmoija laitteen ohjelmointitilassa. Tässä tapauksessa tietokoneen COM-portin lähtö (nastat RxD ja TxD) kytketään hälytyslaitteen vastaavaan liittimeen erikoiskaapelilla.
Laite lähettää käyttäjälle tietyn signaalin mobiilikorttitilin varojen puutteesta.
Laite lähettää käyttäjälle tietyn signaalin viestintäsignaalin puuttumisesta matkaviestimen kanssa.
Lähettää SMS-signaali kun verkkojännite (220V) katkeaa "Turvallisuus"-tilassa (voidaan poistaa käytöstä).
Sisäänrakennetun GSM-modeemin avulla voit tehdä ilman tarpeettomia lohkoja ja yhteyksiä sekä lisätä GSM-kanavayhteyden yhteensopivuutta ja vakautta.
Lähdön ohjelmoitu reaktio: kytke lähtö päälle vain "Hälytys"-tilassa käyttäjä asentanut aika (60 - 240 sekuntia).
Alkuperäisen IR-tiedonsiirtoprotokollan käyttö kaukosäätimellä laitteen ja RF-kaukosäätimen ohjaamiseen sekä näppäimistöltä vastaanotettujen tietojen alkuperäinen koodaus.
On mahdollista ohjata laitteen syöttöjännitettä ja jännitettä akku, kun taas vastaavat tekstiviestit lähetetään, kun verkkojännite katoaa tai tulee uudelleen näkyviin. Myös kun varalähteen (akun) syöttöjännite putoaa määritetyn tason (8-9V) alapuolelle, lähetetään viesti, jonka jälkeen laite siirtyy "lepotilaan", josta voi poistua vain, kun virtalähde ( verkkovirta tai akku) palautetaan.
SMS-viestin lähettäminen osoitteeseen matkapuhelinnumero 1 saapuvia puheluita vastaanotettaessa saapuva numero(voidaan poistaa käytöstä).
Laitteen avulla voit kytkeä ulkoisia ääni- tai valohälytyksiä (kello, sireeni, lamppu) käyttöjännitteellä 12V ja virrankulutuksella jopa 1,25A.
Tässä artikkelissa kuvattu mikro-ohjaimen laiteohjelmisto on suunniteltu käyttämään laitetta yhdessä "salaisen" kytkimen kanssa sekä kytkemään laitteen päälle ja pois päältä soittamalla ja lähettämällä tekstiviestejä. Laitteen muita versioita kuvataan seuraavissa materiaaleissa, mikäli lukija kiinnostaa tietysti.

Tekniset tiedot

Hälytyssilmukoiden lukumäärä – 4.
Kaukoelementin (liittimen) resistanssi, kOhm – 2,7.
Turvasilmukan suurin vastus ottamatta huomioon etäelementin vastusta, Ohm – 750.
Nykyinen kulutus lähteestä tasavirta(ilman kytkettyjä aktiivisia hälytysantureita), 12,6 V:n jännitteellä, seuraavissa toimintatiloissa ei enää:
- "päivystys", ilman GSM-moduulia - 0,16 A;
- "päivystys", käytettäessä GSM-moduulia – 0,23 A;
- "turvallisuus", käytettäessä GSM-moduulia – 0,28 A;
- "hälytys", kun käytetään GSM-moduulia ja sireeni on pois päältä - 0,34 A;
- huippu (pulssi) kulutus - 1,8 A.
Tuettu GSM-standardit: 850/900/1800/1900 MHz.
Aikarajat:
- Sisääntuloviive – 0…150 sekuntia;
- Poistumisviive – 0…250 sekuntia;
- Sireenin toiminta-aika – 30…250 sekuntia.

Järjestelmän kuvaus

Pääyksikön sähkökytkentäkaavio on esitetty kuvassa. 3. Selvennän - "pääyksikkö", koska näihin hälytysjärjestelmiin on lisäksi kehitetty suuri joukko oheislaitteita: tässä on erilaisia ​​ohjauspaneeleja, laajennusyksiköitä jne. .
Verrattuna aiempi versio piirissä on tehty laadullisia muutoksia: paitsi, kuten edellä mainittiin, toisen GSM-moduulin käyttö, myös rele on poistettu (sen sijaan käytetään IC:tä - joukko tehokkaita transistorikytkimiä), ja RS232-UART-muunninyksikössä on myös eliminoitu (kuten käytäntö on osoittanut, ohjelmointia ei tehdä kovin usein, ja tähän käytetään pääasiassa kannettavaa tietokonetta, jossa usein ei yksinkertaisesti ole RS232-porttia).



Kuva 3 – Sähkökytkentäkaavio

Laitteen pääohjauselementti on Atmelin valmistama ATmega168-mikro-ohjain. Mikrokontrolleri tarkkailee ADC-tuloihin kytkettyjen hälytyssilmukoiden tiloja ja suorittaa toimintatavasta riippuen lisätoimenpiteitä, kuten soittamisen ja tekstiviestien lähettämisen, sireenin kytkemisen jne.
ADC-tulot PC0-PC3 on suunniteltu valvomaan hälytyssilmukoiden tilaa, MK mittaa jännitteen näissä nastoissa ja tuottaa jännitteestä riippuen "katkos", "normaali" tai "lyhyt" signaalin. PC5:lle, PC6:lle syötetään jännitteet teholähteen lähdöstä niiden arvojen ohjaamiseksi. Muuten, jos näitä nastoja ei ole kytketty, laite ei käynnisty!
Piirissä käytetään ohjausLED:iä: LED1 – GSM-moduulin toiminnan ohjaus (jos yhteys on ja moduuli toimii, se vilkkuu taajuudella 1 välähdys 2-3 sekuntia, muissa tapauksissa tiedonsiirrossa on ongelmia tai itse moduulilla), LED2 - järjestelmän toiminnan ohjaus (käyttötiloissa se vilkkuu taajuudella 3-5 kertaa sekunnissa, ohjelmointitilassa palaa jatkuvasti). Lisäksi hälytyssilmukoiden LED4...LED7 tilan valvontaa varten on kytketty nastoihin IND1...IND4. KEY_S – itse asiassa "salainen" painike tai kytkin itse. SPEAKER – liitin kaiuttimen liittämiseen, sen vastus voi olla mikä tahansa, teho vähintään 0,25 W.

Tietoja laitteen virtalähteestä. Tämä laite vaatii syöttöjännitteen välillä 10 - 18 V, jonka virta on enintään 2 A. Teholähde on suositeltavaa rakentaa siten, että syöttöjännite ei katoa, vaikka verkko katkeaa, eli tarjoa ladattava akku. On suositeltavaa käyttää sopivaa virtalähdettä aiemmat versiot kuvattava laite. Siinä kuvataan myös, kuinka virtalähde kytketään hälytyslaitteeseen.

Laitteen perustoimintojen ohjelmointi

Laitteen päätoimintojen ohjelmointi suoritetaan erityisellä ohjelmalla - Lite Programmer. Uusin versio Ohjelmat voi aina ladata tekijän verkkosivuilta. Periaatteessa laitteen ohjelmointiin tietokoneen sijaan voidaan käyttää dataportin tai infrapunaportin kautta laitteeseen kytkettyä matkapuhelinta, mutta tätä varten on kirjoitettava vähintään java midlet ja puutteen vuoksi Vapaa-ajalla kirjoittajalla ei yksinkertaisesti ole aikaa tehdä tätä, ja ohjelmointi kannettavalla tietokoneella on toistaiseksi hyvä. Jos joku on kiinnostunut ratkaisemaan tämän ongelman, kirjoita kirjoittajalle sähköpostitse, kaikki asiakirjat toimitetaan.
Laite liitetään tietokoneen vapaaseen COM-porttiin erityisellä RS232-UART-muuntimella tai USB-porttiin USB-UART-sovittimen kautta. Älä vain yritä yhdistää suoraan, ilman sovitinta (tällaisia ​​käsityöläisiä on nyt)! Tämä uhkaa mikro-ohjaimen tai tietokoneportin kuolemaa!
Ohjelmointitilaan siirtyminen:
1. Paina S1-painiketta vähintään 2 sekuntia ja odota, kunnes 2HL1-moduulin toimintatilan merkkivalo lakkaa vilkkumasta (yleensä enintään 10 sekuntia).
2. Katkaise laitteen virta.
3. Aseta jumpperi J1 ja kytke laite ohjelmointitilaan.
4. Liitä kaapeli laitteen liittämiseksi tietokoneeseen.
5. Muodosta yhteys laitteeseen ja ohjelmoi se (kuvattu alla).
6. Katkaise laitteen virta.
7. Irrota tiedonsiirtokaapeli PC:n kanssa ja irrota hyppyjohdin J1.
8. Ohjelmointi on valmis, voit kytkeä virran päälle ja käyttää laitetta.
Päämuoto Ohjelma on vakio, ei röyhelöitä tai kelloja ja pillejä. Lomakkeen oikealle puolelle on asetettu COM-portin numero sekä tiedonsiirto- ja vastaanottonopeus (tapauksessamme - 115200 baudia), jotta laite asetetaan ohjelmointitilaan valitsemalla "Toiminto" -kohdasta "luoda yhteys". ” kehys (oikeassa alakulmassa), Tässä tapauksessa LED 1LED1 palaa jatkuvasti. Voit ohjelmoida!



Kuva 4 – Lite Programmer -ohjelman päämuoto

Ohjelman kanssa työskentely ei aiheuta erityisiä vaikeuksia käyttäjälle, joka on käynnistänyt tietokoneen ainakin kerran elämässään. Lisäksi kaikki on kuvattu yksityiskohtaisesti useammin kuin kerran mainituissa Käyttö- ja ohjelmointiohjeissa. Lyhyesti sanottuna: aseta tarvitsemasi parametrit, varmista, että "Muuta" näkyy punaisena kolmannessa sarakkeessa, valitse "Ohjelmointi" "Toiminto"-kehyksestä, napsauta "Suorita" -painiketta, ja siinä kaikki. Jos parametri on ohjelmoitu, viidennessä sarakkeessa näkyy teksti "Ohjelmoitu", ohjelma näyttää myös vastaavan viestin.

Jotkut ohjelmoinnin vivahteet.

Erityistä huomiota tulisi kiinnittää ohjelmointiprosessiin, koska laitteen toiminta kokonaisuudessaan riippuu siitä. Kuten käytäntö on osoittanut, suurin virhe tehdään määritettäessä matkapuhelinoperaattorin SMS-keskuksen numeroa. Jos et tiedä tätä numeroa tai et ole varma, on parempi olla ohjelmoimatta sitä ollenkaan. Tässä tapauksessa GSM-moduuliohjelmisto määrittää numeron itsenäisesti.
Ole myös varovainen asettaessasi USSD-saldopyyntönumeroa, jos aiot käyttää sitä. Alun perin laite kehitettiin ukrainalaisille käyttäjille, joten vähimmäissaldosumma on yhdestä yhdeksään hryvnia-ruplaa. Asennusvaihtoehtoja on kaksi. Ensimmäinen on valita haluttu operaattori, ja ohjelma itse asettaa vaaditun määrän ja vähimmäissaldon määrän, joka on yhtä suuri kuin kaksi grivnaa. Toinen vaihtoehto on valita pudotusvalikosta TUNE USSD USSD-pyyntöoperaattorin valitsemiseksi ja täyttää sitten vaaditut parametrit näkyviin tulevaan lomakkeeseen: vähimmäismäärä (yhdestä yhdeksään ruplaan), rupla-kopeikka erotin (jotkut operaattorit käyttävät erilaisia ​​erotusmerkkejä, esimerkiksi piste , pilkku, kaksoispiste).
Ohjelma tukee tällä hetkellä vain latinalaisia ​​aakkosia tekstiviestien syöttämisessä, koska tämä toiminto sitä tukee myös mikro-ohjainohjelma. Parhaillaan työstetään kyrillisten aakkosten sisällyttämistä.

Pikaopas.

Ennen kuin asennat hälytyksen laitteeseen, sinun tulee "valmistella" SIM-kortti jollain tavalla, nimittäin: poistaa salasana käytöstä. On suositeltavaa käyttää saman matkapuhelinoperaattorin SIM-korttia kuin puhelinverkkoyhteydet. Ainakin tekstiviestien perillemenon todennäköisyys moninkertaistuu.
Kun virta on kytketty ja käynnistetty, laite antaa yhden pitkän piippauksen sisäisestä kaiuttimesta, sitten yhteys moduuliin muodostetaan, jonka päätyttyä kuuluu kolme lyhyttä piippausta. Laite on käyttövalmis.
Seuraavaksi puhumme laitteen käytöstä turvahälytyslaitteena sisärakennuksissa jne. Jotta laitetta voidaan käyttää autohälyttimenä tai muihin toimintoihin, tarvitaan ensin erilainen mikro-ohjaimen laiteohjelmisto, joka ei kuulu tämän artikkelin piiriin. Tämä on myöhempien julkaisujen aihe.
Laitteen virittämiseksi sinun on suljettava KEY_S-kytkin. Muuten sen sijaan tämä kytkin Voit käyttää mitä tahansa näppäimistöä normaalisti avoimilla kontakteilla, esimerkiksi Satel SW02. Tämän jälkeen laite alkaa laskea poistumisaikaa (aika asetetaan ohjelmoinnin aikana), jonka aikana on poistuttava suojatusta kohteesta. Jos kaikki silmukat ovat koottussa tilassa poistumisajan umpeuduttua, laite siirtyy suojaustilaan. Jos sisääntuloajan umpeutumisen jälkeen ainakin yksi silmukoista on auki tai oikosulussa, laitteesta kuuluu katkonainen ääni 100-140 sekuntia, lähetetään viesti, ettei kohdetta ole viritetty, numeroon 1 (jos ohjelmoitu), jonka jälkeen se siirtyy hälytystilaan ja lähettää kaikki viestit ja soittaa. Voit myös virittää laitteen soittamalla ensin ohjelmoidusta numerosta tai lähettämällä tekstiviestin "START" samasta numerosta. Muista, että tätä laiteohjelmistoversiota ei suositella jakaminen kun viritetään "salainen" kytkin ja GSM-toiminnot niiden keskinäisen vaikutuksen poistamiseksi. Yhdessä käytettynä etusija on kytkimen puolella, GSM-toiminnot eivät toimi!
Turvatilassa laite tarkkailee jatkuvasti kaikkien hälytyssilmukoiden tilaa sekä GSM-moduulin tilaa. Tässä tapauksessa, jos silmukka laukeaa, tekstiviestit lähetetään ja puhelut soitetaan ohjelmointikortin mukaisesti. Soittaminen tapahtuu, kunnes tilaaja ottaa puhelimeen, mutta enintään kahdeksan kertaa. Myös suojaustilassa virransyöttöä 220V verkkoon ja vara-akkua ohjataan. Samanaikaisesti jokaisella 220 V:n häviämisellä ja sen uudelleen ilmestymisellä lähetetään vastaava tekstiviesti (tämä toiminto voidaan poistaa käytöstä ohjelmoinnin aikana).
Laitteen virityksen poistamiseksi sinun on avattava esine ja avattava kytkimen koskettimet poistumisajan aikana. Jos tätä ei tehdä, laite siirtyy hälytystilaan. Tai kytke esine pois päältä ennen avaamista soittamalla tai lähettämällä tekstiviesti "STOP" ensimmäisestä numerosta.
Valmiustilassa laite valvoo myös hälytyssilmukoiden tilaa sekä GSM-moduulia. Jos yhteys moduulin kanssa katkeaa tai verkko katkeaa, kuuluu viisi lyhytaikaista summeria 2-4 minuutin välein. Lisäksi 30-40 minuutin välein kysytään matkapuhelinnumeron tilin tila. Tässä tapauksessa kuuluu kymmenen lyhytaikaista äänimerkkiä ("trill") ja yksi tekstiviesti ("NO MONEY!!") lähetetään numeroon 1.
Taulukossa näkyvät palveluviestit, joita laite voi lähettää tiettyjen tapahtumien sattuessa (jos lähetystoiminto on poistettu käytöstä ohjelmoinnin aikana, näitä viestejä ei lähetetä!):

SMS-teksti

Kuvaus

Huomautus

Lopeta vartija!

Järjestelmän poiskytkennän vahvistus

Valmiustila

VIRTA POIS!!!

Häiriö tai 220 V verkkojännitteen puuttuminen

Vain suojaustilassa

Virta päälle

220 V verkkojännitteen ulkonäkö (poissaolon jälkeen)

KAIKKI VIRLAT POIS!!!

Kaikki syöttöjännitteet ovat normaalin alapuolella. Jonkin ajan kuluttua laite siirtyy lepotilaan.

Kaikissa toimintatiloissa

Aloita nukkumisen jälkeen

Laitteen toiminnan jatkaminen sähkökatkon jälkeen

EI RAHAA!!!

Tilillä olevien varojen vähimmäismäärä. Sinun täytyy täydentää tiliäsi!

Tällä laitteella on suuria parannus- ja modernisointimahdollisuuksia. Sitä voidaan käyttää paitsi hälyttimenä myös minkä tahansa tiedonkeruu- ja tiedonsiirtolaitteena konfiguroimalla mikro-ohjainohjelma jokaiseen tapaukseen.

Johtopäätös

Kuvattu laite läpäisi alkutestauksen tekijän laboratoriossa ja osoitti hyviä tuloksia. SIM900-moduuli osoitti vakaata toimintaa, kun sitä ohjattiin tavallisilla AT-komennoilla, ei erityisiä valituksia. Pian tälle laitteelle kehitetään painetut piirilevyt ja laaditaan vastaava dokumentaatio. Mikro-ohjaimen laiteohjelmiston demoversio on liitetty tähän artikkeliin. Täysin toimiva versio laitteen mikro-ohjaimen laiteohjelmistosta on kaikkien saatavilla ilmaiseksi. Tätä varten sinun tulee lähettää vastaava pyyntö osoitteeseen sähköpostilaatikko kirjoittaja tai ICQ:n kautta. Myös mahdolliset ehdotukset kuvatun hälytyslaitteen ja oheislaitteiden tuotannon järjestämiseksi otetaan huomioon.
Jatkossa on tarkoitus varmistaa laitteen yhteensopivuus kaikkien oheislaitteiden kanssa, jotka on suunniteltu D. Dmitrenkon GSM-hälytyslaitteen aikaisempaan versioon. Tässä artikkelissa on lisäyksiä eri sovelluksiin.

Kaikki laiteohjelmistot ovat tällä hetkellä täysin toimivia, lukuun ottamatta iButton-näppäimiä tukevaa laiteohjelmistoa, käytettävien näppäinten enimmäismäärää on rajoitettu - yhdestä kolmeen.

1. TouchMemory-näppäimen käyttö laitteen ohjaamiseen

Tällä hetkellä mikro-ohjaimen laiteohjelmisto on kehitetty toimimaan TouchMemory-näppäinten kanssa. Tätä varten on tarpeen täydentää laitetta yksinkertaisella laitteella, joka koostuu kahdesta vastuksesta, kapasitanssista ja zener-diodista. Ja tietysti käytä tämän tyyppisen laitteen laiteohjelmistoa.
Esimerkki tällaisen laitteen käytöstä on kuvattu selkeästi artikkelissa GSM-signalointi iButton-näppäimillä. Siellä sähköpiirikaaviossa on esitetty lisälaitteen kytkentä ja piirustukset painetusta piirilevystä.
Laiteohjelmiston voi ladata [etsin DDN Research HG45Q -laitetta]

Alla kuvattu kokemus SIM900:n käytöstä on hyödyllisempää niille, jotka ovat jo työskennelleet vähän moduulin kanssa. Niille lukijoille, jotka ovat juuri aloittamassa tämän mikropiirin opiskelua ja aikovat käyttää sitä tietojen vaihtamiseen Internetin kautta, olemme laatineet sarjan oppitunteja tästä aiheesta. täällä .

SIM900 on siis SIM COM:n GSM-moduuli, jota ohjataan AT-komennoilla ja joka voi lähettää tekstiviestejä, soittaa puheluita, järjestää suoran CSD-yhteyden ja vaihtaa tietoja GPRS:n kautta.

Käsissäni oli Kiinasta tilattu SIM900 GPRS shield debugging board - yhteensopiva Arduino-alustan kanssa.

Levy sisältää itse SIM900-sirun, liittimet mikrofonille ja kuulokkeille, virtalähteen kytkimen (ulkoisesta liittimestä tai Arduinosta), antennin, useita LED-valoja osoittamaan toimintatiloja, liittimen akulle (jos reaaliaikainen tarvitaan kello) ja on/off-painike. Hyvä kuvaus Löysin valmistajan wikistä . Siellä on myös koodi modeemin ohjaamiseen eri tiloissa.

Kuten valmistaja kertoo, levy on täysin yhteensopiva Arduino Unon kanssa. Itse asiassa SIM900-kortti liitetään Unoon ja alkaa heti toimia. Kuten kävi ilmi, Arduino Uno voi kuitenkin osoittautua "heikoksi" joidenkin toimintojen toteuttamiseen, mutta puhun tästä alla.

Levy toimii Arduino Megan kanssa tietyin rajoituksin. Tämä johtuu siitä, että Megassa, toisin kuin Unossa, on nastat 7 ja 8, jotka eivät ole käytettävissä laadukas ohjelmisto sarja (ohjelmisto USART). Tämä voidaan ratkaista vaihtamalla USART-liitäntä jalkoihin 0 ja 1 tätä tarkoitusta varten, SIM900-kortilla on jumpperit.

Yleensä kortti voidaan liittää mihin tahansa ohjaimeen, jossa on USART-liitäntä. Yritin esimerkiksi ohjata modeemia STM32F4-ohjaimella.

SIM900: tekstiviestit ja puhelut

Tekstiviestien ja puhelujen vaihtomoduulin testaus onnistui erinomaisesti! Moduuli selviytyi näistä tehtävistä ilman erityisiä ongelmia, tätä varten kopioin juuri c sama sivusto, käänsi ja päivitti tämän koodin Arduino Unossa:

//Serial Relay - Arduino korjaa //sarjayhteyden tietokoneen ja GPRS Shieldin välillä //19200 bps 8-N-1 //Tietokone on kytketty laitteistoon UART //GPRS Shield on kytketty ohjelmistoon UART #include SoftwareSerial GPRS(7, 8); allekirjoittamaton char-puskuri; // puskuriryhmä tietojen vastaanottoa varten sarjaportin kautta int count=0; // puskuritaulukon laskuri void setup() ( GPRS.begin(19200); // GPRS-siirtonopeus Serial.begin(19200); // Arduinon tiedonsiirtonopeuden sarjaportti. ) void loop() ( if (GPRS) .available()) // jos päivämäärä tulee ohjelmistosarjaportista ==> data tulee gprs-suojasta ( while(GPRS.available()) // lukee tietoja char-taulukkoon ( buffer=GPRS.read(); // tietojen kirjoittaminen taulukkoon if(count == 64)break ) Serial.write(buffer,count) // jos tiedonsiirtoa ei ole, kirjoita puskuri laitteiston sarjaporttiin count = 0; / aseta while-silmukan laskuri nollaan ) if (Serial.available()) // jos tietoja on saatavilla laitteistosarjaportissa ==> data tulee PC:ltä tai kannettavalta tietokoneelta GPRS.write(Serial .read()); se GPRS-suojalle

Jotta moduuliin voidaan lähettää komentoja, sen on oltava kytkettynä tietokoneeseen. Tämä voidaan tehdä käyttämällä Arduinon USB-porttia. Tietokoneessa tarvitset tätä varten minkä tahansa COM-portin näytön. Voit ladata sen täältä, tai voit käyttää Arduino IDE:n sisäänrakennettua näyttöä.

Ainoa laiteohjelmiston Arduino-ohjelma tekee on "saappaa" käyttäjän komennot ja lähettää ne moduulille ja palauttaa sitten vastaukset SIM900:lle käyttäjälle. Siten AT-komentoja manuaalisesti moduuliin välittämällä testasin tekstiviestien vastaanottoa ja lähetystä ja liittämällä mikrofonin ja kuulokkeet asianmukaisiin liittimiin käytin SIM900-moduulia matkapuhelimena.

Tiedonsiirto GPRS:n kautta SIM900:lla

Aloitin ensimmäiset kokeiluni tiedonsiirrossa GPRS:n kautta käyttämällä Arduino UNO -alustaa SIM900:n ohjaamiseen (yksinkertaisesti siksi, että se oli käsillä). Aluksi ostin hosting-palvelimen, jossa oli Apatche, ja otin siihen käyttöön yksinkertaisen sovelluksen, joka pystyi vastaamaan taitavasti GET-pyyntöihin. Tapahtui! Lähetin silti komennot PC:ltä Arduino-ohjaimelle, joka puolestaan ​​lähetti ne SIM900:lle.

Kaikki toimi oikein, kunhan GET-pyynnöt olivat riittävän lyhyitä (enintään 100 merkkiä). Mutta heti kun pyynnöt pidentyivät, alkoivat epäonnistumiset: pyyntöjä ei lähetetty kokonaan. On havaittu, että häiriöt voivat ilmaantua tai kadota jopa kun Arduino-ohjausohjelmaa lisätään/vähennetään useilla riveillä. Myöhemmin kävi ilmi, että viat liittyivät USART-ohjelmistoon, jolla Arduino UNO kommunikoi SIM900:n kanssa, koska tällainen USART on täysin riippuvainen ohjainytimen ohjelmistosyklistä. Jos datan määrä on pieni, sillä on aina aikaa lähettää, ja jos sen määrä kasvaa, siirron tulos riippuu ohjelmajakson kestosta.

Johtopäätös kaikesta yllä olevasta: USART-ohjelmiston käyttäminen SIM900:n kanssa kommunikoinnissa on MAHDOLLISTA, varsinkin kun on kyse suuresta siirrettävästä datamäärästä.

Arduino Unossa on vain yksi ”laitteisto” USART-liitäntä, jota käytettiin vaihtoon PC:n kanssa, joten jouduimme luopumaan UNO:sta ja korvaamaan sen Arduino Megalla, joka ei kärsi ”laitteistojen” USART:ien puutteesta. Tällaisen "valun" jälkeen laitteen toiminnasta tuli vakaa ja oikea.

SIM900: TCP-IP-pino vai HTTP? Mikä on parempi?

Tutkiessani modeemin hallintaopasta huomasin, että AT-komentoja on kaksi ryhmää. Ensimmäistä ryhmää käytetään tiedonsiirtoon sisäänrakennetun TCP-IP-pinon kautta ja toinen käyttää SIM900:n sisäisen logiikan jo toteuttamaa HTTP-protokollaa. Huolimatta siitä, kuinka paljon kiusasin Googlea ja Yandexia yrittäessäni selvittää, miten nämä menetelmät eroavat toisistaan, mitkä ovat niiden edut ja haitat, en löytänyt mitään, joten kokeilin molempia ja jaan käytännön kokemukseni täällä.

Molemmat menetelmät toimivat ja niillä on oikeus olemassaoloon.

TCP-IP-pino on hieman vaikeampi alustaa (enemmän komentoja on välitettävä moduulille), ja sitä on hieman vaikeampi hallita. Jotta voit lähettää pyynnön, sinun on avattava yhteys, odotettava vastausta ja suljettava se oikein.

HTTP on yksinkertaisesti sanottuna SIM900:een sisäänrakennettu selain. Se on helppo alustaa, jotta voit aloittaa kommunikoinnin palvelimen kanssa, sinun on avattava istunto. Samalla yhteyden avaaminen ja sulkeminen jokaisen pyynnön yhteydessä sekä muiden "organisaatiotehtävien" ratkaiseminen jää SIM900:n harteille. Tämä on kätevää ja tiedonsiirto tällä tavalla on hieman nopeampaa juuri siksi, että SIM900 pystyy suorittamaan kaikki "aputoiminnot" nopeammin kuin ohjausohjain.

Siten vaihtotapaa valittaessa asetuin silti HTTP-protokollaan.

Virheellinen GET-pyyntö palvelimelle

Työni alussa, kun siirsin dataa GPRS:n kautta, tein virheen, joka maksoi minulle enemmän kuin yhden päivän piinaa. Koska minulla ei ollut riittävää kokemusta vuorovaikutuksesta palvelimen kanssa GET-pyyntöjen kautta, sain pinnallista tietoa Internetistä, joten koonnut pyynnön, kuten:

HANKI http://xxx.ru/d_command.php?UC=1111 HTTP/1.1
HOST: xxx.ru

Tämä pyyntö ei ole oikea, mutta selain ja välityspalvelin, jolta lähetin virheenkorjauspyynnöt, "söivät" sen täydellisesti - siksi pidin pyyntöä oikeana.

Yllättävintä on, että SIM900 selviytyi hyvin myös "huonosta" pyynnöstä (ja lähetin pyyntöjä silloin TCP-IP-pinon kautta). Eräänä kauniina päivänä palvelin alkoi kuitenkin vastata tällaisiin pyyntöihin virheellä 404. Tämä johtui olosuhteista, joita ei ole vielä selvitetty, joko isännöintipalveluntarjoaja muutti pyynnön käsittelyn algoritmeja (hän ​​kiistää tämän) tai matkapuhelinoperaattori teki sen. Mutta tosiasia pysyy tosiasiana. Sitten yritin lähettää saman pyynnön HTTP:n kautta - kaikki toimi. Tämä selittyy sillä, että SIM900-moduulin sisäinen HTTP-protokolla (kuten jo sanoin, olennaisesti sisäänrakennettu selain) pystyy "jäsentämään" virheelliset pyynnöt oikein ja lähettämään ne verkkoon oikeassa muodossa. Tämä on toinen etu (tietysti kyseenalainen) HTTP:n käytössä, koska se sallii ohjelmoijalle joitain epätarkkuuksia. Yleensä tietysti pyyntö on kirjoitettava oikein ja näyttää tältä:

GET /d_command.php?UC=1111 HTTP/1.1
HOST: xxx.ru

Tällaisella oikealla pyynnöstä SIM900 vaihtaa onnistuneesti sekä TCP-IP-pinon että HTTP:n kautta.

SIM900 jäätyy

Joskus GPRS:n kautta vaihdettaessa syntyy tilanteita, joiden jälkeen moduuli saattaa jäätyä. Tämä voi johtua verkon kautta saapuneista virheellisistä tiedoista, jotka ajoivat SIM900:n umpikujaan, tai häiriöstä moduulin ja ohjaimen vaihtolinjassa, jolloin SIM900 vastaanotti "ei sitä mitä se odotti" tai jostain muusta tuntemattomasta ongelmasta. Sirun valmistaja varoittaa, että näin voi tapahtua, ja ehdottaa, että tällaisissa tapauksissa moduuli käynnistetään uudelleen käyttämällä erityistä PWRKEY-tuloon syötettyä pulssisarjaa.

Kuten kävi ilmi, tämä ei kuitenkaan aina auta - tällaisen uudelleenkäynnistyksen jälkeen moduuli voi "herätä" edelleen "kiihkeä". Ja valmistaja myös varoittaa meitä tästä, jos luemme huolellisesti moduulin DataSheetin. Dokumentaatio suosittelee seuraavaa:

HUOMAUTUS: On suositeltavaa katkaista VBAT-virtalähde suoraan ulkoisen nollausnastan käyttämisen sijaan, kun SIM900 ei voi vastata AT-komentoon “AT+CPOWD=1” ja PWRKEY-nastalle.

Siksi oikein tapa käynnistää moduuli uudelleen on poistaa siitä virta kokonaan (VBAT-nastasta), odottaa hetki (ainakin sekunti varmuuden vuoksi) ja kytkeä virta uudelleen. Moduulin uudelleenkäynnistämiseksi on parempi varustaa kortilla rele- tai transistorikytkin, jota ohjaa ohjain.

Johtopäätös

Tulevaisuudessa aion julkaista artikkeli-oppituntisarjan, jossa kerron kuinka järjestää palvelinverkkosovelluksen ja SIM900:n välinen vaihto, alkaen hosting-palvelun ostamisesta palveluntarjoajalta ja päättyen ohjausohjelmakoodin kirjoittamiseen.

Hyvästi! Pysy kuulolla päivityksistä LASKA ÄLYKÄS .

GSM SIM900A:n yhdistäminen Arduinoon
SIM900A-modeemi on rakennettu SIM900A-kaksoismoduulin GSM900/GSM-modeemin kanssa SIMCOMilta. Se toimii 900/1800 MHz taajuuksilla. SIM900A voi etsiä automaattisesti nämä kaksi kaistaa. Taajuuskaistat voidaan asettaa myös AT-komennoilla. Siirtonopeus on konfiguroitavissa alueella 1200-115200 AT-komennolla. GSM/GPRS-modeemissa on sisäinen TCP/IP-pino, jonka avulla voit muodostaa yhteyden Internetiin GPRS:n kautta. SIM900A on erittäin kompakti ja luotettava langaton moduuli. Se on täysimittainen SMT-tyyppinen GSM/GPRS-moduuli, joka on suunniteltu erittäin tehokkaalla yksisiruisella prosessorilla, joka integroi AMR926EJ-S-ytimen, joten voit käyttää pienikokoisia ja kustannustehokkaita ratkaisuja.

Erittely

Kaksikaistaiset taajuudet 900/1800 MHz

GPRS Multi-slot Class 10/8 GPRS luokan B matkaviestimille

Vastaa GSM-vaihetta 2/2+

Mitat: 24 * 24 * 3 mm

Ohjaus AT-komennoilla (GSM 07.07, 07.05 ja SIMCOM laajennetuilla AT-komennoilla)

Syöttöjännitealue: 5V

Alhainen virrankulutus: 1,5 mA (lepotila)

Käyttölämpötila: -40°C - +85°

Vaihe 1: Elementit

Tätä artikkelia varten tarvitset:

1. GSM SIM900A (MINI V3.9.2)
2. Arduino Uno -levy
3. Puserot
4. 5V virtalähde
5. SIM-kortti
6. Kehityslautakunta

1. Aseta SIM-kortti GSM-moduuliin ja lukitse se.
2. Kytke virta GSM-vastaanottimeen liittämällä se 5 V:iin ja GND:hen
3. Liitä antenni

4. Odota nyt jonkin aikaa (esimerkiksi 1 minuutti) ja katso, kuinka Status LED tai Network LED (D6) vilkkuu. // Yhteyden muodostaminen matkapuhelinverkkoon kestää jonkin aikaa //

5. Kun yhteys on muodostettu onnistuneesti, tilan/verkon merkkivalo vilkkuu jatkuvasti 3 sekunnin välein. Voit yrittää soittaa GSM-moduulin sisällä olevan SIM-kortin matkapuhelinnumeroon. Jos kuulet soittoäänen, gsm-moduuli on muodostanut verkkoyhteyden onnistuneesti.

Vaihe 3: Kytkentäkaavio



Näet sim900a:n TTL-nastan, jossa on 3VR, 3VT, 5Vr, 5VT, VCC ja GND, lähellä virtanastaa. Sinun on liitettävä 5VT GSM Arduino D9:ään ja 5VR Arduino D10:een sarjaliikennettä varten arduino-moduulin ja sim900a:n välillä.

Vaihe 4: AT-peruskomennot

1. Tekstiviestin lähetystilan vaihtaminen: AT + CMGF = 1

MySerial.println("AT+CMGF=1");

2. Tekstiviestien lukeminen tekstitilassa: AT+CNMI=2,2,0,0,0

MySerial.println("AT+CNMI=2,2,0,0,0");

3. Soita: ATD + 60XXXXXXXXXX; // korvaa X numerolla, johon haluat soittaa, muuta +60 maakoodiksi

MySerial.println("ATD + 60XXXXXXXX;");

4. Sammutus/sammutus: ATH

MySerial.println("ATH");

5. Uudelleenvalinta: ATDL

MySerial.println("ATDL");

6. Puhelun vastaanottaminen: ATA

MySerial.println("ATA");

Vaihe 5: Kirjasto


SoftwareSerial on Arduino-kirjasto, joka tarjoaa sarjaliikennettä muiden Arduinon digitaalisten lähtöjen kautta. Kirjasto toistaa laitteiston toimintoja ja suorittaa sarjaliikennetehtävän. Jotta voit liittää gsm-moduulin arduinoon, sinun on ladattava tämä kirjasto ja purettava se Arduino-kirjastoihisi.
Lataa tiedosto: (latauksia: 240)

Vaihe 6: Esimerkki lähdekoodista




Lataa alla oleva esimerkkilähdekoodi ja avaa se Arduino IDE:ssä. Valitse korttisi ja portti ja lataa se Arduino Uno -levyllesi.
Lataa tiedosto: (latauksia: 405)

Vaihe 7: Sarjamonitori



Kun olet ladannut lähdekoodin onnistuneesti, avaa sarjamonitori. Sarjamonitori näkyy yllä olevan kuvan mukaisesti.

Vaihe 8: Tulos: Soita/uudelleenvalinta




1. Kun syötät c:-näppäimen soittaaksesi puhelun, gsm lukee ATD-komennon ja soittaa lähdekoodiin lataamaasi puhelinnumeroon.


2. Kun syötät h:-näppäimen yhteyden katkaisemiseksi/puhumiseksi, gsm lukee ATH-komennon ja katkaisee yhteyden.


3. Kun näppäilet e:-näppäimen uudelleenvalintaa varten, gsm lukee ATDL-komennon ja valitsee uudelleen edellisen soittamansa numeron.


4. Kun puhelu saapuu, näet sarjanäytössä tulostetun RING-merkin ja voit painaa i: vastaanottaaksesi puhelun, jolloin ATA GSM -komento suoritetaan ja sinut yhdistetään puheluyhteyteen.

Vaihe 9: Tulos: Tekstiviestien lähettäminen ja vastaanottaminen





1. Kirjoita tekstiviestin lähetysavain. Vastaanottajan numero ja tekstiviesti painettu sarjanäytölle. HUOMAUTUS. Voit muokata vastaanottajan puhelinnumeroa ja tekstiviestiä lähdekoodissa.

2. Kun gsm vastaanottaa viestin, tekstiviesti ja numero tulostetaan sarjanäytölle.


Artikkelin käännös "

Tunnettu SIM900 on hiljattain lisätty käsissäni olleiden GSM-modeemien joukkoon.

Tässä artikkelissa puhutaan sen virheenkorjauslevystä.

Miksi SIM900? Koska Olen kuullut ja nähnyt siitä paljon, olen pitkään halunnut tutustua siihen ja sen toimivuuteen. Hän oli erityisen kiinnostunut Wireless Technologies -lehden artikkelista "Kaikki yhdessä tai mitä uutta SIM900 GSM-moduulissa". Ja yksi projekti.

Pääasialliset tunnusmerkit:

  • Neljä kaistaa GSM 850/900/1800/1900 MHz;
  • GPRS-tiedonsiirtoluokka 10/8;
  • Teholuokka 4 (2W alueella 850.900 MHz);
  • Teholuokka 1 (1 W taajuudella 1800/1900 MHz);
  • AT-komentojen hallinta (GSM 07.07, 07.05 + AT-komennot SIMComilta);
  • Äänikoodekit HR, FR, EFR, AMR, kaiunpoisto;
  • CSD jopa 14,4 kbit/s;
  • PPP pino;
  • Sisäänrakennettu TCP/IP, UPD/IP-pino;
  • MUX (07.10);
  • HTTP- ja FTP-protokollat;
  • Syöttöjännite 3,2-4,8V;
  • Käyttölämpötila -30 +80 °C;
  • SIM-kortit tukevat 1,8 ja 3,3 V:n jännitteitä;
  • Mitat: 24*24*3mm
  • Paino 4 g.

Ominaisuudet on otettu kyseisestä artikkelista ja moduulin tietolomakkeesta.

Siirrytään tuloksena olevaan virheenkorjaus- tai esittelymoduuliin. Kehitys perustui omaan kehitykseeni vuodesta . Tässä on mitä tapahtui:

Kaaviossa sovellettiin seuraavia yksinkertaistuksia tietolomakkeen suosituksista:


Nämä yksinkertaistukset eivät ole kriittisiä, mutta käytettäessä moduulia ankarammissa olosuhteissa tai laitteistossa, jossa sille uskotaan suurempi vastuu, niitä ei pidä unohtaa.

Nyt siitä, mitä on toteutettu:

  1. Virtalähde 5 V:sta (mikä on kätevää käytettäessä USB:stä tai 5 V:n mikro-ohjaimesta) 7-8 V:iin, mikä on mahdollista matalan jännitehäviön LM1086CT ansiosta;
  2. UART – virheenkorjaukseen tai MK:hen yhdistämiseen;
  3. + I2C on lähtö (älä unohda tasojen täsmäämistä, jos liität 5 V:n logiikkaan, en sisällyttänyt niitä virheenkorjaukseen);
  4. Painike ja erikois lähtö (5 nastaa UART-liitännässä, kytketty päälle korkealla tasolla), kuten moduulin manuaalisessa käynnistyksessä, koska ja käynnistää se mikro-ohjaimesta;
  5. Äänitulo ja -lähtö kokeisiin, joissa puheviestintää voidaan tarvita.
  6. 2 diodin tila näyttää moduulin toimintatilat;
  7. Jumper JUMP1, joka sulkee stabilisaattorin ja mahdollistaa moduulin virransyötön 3,3-4,7V jännitteestä, mikä puolestaan ​​mahdollistaa virran saamisen suoraan esimerkiksi litiumioniakusta. Kokoonpanon ja testauksen aikana ei ollut saatavilla stabilointia, sillä se sai virtaa yhdestä 18650-tölkistä;
  8. Lisämaa-alueita on varattu oheislaitteiden kätevää liittämistä varten;
  9. NRESET-linjan SMD-pad on reititetty mahdollistamaan moduulin uudelleenkäynnistyspiirin lisääminen.

Sinetti näyttää tältä:

Levy on valmistettu yksipuolisesta lasikuitulaminaatista, mitat 61x49mm. Perustana on GSM-moduuli SIM900 (B09). Stabilisaattori VR1 LM1086CT-ADJ TO-220 kotelossa. Sim-kortin pidike Sim-kortti SCV-W2523X-08 tai Sim-kortti SCV-W2523X-06. Kaikki LEDit koteloissa 0603 tai 0805, joissa virrankulutus on pieni. Ainoa transistori VT1 on BC847 tai vastaava. Vastukset R1 ja R2, virranrajoittimet LED-tila, 510 Ohm 0805 R3 4,7 kOhm, R4 47 kOhm, R5-R6 1 kOhm kaikki koko 0805. R7 0805 68 Ohm, R8 1206 10 Ohm. R8-R10 22 ohmia kotelon koossa 0805. R12 1 kOhm, R13 10 kOhm, molemmat 0805. Kondensaattorit C2-C3, C7-C8 33 pF, C4 22 pF, C5 1 μF, C6 10 pF0, C1, C1. μF, kaikki kokoa 0805. Kondensaattori C1 10uF siru tantaali koko A. C10 100uF vähintään 16V, C13 470-680uF vähintään 10V, levy johdotettu EPCOS:lle: 100uF piipun koko 8x147-6 mm. saman sarjan koko 10x12,5 -20mm . Painike S1 – DTSM13-5.0N (elektroniikassa), ehkä sen oikea nimi on DTSM13-4.3N. Mikä tahansa GSM-sarjan antenni SMA-M-liittimellä, kortissa on SMA-F-liitäntä. Nastat PLS5 ja 3x PLS2 + jumpperille JUMP1 tarvitsevat PLS3:n ja itse hyppyjohtimen, jonka nousu on 2,54. Audioliittimet Jack 3.5 - CK3-101B, Asensin sen, mikä oli saatavilla, ei hyvä vaihtoehto, on parempi asentaa joitain monoliitäntöjä.