- Potrebni materijali
- Korišteni softver
- GSM modul
- Komunikacija s GSM modulom pomoću AT naredbi
- Dijagram kruga povezivanja ATMega16 GSM modula
- Izrada projekta za ATmega16 pomoću CodeVision
- Šifra i objašnjenje
- Izradite projekt
- Prenesite kod na Atmega16
GSM moduli su zanimljivi za upotrebu, posebno kada naš projekt zahtijeva daljinski pristup. Ovi moduli mogu izvršiti sve radnje koje bi naš uobičajeni mobilni telefon mogao učiniti, poput upućivanja / primanja poziva, slanja / primanja SMS-a, povezivanja na internet pomoću GPRS-a itd. Na ovaj modul možete povezati i uobičajeni mikrofon i zvučnik i razgovarati na svom mobilni pozivi. To će otvoriti vrata mnogim kreativnim projektima ako bi ih se moglo povezati s mikrokontrolerom. Stoga ćemo u ovom vodiču naučiti kako možemo povezati GSM modul (SIM900A) s AVR mikrokontrolerom ATmega16 i to ćemo demonstrirati slanjem i primanjem poruka pomoću GSM modula.
Potrebni materijali
- Atmega16
- GSM modul (SIM900 ili bilo koji drugi)
- LCD zaslon
- Tipke
- Otpornici 10k, potenciometar
- Spajanje žica
- 12V adapter
- USBasp programer
- 10-polni FRC kabel
Korišteni softver
Mi ćemo koristiti CodeVisionAVR softver za pisanje koda te SinaProg softver za upload našu šifru za Atmega16 pomoću USBASP programer.
Ove softvere možete preuzeti s danih poveznica:
CodeVisionAVR:
SinaProg:
Prije ulaska u sheme i kodove, saznajemo o GSM modulu i njegovom radu.
GSM modul
![]()
GSM modul se može koristiti čak i bez ikakvog mikrokontrolera pomoću AT naredbenog načina. Kao što je prikazano gore, GSM modul dolazi s USART adapterom koji se može izravno povezati s računalom pomoću MAX232 modula ili se Tx i Rx pinovi mogu koristiti za njegovo povezivanje s mikrokontrolerom. Također možete primijetiti i ostale igle poput MIC +, MIC-, SP +, SP- itd. Na koje se može spojiti mikrofon ili zvučnik. Modul se može napajati preko adaptera od 12 V preko normalne utičnice istosmjerne cijevi.
Umetnite SIM karticu u utor modula i uključite je, trebali biste primijetiti da se LED lampica za napajanje UKLJUČUJE. Pričekajte minutu ili tako malo i trebali biste vidjeti crvenu (ili bilo koju drugu boju) LED lampicu kako trepće jednom u 3 sekunde. To znači da je vaš modul mogao uspostaviti vezu s vašom SIM karticom. Sada možete nastaviti s povezivanjem vašeg modula s telefonom ili bilo kojim mikrokontrolerom.
Pomoću GSM modula možete izraditi mnoge sjajne projekte poput:
- Bežična oglasna ploča koja koristi GSM i Arduino
- Automatska tajnica na pozive pomoću Arduina i GSM modula
- GSM automatizirana kuća koristeći Arduino
- PIR senzor i sigurnosni sustav zasnovan na GSM-u
Ovdje također provjerite sve projekte koji se odnose na GSM.
Komunikacija s GSM modulom pomoću AT naredbi
Kao što ste mogli pretpostaviti, GSM modul može komunicirati serijskom komunikacijom i mogao je razumjeti samo jedan jezik, a to su " AT naredbe ". Sve što biste htjeli reći ili zatražiti od GSM modula, to bi trebalo biti samo putem AT naredbi. Na primjer, ako želite znati je li vaš modul aktivan. Trebali biste zatražiti (poslati) naredbu poput "AT" i vaš će modul odgovoriti "U redu".
Ove AT naredbe dobro su objašnjene u tehničkom listu i mogu se pronaći ovdje u službenom listu podataka. U redu! U redu! To je podatkovni list površine 271 stranice i možda će vam trebati dana da ga pročitate. Stoga sam u nastavku dao neke najvažnije AT naredbe da biste to uskoro pokrenuli.
|
NA |
Odgovara s OK za potvrdu |
|
AT + CPIN? |
Provjerite kvalitetu signala |
|
AT + PUKOVI? |
Pronađite naziv davatelja usluga |
|
ATD96XXXXXXXX; |
Poziv na određeni broj, završava s dvotačkom |
|
AT + CNUM |
Pronađite broj SIM kartice (možda neće raditi za neke SIM kartice) |
|
ATA |
Odgovorite na dolazni poziv |
|
ATH |
Prekini trenutni dolazni poziv |
|
AT + COLP |
Prikaži broj dolaznog poziva |
|
AT + VTS = (broj) |
Pošaljite DTMF broj. Možete koristiti bilo koji broj na mobilnoj tipkovnici za (broj) |
|
AT + CMGR |
AT + CMGR = 1 čita poruku na prvom mjestu |
|
AT + CMGD = 1 |
Izbriši poruku na prvom mjestu |
|
AT + CMGDA = "DEL ALL" |
Izbriši sve poruke sa SIM-a |
|
AT + CMGL = "SVE" |
Pročitajte sve poruke sa SIM-a |
|
AT + CMGF = 1 |
Postavite konfiguraciju SMS-a. "1" je samo za tekstualni način |
|
AT + CMGS = "+91 968837XXXX" > Tekst CircuitDigest
|
Ovdje šalje SMS na određeni broj 968837XXXX. Kada vidite “>”, počnite unositi tekst. Pritisnite Ctrl + Z da biste poslali tekst. |
|
AT + CGATT? |
Da biste provjerili postoji li internetska veza na SIM kartici |
|
NA + CIPSHUT |
Za zatvaranje TCP veze, što znači prekid veze s interneta |
|
AT + CSTT = "APN", "korisničko ime", "Pass" |
Povežite se na GPRS pomoću APN-a i Pass ključa. Može se dobiti od mrežnog pružatelja. |
|
AT + CIICR |
Provjerite ima li SIM kartica podatkovni paket |
|
AT + CIFSR |
Nabavite IP SIM mreže |
|
AT + CIPSTART = “TCP”, “SERVER IP”, “LUKA” |
Koristi se za postavljanje TCP IP veze |
|
NA + CIPSEND |
Ova se naredba koristi za slanje podataka na poslužitelj |
Ovdje ćemo za slanje poruka koristiti naredbe AT + CMGF i AT + CMGS.
Ako ste s Arduinom koristili GSM modul, tijekom primanja poruka možete koristiti naredbu + CMT: za prikaz broja mobitela i tekstualne poruke na serijskom monitoru. Tekstualna poruka dolazi u drugom retku kao što je prikazano na slici.

