- Potrebné materiály
- Použitý softvér
- GSM modul
- Komunikácia s GSM modulom pomocou AT príkazov
- Schéma zapojenia GSM modulu ATMega16
- Vytváranie projektu pre ATmega16 pomocou CodeVision
- Kód a vysvetlenie
- Zostavte projekt
- Vložte kód do Atmega16
GSM moduly sú zaujímavé na použitie, najmä keď náš projekt vyžaduje vzdialený prístup. Tieto moduly môžu vykonávať všetky činnosti, ktoré môže robiť náš bežný mobilný telefón, napríklad uskutočňovať / prijímať hovory, odosielať / prijímať SMS, pripájať sa na internet pomocou GPRS atď. K tomuto modulu môžete pripojiť aj bežný mikrofón a reproduktor a konverzovať na vašom mobilné hovory. Ak sa to dá prepojiť s mikrokontrolérom, otvorí to to dvere mnohým kreatívnym projektom. Preto sa v tomto výučbe dozvieme, ako môžeme prepojiť modul GSM (SIM900A) s mikrokontrolérom AVR ATmega16, a ukážeme to odosielaním a prijímaním správ pomocou modulu GSM.
Potrebné materiály
- 16. Atmega
- GSM modul (SIM900 alebo akýkoľvek iný)
- displej LCD
- Tlačidlá
- 10k rezistory, potenciometer
- Pripojovacie vodiče
- 12V adaptér
- Programátor USBasp
- 10-pinový kábel FRC
Použitý softvér
Budeme používať CodeVisionAVR softvér pre písanie náš kód a SinaProg softvér pre nahrávanie náš kód pre ATmega16 pomocou USBASP programátor.
Tento softvér si môžete stiahnuť z uvedených odkazov:
CodeVisionAVR:
SinaProg:
Predtým, ako sa pustíme do schém a kódov, sa dozvieme o GSM module a jeho práci.
GSM modul
GSM modul je možné používať aj bez mikrokontroléra pomocou príkazového režimu AT. Ako je uvedené vyššie, modul GSM sa dodáva s adaptérom USART, ktorý je možné priamo prepojiť s počítačom pomocou modulu MAX232, alebo pomocou kolíkov Tx a Rx pripojiť k mikrokontroléru. Môžete si tiež všimnúť ďalšie piny ako MIC +, MIC-, SP +, SP- atď., Kde je možné pripojiť mikrofón alebo reproduktor. Modul môže byť napájaný 12V adaptérom cez normálny DC jack.
Vložte kartu SIM do slotu modulu a zapnite ju. Mali by ste si všimnúť rozsvietenie kontrolky LED napájania. Teraz počkajte asi minútu a mali by ste vidieť, že červená (alebo iná farba) LED bliká raz za každé 3 sekundy. To znamená, že váš modul bol schopný nadviazať spojenie s vašou SIM kartou. Teraz môžete pokračovať v pripojení modulu k telefónu alebo k ľubovoľnému mikrokontroléru.
Pomocou modulu GSM môžete vytvoriť veľa skvelých projektov, ako napríklad:
- Bezdrôtová nástenka pomocou GSM a Arduino
- Automatický záznamník hovorov pomocou Arduina a GSM modulu
- Domáca automatizácia založená na GSM pomocou Arduina
- PIR senzor a bezpečnostný systém založený na GSM
Tu tiež skontrolujte všetky projekty spojené s GSM.
Komunikácia s GSM modulom pomocou AT príkazov
Ako ste asi uhádli, modul GSM môže komunikovať prostredníctvom sériovej komunikácie a dokáže porozumieť iba jednému jazyku, a to „ príkazom AT “. Čokoľvek, čo by ste chceli povedať alebo požiadať modul GSM, malo by to byť iba prostredníctvom AT príkazov. Napríklad ak chcete vedieť, či je váš modul aktívny. Mali by ste sa opýtať (odoslať) príkaz ako „AT“ a váš modul odpovie „OK“.
Tieto príkazy AT sú dobre vysvetlené v jeho údajovom liste a nájdete ich tu v jeho oficiálnom údajovom liste. Dobre! Dobre! Je to údajový list s 271 stránkami a jeho prečítanie môže trvať niekoľko dní. Nižšie som uviedol niektoré najdôležitejšie AT príkazy, aby ste to mohli čoskoro spustiť.
AT |
Odpovede s OK na potvrdenie |
AT + CPIN? |
Skontrolujte kvalitu signálu |
AT + COPS? |
Vyhľadajte meno poskytovateľa služieb |
ATD96XXXXXXXX; |
Hovor na konkrétne číslo končí bodkočiarkou |
AT + CNUM |
Nájdite počet SIM kariet (pre niektoré SIM karty nemusí fungovať) |
ATA |
Prijmite prichádzajúci hovor |
ATH |
Zavesenie aktuálneho prichádzajúceho hovoru |
AT + COLP |
Zobraziť číslo prichádzajúceho hovoru |
AT + VTS = (číslo) |
Zašlite DTMF číslo. Môžete použiť ľubovoľné číslo na svojej mobilnej klávesnici pre (číslo) |
AT + CMGR |
AT + CMGR = 1 prečíta správu na prvej pozícii |
AT + CMGD = 1 |
Odstrániť správu na prvom mieste |
AT + CMGDA = ”DEL ALL” |
Odstrániť všetky správy zo SIM |
AT + CMGL = ”VŠETKY” |
Čítať všetky správy zo SIM |
AT + CMGF = 1 |
Nastaviť konfiguráciu SMS. „1“ je iba pre textový režim |
AT + CMGS = „+91 968837XXXX“ > Text CircuitDigest
|
Tu pošle SMS na konkrétne číslo 968837XXXX. Keď uvidíte „>“, začnite zadávať text. Stlačením klávesov Ctrl + Z text odošlete. |
AT + CGATT? |
Skontrolujte pripojenie na internet na SIM karte |
AT + CIPSHUT |
Ukončiť pripojenie TCP, to znamená odpojiť sa od internetu |
AT + CSTT = „APN“, „používateľské meno“, „prejsť“ |
Pripojte sa k GPRS pomocou vášho APN a hesla Pass. Možno získať od poskytovateľa siete. |
AT + CIICR |
Skontrolujte, či má SIM karta dátový balíček |
AT + CIFSR |
Získajte adresu IP siete SIM |
AT + CIPSTART = „TCP“, „SERVER IP“, „PORT“ |
Používa sa na nastavenie pripojenia TCP IP |
AT + CIPSEND |
Tento príkaz sa používa na odoslanie údajov na server |
Tu budeme na posielanie správ používať príkaz AT + CMGF a AT + CMGS.
Ak ste s Arduinom používali modul GSM, môžete pri prijímaní správ pomocou príkazu + CMT: zobraziť mobilné číslo a textovú správu na sériovom monitore. Textová správa sa zobrazí v druhom riadku, ako je to znázornené na obrázku.
Naskenujeme tento príkaz + CMT: aby sme skontrolovali, či je správa k dispozícii alebo nie.
Schéma zapojenia GSM modulu ATMega16
Pripojenia budú nasledujúce
- Tx a Rx z GSM modulu na Rx (Pin14) a Tx (Pin15) Atmega16.
- Stlačte tlačidlá na PD5 (Pin19) a PD6 (Pin20).
- Pripojenia LCD:
- RS - PA 0
- Č / P - PA1
- SK - PA2
- D4 - PA4
- D5 - PA5
- D6 - PA6
- D7 - PA7
Vytváranie projektu pre ATmega16 pomocou CodeVision
Po inštalácii CodeVisionAVR a SinaProg softvér , postupujte podľa nižšie kroky na vytvorenie projektu a písania kódu:
Už je nahrané
Krok 1. Otvorte CodeVision Kliknite na Súbor -> Nový -> Projekt . Zobrazí sa dialógové okno s potvrdením. Kliknite na Áno
Krok 2. Otvorí sa program CodeWizard. Kliknite na prvú možnosť, tj. Na AT90 , a potom na OK.
Krok 3: - Vyberte si čip mikrokontroléra, tu vezmeme Atmega16L, ako je znázornené.
Krok 4: - Kliknite na USART . Kliknutím na prijímač a vysielač vyberte. Ako je uvedené nižšie:
Krok 5: - Kliknite na Alfanumerický LCD a vyberte Povoliť podporu Alfanumerického LCD .
Krok 6: - Kliknite na Program -> Generovať, uložiť a ukončiť . Teraz je viac ako polovica našej práce dokončená
Krok 7: - Vytvorte nový priečinok na pracovnej ploche tak, aby naše súbory zostali v priečinku, inak by sme boli rozptýlení po celom okne pracovnej plochy. Pomenujte priečinok, ako chcete, a navrhujem, aby ste na ukladanie programových súborov používali rovnaký názov.
Budeme mať po sebe tri dialógové okná na ukladanie súborov.
To isté urobte s ďalšími dvoma dialógovými oknami, ktoré sa zobrazia po uložení prvého.
Váš pracovný priestor teraz vyzerá takto.
Naša väčšina práce je dokončená pomocou Sprievodcu. Teraz musíme napísať kód iba pre GSM.
Kód a vysvetlenie
Všetky hlavičkové súbory sa po vytvorení projektu automaticky pripoja. Musíte len zahrnúť hlavičkový súbor delay.h a deklarovať všetky premenné. Celý kód je uvedený na konci tohto tutoriálu.
#include
Vykonajte funkciu na príjem údajov z registra UDR. Táto funkcia vráti prijaté dáta.
unsigned char receive_value (void) { while (! (UCSRA & (1 <
Príďte na while slučky, v ktorom sme sa vytvoriť dve , ak vyhlásenie, jeden pre posielanie správ a druhý pre príjem. Tlačidlo Odoslať je spojené s PIND6 spoločnosti ATmega a tlačidlo prijímať správy s PIND5.
Pri stlačení PIND6 (Send), prvý v prípade vyhlásenia bude realizovať a všetky príkazy na odoslanie správy sa vykoná jeden po druhom.
while (1) { // lcd_clear (); lcd_putsf ("Odoslať-> bttn 1"); lcd_gotoxy (0,1); lcd_putsf ("Príjem-> zadok 2"); if (PIND.6 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Posielam správu…"); pre (z = 0; cmd_1! = ''; z ++) { UDR = cmd_1; delay_ms (100); } UDR = ('\ r'); delay_ms (500); pre (z = 0; cmd_2! = ''; z ++) { UDR = cmd_2; delay_ms (100); }…..
Ak je stlačené tlačidlo Prijať správu, slučka (b! = '+') Skontroluje, či je alebo nie je prítomný príkaz CMT. Ak je prítomná, druhá zatiaľ čo slučka spustí a prejdite na druhý riadok príkazu a vytlačiť správu na displeji jedno po druhom.
while (PIND.5 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Prijíma sa správa…"); b = prijaté_hodnota (); while (b! = '+') { b = receive_value (); } b = prijata_hodnota (); if (b == 'C') { b = prijaté_hodnota (); … ..
Táto slučka prenesie program na druhý riadok príkazu a správu uloží do poľa.
while (b! = 0x0a) { b = receive_value (); } for (b = 0; b <3; b ++) { c = receive_value (); msg = c; } .. ..
Táto slučka for slúži na zobrazenie správy na LCD displeji.
pre (z = 0; z <3; z ++) { a = msg; lcd_putchar (a); // PRINT IN lcd delay_ms (10); }
Kompletný kód s demo videom je uvedený nižšie, teraz musíme zostaviť náš projekt.
Zostavte projekt
Kliknite na ikonu Zostaviť projekt, ako je to znázornené.
Po zostavení projektu sa v priečinku Debug-> Exe vygeneruje súbor HEX, ktorý sa nachádza v priečinku, ktorý ste si predtým vytvorili na uloženie projektu. Tento HEX súbor použijeme na nahranie do Atmega16 pomocou softvéru Sinaprog.
Vložte kód do Atmega16
Pripojte svoje obvody podľa schémy k programu Atmega16. Pripojte jednu stranu FRC kábla k USBASP programátoru a druhú stranu pripojte k SPI pinom mikrokontroléra, ako je popísané nižšie:
- Pin1 zástrčky FRC -> Pin 6, MOSI spoločnosti Atmega16
- Pin 2 pripojený k Vcc atmega16, tj pin 10
- Pin 5 pripojený k Reset atmega16, tj Pin 9
- Pin 7 pripojený k SCK atmega16, tj pin 8
- Pin 9 pripojený k MISO atmega16, tj pin 7
- Pin 8 pripojený k GND atmega16, tj pin 11
Nahráme vyššie vygenerovaný hexadecimálny súbor pomocou nástroja Sinaprog, takže ho otvorte a v rozbaľovacej ponuke Zariadenie vyberte Atmega16. Vyberte HEX súbor z priečinka Debug-> Exe, ako je to znázornené.
Teraz kliknite na Program a váš kód bude spálený v mikrokontroléri ATmega16.
Hotovo a váš mikrokontrolér je naprogramovaný. Jednoduchým stlačením tlačidiel môžete odosielať a prijímať správy z mikrokontrolérov GSM a ATmega16.
Kompletný kód a ukážkové video sú uvedené nižšie.