- Nepieciešamie materiāli
- Izmantotā programmatūra
- GSM modulis
- Saziņa ar GSM moduli, izmantojot AT komandas
- ATMega16 GSM moduļa saskarnes shēmas diagramma
- ATmega16 projekta izveide, izmantojot CodeVision
- Kods un skaidrojums
- Veidojiet projektu
- Augšupielādējiet kodu vietnē Atmega16
GSM moduļi ir interesanti izmantot, jo īpaši, ja mūsu projektam nepieciešama attāla piekļuve. Šie moduļi varētu veikt visas darbības, ko varētu veikt mūsu parastais mobilais tālrunis, piemēram, zvanīšana / zvana saņemšana, īsziņu sūtīšana / saņemšana, savienojuma izveide ar internetu, izmantojot GPRS utt. Šim modulim var pievienot arī parastu mikrofonu un skaļruni un sarunāties savā tālrunī. mobilie zvani. Tas pavērs durvis daudziem radošiem projektiem, ja to varēs sasaistīt ar mikrokontrolleru. Tādējādi šajā apmācībā mēs uzzināsim, kā mēs varam saskarni izveidot GSM moduli (SIM900A) ar AVR mikrokontrolleru ATmega16 un demonstrēsim to, sūtot un saņemot ziņojumus, izmantojot GSM moduli.
Nepieciešamie materiāli
- Atmega16
- GSM modulis (SIM900 vai jebkurš cits)
- LCD displejs
- Spiediet pogas
- 10k rezistori, potenciometrs
- Savienojošie vadi
- 12V adapteris
- USBasp programmētājs
- 10 kontaktu FRC kabelis
Izmantotā programmatūra
Mēs izmantosim CodeVisionAVR programmatūru koda rakstīšanai un SinaProg programmatūru koda augšupielādēšanai Atmega16, izmantojot USBASP programmētāju.
Šīs programmatūras varat lejupielādēt no norādītajām saitēm:
CodeVisionAVR:
SinaProg:
Pirms iedziļināties shēmās un kodos, mēs uzzinām par GSM moduli un tā darbību.
GSM modulis
GSM moduli var izmantot pat bez mikrokontrollera, izmantojot AT komandu režīmu. Kā parādīts iepriekš, GSM modulim ir pievienots USART adapteris, kuru var tieši savienot ar datoru, izmantojot MAX232 moduli, vai arī Tx un Rx tapas var izmantot, lai to savienotu ar mikrokontrolleru. Varat arī pamanīt citas tapas, piemēram, MIC +, MIC-, SP +, SP- utt., Kur var pievienot mikrofonu vai skaļruni. Moduli var darbināt ar 12 V adapteri, izmantojot parasto līdzstrāvas mucas ligzdu.
Ievietojiet SIM karti moduļa slotā un ieslēdziet to. Jums vajadzētu pamanīt, ka ieslēdzas barošanas gaismas diode. Pagaidiet apmēram minūti, un jums vajadzētu redzēt sarkanu (vai jebkuru citu krāsu) gaismas diode mirgo reizi 3 sekundēs. Tas nozīmē, ka jūsu modulis varēja izveidot savienojumu ar jūsu SIM karti. Tagad jūs varat turpināt savienot moduli ar tālruni vai jebkuru mikrokontrolleru.
Izmantojot GSM moduli, varat izveidot daudz atdzist projektu, piemēram:
- Bezvadu ziņojumu dēlis, izmantojot GSM un Arduino
- Automātiskais zvanu atbildētājs, izmantojot Arduino un GSM moduli
- GSM bāzes mājas automatizācija, izmantojot Arduino
- PIR sensors un GSM balstīta drošības sistēma
Šeit pārbaudiet arī visus ar GSM saistītos projektus.
Saziņa ar GSM moduli, izmantojot AT komandas
Kā jūs jau to nojaušāt, GSM modulis var sazināties, izmantojot sērijas sakarus, un varēja saprast tikai vienu valodu, tas ir, “ AT komandas ”. Lai ko jūs varētu vēlēties pateikt vai lūgt GSM modulim, tam vajadzētu būt tikai ar AT komandām. Piemēram, ja vēlaties uzzināt, vai jūsu modulis ir aktīvs. Jums vajadzētu lūgt (nosūtīt) komandu, piemēram, “AT”, un modulis atbildēs “OK”.
Šīs AT komandas ir labi izskaidrotas tās datu lapā un atrodamas šeit tās oficiālajā datu lapā. Labi! Labi! Tā ir 271 lappuses liela datu lapa, un, lai tās izlasītu, var paiet vairākas dienas. Tāpēc es esmu devis dažas vissvarīgākās AT komandas zemāk, lai jūs varētu to ātri sākt un darboties.
AT |
Atbilde tiek apstiprināta ar apstiprinājumu |
AT + CPIN? |
Pārbaudiet signāla kvalitāti |
AT + COPS? |
Atrodiet pakalpojumu sniedzēja nosaukumu |
ATD96XXXXXXXX; |
Zvanīšana uz konkrēto numuru beidzas ar semikolu |
AT + CNUM |
Atrodiet SIM kartes numuru (iespējams, nedarbosies dažām SIM kartēm) |
ATA |
Atbildiet uz ienākošo zvanu |
ATH |
Pārtrauciet pašreizējo ienākošo zvanu |
AT + COLP |
Rādīt ienākošā zvana numuru |
AT + VTS = (skaitlis) |
Nosūtiet DTMF numuru. Varat izmantot jebkuru numuru savā mobilajā tastatūrā (numurs) |
AT + CMGR |
AT + CMGR = 1 nolasa ziņojumu pirmajā pozīcijā |
AT + CMGD = 1 |
Dzēst ziņojumu pirmajā pozīcijā |
AT + CMGDA = “DEL ALL” |
Dzēst visus ziņojumus no SIM |
AT + CMGL = “VISI” |
Lasiet visus ziņojumus no SIM |
AT + CMGF = 1 |
Iestatiet īsziņu konfigurāciju. “1” ir paredzēts tikai teksta režīmam |
AT + CMGS = “+91 968837XXXX” > CircuitDigest Text
|
Šeit nosūta īsziņas uz noteiktu numuru 968837XXXX. Kad redzat “>”, sāciet ievadīt tekstu. Nospiediet Ctrl + Z, lai nosūtītu tekstu. |
AT + CGATT? |
Lai pārbaudītu interneta savienojumu SIM kartē |
AT + CIPSHUT |
Lai aizvērtu TCP savienojumu, kas nozīmē atvienot veidlapu internets |
AT + CSTT = “APN”, “lietotājvārds”, “Piekļuve” |
Izveidojiet savienojumu ar GPRS, izmantojot savu APN un Pass atslēgu. Var iegūt pie tīkla nodrošinātāja. |
AT + CIICR |
Pārbaudiet, vai SIM kartē ir datu pakete |
AT + CIFSR |
Iegūt SIM tīkla IP |
AT + CIPSTART = “TCP”, “SERVER IP”, “PORT” |
Izmanto, lai iestatītu TCP IP savienojumu |
AT + CIPSEND |
Šo komandu izmanto datu nosūtīšanai uz serveri |
Šeit ziņojumu nosūtīšanai izmantosim komandu AT + CMGF un AT + CMGS.
Ja ar Arduino esat izmantojis GSM moduli, saņemot ziņojumus, varat izmantot komandu + CMT:, lai seriālajā monitorā skatītu mobilā tālruņa numuru un īsziņu. Īsziņa nāk otrajā rindā, kā parādīts attēlā.
Mēs skenēsim šo komandu + CMT: lai pārbaudītu, vai ziņojums ir pieejams.
ATMega16 GSM moduļa saskarnes shēmas diagramma
Savienojumi būs šādi
- GSM moduļa Tx un Rx attiecīgi uz Atmega16 Rx (Pin14) un Tx (Pin15).
- Spiediet pogas līdz PD5 (19. kontakts) un PD6 (20. kontakts).
- LCD savienojumi:
- RS - PA 0
- R / W - PA1
- LV - PA2
- D4 - PA4
- D5 - PA5
- D6 - PA6
- D7 - PA7
ATmega16 projekta izveide, izmantojot CodeVision
Pēc instalēšanas CodeVisionAVR un SinaProg programmatūra , izpildiet šos soļus, lai izveidotu projektu un rakstīšanas kodu:
Jau augšupielādēts
1. solis. Atveriet CodeVision Noklikšķiniet uz File -> New -> Project . Parādīsies dialoglodziņš Apstiprinājums. Noklikšķiniet uz Jā
2. solis. Tiks atvērts CodeWizard. Noklikšķiniet uz pirmās opcijas, ti, AT90 , un noklikšķiniet uz Labi.
3. solis: - Izvēlieties savu mikrokontrollera mikroshēmu, šeit mēs ņemsim Atmega16L, kā parādīts attēlā.
4. solis: - noklikšķiniet uz USART . Noklikšķiniet uz tiem, izvēlieties Uztvērējs un raidītājs . Kā parādīts zemāk:
5. solis: - noklikšķiniet uz burtciparu LCD un atlasiet Iespējot burtciparu LCD atbalstu .
6. solis: - Noklikšķiniet uz Program -> Generate, Save and Exit . Tagad ir pabeigta vairāk nekā puse mūsu darba
7. solis: - izveidojiet jaunu mapi darbvirsmā, lai mūsu faili paliktu mapē, pretējā gadījumā mēs tiksim izkaisīti visā darbvirsmas logā. Piešķiriet mapei nosaukumu, kā vēlaties, un es iesaku izmantot to pašu nosaukumu, lai saglabātu programmas failus.
Failu saglabāšanai vienu pēc otra būs trīs dialoglodziņi.
Dariet to pašu ar pārējiem diviem dialoglodziņiem, kas parādīsies pēc pirmā saglabāšanas.
Tagad jūsu darba telpa izskatās šādi.
Lielākā daļa mūsu darbu tiek pabeigta ar vedņa palīdzību. Tagad mums ir jāraksta kods tikai GSM.
Kods un skaidrojums
Pēc projekta izveides visi galvenes faili tiek automātiski pievienoti, jums vienkārši jāiekļauj delay.h galvenes fails un jādeklarē visi mainīgie. Pilns kods ir norādīts šīs apmācības beigās.
# iekļaut
Izveidojiet funkciju, lai saņemtu datus no UDR reģistra. Šī funkcija atgriezīs saņemtos datus.
neparakstīta rakstzīme saņemta_vērtība (void) { while (! (UCSRA & (1 <
Nāciet uz while ciklu, kurā mēs izveidojam divus if paziņojumus, vienu ziņojumu sūtīšanai un otru saņemšanai. Poga Sūtīt ir savienota ar ATmega PIND6 un saņemt ziņu pogu ar PIND5.
Kad PIND6 (Sūtīt poga) tiek nospiests pirmo reizi , ja paziņojums tiks izpildīt un visas komandas, lai nosūtītu ziņu veiks pa vienam.
while (1) { // lcd_clear (); lcd_putsf ("Sūtīt-> bttn 1"); lcd_gotoksi (0,1); lcd_putsf ("Saņemt-> 2. poga"); ja (PIND.6 == 1) { lcd_clear (); lcd_gotoksi (0,0); lcd_putsf ("Ziņojuma sūtīšana…"); par (z = 0; cmd_1! = ''; z ++) { UDR = cmd_1; kavēšanās_ms (100); } UDR = ('\ r'); kavēšanās_ms (500); par (z = 0; cmd_2! = ''; z ++) { UDR = cmd_2; kavēšanās_ms (100); }…..
Ja tiek nospiesta poga Saņemt ziņojumu, cilpa (b! = '+') Pārbaudīs, vai CMT komanda ir vai nav. Ja tas ir pieejams, izpildiet sekundi, kamēr cilpa, pārejiet uz komandas otro rindu un pa vienam izdrukājiet ziņojumu LCD.
kamēr (PIND.5 == 1) { lcd_clear (); lcd_gotoksi (0,0); lcd_putsf ("Ziņojumu saņemšana…"); b = saņemtā_vērtība (); kamēr (b! = '+') { b = saņemtā_vērtība (); } b = saņemtā_vērtība (); ja (b == 'C') { b = saņemta_vērtība (); … ..
Šī cilpa novirza programmu uz otro komandrindu un glabā ziņojumu masīvā.
kamēr (b! = 0x0a) { b = saņemtā_vērtība (); } par (b = 0; b <3; b ++) { c = saņemtā_vērtība (); msg = c; } .. ..
Tas par cilpu, lai parādītu ziņu uz LCD.
par (z = 0; z <3; z ++) { a = msg; lcd_putchar (a); // IESPIEDT lcd delay_ms (10); }
Pilns kods ar Demo Video ir norādīts zemāk, tagad mums ir jāveido savs projekts.
Veidojiet projektu
Noklikšķiniet uz Izveidot projekta ikonu, kā parādīts.
Pēc projekta izveides mapē Debug-> Exe tiek ģenerēts HEX fails, kuru var atrast mapē, kuru iepriekš esat izveidojis, lai saglabātu savu projektu. Mēs izmantosim šo HEX failu, lai augšupielādētu vietnē Atmega16, izmantojot Sinaprog programmatūru.
Augšupielādējiet kodu vietnē Atmega16
Savienojiet savas shēmas atbilstoši dotajai shēmai, lai programmētu Atmega16. FRC kabeļa vienas puses pievienošana USBASP programmētājam un otra puse tiks savienota ar mikrokontrollera SPI tapām, kā aprakstīts zemāk:
- FRC sieviešu savienotāja 1. kontakts -> Atmega16 6. kontakts, MOSI
- 2. tapa ir savienota ar atmega16 Vcc, ti, 10. tapa
- 5. tapa ir savienota ar atmega16 atiestatīšanu, ti, 9. tapa
- 7. tapa ir savienota ar atmega16 SCK, ti, 8. tapa
- 9. kontakts ir savienots ar atmega16 MISO, ti, 7. kontakts
- 8. tapa ir savienota ar atmega16 GND, ti, 11. tapa
Mēs augšupielādēsim iepriekš izveidoto Hex failu, izmantojot Sinaprog, tāpēc atveriet to un nolaižamajā izvēlnē Ierīce izvēlieties Atmega16. Mapē Debug-> Exe atlasiet HEX failu, kā parādīts.
Tagad noklikšķiniet uz Programma, un jūsu kods tiks ierakstīts mikrokontrollerī ATmega16.
Jūs esat pabeidzis un jūsu mikrokontrolleris ir ieprogrammēts. Vienkārši nospiediet pogas, lai nosūtītu un saņemtu ziņojumus no GSM un ATmega16 mikrokontrollera.
Pilns kods un demonstrācijas video ir norādīts zemāk.