Sistem Keamanan Berbasis SMS SIM800L Arduino dan PIR HC-SR501

Rangkaian Anti Maling Arduino – Assalamu’alaikum Teman Teman cronyos.com, mungkin minggu ini tema belajar kita tentang penggunaan modul GSM SIM800l dulu ya?:) mumpung lagi semangat semangatnya buat alat berbasis koneksi jarak jauh 🙂 baiklah, pada rangkaian yang akan kita buat nanti kita akan membuat alat yang dapat mendeteksi gerakan makhluk hidup yang dalam kasus ini adalah manusia lalu mengirimkan SMS kepada nomor tujuan (nomor kita) sebagai notifikasi / pemberitahuan kalau ada gerakan mencurigakan yang terdeteksi oleh sensor PIR 🙂

Nah, untuk membuat rangkaian itu kita memerlukan beberapa komponen antara lain :

  1. Arduino Uno
  2. Sensor PIR HC-SR501
  3. BreadBoard
  4. Elco 470uF/16v
  5. Kabel Jumper Male -Male
  6. Modul GSM / GPRS SIM800L

Setelah komponen komponen diatas sudah didapatkan sekarang saatnya kita buat wiring / jalur pemasangan komponennya. pasang komponennya seperti wiring berikut ini :

Setelah Wiringnya jadi sekarang lanjut ke pemahaman cara kerjanya. cara kerja dari rangkaian ini sebenarnya sederhana sekali. ketika ada makluk hidup bergerak di depan sensor pir maka pin digital output sensor Pir hc-sr501 akan berstatus High, dan didalam koding arduino ada algoritma jika pin 4 arduino (dari sensor pir) berstatus high maka menyuruh modul GSM untuk mengirimkan sms dengan karakter tertentu (Misalkan “Ada gerakan terdeteksi”) ke nomor tujuan / nomor kita. untuk lebih jelasnya berikut adalah sketch / coding arduinonya :

/*
Nama Project : Notifikasi Anti Maling berbasis SMS menggunakan SIM800L Arduino dan Sensor PIR HC-SR501
Author / Creator : Giri Wahyu Pambudi
Update Terahkir : 17 September 2017
*/

#include <GSM.h>
#define PINNUMBER "" // pin Kartu GSM (Jika Ada)

GSM gsmAccess;
GSM_SMS sms;

void setup() {
 
  Serial.begin(9600);
  Serial.println("SMS Messages Sender");
  pinMode(4,INPUT); // mendeklarasikan pin digital 4 arduino sebagai inputan
  boolean notConnected = true;
  
 
  while (notConnected) {
    if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
      notConnected = false;
    } else {
      Serial.println("Gagal Mengakses Kartu GSM");
      delay(1000);
    }
  }

  Serial.println("Berhasil Mengakses Kartu GSM");
}

boolean Gerakan = true;

void loop() {
 if (digitalRead(4) == HIGH && Gerakan == true) // jika ada gerakan
 {
    Serial.println("Ada Gerakan !!!!!"); // print serial ada gerakan
    sms.beginSMS("085728775753"); // nomor tujuan
    sms.print("Ada Gerakan !!!"); // isi pesan
    sms.endSMS(); // mengakhiri SMS
    Gerakan = false; // meniadakan persyaratan agar sms tidak dikirim berulang kali
  }
  else if (digitalRead(4) == LOW)
  {
    Gerakan = true; 
    }
}

Upload Kode diatas lalu buka serial monitor dan liat apa yang terjadi. Mungkin cukup sekian dulu tutorial kali ini, semoga bermanfaat, jika ada petanyaan silahkan sampaikan di kolom komentar. Terima Kasih

About Giri Wahyu Pambudi

Giri Wahyu Pambudi - Seorang Pemuda Desa yang berkeinginan ikut membangun Indonesia dengan Sedikit Ilmu yang dimiliki SMK N 2 Wonogiri lulus 2015 UNIV Negeri Yogyakarta lulus 2019 2019 - Sekarang Bekerja di SMK Gajah Mungkur 1 Wuryantoro, Wonogiri

Check Also

Cara Menggunakan / Mengakses Keypad menggunakan Arduino

Assalamu’alaikum teman – teman, kali ini kita akan belajar Arduino lagi, kali ini kita akan …

