- Tarvittavat materiaalit
- Käytetty ohjelmisto
- GSM-moduuli
- Kommunikointi GSM-moduulin kanssa AT-komentojen avulla
- ATMega16 GSM -moduulin liitäntäpiirikaavio
- Projektin luominen ATmega16: lle CodeVisionin avulla
- Koodi ja selitys
- Rakenna projekti
- Lataa koodi Atmega16: een
GSM-moduulit ovat mielenkiintoisia käyttää varsinkin silloin, kun projektimme vaatii etäyhteyden. Nämä moduulit voisivat tehdä kaikki toiminnot, joita normaali matkapuhelimemme voisi tehdä, kuten puhelun soittaminen / vastaanottaminen, tekstiviestin lähettäminen / vastaanottaminen, yhteyden muodostaminen Internetiin GPRS: llä jne. Voit myös liittää tähän moduuliin normaalin mikrofonin ja kaiuttimen ja keskustella matkapuhelimet. Tämä avaa oven monille luoville projekteille, jos se voidaan liittää mikrokontrolleriin. Siksi tässä opetusohjelmassa opitaan, kuinka voimme liittää GSM-moduulin (SIM900A) AVR-mikrokontrolleriin ATmega16 ja osoittaa sen lähettämällä ja vastaanottamalla viestejä GSM-moduulin avulla.
Tarvittavat materiaalit
- Atmega16
- GSM-moduuli (SIM900 tai mikä tahansa muu)
- LCD-näyttö
- Painikkeet
- 10k vastukset, potentiometri
- Johtojen liittäminen
- 12 V: n sovitin
- USBasp-ohjelmoija
- 10-napainen FRC-kaapeli
Käytetty ohjelmisto
Käytämme CodeVisionAVR- ohjelmistoa koodin kirjoittamiseen ja SinaProg- ohjelmistoa koodin lataamiseen Atmega16: een USBASP- ohjelmoijan avulla.
Voit ladata nämä ohjelmistot annetuista linkeistä:
CodeVisionAVR:
SinaProg:
Ennen kuin tarkastellaan kaavioita ja koodeja, opimme GSM-moduulista ja sen toiminnasta.
GSM-moduuli
GSM-moduulia voidaan käyttää myös ilman mikro-ohjainta AT-komentotilassa. Kuten yllä on esitetty, GSM-moduulissa on USART-sovitin, joka voidaan liittää suoraan tietokoneeseen MAX232-moduulin avulla tai Tx- ja Rx-nastoja voidaan käyttää sen liittämiseen mikrokontrolleriin. Voit myös huomata muut nastat, kuten MIC +, MIC-, SP +, SP- jne., Joihin mikrofoni tai kaiutin voidaan liittää. Moduuli voidaan syöttää 12 V: n sovittimella normaalin DC-tynnyriliittimen kautta.
Aseta SIM-korttisi moduulin aukkoon ja käynnistä se, huomaa virran merkkivalon palaavan. Odota nyt noin minuutti, ja sinun pitäisi nähdä punainen (tai mikä tahansa muu väri) LED vilkkuu kerran 3 sekunnin välein. Tämä tarkoittaa, että moduulisi pystyi muodostamaan yhteyden SIM-kortillesi. Nyt voit jatkaa moduulin liittämistä puhelimeen tai mihin tahansa mikrokontrolleriin.
Voit rakentaa monia hienoja projekteja GSM-moduulin avulla, kuten:
- Langaton ilmoitustaulu, joka käyttää GSM: ää ja Arduinoa
- Automaattinen soitonvastaaja Arduino- ja GSM-moduuleilla
- GSM-pohjainen kotiautomaatio Arduinolla
- PIR-anturi ja GSM-pohjainen turvajärjestelmä
Tarkista myös kaikki GSM-projektit täältä.
Kommunikointi GSM-moduulin kanssa AT-komentojen avulla
Kuten olet ehkä arvannut, GSM-moduuli voi kommunikoida sarjaliikenteen kautta ja ymmärtää vain yhtä kieltä eli AT-komentoja. Mitä tahansa haluatkin kertoa tai kysyä GSM-moduulilta, sen pitäisi tapahtua vain AT-komentojen kautta. Esimerkiksi, jos haluat tietää, onko moduuli aktiivinen. Sinun tulisi kysyä (lähettää) komento, kuten "AT", ja moduuli vastaa "OK".
Nämä AT-komennot on selitetty hyvin sen tietolomakkeessa, ja ne löytyvät täältä sen virallisesta taulusta. Okei! Okei! Se on 271-sivuinen tietolomake, jonka lukeminen saattaa kestää päiviä. Joten olen antanut joitain tärkeimpiä AT-komentoja alla, jotta saat tämän toimimaan pian.
AT |
Vastaa vahvistuksella valitsemalla OK |
AT + CPIN? |
Tarkista signaalin laatu |
AT + COPS? |
Etsi palveluntarjoajan nimi |
ATD96XXXXXXXX; |
Soita tiettyyn numeroon, päättyy puolipisteeseen |
AT + CNUM |
Etsi SIM-kortin numero (ei välttämättä toimi kaikilla SIM-korteilla) |
ATA |
Vastaa saapuvaan puheluun |
ATH |
Katkaise nykyinen saapuva puhelu |
AT + COLP |
Näytä saapuvan puhelun numero |
AT + VTS = (luku) |
Lähetä DTMF-numero. Voit käyttää mitä tahansa matkapuhelimen näppäimistön numeroa (numero) |
AT + CMGR |
AT + CMGR = 1 lukee viestin ensimmäisestä sijainnista |
AT + CMGD = 1 |
Poista viesti ensimmäisestä sijainnista |
AT + CMGDA = ”POISTA KAIKKI” |
Poista kaikki viestit SIM-kortilta |
AT + CMGL = ”KAIKKI” |
Lue kaikki SIM-kortilta lähetetyt viestit |
AT + CMGF = 1 |
Aseta tekstiviestien kokoonpano. ”1” on tarkoitettu vain teksti -tilaan |
AT + CMGS = "+91 968837XXXX" > CircuitDigest-teksti
|
Lähettää tekstiviestin tiettyyn numeroon täällä 968837XXXX. Kun näet>, aloita tekstin kirjoittaminen. Lähetä teksti painamalla Ctrl + Z. |
AT + CGATT? |
Internet-yhteyden tarkistaminen SIM-kortilta |
AT + CIPSHUT |
Sulje TCP-yhteys, eli katkaise yhteys Internetiin |
AT + CSTT = ”APN”, ”käyttäjänimi”, ”Hyväksytty” |
Muodosta yhteys GPRS: ään APN- ja Pass-avaimella. Voidaan hankkia verkkopalveluntarjoajalta. |
AT + CIICR |
Tarkista, onko SIM-kortilla datapaketti |
AT + CIFSR |
Hanki SIM-verkon IP-osoite |
AT + CIPSTART = ”TCP”, ”PALVELIN IP”, ”PORTTI” |
Käytetään asettamaan TCP IP-yhteys |
AT + CIPSEND |
Tätä komentoa käytetään tietojen lähettämiseen palvelimelle |
Täällä käytämme viestien lähettämiseen AT + CMGF- ja AT + CMGS -komentoja.
Jos olet käyttänyt GSM-moduulia Arduinon kanssa, voit vastaanottaa viestejä + CMT: -komennolla nähdäksesi matkapuhelinnumeron ja tekstiviestin sarjamoduulissa. Tekstiviesti tulee toisella rivillä kuvan osoittamalla tavalla.
Tarkistamme tämän + CMT: -komennon tarkistaaksesi, onko viesti käytettävissä vai ei.
ATMega16 GSM -moduulin liitäntäpiirikaavio
Yhteydet ovat seuraavat
- GSM-moduulin Tx ja Rx Atmega16: n vastaavasti Rx (Pin14) ja Tx (Pin15).
- Paina painikkeita kohtaan PD5 (Pin19) ja PD6 (Pin20).
- LCD-liitännät:
- RS - PA 0
- R / W - PA1
- FI - PA2
- D4 - PA4
- D5 - PA5
- D6 - PA6
- D7 - PA7
Projektin luominen ATmega16: lle CodeVisionin avulla
Kun olet asentanut CodeVisionAVR- ja SinaProg- ohjelmistot , luo projekti ja kirjoita koodi seuraavasti:
Jo ladattu
Vaihe 1. Avaa CodeVision Napsauta Tiedosto -> Uusi -> Projekti . Vahvistusvalintaikkuna tulee näkyviin. Napsauta Kyllä
Vaihe 2. CodeWizard avautuu. Napsauta ensimmäistä vaihtoehtoa eli AT90 ja napsauta OK.
Vaihe 3: - Valitse mikrokontrollerisiru, tässä otamme Atmega16L: n kuvan mukaisesti.
Vaihe 4: - Napsauta USART . Valitse Vastaanotin ja lähetin napsauttamalla niitä. Kuten alla:
Vaihe 5: - Napsauta aakkosnumeerista nestekidenäyttöä ja valitse Ota aakkosnumeerinen LCD-tuki käyttöön .
Vaihe 6: - Napsauta Ohjelma -> Luo, tallenna ja poistu . Nyt yli puolet työstämme on valmis
Vaihe 7: - Tee uusi kansio työpöydälle niin, että tiedostomme pysyvät kansiossa, muuten se hajautetaan koko työpöydän ikkunaan. Nimeä kansio haluamallasi tavalla ja suosittelen, että tallennat ohjelmatiedostot samalla nimellä.
Meillä on kolme valintaikkunaa peräkkäin tiedostojen tallentamiseksi.
Tee sama kahden muun valintaikkunan kanssa, jotka ilmestyvät ensimmäisen tallentamisen jälkeen.
Työtilasi näyttää tältä.
Suurin osa työstämme valmistuu ohjatun toiminnon avulla. Nyt meidän on kirjoitettava koodi vain GSM: lle.
Koodi ja selitys
Kaikki otsikkotiedostot liitetään automaattisesti projektin luomisen jälkeen, sinun on vain sisällytettävä delay.h- otsikkotiedosto ja ilmoitettava kaikki muuttujat. Täydellinen koodi annetaan tämän opetusohjelman lopussa.
#sisältää
Tee toiminto tietojen vastaanottamiseksi UDR-rekisteristä. Tämä toiminto palauttaa vastaanotetut tiedot.
allekirjoittamaton merkki vastaanotettu_arvo (mitätön) { while (! (UCSRA & (1 <
Tule siihen while- silmukkaan, johon luomme kaksi if- lausetta, yhden viestin lähettämistä varten ja toisen vastaanottamista varten. Lähetä-painike on kytketty ATmegan PIND6: een ja vastaanota viestipainike PIND5: llä.
Kun PIND6 (Lähetä-painiketta) painetaan ensin, jos lause suoritetaan ja kaikki viestin lähetyskomennot suoritetaan yksitellen.
while (1) { // lcd_clear (); lcd_putsf ("Lähetä-> bttn 1"); lcd_gotoksi (0,1); lcd_putsf ("Vastaanotto-> pusku 2"); if (PIND.6 == 1) { lcd_clear (); lcd_gotoksi (0,0); lcd_putsf ("Lähetetään viestiä…"); for (z = 0; cmd_1! = ''; z ++) { UDR = cmd_1; viive_ms (100); } UDR = ('\ r'); viive_ms (500); (z = 0; cmd_2! = ''; z ++) { UDR = cmd_2; viive_ms (100); } …..
Jos Vastaanota viesti -painiketta painetaan, silmukka (b! = '+') Tarkistaa, onko CMT-komento läsnä vai ei. Läsnä, toinen taas silmukka suorittaa komennon toisen rivin ja tulostaa viestin LCD-näytölle yksitellen.
kun (PIND.5 == 1) { lcd_clear (); lcd_gotoksi (0,0); lcd_putsf ("Viestin vastaanottaminen…"); b = vastaanotettu arvo (); kun (b! = '+') { b = vastaanotettu_arvo (); } b = vastaanotettu_arvo (); jos (b == 'C') { b = vastaanotettu_arvo (); … ..
Tämä silmukka vie ohjelman toiseen komentoriviin ja tallentaa viestin taulukkoon.
kun (b! = 0x0a) { b = vastaanotettu_arvo (); } (b = 0; b <3; b ++) { c = vastaanotettu_arvo (); msg = c; } .. ..
Tämä on silmukka on näyttää viestin LCD.
(z = 0; z <3; z ++) { a = msg; lcd_putchar (a); // TULOSTA lcd delay_ms (10); }
Täydellinen koodi esittelyvideolla on annettu alla, nyt meidän on rakennettava projekti.
Rakenna projekti
Napsauta kohtaa Rakenna projektikuvake kuvan osoittamalla tavalla.
Projektin rakentamisen jälkeen HEX-tiedosto luodaan Debug-> Exe- kansioon, joka löytyy kansiosta, jonka olet aiemmin luonut projektin tallentamiseksi. Käytämme tätä HEX-tiedostoa ladataksesi Atmega16-sovellukseen Sinaprog-ohjelmistoa käyttäen.
Lataa koodi Atmega16: een
Kytke piirit annetun kaavion mukaisesti Atmega16-ohjelmaan. Liitäntä FRC-kaapelin toisella puolella USBASP-ohjelmoijaan ja toinen puoli yhdistetään mikro-ohjaimen SPI-nastoihin alla kuvatulla tavalla:
- FRC-naarasliittimen nasta 1 -> Nasta 6, Atmega16: n MOSI
- Tappi 2 kytketty atmega16: n Vcc: hen eli nasta 10
- Tappi 5 kytketty atmega16: n nollaamiseen eli nasta 9
- Tappi 7 kytketty atmega16: n SCK: hen eli nasta 8
- Tappi 9 kytketty atmega16: n MISO: han eli nasta 7
- Tappi 8 kytketty atmega16: n GND: hen eli nasta 11
Lähetämme yllä luodun Hex-tiedoston Sinaprogin avulla, joten avaa se ja valitse avattavasta Laite-valikosta Atmega16. Valitse HEX-tiedosto Debug-> Exe-kansiosta kuvan osoittamalla tavalla.
Napsauta nyt Ohjelma ja koodisi poltetaan ATmega16-mikrokontrollerissa.
Olet valmis ja mikrokontrolleri on ohjelmoitu. Paina vain painikkeita lähettääksesi ja vastaanottaaksesi viestejä GSM- ja ATmega16-mikrokontrollereista.
Täydellinen koodi ja esittelyvideo on annettu alla.