Kirim Terima SMS dan Telpon dengan Arduino GSM Shield,~Halo sahabat BoArduino... Apa kabar nih? rasanya sudah lama tak berjumpa di gubuk ini. Semoga sahabat semua masih dalam keadaan baik dan tetap bersemangat ya dalam hidup ini,Akhirnya saya bisa mempublish kembali artikel di blog ini, Baiklah saya tidak akan panjang lebar untuk berkata kata mari kita pejari dengan seksama semoga bisa menambah wawasan kita dalam mempelajari Arduino.
|
Kirim Terima SMS dan Telpon dengan Arduino GSM Shield |
Artikel ini adalah bagian awal atau bisa disebut juga Getting Started Arduino dan GSM Shield, untuk permulaan kita akan mencoba menggunakan
GSM Shield ini untuk SMS dan Telpon. Di blog ini sebenarnya sudah cukup banyak artikel yang membahas tentang wireless dengan Arduino, mulai dari menggunakan Bluetooth, Internet dan lainnya, akan tetapi belum ada satupun artikel yang menggunakan GSM modul. Maka dari itu, mari kita coba ketangguhan GSM Shield ini. Oke tidak usah bertele-tele, mari langsung saja di simak dan praktikkan gan :)
Features:
- Quad-Band 850/ 900/ 1800/ 1900 MHz
- GPRS multi-slot class 10/8
- GPRS mobile station class B
- Compliant to GSM phase 2/2+Class 4 (2 W @850/ 900 MHz)
- Class 1 (1 W @ 1800/1900MHz)
- Control via AT commands (GSM 07.07 ,07.05 and SIMCOM enhanced AT Commands)
- Low power consumption: 1.5mA(sleep mode)
- Operation temperature: -40°C to +85 °C
Alat dan Bahan yang dibutuhkan :
1x Arduino Uno / Genuino (Compatible)
1x Simcard GSM yang Berisi Saldo Pulsa
1x Mobile Phone (Untuk Pengontrol)
1x SIM900 Modul/Shield (Saya gunakan Icomsat V1.1)
Langkah - Langkahnya :
1.) Pertama, tambahkan library
GSM-GPRS-GPS-Shield ke Software Arduino IDE anda.
Library GSM-GPRS-GPS-Shield (
DOWNLOAD)
2.) Bila sudah, sekarang tancapkan GSM Shield pada Board Arduino yang anda gunakan.
3.) Lalu, pasangkan jumper RX dan TX dari GSM shield ke Pin Arduino. Lihat gambar dibawah.
4.) Jika sudah, selanjutnya pasangkan Simcard GSM anda pada Slot Simcard yang tersedia.
5.) Sekarang, tancapkan kabel USB Arduino ke Komputer/Laptop yang ente gunakan.
6.) Lalu kita akhiri dengan mengupload salah satu sketch dibawah ini pada board Arduino ente.
*Mengirim SMS dengan Arduino
Untuk mengirim SMS dari Arduino menggunakan SIM900 shield, kita bisa bebas untuk memilih menggunakan AT Command Set atau menggunakan Library GSM-GPRS-GPS-Shield yang telah dibuat oleh MarcoMartines ini. (Di tutorial ini saya menggunakan Library dari MarcoMartines).
Mengirimkan SMS dengan menggunakan Library ini, kita hanya perlu mengupload sketch mengirim SMS yang sudah saya sertakan diatas. Pastikan sebelum mengupload sketch, ente sudah menyesuaikan baris sketch dibawah ini dengan nomor telpon penerima & isi pesan text.
if (sms.SendSMS("+6289666xxxxxx", "Halo TempatBelajarArduino :)"))
Dimana
+6289666xxxxxx (Adalah nomor penerima) dan Halo TempatBelajarArduino :) (Isi pesan text).
Atau bila ente ingin mengirimkan pesan text Halo TempatBelajarArduino :) ke nomor tujuan yang nomor telponnya sudah terdaftar pada phonebook simcard ente, maka ubah menjadi seperti ini.
if (sms.SendSMS("3", "Halo TempatBelajarArduino :)"))
Angka 3 pada sketch diatas itu dimisalkan adalah posisi dari nomor tujuan yang tersimpan pada phonebook simcard, jadi ente bisa mengubah angka itu sesuai nomor urut dari penerima pada phonebook simcard ente. Misalkan ada 5 kontak pada phonebook ente dengan nomor urut.
- Andi (089666285492)
- Jefri (081298112709)
- Agung (085672919221)
- Ridwan (082212244213)
- Chandra (089644556732)
Jika sketch diatas kita jadikan angka 3, maka arduino mengirimkan SMS ke nomor telpon Agung.
*Menerima SMS dengan Arduino
Setelah berhasil mengirimkan SMS dengan Arduino, sekarang kita akan mencoba menerima SMS dan menampilkan Inbox simcard kita diserial monitor Arduino IDE. Pada serial monitor, nantinya kita dapat melihat info dari nomor telpon pengirim dan juga isi pesan text yang dikirimkan.
Dengan baris sketch seperti ini, kita akan membaca sms terakhir yang diterima pada simcard.
if(gsm.readSMS(isiPesanSMS, 160, nomorTelpon, 20)) {
Untuk membaca inbox simcard lebih spesifik, ente bisa menggunakan sketch dibawah ini.
if(gsm.GetSMS(2, nomorTelpon, isiPesanSMS, 160)) {
Angka 2 pada baris diatas ini adalah posisi pesan yang ingin dibaca dari simcard, misalkan di dalam inbox simcard ente ada 4 pesan. Analoginya seperti contoh dibawah ini :
- Dari Andi : Dimana ente? ane didepan rumah ente!
- Dari Jefri : Gan, apa kabar?
- Dari Agung : Bro, hari ini kampus libur ya?
- Dari Ridwan : Bray, jadi gak kita nonton film The Conjuring 2?
Maka yang dibaca dan ditampilkan di serial monitor adalah pesan pada posisi 2 tersebut.
Yaitu nomor telpon Jefri (081298112709) dan isi pesan text "Gan, apa kabar?"
*Melakukan Panggilan Telepon
Setelah kita mencoba Kirim dan Terima SMS dengan Arduino, sekarang kita akan melakukan hal yang sedikit lebih keren. Mengapa terlihat lebih keren? Karena disini kita akan melakukan panggilan telepon ke nomor tujuan yang sudah ditentukan pada sketch di Arduino.
Coba mari kita perhatikan bersama sketch sederhana dibagian loop ini.
void loop()
{
arduino.Call("+6289666xxxxxx");
delay(30000);
arduino.HangUp();
while(1);
}
Baris ini adalah baris yang akan mengeksekusi untuk melakukan panggilan ke nomor tujuan.
arduino.Call("+6289666xxxxxx");
Lalu delay selama 30 detik ini adalah lamanya arduino melakukan panggilan ke nomor tujuan.
delay(30000);
Setelah 30 detik berakhir, maka kita sudahi panggilan telpon yang kita lakukan dengan baris ini.
arduino.HangUp();
Dan kita tambahkan baris sketch dibawah ini, jika ingin mengeksekusi panggilan hanya 1 kali.
while(1);
Maka arduino akan menelpon setiap di reset saja dan tidak dilakukan berulang-ulang.
*Menerima Panggilan Telpon, Lalu mengirimkan SMS
Setelah berhasil melakukan panggilan telpon dengan Arduino, kita lanjut dengan menerima panggilan telpon dengan Arduino. Disini kita coba menggabungkan menerima panggilan Telpon dari nomor random dan akan menegirimkan SMS balik kepada nomor random tersebut.
Kita perhatikan pada baris sketch untuk menerima panggilan telpon dibawah ini.
stat=call.CallStatusWithAuth(number,0,0);
if(stat==CALL_INCOM_VOICE_AUTH)
Pada sketch diatas kita isikan value setelah number dengan 0,0 maka kita
akan menerima panggilan dari nomor siapapun yang mengetahui nomor
telpon kita, tidak hanya dengan nomor telpon spesifik yang ada di
phonebook simcard kita. Tetapi kita juga bisa mengubah pada bagian itu agar dapat menerima panggilan telpon hanya dari nomor telpon yang berada di memori phonebook simcard saja dengan mengubah sketch menjadi seperti dibawah ini.
stat=call.CallStatusWithAuth(number,1,3);
if(stat==CALL_INCOM_VOICE_AUTH)
Nah angka 1 dan 3 diatas adalah pemilihan proses scanning pada phonebook simcard kita, bila menggunakan sketch diatas maka yang diberi akses untuk menelpon kita tadi hanyalah nomor tujuan yang ada di phonebook list 1 sampai dengan 3 pada simcard yang ada di GSM Shield.
Misalkan isi phonebook pada simcard kita ada 4 buah, dengan list seperti berikut ini.
- Andi (089666285492)
- Jefri (081298112709)
- Agung (085672919221)
- Ridwan (082212244213)
Maka yang diberi akses untuk menelpon hanyalah Andri, Jefri dan Agung. Selain itu tidak!
*Menerima SMS, Lalu melakukan panggilan Telepon
Jika tadi kita menerima panggilan telpon terlebih dahulu, setelah itu baru mengirimkan SMS. Sekarang kita akan melakukan kebalikannya, yaitu Arduino akan menerima SMS lalu jika isi pesan SMS nya sesuai dengan sketch maka akan melakukan panggilan telpon ke nomor tujuan.
if(!strcmp(smsbuffer,"telpon ane")){
Jika Simcard yang dipasangkan pada GSM shield menerima SMS berisikan text "telpon ane" maka program akan memanggil fungsi telponTujuan() untuk di eksekusi melakukan panggilan telpon.
Lalu function delsms() adalah fungsi yang akan menghapus semua sms yang ada di simcard.
Terimakasih telah berkunjung, selamat mencoba, semoga bermanfaat.