- Mga Materyal na Kinakailangan
- Ginamit na Software
- Module ng GSM
- Nakikipag-usap sa module ng GSM gamit ang mga utos ng AT
- ATMega16 GSM Module Interfacing Circuit Diagram
- Lumilikha ng Proyekto para sa ATmega16 gamit ang CodeVision
- Code at Paliwanag
- Buuin ang Proyekto
- I-upload ang code sa Atmega16
Ang mga module ng GSM ay kagiliw-giliw na gamitin lalo na kung ang aming proyekto ay nangangailangan ng malayuang pag-access. Ang mga modyul na ito ay maaaring gumawa ng lahat ng mga pagkilos na magagawa ng aming normal na mobile phone, tulad ng pagtawag / pagtanggap ng isang tawag, pagpapadala / pagtanggap ng isang SMS, pagkonekta sa internet gamit ang GPRS atbp Maaari mo ring ikonekta ang isang normal na mikropono at speaker sa modyul na ito at makipag-usap sa iyong mga tawag sa mobile. Bubuksan nito ang mga pintuan sa maraming mga malikhaing proyekto kung maaari itong ma-interfaced sa isang Microcontroller. Samakatuwid sa tutorial na ito malalaman natin kung paano natin mai- interface ang module ng GSM (SIM900A) kasama ang AVR microcontroller ATmega16 at ipapakita ito sa pamamagitan ng pagpapadala at pagtanggap ng mga mensahe gamit ang GSM Module.
Mga Materyal na Kinakailangan
- Atmega16
- Module ng GSM (SIM900 o anumang iba pa)
- LCD display
- Itulak ang mga pindutan
- 10k resistors, Potentiometer
- Mga kumokonekta na mga wire
- 12V Adapter
- Programmer ng USBasp
- 10 pin na FRC cable
Ginamit na Software
Gagamitin namin ang CodeVisionAVR software para sa pagsusulat ng aming code at SinaProg software para sa pag-upload ng aming code sa Atmega16 gamit ang USBASP programmer.
Maaari mong i-download ang mga softwares na ito mula sa mga naibigay na link:
CodeVisionAVR:
SinaProg:
Bago pumunta sa mga iskema at code, natutunan natin ang tungkol sa module ng GSM at ang pagtatrabaho nito.
Module ng GSM
Ang module na GSM ay maaaring magamit kahit na walang anumang microcontroller sa pamamagitan ng paggamit ng AT mode na pang-utos. Tulad ng ipinakita sa itaas ang module ng GSM ay may isang USART adapter na maaaring direktang ma-interfaced sa computer sa pamamagitan ng paggamit ng isang MAX232 module o ang mga Tx at Rx pin ay maaaring magamit upang ikonekta ito sa isang Microcontroller. Maaari mo ring mapansin ang iba pang mga pin tulad ng MIC +, MIC-, SP +, SP- atbp kung saan maaaring makakonekta ang isang mikropono o isang Speaker. Ang module ay maaaring pinalakas ng isang 12V adapter sa pamamagitan ng isang normal na DC barrel jack.
Ipasok ang iyong SIM card sa puwang ng modyul at paganahin ito, dapat mong mapansin ang isang LED na kuryente na papatuloy. Ngayon maghintay para sa isang minuto o higit pa, at dapat mong makita ang isang pula (o anumang iba pang kulay) LED Flashing isang beses sa bawat 3 segundo. Nangangahulugan ito na ang iyong Modyul ay may kakayahang magtaguyod ng koneksyon sa iyong SIM card. Ngayon ay maaari kang magpatuloy sa pagkonekta sa iyo ng module sa Telepono o anumang Microcontroller.
Maaari kang bumuo ng maraming mga cool na proyekto gamit ang module ng GSM tulad ng:
- Lupon ng Paunawa ng Wireless gamit ang GSM at Arduino
- Awtomatikong Tumawag sa pagsagot sa Makina gamit ang Arduino at GSM Module
- GSM Batay sa Home Automation gamit ang Arduino
- PIR Sensor at GSM Batay sa Security System
Suriin din dito ang lahat ng mga kaugnay na proyekto ng GSM.
Nakikipag-usap sa module ng GSM gamit ang mga utos ng AT
Tulad ng maaaring nahulaan mo ito, ang module ng GSM ay maaaring makipag-usap sa pamamagitan ng Serial na komunikasyon at maiintindihan lamang ang isang wika at iyon ay " AT utos ". Anuman na maaari mong sabihin o hilingin sa module ng GSM dapat lamang ito sa pamamagitan ng mga utos ng AT. Halimbawa kung nais mong malaman kung ang iyong module ay aktibo. Dapat kang magtanong (magpadala) ng isang utos tulad ng "AT" at ang iyong module ay sasagot ng "OK".
Ang mga utos na AT ay mahusay na ipinaliwanag sa kanyang sheet ng data at maaaring matagpuan dito sa kanyang opisyal na datasheet. Sige! Sige! Ito ay isang 271 pahina ng datasheet at maaari kang tumagal ng ilang araw upang basahin ang mga ito. Kaya't nagbigay ako ng ilang pinakamahalagang utos ng AT sa ibaba para sa iyo upang maitaas ito at tumakbo kaagad.
AT |
Tumutugon sa OK para sa Pagkilala |
SA + CPIN? |
Suriin ang Marka ng signal |
SA + COPS? |
Humanap ng pangalan ng service provider |
ATD96XXXXXXXX; |
Tumawag sa tukoy na numero, nagtatapos sa semi-colon |
SA + CNUM |
Hanapin ang bilang ng SIM card (maaaring hindi gumana para sa ilang SIM) |
ATA |
Sagutin ang Papasok na Tawag |
ATH |
I-hang off ang kasalukuyang papasok na tawag |
SA + COLP |
Ipakita ang papasok na numero ng tawag |
AT + VTS = (number) |
Magpadala ng numero ng DTMF. Maaari mong gamitin ang anumang numero sa iyong mobile keypad para sa (numero) |
SA + CMGR |
AT + CMGR = 1 nagbabasa ng mensahe sa unang posisyon |
SA + CMGD = 1 |
Tanggalin ang mensahe sa unang posisyon |
SA + CMGDA = "TANGGALING LAHAT" |
Tanggalin ang Lahat ng mga mensahe mula sa SIM |
SA + CMGL = "LAHAT" |
Basahin ang lahat ng mensahe mula sa SIM |
SA + CMGF = 1 |
Itakda ang pagsasaayos ng SMS. Ang "1" ay para sa mode na teksto lamang |
AT + CMGS = “+91 968837XXXX” > CircuitDigest Text
|
Nagpapadala ng SMS sa isang partikular na numero dito 968837XXXX. Kapag nakita mo ang ">" simulang ipasok ang teksto. Pindutin ang Ctrl + Z upang maipadala ang teksto. |
SA + CGATT? |
Upang suriin ang koneksyon sa internet sa SIM card |
SA + CIPSHUT |
Upang isara ang koneksyon sa TCP, nangangahulugang idiskonekta ang form na internet |
AT + CSTT = "APN", "username", "Pass" |
Kumonekta sa GPRS gamit ang iyong APN at Pass key. Maaaring makuha mula sa Network Provider. |
SA + CIICR |
Suriin kung ang data card ay ang SIM card |
SA + CIFSR |
Kumuha ng IP ng network ng SIM |
SA + CIPSTART = "TCP", "SERVER IP", "PORT" |
Ginamit upang magtakda ng isang koneksyon sa TCP IP |
SA + CIPSEND |
Ginagamit ang utos na ito upang magpadala ng data sa server |
Dito ay gagamitin namin ang AT + CMGF at AT + CMGS utos upang magpadala ng mga mensahe.
Kung nagamit mo ang module ng GSM kasama ang Arduino, habang tumatanggap ng mga mensahe maaari mong gamitin ang + CMT: utos na tingnan ang numero ng mobile at text message sa serial monitor. Ang text message ay nasa pangalawang linya tulad ng ipinakita sa larawan.
Susuriin namin ang + CMT na ito: utos upang suriin kung ang mensahe ay magagamit o hindi.
ATMega16 GSM Module Interfacing Circuit Diagram
Ang mga koneksyon ay ang mga sumusunod
- Tx at Rx ng module ng GSM sa Rx (Pin14) at Tx (Pin15) ng Atmega16 ayon sa pagkakabanggit.
- Itulak ang mga Pindutan sa PD5 (Pin19) at PD6 (Pin20).
- Mga koneksyon sa LCD:
- RS - PA 0
- R / W - PA1
- EN - PA2
- D4 - PA4
- D5 - PA5
- D6 - PA6
- D7 - PA7
Lumilikha ng Proyekto para sa ATmega16 gamit ang CodeVision
Matapos mai - install ang mga CodeVisionAVR at SinaProg software , sundin ang mga hakbang sa ibaba upang lumikha ng proyekto at pagsulat ng code:
Na-upload na
Hakbang 1. Buksan ang CodeVision Mag-click sa File -> Bago -> Project . Lilitaw ang kahon ng Kumpirmasyon ng Dialog. Mag-click sa Oo
Hakbang 2. Magbubukas ang CodeWizard. Mag-click sa unang pagpipilian ie AT90 , at i-click ang OK.
Hakbang 3: - Piliin ang iyong chip ng microcontroller, dito kukuha kami ng Atmega16L tulad ng ipinakita.
Hakbang 4: - Mag - click sa USART . Piliin ang Tagatanggap at Transmitter sa pamamagitan ng pag-click dito. Tulad ng ipinakita sa ibaba:
Hakbang 5: - Mag - click sa Alphanumeric LCD at piliin ang Paganahin ang suporta ng Alphanumeric LCD .
Hakbang 6: - Mag - click sa Program -> Bumuo, Makatipid at Lumabas . Ngayon, higit sa kalahati ng aming trabaho ay nakumpleto
Hakbang 7: - Gumawa ng isang Bagong folder sa desktop nang sa gayon, na ang aming mga file ay mananatili sa folder kung hindi man ay magkakalat kami sa buong window ng desktop. Pangalanan ang iyong folder ayon sa gusto mo at iminumungkahi ko na gamitin ang parehong pangalan upang i-save ang mga file ng programa.
Magkakaroon kami ng tatlong kahon ng diyalogo nang sunud-sunod upang makatipid ng mga file.
Gawin ang pareho sa iba pang dalawang mga kahon ng pag-uusap na lilitaw pagkatapos mong mai-save ang una.
Ngayon, ganito ang hitsura ng iyong workspace.
Ang aming karamihan sa gawain ay nakumpleto sa tulong ng Wizard. Ngayon, kailangan naming magsulat ng code para sa GSM lamang.
Code at Paliwanag
Ang lahat ng mga file ng header ay awtomatikong naka-attach pagkatapos likhain ang proyekto, kailangan mo lamang isama ang file ng header ng delay.h at ideklara ang lahat ng mga variable. Ang kumpletong code ay ibinibigay sa pagtatapos ng tutorial na ito.
# isama
Gumawa ng isang pagpapaandar upang makatanggap ng data mula sa pagrehistro ng UDR. Ang pagpapaandar na ito ay ibabalik ang natanggap na data.
natanggap ang unsigned char_value (walang bisa) { habang (! (UCSRA & (1 <
Dumating sa habang loop kung saan lumilikha kami ng dalawa kung mga pahayag, isa para sa pagpapadala ng mensahe at iba pa para sa pagtanggap. Ang pindutan ng Magpadala ay konektado sa PIND6 ng ATmega at tumanggap ng pindutan ng mensahe sa PIND5.
Kapag ang PIND6 (Ipadala ang Button) ay pinindot muna kung ang pahayag ay naisakatuparan at ang lahat ng mga utos na magpadala ng mensahe ay isa- isahin.
habang (1) { // lcd_clear (); lcd_putsf ("Ipadala-> bttn 1"); lcd_gotoxy (0,1); lcd_putsf ("Tumanggap-> buto 2"); kung (PIND.6 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Nagpadala ng Msg…"); para sa (z = 0; cmd_1! = ""; z ++) { UDR = cmd_1; delay_ms (100); } UDR = ('\ r'); delay_ms (500); para sa (z = 0; cmd_2! = ""; z ++) { UDR = cmd_2; delay_ms (100); } …..
Kung ang pindutan na Tumanggap ng mensahe ay pinindot, habang ang (b! = '+') Loop ay susuriin kung ang CMT utos ay naroroon o wala. Kung mayroon, pangalawa habang ang loop ay isasagawa at pupunta sa pangalawang linya ng utos at i-print ang mensahe sa LCD nang paisa-isa.
habang (PIND.5 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Tumatanggap ng Msg…"); b = natanggap_value (); habang (b! = '+') { b = natanggap_value (); } b = natanggap_value (); kung (b == 'C') { b = ditampa_value (); … ..
Dadalhin ng loop na ito ang programa sa pangalawang linya ng utos at iimbak ang mensahe sa array.
habang (b! = 0x0a) { b = natanggap_value (); } para sa (b = 0; b <3; b ++) { c = natanggap_value (); msg = c; } .. ..
Ito para sa loop ay upang ipakita ang mensahe sa LCD.
para sa (z = 0; z <3; z ++) { a = msg; lcd_putchar (a); // PRINT IN lcd delay_ms (10); }
Ang kumpletong code na may Demo Video ay ibinibigay sa ibaba, ngayon kailangan naming Buuin ang aming proyekto.
Buuin ang Proyekto
Mag-click sa Bumuo ng icon ng proyekto tulad ng ipinakita.
Matapos itaguyod ang proyekto, isang HEX file ang nabuo sa Debug-> Exe folder na matatagpuan sa folder na nagawa mo dati upang mai-save ang iyong proyekto. Gagamitin namin ang HEX file na ito upang mai-upload sa Atmega16 gamit ang Sinaprog software.
I-upload ang code sa Atmega16
Ikonekta ang iyong mga circuit ayon sa ibinigay na diagram sa program na Atmega16. I-hookup ang isang gilid ng FRC cable sa USBASP programmer at iba pang panig ay kumokonekta sa SPI pin ng microcontroller tulad ng inilarawan sa ibaba:
- Pin1 ng FRC babaeng konektor -> Pin 6, MOSI ng Atmega16
- Ang Pin 2 ay konektado sa Vcc ng atmega16 ie Pin 10
- Ang Pin 5 ay konektado sa I-reset ang atmega16 ie Pin 9
- Ang Pin 7 ay konektado sa SCK ng atmega16 ie Pin 8
- Ang Pin 9 ay konektado sa MISO ng atmega16 ie Pin 7
- Ang Pin 8 ay konektado sa GND ng atmega16 ie Pin 11
I-upload namin ang nabuong Hex file sa itaas gamit ang Sinaprog, kaya buksan ito at Piliin ang Atmega16 mula sa drop down na menu ng Device. Piliin ang HEX file mula sa Debug-> Exe folder tulad ng ipinakita.
Ngayon, Mag-click sa Programa at ang iyong code ay masusunog sa ATmega16 Microcontroller.
Tapos ka na at na-program ang iyong Microcontroller. Pindutin lamang ang mga pindutan upang maipadala at matanggap ang form na mensahe ng GSM at ATmega16 microcontroller.
Kumpletong code at pagpapakita Ang video ay ibinibigay sa ibaba.