- Bahan yang Dibutuhkan
- Software yang Digunakan
- Modul GSM
- Berkomunikasi dengan modul GSM menggunakan perintah AT
- Diagram Sirkuit Antarmuka Modul GSM ATMega16
- Membuat Proyek untuk ATmega16 menggunakan CodeVision
- Kode dan Penjelasan
- Bangun Proyek
- Unggah kode ke Atmega16
Modul GSM menarik untuk digunakan terutama ketika proyek kami membutuhkan akses jarak jauh. Modul-modul ini dapat melakukan semua tindakan yang dapat dilakukan oleh ponsel biasa kita, seperti membuat / menerima panggilan, mengirim / menerima SMS, menghubungkan ke internet menggunakan GPRS, dll. Anda juga dapat menghubungkan mikrofon dan speaker normal ke modul ini dan berkomunikasi di panggilan seluler. Ini akan membuka pintu ke banyak proyek kreatif jika dapat dihubungkan dengan Mikrokontroler. Karenanya dalam tutorial ini kita akan belajar bagaimana kita dapat melakukan Interface modul GSM (SIM900A) dengan mikrokontroler AVR ATmega16 dan akan mendemonstrasikannya dengan mengirim dan menerima pesan menggunakan Modul GSM.
Bahan yang Dibutuhkan
- Atmega16
- Modul GSM (SIM900 atau lainnya)
- layar LCD
- Tekan tombol
- Resistor 10k, Potensiometer
- Menghubungkan kabel
- Adaptor 12V
- Pemrogram USBasp
- Kabel FRC 10 pin
Software yang Digunakan
Kami akan menggunakan perangkat lunak CodeVisionAVR untuk menulis kode kami dan perangkat lunak SinaProg untuk mengunggah kode kami ke Atmega16 menggunakan programmer USBASP.
Anda dapat mengunduh perangkat lunak ini dari tautan yang diberikan:
CodeVisionAVR:
SinaProg:
Sebelum masuk ke skema dan kodenya, kita mempelajari modul GSM dan cara kerjanya.
Modul GSM
Modul GSM dapat digunakan bahkan tanpa mikrokontroler dengan menggunakan mode perintah AT. Seperti yang ditunjukkan di atas modul GSM dilengkapi dengan adaptor USART yang dapat langsung dihubungkan 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 Speaker dapat dihubungkan. Modul dapat diberi daya oleh adaptor 12V melalui jack barel DC normal.
Masukkan kartu SIM Anda ke dalam slot modul dan nyalakan, Anda akan melihat LED daya menyala. Sekarang tunggu sekitar satu menit, dan Anda akan melihat LED merah (atau warna lainnya) Berkedip sekali untuk setiap 3 detik. Ini berarti Modul Anda dapat membuat koneksi dengan kartu SIM Anda. Sekarang Anda dapat melanjutkan dengan menghubungkan modul Anda dengan Telepon atau Mikrokontroler apa pun.
Anda dapat membangun banyak proyek keren menggunakan modul GSM seperti:
- Papan Pemberitahuan Nirkabel menggunakan GSM dan Arduino
- Mesin Penjawab Panggilan Otomatis menggunakan Modul Arduino dan GSM
- Home Automation Berbasis GSM dengan Arduino
- Sensor PIR dan Sistem Keamanan Berbasis GSM
Periksa juga semua proyek terkait GSM di sini.
Berkomunikasi dengan modul GSM menggunakan perintah AT
Seperti yang sudah Anda duga, modul GSM dapat berkomunikasi melalui komunikasi Serial dan hanya dapat memahami satu bahasa, yaitu “ Perintah AT ”. Apa pun yang ingin Anda sampaikan atau tanyakan ke modul GSM, sebaiknya hanya melalui perintah AT. Misalnya jika Anda ingin mengetahui apakah modul Anda aktif. Anda harus meminta (mengirim) perintah seperti "AT" dan modul Anda akan menjawab "OK".
Perintah AT ini dijelaskan dengan baik di lembar datanya dan dapat ditemukan di sini di lembar data resminya. Baik! Baik! Ini adalah lembar data 271 halaman dan Anda mungkin membutuhkan waktu berhari-hari untuk membacanya. Jadi saya telah memberikan beberapa perintah AT yang paling penting di bawah ini agar Anda dapat segera menjalankannya.
DI |
Balasan dengan OK untuk Pengakuan |
DI + CPIN? |
Periksa Kualitas Sinyal |
DI + COPS? |
Temukan nama penyedia layanan |
ATD96XXXXXXXX; |
Panggilan ke nomor tertentu, diakhiri dengan titik koma |
DI + CNUM |
Temukan nomor kartu SIM (mungkin tidak berfungsi untuk beberapa SIM) |
ATA |
Jawab Panggilan Masuk |
ATH |
Menunda panggilan masuk saat ini |
DI + COLP |
Tampilkan nomor panggilan masuk |
AT + VTS = (angka) |
Kirim nomor DTMF. Anda dapat menggunakan nomor apa pun pada keypad ponsel Anda untuk (angka) |
AT + CMGR |
AT + CMGR = 1 membaca pesan di posisi pertama |
DI + CMGD = 1 |
Hapus pesan di posisi pertama |
AT + CMGDA = ”HAPUS SEMUA” |
Hapus Semua pesan dari SIM |
AT + CMGL = ”SEMUA” |
Baca semua pesan dari SIM |
DI + CMGF = 1 |
Setel konfigurasi SMS. "1" untuk mode hanya teks |
DI + CMGS = “+91 968837XXXX” > Teks CircuitDigest
|
Mengirim SMS ke nomor tertentu di sini 968837XXXX. Saat Anda melihat ">" mulai masukkan teks. Tekan Ctrl + Z untuk mengirim teks. |
DI + CGATT? |
Untuk memeriksa koneksi internet pada kartu SIM |
DI + CIPSHUT |
Untuk menutup koneksi TCP, artinya memutuskan koneksi dari internet |
AT + CSTT = “APN”, ”nama pengguna”, ”Lulus” |
Hubungkan ke GPRS dengan APN dan kunci Pass Anda. Dapat diperoleh dari Penyedia Jaringan. |
AT + CIICR |
Periksa apakah kartu SIM memiliki paket data |
AT + CIFSR |
Dapatkan IP dari jaringan SIM |
AT + CIPSTART = “TCP”, ”SERVER IP”, ”PORT” |
Digunakan untuk mengatur koneksi TCP IP |
DI + CIPSEND |
Perintah ini digunakan untuk mengirim data ke server |
Di sini kita akan menggunakan perintah AT + CMGF dan AT + CMGS untuk mengirim pesan.
Jika Anda telah menggunakan modul GSM dengan Arduino, saat menerima pesan Anda dapat menggunakan perintah + CMT: untuk melihat nomor ponsel dan pesan teks pada monitor serial. Pesan teks muncul di baris kedua seperti yang ditunjukkan pada gambar.
Kami akan memindai perintah + CMT: ini untuk memeriksa apakah pesan tersedia atau tidak.
Diagram Sirkuit Antarmuka Modul GSM ATMega16
Koneksi akan seperti berikut
- Tx dan Rx dari modul GSM ke Rx (Pin14) dan Tx (Pin15) dari Atmega16 masing-masing.
- Tekan Tombol ke PD5 (Pin19) dan PD6 (Pin20).
- Koneksi LCD:
- RS - PA 0
- R / W - PA1
- EN - PA2
- D4 - PA4
- D5 - PA5
- D6 - PA6
- D7 - PA7
Membuat Proyek untuk ATmega16 menggunakan CodeVision
Setelah menginstal software CodeVisionAVR dan SinaProg , ikuti langkah-langkah di bawah ini untuk membuat proyek dan menulis kode:
Sudah diunggah
LANGKAH 1. Buka CodeVision Klik File -> New -> Project . Kotak Dialog Konfirmasi akan muncul. Klik Ya
Langkah 2. CodeWizard akan terbuka. Klik pada opsi pertama yaitu AT90 , dan klik OK.
Langkah 3: - Pilih chip mikrokontroler Anda, di sini kita akan mengambil Atmega16L seperti yang ditunjukkan.
Langkah 4: - Klik USART . Pilih Penerima dan Pemancar dengan mengkliknya. Seperti yang ditunjukkan di bawah ini:
Langkah 5: - Klik pada LCD Alfanumerik dan pilih Aktifkan dukungan LCD Alfanumerik .
Langkah 6: - Klik Program -> Generate, Save and Exit . Sekarang, lebih dari separuh pekerjaan kami telah selesai
Langkah 7: - Buat folder baru di desktop agar file kita tetap ada di folder jika tidak maka kita akan tersebar di seluruh jendela desktop. Beri nama folder Anda sesuai keinginan dan saya sarankan gunakan nama yang sama untuk menyimpan file program.
Kami akan memiliki tiga kotak dialog satu demi satu untuk menyimpan file.
Lakukan hal yang sama dengan dua kotak dialog lainnya yang akan muncul setelah Anda menyimpan yang pertama.
Sekarang, ruang kerja Anda terlihat seperti ini.
Sebagian besar pekerjaan kami diselesaikan dengan bantuan Wizard. Sekarang, kita harus menulis kode untuk GSM saja.
Kode dan Penjelasan
Semua file header secara otomatis dilampirkan setelah membuat proyek, Anda hanya perlu menyertakan file header delay.h dan mendeklarasikan semua variabel. Kode lengkap diberikan di akhir tutorial ini.
#include
Membuat fungsi untuk menerima data dari UDR mendaftar. Fungsi ini akan mengembalikan data yang diterima.
unsigned char accept_value (void) { while (! (UCSRA & (1 <
Datanglah ke while loop di mana kita membuat dua pernyataan if , satu untuk mengirim pesan dan satu lagi untuk menerima. Tombol kirim terhubung dengan PIND6 dari ATmega dan tombol terima pesan dengan PIND5.
Ketika PIND6 (Tombol Kirim) ditekan terlebih dahulu jika pernyataan akan dijalankan dan semua perintah untuk mengirim pesan akan dijalankan satu per satu.
sementara (1) { // lcd_clear (); lcd_putsf ("Kirim-> bttn 1"); lcd_gotoxy (0,1); lcd_putsf ("Terima-> buttn 2"); jika (PIND.6 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Mengirim Pesan…"); untuk (z = 0; cmd_1! = ''; z ++) { UDR = cmd_1; delay_ms (100); } UDR = ('\ r'); delay_ms (500); untuk (z = 0; cmd_2! = ''; z ++) { UDR = cmd_2; delay_ms (100); } …..
Jika tombol Terima pesan ditekan, sementara loop (b! = '+') Akan memeriksa apakah perintah CMT ada atau tidak. Jika ada, second while loop akan dijalankan dan pergi ke baris kedua dari perintah dan mencetak pesan pada LCD satu per satu.
sementara (PIND.5 == 1) { lcd_clear (); lcd_gotoxy (0,0); lcd_putsf ("Menerima Pesan…"); b = nilai_diterima (); while (b! = '+') { b = accept_value (); } b = nilai_terima (); jika (b == 'C') { b = nilai_diterima (); … ..
Perulangan ini membawa program ke baris kedua dari perintah dan menyimpan pesan dalam larik.
sementara (b! = 0x0a) { b = nilai_terima (); } untuk (b = 0; b <3; b ++) { c = accept_value (); msg = c; } .. ..
Ini untuk loop untuk menampilkan pesan di LCD.
untuk (z = 0; z <3; z ++) { a = msg; lcd_putchar (a); // CETAK DI lcd delay_ms (10); }
Kode lengkap dengan Video Demo diberikan di bawah ini, sekarang kita harus membangun proyek kita.
Bangun Proyek
Klik pada Build the project icon seperti yang ditunjukkan.
Setelah membangun proyek, file HEX dibuat di folder Debug-> Exe yang dapat ditemukan di folder yang telah Anda buat sebelumnya untuk menyimpan proyek Anda. Kami akan menggunakan file HEX ini untuk mengunggah di Atmega16 menggunakan perangkat lunak Sinaprog.
Unggah kode ke Atmega16
Hubungkan sirkuit Anda sesuai dengan diagram yang diberikan untuk memprogram Atmega16. Sambungkan satu sisi kabel FRC ke programmer USBASP dan sisi lainnya akan terhubung ke pin SPI mikrokontroler seperti yang dijelaskan di bawah ini:
- Pin1 konektor perempuan FRC -> Pin 6, MOSI dari Atmega16
- Pin 2 terhubung ke Vcc dari atmega16 yaitu Pin 10
- Pin 5 terhubung ke Reset atmega16 yaitu Pin 9
- Pin 7 terhubung ke SCK atmega16 yaitu Pin 8
- Pin 9 terhubung ke MISO atmega16 yaitu Pin 7
- Pin 8 terhubung ke GND atmega16 yaitu Pin 11
Kami akan mengunggah file Hex yang dihasilkan di atas menggunakan Sinaprog, jadi buka dan Pilih Atmega16 dari menu drop-down Perangkat. Pilih file HEX dari folder Debug-> Exe seperti yang ditunjukkan.
Sekarang, Klik Program dan kode Anda akan dibakar di Mikrokontroler ATmega16.
Anda selesai dan Mikrokontroler Anda diprogram. Cukup tekan tombol untuk mengirim dan menerima pesan dari mikrokontroler GSM dan ATmega16.
Kode lengkap dan Video demonstrasi diberikan di bawah ini.