Senin, 09 Oktober 2023

Menyiapkan Sistim peringatan dini

Bulan ini Shanti mencoba memperbaiki program pada Arduino nano dan SIM800L. Arduino Nano menjadi pusat pengaturan semua peralatan lainnya, sementara SIM800L adalah modul GSM yang menghubungkan arduino dengan jaringan GSM. Dengan kedua peralatan ini, Shanti dapat mengatur perubahan-perubahan dengan melalui SMS, sehingga dapat dilakukan dari jarak jauh. Arduino nano juga dapat mengirimkan pesan-pesan SMS peringatan dini melalui modul SIM800L tersebut.

Tidak mudah untuk menyiapkan/mengatur arduino nano supaya dapat melakukan tugas yang diinginkan. Shanti membutuhkan banyak waktu dan percobaan – percobaan untuk memastikan peralatan berfungsi seperti yang diharapkan.

Shanti sudah memastikan bahwa SIM800L dapat digunakan dengan simcard telkomsel dan XL. Shanti juga sudah berhasil membuat kedua peralatan tersebut bereaksi dengan baik ketika perintah dikirimkan melalui SMS.

Melalui coding tersebut, Shanti dapat merubah nomor telpon yang tersimpan di arduino nano. Daftar nomor-nomor telpon ini penerima pesan SMS peringatan dini. Seperti kita ketahui, kemungkinan besar daftar nomor-nomor telpon ini akan berubah seiring dengan waktu, misalnya, pak kades mengganti nomor telpon, atau terjadi penggantian kades yang menggunakan nomor telpon berbeda, dll.

Akan sangat menyulitkan bila Shanti harus datang ke lokasi dan mengganti daftar nomor telpon tersebut. Akan sangat membantu bila proses penggantian ini dapat dilakukan dari jarak jauh melalui SMS saja.

Hingga laporan ini ditulis, Shanti berhasil menyiapkan rangkaian arduino – Simcard – sensor jarak untuk dipakai sebagai alat peringatan dini yang murah. Walaupun begitu, masih ada proses yang masih belum selesai:

  • Menggabungkan semua coding yang masih terpisah-pisah menjadi satu program.
  • Melakukan tes hingga Shanti yakin semua proses sudah bekerja dengan baik.
  • Menyiapkan solar panel dan baterai yang sesuai untuk menyediakan listrik bagi seluruh peralatan.
  • Menyatukan seluruh rangkaian peralatan menjadi ringkas, tahan terhadap situasi dilapangan, dan akhirnya siap pakai.

Shanti masih membutuhkan waktu untuk menyelesaikan semuanya hingga peralatan siap pakai.

 

Dibawah ini adalah contoh program arduino yang dibuat untuk mengubah daftar nomor telpon melalui perintah SMS.

 

       

#include 

//Create software serial object to communicate with SIM800L
SoftwareSerial mySerial(3, 4); //SIM800L Tx & Rx is connected to Arduino #3 & #2

String message;
String CellNumtemp;
String CellNum;
String f1001;
String f1002;
String f1003;


void setup()
{
  //Begin serial communication with Arduino and Arduino IDE (Serial Monitor)
  Serial.begin(9600);
  
  //Begin serial communication with Arduino and SIM800L
  mySerial.begin(9600);

  Serial.println("Initializing..."); 
  delay(1000);

  mySerial.println("AT"); //Once the handshake test is successful, it will back to OK
  updateSerial();
  
  mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
  mySerial.println("AT+CNMI=1,2,0,0,0");
  f1001 = "+3456789012345";
f1002 = "+2345678901234";
f1003 = "+1234567890123";

}

void loop()
{
  // mySerial.println("AT+CMGDA=\""); 
  // mySerial.println("DEL ALL\"");
  updateSerial();




updateSerial();

message =mySerial.readString();

   Serial.println (message);

   
   CellNumtemp = message.substring(message.indexOf("+62"));
   CellNum = CellNumtemp.substring(0,14);

   Serial.println("nomor pengirim:");
   Serial.println(CellNum);


    if (message.indexOf("NEW f1001:") > -1) {
        int idx = message.indexOf("f1001:");

        f1001 = message.substring(idx+6, idx+6+f1001.length());
        Serial.println (f1001);
          
          mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
          delay(1000);
          mySerial.print("AT+CMGS=\"" + CellNum + "\"\r");
          delay(1000);
          mySerial.print("New f1001:"); //text content
          mySerial.print(f1001); //text content
          delay(1000);
          mySerial.println((char)26);
          delay(1000);
}
    if (message.indexOf("NEW f1002:") > -1) {
        int idx = message.indexOf("f1002:");

        f1002 = message.substring(idx+6, idx+6+f1002.length());
        Serial.println (f1002);
          
          mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
          delay(1000);
          mySerial.print("AT+CMGS=\"" + CellNum + "\"\r");
          delay(1000);
          mySerial.print("New f1002:"); //text content
          mySerial.print(f1002); //text content
          delay(1000);
          mySerial.println((char)26);
          delay(1000);
}
    if (message.indexOf("NEW f1003:") > -1) {
        int idx = message.indexOf("f1003:");

        f1003 = message.substring(idx+6, idx+6+f1003.length());
        Serial.println (f1003);
          
          mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
          delay(1000);
          mySerial.print("AT+CMGS=\"" + CellNum + "\"\r");
          delay(1000);
          mySerial.print("New f1003:"); //text content
          mySerial.print(f1003); //text content
          delay(1000);
          mySerial.println((char)26);
          delay(1000);      

}
if (message.indexOf("REPORT") > -1) {
        
          mySerial.println("AT+CMGF=1"); // Configuring TEXT mode
          delay(1000);
          mySerial.print("AT+CMGS=\"" + CellNum + "\"\r");
          delay(1000);
          mySerial.print("f1001:"); //text content
          mySerial.print(f1001); //text content
          mySerial.print("\nf1002:"); //text content
          mySerial.print(f1002); //text content
          mySerial.print("\nf1003:"); //text content
          mySerial.print(f1003); //text content
                 
          delay(1000);
          mySerial.println((char)26);
          delay(1000);       

}

}
void updateSerial()
{
  delay(500);
  while (Serial.available()) 
  {
    mySerial.write(Serial.read());//Forward what Serial received to Software Serial Port
  }
  while(mySerial.available()) 
  {
    Serial.write(mySerial.read());//Forward what Software Serial received to Serial Port
  }



}

Tidak ada komentar:

Posting Komentar