- Bahan yang Diperlukan
- Perisian Yang Digunakan
- Modul GSM
- Berkomunikasi dengan modul GSM menggunakan perintah AT
- Diagram Litar Interfacing Modul ATMega16 GSM
- Membuat Projek untuk ATmega16 menggunakan CodeVision
- Kod dan Penjelasan
- Bina Projek
- Muat naik kod ke Atmega16
Modul GSM menarik untuk digunakan terutamanya apabila projek kami memerlukan akses jarak jauh. Modul-modul ini dapat membuat semua tindakan yang dapat dilakukan oleh telefon bimbit biasa kami, seperti membuat / menerima panggilan, mengirim / menerima SMS, menyambung ke internet menggunakan GPRS dll. Anda juga dapat menyambungkan mikrofon dan pembesar suara biasa ke modul ini dan berbicara pada panggilan mudah alih. Ini akan membuka banyak projek kreatif jika dapat dihubungkan dengan Mikrokontroler. Oleh itu, dalam tutorial ini, kita akan belajar bagaimana kita dapat Memadankan modul GSM (SIM900A) dengan AVR mikrokontroler ATmega16 dan akan menunjukkannya dengan menghantar dan menerima mesej menggunakan Modul GSM.
Bahan yang Diperlukan
- Atmega16
- Modul GSM (SIM900 atau yang lain)
- Paparan LCD
- Tekan butang
- Perintang 10k, Potensiometer
- Menyambung wayar
- Penyesuai 12V
- Pengaturcara USBasp
- Kabel FRC 10 pin
Perisian Yang Digunakan
Kami akan menggunakan perisian CodeVisionAVR untuk menulis kod kami dan perisian SinaProg untuk memuat naik kod kami ke Atmega16 menggunakan pengaturcara USBASP.
Anda boleh memuat turun perisian ini dari pautan yang diberikan:
CodeVisionAVR:
SinaProg:
Sebelum memasuki skema dan kod, kami belajar mengenai modul GSM dan cara kerjanya.
Modul GSM
Modul GSM dapat digunakan walaupun tanpa mikrokontroler dengan menggunakan mod perintah AT. Seperti yang ditunjukkan di atas modul GSM dilengkapi dengan penyesuai USART yang dapat dihubungkan secara langsung ke komputer dengan menggunakan modul MAX232 atau pin Tx dan Rx dapat digunakan untuk menghubungkannya ke Mikrokontroler. Anda juga dapat melihat pin lain seperti MIC +, MIC-, SP +, SP- dll di mana mikrofon atau Pembesar suara boleh disambungkan. Modul ini dapat dihidupkan oleh penyesuai 12V melalui bicu tong DC biasa.
Masukkan kad SIM anda di slot modul dan hidupkan, anda akan melihat LED kuasa menyala. Sekarang tunggu sebentar, dan anda akan melihat LED merah (atau warna lain) berkelip LED setiap 3 saat. Ini bermaksud bahawa Modul anda dapat membuat sambungan dengan kad SIM anda. Sekarang anda boleh meneruskan menghubungkan modul anda dengan Telefon atau Mikrokontroler mana pun.
Anda boleh membina banyak projek menarik menggunakan modul GSM seperti:
- Papan Notis Tanpa Wayar menggunakan GSM dan Arduino
- Mesin Panggilan Panggilan Automatik menggunakan Arduino dan GSM Module
- Automasi Rumah Berasaskan GSM menggunakan Arduino
- Sensor PIR dan Sistem Keselamatan Berasaskan GSM
Lihat juga semua projek berkaitan GSM di sini.
Berkomunikasi dengan modul GSM menggunakan perintah AT
Seperti yang anda duga, modul GSM dapat berkomunikasi melalui komunikasi Serial dan hanya dapat memahami satu bahasa dan itu adalah " perintah AT ". Apa pun yang anda ingin ceritakan atau tanyakan kepada modul GSM, ia hanya boleh melalui perintah AT. Contohnya jika anda ingin mengetahui sama ada modul anda aktif. Anda harus bertanya (kirim) arahan seperti "AT" dan modul anda akan menjawab "OK".
Perintah AT ini dijelaskan dengan baik dalam lembaran datanya dan boleh didapati di sini dalam lembar data rasminya. Baik! Baik! Ini adalah lembaran data halaman 271 dan anda mungkin memerlukan masa berhari-hari untuk membacanya. Oleh itu, saya telah memberikan beberapa arahan AT yang paling penting di bawah ini agar anda segera dapat menjalankannya.
AT |
Balas dengan OK untuk Pengakuan |
AT + CPIN? |
Periksa Kualiti isyarat |
DI + COPS? |
Cari nama pembekal perkhidmatan |
ATD96XXXXXXXX; |
Panggil ke nombor tertentu, diakhiri dengan titik koma |
AT + CNUM |
Cari nombor kad SIM (mungkin tidak berfungsi untuk beberapa SIM) |
ATA |
Jawab Panggilan Masuk |
ATH |
Tangguhkan panggilan masuk semasa |
AT + COLP |
Tunjukkan nombor panggilan masuk |
AT + VTS = (nombor) |
Hantar nombor DTMF. Anda boleh menggunakan sebarang nombor pada papan kekunci telefon bimbit anda untuk (nombor) |
AT + CMGR |
AT + CMGR = 1 membaca mesej pada kedudukan pertama |
AT + CMGD = 1 |
Padamkan mesej pada kedudukan pertama |
AT + CMGDA = "DEL SEMUA" |
Padamkan Semua mesej dari SIM |
AT + CMGL = "SEMUA" |
Baca semua pesanan dari SIM |
AT + CMGF = 1 |
Tetapkan konfigurasi SMS. "1" adalah untuk mod teks sahaja |
AT + CMGS = "+91 968837XXXX" > Teks CircuitDigest
|
Menghantar SMS ke nombor tertentu di sini 968837XXXX. Apabila anda melihat ">" mulailah memasukkan teks. Tekan Ctrl + Z untuk menghantar teks. |
AT + CGATT? |
Untuk memeriksa sambungan internet pada kad SIM |
AT + CIPSHUT |
Untuk menutup sambungan TCP, bermaksud memutuskan sambungan internet |
AT + CSTT = "APN", "nama pengguna", "Lulus" |
Sambung ke GPRS dengan kunci APN dan Lulus anda. Boleh dapatkan dari Network Provider. |
AT + CIICR |
Periksa sama ada kad SIM mempunyai pek data |
AT + CIFSR |
Dapatkan IP rangkaian SIM |
AT + CIPSTART = "TCP", "SERVER IP", "PORT" |
Digunakan untuk menetapkan sambungan TCP IP |
AT + CIPSEND |
Perintah ini digunakan untuk mengirim data ke pelayan |
Di sini kita akan menggunakan arahan AT + CMGF dan AT + CMGS untuk menghantar mesej.
Sekiranya anda telah menggunakan modul GSM dengan Arduino, semasa menerima mesej, anda boleh menggunakan perintah + CMT: untuk melihat nombor mudah alih dan pesanan teks pada monitor bersiri. Mesej teks berada di baris kedua seperti yang ditunjukkan dalam gambar
Kami akan mengimbas perintah + CMT: ini untuk memeriksa sama ada mesej tersedia atau tidak.
Diagram Litar Interfacing Modul ATMega16 GSM
Sambungan akan seperti berikut
- Tx dan Rx dari modul GSM ke Rx (Pin14) dan Tx (Pin15) dari Atmega16 masing-masing.
- Tekan butang ke PD5 (Pin19) dan PD6 (Pin20).
- Sambungan LCD:
- RS - PA 0
- R / W - PA1
- EN - PA2
- D4 - PA4
- D5 - PA5
- D6 - PA6
- D7 - PA7
Membuat Projek untuk ATmega16 menggunakan CodeVision
Selepas memasang perisian CodeVisionAVR dan SinaProg , ikuti langkah di bawah untuk membuat projek dan menulis kod:
Sudah dimuat naik
Langkah 1. Buka CodeVision Klik pada Fail -> Baru -> Projek . Kotak Dialog Pengesahan akan muncul. Klik Ya
Langkah 2. CodeWizard akan dibuka. Klik pada pilihan pertama iaitu AT90 , dan klik OK.
Langkah 3: - Pilih cip mikrokontroler anda, di sini kita akan mengambil Atmega16L seperti yang ditunjukkan.
Langkah 4: - Klik di USART . Pilih Penerima dan Pemancar dengan mengklik padanya. Seperti yang ditunjukkan di bawah:
Langkah 5: - Klik pada Alphanumeric LCD dan pilih Enable Alphanumeric LCD .
Langkah 6: - Klik pada Program -> Hasilkan, Simpan dan Keluar . Kini, lebih daripada separuh kerja kita selesai
Langkah 7: - Buat folder Baru di desktop, supaya fail kita tetap dalam folder jika tidak, kita akan tersebar di seluruh tetingkap desktop. Namakan folder anda seperti yang anda mahukan dan saya cadangkan gunakan nama yang sama untuk menyimpan fail program.
Kami akan mempunyai tiga kotak dialog satu demi satu untuk menyimpan fail.
Lakukan perkara yang sama dengan dua kotak dialog lain yang akan muncul setelah anda menyimpan yang pertama.
Sekarang, ruang kerja anda kelihatan seperti ini.
Sebilangan besar kerja kami diselesaikan dengan bantuan Ahli Sihir. Sekarang, kita mesti menulis kod untuk GSM sahaja.
Kod dan Penjelasan
Semua fail header dilampirkan secara automatik setelah membuat projek, anda harus memasukkan fail header delay.h dan menyatakan semua pemboleh ubah. Kod lengkap diberikan pada akhir tutorial ini.
#sertakan
Buat fungsi untuk menerima data dari daftar UDR. Fungsi ini akan mengembalikan data yang diterima.
char tidak ditandatangani diterima_value (tidak sah) { sementara (! (UCSRA & (1 <
Datang ke loop sementara di mana kita membuat dua pernyataan jika , satu untuk menghantar mesej dan yang lain untuk menerima. Butang kirim dihubungkan dengan PIND6 ATmega dan terima butang mesej dengan PIND5.
Apabila PIND6 (Button Kirim) ditekan terlebih dahulu jika pernyataan akan dijalankan dan semua perintah untuk mengirim pesan akan dilaksanakan satu per satu.
sementara (1) { // lcd_clear (); lcd_putsf ("Kirim-> bttn 1"); lcd_gotoxy (0,1); lcd_putsf ("Terima-> butang 2"); jika (PIND.6 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Menghantar Msg…"); untuk (z = 0; cmd_1! = "; z ++) { UDR = cmd_1; kelewatan_ms (100); } UDR = ('\ r'); kelewatan_ms (500); untuk (z = 0; cmd_2! = "; z ++) { UDR = cmd_2; kelewatan_ms (100); } …..
Sekiranya butang Terima mesej ditekan, sementara gelung (b! = '+') Akan memeriksa sama ada arahan CMT ada atau tidak. Sekiranya ada, loop sementara kedua akan dijalankan dan pergi ke baris kedua arahan dan mencetak mesej di LCD satu persatu.
sementara (PIND.5 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Menerima Msg…"); b = nilai_ diterima (); sementara (b! = '+') { b = nilai_ diterima (); } b = nilai_ diterima (); jika (b == 'C') { b = nilai_ diterima (); … ..
Gelung ini membawa program ke baris perintah kedua dan menyimpan mesej dalam array.
sementara (b! = 0x0a) { b = nilai_ diterima (); } untuk (b = 0; b <3; b ++) { c = nilai_ diterima (); msg = c; } .. ..
Ini untuk gelung adalah untuk memaparkan mesej di LCD.
untuk (z = 0; z <3; z ++) { a = msg; lcd_putchar (a); // CETAK DALAM lcd delay_ms (10); }
Kod lengkap dengan Video Demo diberikan di bawah, sekarang kita harus Membina projek kita.
Bina Projek
Klik pada ikon Bina projek seperti yang ditunjukkan.
Setelah membina projek, fail HEX dihasilkan dalam folder Debug-> Exe yang boleh didapati di folder yang telah anda buat sebelumnya untuk menyimpan projek anda. Kami akan menggunakan fail HEX ini untuk memuat naik di Atmega16 menggunakan perisian Sinaprog.
Muat naik kod ke Atmega16
Sambungkan litar anda mengikut gambarajah yang diberikan untuk atmega16 atmega. Sambungkan satu sisi kabel FRC ke pengaturcara USBASP dan bahagian lain akan disambungkan ke pin mikrokontroler SPI seperti yang dijelaskan di bawah:
- Pin1 penyambung wanita FRC -> Pin 6, MOSI Atmega16
- Pin 2 disambungkan ke Vcc atmega16 iaitu Pin 10
- Pin 5 disambungkan ke Reset atmega16 iaitu Pin 9
- Pin 7 disambungkan ke SCK atmega16 iaitu Pin 8
- Pin 9 disambungkan ke MISO atmega16 iaitu Pin 7
- Pin 8 disambungkan ke GND atmega16 iaitu Pin 11
Kami akan memuat naik fail Hex yang dihasilkan di atas menggunakan Sinaprog, jadi buka dan Pilih Atmega16 dari menu lungsur Peranti. Pilih fail HEX dari folder Debug-> Exe seperti yang ditunjukkan.
Sekarang, Klik pada Program dan kod anda akan dibakar dalam Mikrokontroler ATmega16.
Anda selesai dan Mikrokontroler anda diprogramkan. Cukup tekan butang untuk menghantar dan menerima mesej dari mikrokontroler GSM dan ATmega16.
Video kod dan demonstrasi lengkap diberikan di bawah.