31 comments

  1. ada gan, bagian ini :
    #include GSM.h
    tapi ini udah library bawaan arduino IDE

  2. Bisa gak membuat sensor listrik padam, jadi kalau listrik padam langsung beri informasi dan jika nyala kembali tetap beri informasi

  3. bisa pak, untuk jasa pembuatan alat bisa hubungi ini 085728775753

  4. mas untuk bisa mengirim ke 2 no HP programnya gmn?

    plz

  5. Giri Wahyu Pambudi
    /*
    Nama Project : Notifikasi Anti Maling berbasis SMS menggunakan SIM800L Arduino dan Sensor PIR HC-SR501
    Author / Creator : Giri Wahyu Pambudi
    Update Terahkir : 17 September 2017
    */
    
    #include 
    #define PINNUMBER "" // pin Kartu GSM (Jika Ada)
    
    GSM gsmAccess;
    GSM_SMS sms;
    
    void setup() {
     
      Serial.begin(9600);
      Serial.println("SMS Messages Sender");
      pinMode(4,INPUT); // mendeklarasikan pin digital 4 arduino sebagai inputan
      boolean notConnected = true;
      
     
      while (notConnected) {
        if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
          notConnected = false;
        } else {
          Serial.println("Gagal Mengakses Kartu GSM");
          delay(1000);
        }
      }
    
      Serial.println("Berhasil Mengakses Kartu GSM");
    }
    
    boolean Gerakan = true;
    
    void loop() {
     if (digitalRead(4) == HIGH && Gerakan == true) // jika ada gerakan
     {
        Serial.println("Ada Gerakan !!!!!"); // print serial ada gerakan
        sms.beginSMS("nomor1"); // nomor tujuan
        sms.print("Ada Gerakan !!!"); // isi pesan
        sms.endSMS(); // mengakhiri SMS
        sms.beginSMS("nomor2"); // nomor tujuan
        sms.print("Ada Gerakan !!!"); // isi pesan
        sms.endSMS(); // mengakhiri SMS
        Gerakan = false; // meniadakan persyaratan agar sms tidak dikirim berulang kali
      }
      else if (digitalRead(4) == LOW)
      {
        Gerakan = true; 
        }
    }
  6. gan kalo notifikasinya telepon gimana ya koding nya? ini saya udah berhasil yang sms , skrg pgn coba yg telepon , makasih 4

  7. Giri Wahyu Pambudi

    bisa edit kode ini gan

    /*
     Make Voice Call
    
     This sketch, for the Arduino GSM shield, puts a voice call to
     a remote phone number that you enter through the serial monitor.
     To make it work, open the serial monitor, and when you see the
     READY message, type a phone number. Make sure the serial monitor
     is set to send a just newline when you press return.
    
     Circuit:
     * GSM shield
     * Voice circuit.
     With no voice circuit the call will send nor receive any sound
    
    
     created Mar 2012
     by Javier Zorzano
    
     This example is in the public domain.
     */
    
    // libraries
    #include 
    
    // PIN Number
    #define PINNUMBER ""
    
    // initialize the library instance
    GSM gsmAccess; // include a 'true' parameter for debug enabled
    GSMVoiceCall vcs;
    
    String remoteNumber = "";  // the number you will call
    char charbuffer[20];
    
    void setup() {
    
      // initialize serial communications and wait for port to open:
      Serial.begin(9600);
      while (!Serial) {
        ; // wait for serial port to connect. Needed for native USB port only
      }
    
      Serial.println("Make Voice Call");
    
      // connection state
      boolean notConnected = true;
    
      // Start GSM shield
      // If your SIM has PIN, pass it as a parameter of begin() in quotes
      while (notConnected) {
        if (gsmAccess.begin(PINNUMBER) == GSM_READY) {
          notConnected = false;
        } else {
          Serial.println("Not connected");
          delay(1000);
        }
      }
    
      Serial.println("GSM initialized.");
      Serial.println("Enter phone number to call.");
    
    }
    
    void loop() {
    
      // add any incoming characters to the String:
      while (Serial.available() > 0) {
        char inChar = Serial.read();
        // if it's a newline, that means you should make the call:
        if (inChar == '\n') {
          // make sure the phone number is not too long:
          if (remoteNumber.length() < 20) {
            // let the user know you're calling:
            Serial.print("Calling to : ");
            Serial.println(remoteNumber);
            Serial.println();
    
            // Call the remote number
            remoteNumber.toCharArray(charbuffer, 20);
    
    
            // Check if the receiving end has picked up the call
            if (vcs.voiceCall(charbuffer)) {
              Serial.println("Call Established. Enter line to end");
              // Wait for some input from the line
              while (Serial.read() != '\n' && (vcs.getvoiceCallStatus() == TALKING));
              // And hang up
              vcs.hangCall();
            }
            Serial.println("Call Finished");
            remoteNumber = "";
            Serial.println("Enter phone number to call.");
          } else {
            Serial.println("That's too long for a phone number. I'm forgetting it");
            remoteNumber = "";
          }
        } else {
          // add the latest character to the message to send:
          if (inChar != '\r') {
            remoteNumber += inChar;
          }
        }
      }
    }
    
  8. mas ini kok gagal keterangannya gagal mengakses kartu GSM

  9. Giri Wahyu Pambudi

    cek wiringnya gan.

  10. mas boleh liat konfigurasi pinnya gak di fritzing

Tinggalkan Balasan