Mengirim SMS dengan Arduino Untuk Anti Maling
Sms Arduino, berapa banyak yang chat saya tentang cara mengirim sms Arduino dengan SIM800 ini, mulai dari sim800 gak terhubung, gak bisa program, dan lain lain, padahal sudah jelas penjelasannya di artikel saya sebelum nya, tentang bagai mana cara menguji sim800 sebelum di gunakan, sebelum diprogram dengan arduino atau pun dengan mikrokontroller jenis lain nya.
Oke, kemarin sempat di whatsapp oleh salah seorang sms arduino dengan SIM800, alih alih ternyata orang medan dan satu almamater kampus. Katanya untuk Tugas akhir. Saya pun siap bantu, padahal asli nya gak pernah program sim800 dengan arduino, karena biasanya dengan codevision atmega32/16. Tapi karena pernah ngerjakan project atmega dengan SIM800L, saya jadi yakin.
Project arduino sms arduino dengan sim800 yang di kasih ini ini sebenar nya sangat sederhana, kasih limit switch di pintu. kalo gak salah kemarin ada tiga pintu, begitu pintu pertama di masukin maling, sim800 nya sms, begitu seterus nya sampe pintu ke tiga terbuka.
Logika nya, pintu terbuka berurut, dari pintu satu, kemudia pintu dua, kemudian pintu tiga. Jadi saya program sesuai dengan keadaan aktual yang dia kasih. program ini akan menjadi tidak bekerja jika pintu ketiga dulu di buka, atau di buka secara acak. Kalo mau dibuat bekerja walaupun pintu mana saja yang di buka duluan, tinggal kita rubah lagi program nya
Listing Program Arduino Project SMS arduino Sim800L
penasaran denga list programnya.. nah berikut listing program nya, tanpa menggunakan library sim800. Perhatikan dengan jelas, sensor limit di hubungkan ke pin 5, 7 dan 8, saya menggunakan arduino nano dalam project Arduino dengan SIM800L ini
int level1 = 5; int level2 = 7; int level3 = 8; int sensorPintu1; int sensorPintu2; int sensorPintu3; int hold_key = 0; void kirimSMS(); void kirimSMS2(); void kirimSMS3(); void read_sensor(); void smsPintu1(); void smsPintu2(); void smsPintu3(); void setup() { // put your setup code here, to run once: pinMode(level1,INPUT); pinMode(level2,INPUT); pinMode(level3,INPUT); Serial.begin(115200); delay(2000); delay(2000); delay(2000); } void loop() { // put your main code here, to run repeatedly: read_sensor(); delay(1000); } void read_sensor(){ sensorPintu1 = digitalRead(level1); sensorPintu2 = digitalRead(level2); sensorPintu3 = digitalRead(level3); if ( sensorPintu1 == 0 && sensorPintu2 == 0 && sensorPintu3 == 0 ){ hold_key = 0; Serial.println("SYSTEM AMAN, SENSOR MEMBACA"); } else if ( sensorPintu1 == 1 && sensorPintu2 == 0 && sensorPintu3 == 0 ){ if ( hold_key == 0){ //isi pesan sms disini kirimSMS(); smsPintu1(); kirimSMS2(); smsPintu1(); kirimSMS3(); smsPintu1(); hold_key = 1; } } else if ( sensorPintu1 == 1 && sensorPintu2 == 1 && sensorPintu3 == 0 ){ if ( hold_key == 1){ //isi pesan sms disini kirimSMS(); smsPintu2(); kirimSMS2(); smsPintu2(); kirimSMS3(); smsPintu2(); hold_key = 2; } } else if ( sensorPintu1 == 1 && sensorPintu2 == 1 && sensorPintu3 == 1 ){ if ( hold_key == 2){ //isi pesan sms disini kirimSMS(); smsPintu3(); kirimSMS2(); smsPintu3(); kirimSMS3(); smsPintu3(); hold_key = 3; } } } void kirimSMS(){ delay(1000); Serial.print("AT\r\n"); delay(2000); Serial.print("AT+CMGF=1\r\n"); delay(2000); Serial.print("AT+CMGS=\"+6282168073459\"\r\n"); delay(2000); } void kirimSMS2(){ delay(1000); Serial.print("AT\r\n"); delay(2000); Serial.print("AT+CMGF=1\r\n"); delay(2000); Serial.print("AT+CMGS=\"+6285270466336\"\r\n"); delay(2000); } void kirimSMS3(){ delay(1000); Serial.print("AT\r\n"); delay(2000); Serial.print("AT+CMGF=1\r\n"); delay(2000); Serial.print("AT+CMGS=\"+6282256819064\"\r\n"); delay(2000); } void smsPintu1(){ Serial.print("WARNING !!!\r\n"); Serial.print("PINTU 1\r\n"); Serial.print("LIHAT KERUANGAN 1\r\n"); delay(1500); Serial.print(char(26)); } void smsPintu2(){ Serial.print("WARNING !!!\r\n"); Serial.print("PINTU 2\r\n"); Serial.print("LIHAT KERUANGAN 2\r\n"); delay(1500); Serial.print(char(26)); } void smsPintu3(){ Serial.print("WARNING !!!\r\n"); Serial.print("PINTU 3\r\n"); Serial.print("LIHAT KERUANGAN 3\r\n"); delay(1500); Serial.print(char(26)); }
Jika program di atas error, bisa unduh di sini,
https://pastebin.com/nxDnFSRU
Ketika kita lihat program diatas, ada variable hold_key, untuk apa variable ini? heheh ini di gunakan agar SIM800 hanya SMS sekali saja ketika sensor limit switch terhubung. Bukan di sms terus menerus sehingga menghabis kan pulsa di kartu operator yang ada di sim800 .
Semoga tulisan ini bermanfaat yah. Mana tahu bisa membantu teman teman, silahkan di kembangkan programnya untuk project yang lebih komplek, seperti penyiraman dengan sms, checking sensor dan notifikasi jenis yang lain nya.
Eh tapi ada baik nya sebelum melihat tulisan tentang sms Arduino dengan SIM800 di atas, dengan listing program nya, ada baiknya check dan pelajari dulu tulisan saya sebelum nya, check di sini. Karena program diatas tidak akan berjalan sebelum modul SIM800 di uji apakah sudah respon atau tidak.
Kemarin sempat ada yang whatsapp saya