Skenirat ćemo ovu naredbu + CMT: kako bismo provjerili je li poruka dostupna ili ne.
Dijagram kruga povezivanja ATMega16 GSM modula

Veze će biti sljedeće
- Tx i Rx GSM modula za Rx (Pin14) i Tx (Pin15) za Atmega16.
- Tipke za PD5 (Pin19) i PD6 (Pin20).
- LCD veze:
- RS - PA 0
- R / Š - PA1
- EN - PA2
- D4 - PA4
- D5 - PA5
- D6 - PA6
- D7 - PA7

Izrada projekta za ATmega16 pomoću CodeVision
Nakon instalacije softvera CodeVisionAVR i SinaProg , slijedite korake u nastavku za stvaranje projekta i pisanje koda:
Već preneseno
Korak 1. Otvorite CodeVision Kliknite Datoteka -> Novo -> Projekt . Pojavit će se dijaloški okvir za potvrdu. Kliknite Da

Korak 2. Otvorit će se CodeWizard. Kliknite prvu opciju, tj. AT90 , i kliknite U redu.

Korak 3: - Odaberite svoj mikrokontrolerski čip, ovdje ćemo uzeti Atmega16L kao što je prikazano.

Korak 4: - Kliknite USART . Odaberite prijemnik i odašiljač klikom na njih. Kao što je prikazano niže:

Korak 5: - Kliknite alfanumerički LCD i odaberite Omogući alfanumerički LCD podršku .

Korak 6: - Kliknite Program -> Generiraj, spremi i izađi . Sada je više od polovice našeg posla završeno

Korak 7: - Napravite novu mapu na radnoj površini, tako da naše datoteke ostanu u mapi, inače ćemo biti rasute po cijelom prozoru radne površine. Nazovite mapu kako želite i predlažem da koristite isto ime za spremanje programskih datoteka.
Imat ćemo tri dijaloška okvira jedan za drugim za spremanje datoteka.

