Reading Requirement:

Pada project ini akan dibahas tentang Home Scurity Sytem pada bagian pintu rumah, yang dimana sensor akan memberikan sinyal ketika pintu dalam kondisi terbuka atau tertutup.


Contoh gambar aplikasi.


Gambar di atas adalah contoh pemasangan sensor pada pintu, dimana  Sensor Magnet  terbagi menjadi 2 bagian , bagian fix terpasang di atas pintu dan bagian yang dapat dipindah atau dalam kata lain berpindah ketika buka tutup pintu atau Move, jadi ketika pintu dibuka, sensor akan terbagi 2 menandakan bahwa pintu sedang terbuka, dan sebaliknya ketika pintu tertutup sensor akan saling menempel menandakan pintu sedang tertutup, dan mengirimkan sinyal ke cloud Geeknesia menampilkan kondisi pintu sebenarnya.


Untuk membuat aplikasi ini  sangatlah mudah.

Siapkan alat dan bahan yang dibutuhkan:

  • Esp8266-12
  • Sensor Magnet
  • Led
  • Resistor 220 Ohm
  • Kabel Jumper
  • Proto Board
 


Esp8266-12


Sensor Magnet


Led


Resistor 220 Ohm


Kabel Jumper


Proto Board



Software dan Library yang diperlukan:
  • Arduino IDE 
  • PubsubClient-Master
Klik di sini untuk download software dan library yang diperlukan.

Adapun tahap pembuatan aplikasi sebagai berikut:


Tahap 1

Pastikan anda sudah membuat Project,Gateway dan Device pada akun Geeknesia anda.


Tahap 2

Rangkaikan FTDI ke ESP8266-12 untuk mengupload program dan supply power ke ESP8266, lihat tabel wiring di bawah ini:

FTDI ESP8266-12
Vcc 3.3 Vcc 3.3
Vcc 3.3 CH_PD
Gnd Gnd
Gnd  GPIO 0 (Jika mode program)
Gnd GPIO 15
Rx Tx
Tx Rx
Atau ikuti link wiring FTDI to ESP untuk melihat pin ESP8266-12.


Tahap 3

Buatlah code pada Arduino IDE yang telah didownload sebelumnya, untuk setting dan konfigurasi software klik di sini.


Sample Code 

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

const char *ssid =  "SSID";   // Your SSID
const char *pass =  "PASSWORD";   // Your Password
int buttonState=0;
String flag;

// device details
char *deviceId = "device-9d5e9f151bb2ba337e666415cd3xxxxx";
char *deviceUsername = "190765ba3a8ff26876357819a67xxxxx";
char *devicePassword = "f72d8717b811c3b5aa40b6512e0xxxxx";
String deviceCredential = String(deviceUsername) + ":" + String(devicePassword);

IPAddress server(207, 46, 228, 57); // ip geeknesia
WiFiClient wclient;
PubSubClient client(wclient, server);

void senddata(char* topic,String credential, char *var1, String nilai1 ){
  String pubString  = "{\"code\":\"";
  pubString += credential;
  pubString +="\",";
  pubString +="\"attributes\":{\"";
  pubString +=String(var1)+"\":\""+nilai1+"\"";
  pubString +="}}";
  char message_buff[pubString.length()+1];
  pubString.toCharArray(message_buff, pubString.length()+1);
  client.publish("iot/data",pubString);    
}

void setup() {
  Serial.begin(115200);
  pinMode(2, OUTPUT);     // Initialize the BUILTIN_LED pin as an output
  pinMode(12, INPUT_PULLUP);
}

// the loop function runs over and over again forever
void loop() {
    if (WiFi.status() != WL_CONNECTED) {
    WiFi.begin(ssid, pass);

    if (WiFi.waitForConnectResult() != WL_CONNECTED)
      return;
    Serial.println("WiFi connected");
  }

  if (WiFi.status() == WL_CONNECTED) {
    if (!client.connected()) {
      if (client.connect(deviceId, "iot/will",0,0,deviceId)) {
      }
    }

    if (client.connected())
      client.loop();
  }

  buttonState = digitalRead(12);
  if (buttonState == 1) {
    digitalWrite(2, LOW);
    flag="The Door is Open";
  }
  else {
    // turn LED off:
    digitalWrite(2,HIGH);
    flag="The Door is Close";
  }
  senddata(deviceId,deviceCredential,"Door", flag);
  delay(5000);
}

Jika code atau program sudah dibuat, kemudian upload program ke ESP8266, (Wiring Mode Program).


Tahap 4

Untuk memastikan code atau program berjalan dengan normal, rangkailah Sensor Magnet dan Led yang telah disiapkan seperti gambar di bawah ini:



Tahap 5

Kemudian buka kembali project Geeknesia anda, tes dengan menempelkan Sensor Magnet Fix dan Move seperti gambar di bawah ini.



Lihat status sensor pada IoT Management jika berhasil maka tampilan akan seperti gambar di bawah ini, "The Door is Close" menandakan bahwa pintu sedang tertutup.


Kemudian pindahkan Sensor Magnet Move , seperti gambar di bawah ini:

Terlihat pada gambar di atas led yang terpasang nyala menandakan bahwa pintu telah terbuka.Dan pada IoT Management terlihat status pintu "The Door is Open",  jika ingin mengubah kalimat status , anda bisa  merubah pada bagian program atau code yang telah dibuat pada Arduino IDE.