Modul GSM digunakan di berbagai perangkat komunikasi yang berbasis teknologi GSM (Global System for Mobile Communications). Ini digunakan untuk berinteraksi dengan jaringan GSM menggunakan komputer. Modul GSM hanya memahami perintah AT, dan dapat merespons sesuai dengan itu. Perintah paling dasar adalah “AT”, jika GSM merespon OK maka berfungsi dengan baik jika tidak merespon dengan “ERROR”. Ada berbagai macam perintah AT seperti ATA untuk menjawab panggilan, ATD untuk melakukan panggilan, AT + CMGR untuk membaca pesan, AT + CMGS untuk mengirim sms dll. Perintah AT harus diikuti oleh Carriage return yaitu \ r (0D dalam hex), seperti “AT + CMGS \ r”. Kita bisa menggunakan modul GSM dengan menggunakan perintah ini.
Antarmuka GSM dengan 8051
Alih-alih menggunakan PC, kita dapat menggunakan mikrokontroler untuk berinteraksi dengan modul GSM dan LCD untuk mendapatkan respon dari modul GSM. Jadi kita akan menghubungkan GSM dengan mikrokontroler 8.051 (AT89S52). Sangat mudah untuk menghubungkan GSM dengan 8051, kita hanya perlu mengirimkan perintah AT dari mikrokontroler dan menerima respon dari GSM dan menampilkannya pada LCD. Port serial mikrokontroler dapat kita gunakan untuk berkomunikasi dengan GSM, artinya menggunakan PIN 10 (RXD) dan 11 (TXD).
Pertama kita perlu menghubungkan LCD ke 8051, Anda dapat mempelajarinya dari sini: Antarmuka LCD dengan Mikrokontroler 8051. Kemudian kita perlu menghubungkan modul GSM ke 8051, sekarang di sini kita harus memperhatikan. Pertama, Anda perlu memeriksa apakah modul GSM Anda mampu bekerja pada logika TTL atau hanya dapat bekerja dengan RS232. Pada dasarnya jika modul Anda memiliki pin RX dan TX (dengan GND) di papan maka itu dapat bekerja pada logika TTL. Dan Jika tidak memiliki pin RX, TX dan hanya memiliki port RS232 (port serial dengan 9) maka Anda perlu menggunakan IC MAX232 untuk menghubungkan port serial ke mikrokontroler. Pada dasarnya MAX232digunakan untuk mengubah data serial menjadi logika TTL karena Mikrokontroler hanya dapat bekerja pada logika TTL. Tetapi jika modul GSM memiliki pin RX, TX maka Anda tidak perlu menggunakan MAX232 atau konverter serial apa pun, Anda dapat langsung menghubungkan RX dari GSM ke TX (PIN 11) dari 8051 dan TX dari GSM ke RX (PIN 10) dari 8051 Dalam kasus kami, saya telah menggunakan modul SIM900A dan memiliki pin RX, TX jadi saya belum pernah menggunakan MAX232.
Diagram Sirkuit untuk antarmuka GSM dengan mikrokontroler AT89S52 ditunjukkan pada gambar di atas. Sekarang setelah koneksi, kita hanya perlu menulis program untuk mengirim perintah AT ke GSM dan menerima responnya di LCD. Ada banyak perintah AT seperti dijelaskan di atas, tetapi ruang lingkup artikel ini hanya untuk antarmuka GSM dengan 8051, jadi kita hanya akan mengirim perintah “AT” diikuti dengan “\ r” (0D dalam hex). Ini akan memberi kita respon “OK”. Tetapi Anda dapat memperluas program ini untuk menggunakan semua fasilitas GSM.
Penjelasan kode
Selain semua fungsi yang terkait dengan LCD, di sini kami telah menggunakan port Serial dan timer mode register (TMOD). Anda dapat mempelajari tentang fungsi LCD dan kode lainnya dengan melalui bagian proyek 8051 kami, di sini saya menjelaskan tentang fungsi kode terkait komunikasi serial:
Fungsi GSM_init ():
Fungsi ini digunakan untuk mengatur Baudrate pada mikrokontroler. Baudrate tidak lain adalah Bit / detik yang dikirim atau diterima. Dan kita harus mencocokkan baudrate 8051 dengan Baud rate modul GSM yaitu 9600. Kita telah menggunakan Timer 1 dalam Mode 2 (mode reload 8-bit otomatis) dengan mengatur register TMOD ke 0X20 dan byte yang lebih tinggi dari Timer 1 (TH1) ke 0XFD untuk mendapatkan baud rate 9600. Juga register SCON digunakan untuk mengatur mode komunikasi serial, kami telah menggunakan Mode1 (8-bit UART) dengan penerimaan diaktifkan.
Fungsi GSM_write:
SBUF (serial buffer special function register) digunakan untuk komunikasi serial, kapanpun kita ingin mengirim byte apapun ke perangkat serial kita meletakkan byte itu di register SBUF, ketika byte lengkap telah dikirim maka bit TI diatur oleh perangkat keras. Kita perlu mengatur ulang untuk mengirim byte berikutnya. Ini adalah bendera yang menunjukkan bahwa byte telah berhasil dikirim. TI adalah bit kedua dari register SCON. Kami telah mengirim "AT" menggunakan fungsi ini.
Fungsi GSM_read:
Sama seperti pengiriman, setiap kali kita menerima byte dari perangkat eksternal byte itu dimasukkan ke register SBUF, kita hanya perlu membacanya. Dan setiap kali byte lengkap telah diterima, bit RI diatur oleh perangkat keras. Kita perlu mengatur ulang untuk menerima byte berikutnya. RI adalah bit pertama dari register SCON. Kami telah membaca respon "OK" menggunakan fungsi ini.