Učinite isto s druga dva dijaloška okvira koja će se pojaviti nakon što spremite prvi.
Sada vaš radni prostor izgleda ovako.

Naš najveći dio posla dovršen je uz pomoć čarobnjaka. Sada moramo napisati kod samo za GSM.
Šifra i objašnjenje
Sve datoteke zaglavlja automatski se prilažu nakon stvaranja projekta, morate samo uključiti datoteku zaglavlja delay.h i deklarirati sve varijable. Kompletni kod dan je na kraju ovog vodiča.
#include
Napravite funkciju za primanje podataka iz UDR registra. Ova će funkcija vratiti primljene podatke.
nepotpisani znak primljen_vrijednost (void) { while (! (UCSRA & (1 <
Dođite do while petlje u kojoj kreiramo dvije izjave if , jednu za slanje poruke i drugu za primanje. Gumb za slanje povezan je s PIND6 od ATmega, a gumb za primanje poruke s PIND5.
Kada se prvo pritisne PIND6 (gumb za slanje), hoće li se naredba izvršiti, a sve naredbe za slanje poruke izvršit će se jedna po jedna.
while (1) { // lcd_clear (); lcd_putsf ("Pošalji-> bttn 1"); lcd_gotoxy (0,1); lcd_putsf ("Primanje-> tipka 2"); if (PIND.6 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Slanje poruke…"); za (z = 0; cmd_1! = ''; z ++) { UDR = cmd_1; kašnjenje_ms (100); } UDR = ('\ r'); kašnjenje_ms (500); za (z = 0; cmd_2! = ''; z ++) { UDR = cmd_2; kašnjenje_ms (100); } …..
Ako se pritisne gumb Primanje poruke, dok će petlja (b! = '+') Provjeriti je li CMT naredba prisutna ili ne. Ako postoji, izvršit će se druga while petlja i preći u drugi redak naredbe i ispisati poruku na LCD jedan po jedan.
while (PIND.5 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Primanje poruke…"); b = primljena_vrijednost (); dok je (b! = '+') { b = primljena_vrijednost (); } b = primljena_vrijednost (); if (b == 'C') { b = primljena_vrijednost (); … ..
Ova petlja vodi program u drugi redak naredbe i sprema poruku u polje.
dok je (b! = 0x0a) { b = primljena_vrijednost (); } za (b = 0; b <3; b ++) { c = primljena_vrijednost (); msg = c; } .. ..
Ova petlja for prikazuje poruku na LCD-u.
za (z = 0; z <3; z ++) { a = msg; lcd_putchar (a); // TISAK U lcd delay_ms (10); }
Kompletni kôd s Demo videom dat je u nastavku, sada moramo izraditi naš projekt.
Izradite projekt
Kliknite na Izgradi ikonu projekta kao što je prikazano.

Nakon izgradnje projekta, u mapi Debug-> Exe generira se HEX datoteka koja se nalazi u mapi koju ste prethodno napravili za spremanje projekta. Upotrijebit ćemo ovu HEX datoteku za prijenos u Atmega16 pomoću softvera Sinaprog.
Prenesite kod na Atmega16
Spojite svoje krugove prema zadanom dijagramu na program Atmega16. Priključite jednu stranu FRC kabela na USBASP programer, a drugu stranu spojit ćete na SPI pinove mikrokontrolera kako je opisano u nastavku:

- Pin1 ženskog konektora FRC -> Pin 6, MOSI od Atmega16
- Pin 2 povezan s Vcc atmega16 tj. Pin 10
- Pin 5 spojen je na Resetiranje atmega16 tj. Pin 9
- Pin 7 spojen na SCK atmega16 tj. Pin 8
- Pin 9 povezan s MISO atmega16, tj. Pin 7
- Pin 8 spojen na GND atmega16 tj. Pin 11
Prenijet ćemo gore generiranu hex datoteku pomoću Sinaproga, pa je otvorite i s padajućeg izbornika Device odaberite Atmega16. Odaberite HEX datoteku iz mape Debug-> Exe kao što je prikazano.

Sada kliknite Program i vaš će kôd biti spaljen u mikrokontroleru ATmega16.
Gotovi ste i vaš mikrokontroler je programiran. Samo pritisnite tipke za slanje i primanje poruka s mikrokontrolera GSM i ATmega16.
Kompletni kod i demonstracijski video prikazan je u nastavku.
