Reading Requirement:

Pada project kali ini kita akan membuat aplikasi untuk mendeteksi kebocoran gas di sekitar sensor menggunakan Geeknesia sebagai interface atau sistem peringatan kebocoran gas.


Alat dan bahan yang dibutuhkan adalah sebagai berikut :

  • Akun + Project Geeknesia
  • Arduino Board + Ethernet Shield 
  • Sensor Gas
  • Kabel Jumper
  • Kabel LAN
  • Protoboard
  • Internet

Sensor Gas

Arduiono UNO

Ethernet Shield


Kabel LAN


Tahap 1

Pastikan anda sudah memiliki akun Geeknesia.com kemudian buatlah Project,Gateway dan Device untuk project Gas Detector.


Tahap 2

Rangkailah alat dan bahan yang sudah dipersiapkan seperti tabel di bawah :


Tabel Wiring MQ-5 (Sensor Gas) ke Arduino

MQ-5 (Sensor Gas) Arduino UNO
Vcc Vcc 5v
Gnd Gnd
Out A0

Tahap 3

Buatlah script pada software Arduino, ikuti script di bawah:


Script  

#include <SPI.h>
#include <Ethernet.h>
#include <PubSubClient.h>

// Update these with values suitable for your network.
byte mac[]    = {  0xDE, 0xED, 0xBA, 0xFE, 0xFE, 0xDE };
byte ip[]     = { 192, 168, 2, 27 }; //Your IP
byte dns2[]   = { 8,8,8,8};
byte gateway[] = { 192, 168, 2, 1 }; //Your IP Gateway
char pubschar1 [20];
const int gasPin=A0; //Pin Sensor
int flag;
char message_buff[200];

EthernetClient ethClient;
PubSubClient client("geeknesia.com", 1883, callback, ethClient);
void callback(char* topic, byte* payload, unsigned int length) {
}

// device details
char *deviceId = "device-4407e1d312d262e32f03e1e6691xxxxx"; //Device ID from Geeknesia
char *deviceUsername = "e37fe287911430fe7312be64e12xxxxx"; //Username from Geeknesia
char *devicePassword = "b75572b99c386b9a937bd737863xxxxx"; //Password from Geeknesia
String deviceCredential = String(deviceUsername) + ":" + String(devicePassword);


//Send Data Function
void senddata(char* topic,String credential, char *var1, const int 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",message_buff);    
}


void setup()
{
  Ethernet.begin(mac, ip,dns2,gateway); //Setup Connection
  Serial.begin(9600);
}

void loop()
{
  client.publish("iot/live",deviceId);
  if (!client.connected()){
     client.connect(deviceId,NULL,NULL,"iot/will",2,64,deviceId);
  } 

  flag=analogRead(gasPin);
  Serial.println(analogRead(flag));
  senddata(deviceId,deviceCredential,"gas", flag);
  delay(500);
} 

   

Tahap 4

Buka project yang telah dibuat pada Geeknesia.com, kemudian lihat pada indikator GAS DETECTOR jika indikator berwarna hijau artinya device (Arduino) telah terhubung dengan cloud Geeknesia, jika indikator berwarna merah artinya device tidak terhubung, maka periksa kembali koneksi anda dan pastikan kabel LAN sudah terpasang ke Internet Gateway.




Tahap 5

Lakukan tes sensor yang telah terhubung dengan Analog Input Arduino, dengan cara :

  • Siapkan korek gas.
  • Kemudian tekan bagian pengeluaran gas (Jangan nyalakan api).
Lihat pada Geeknesia apakah nilainya berubah atau tidak? jika berubah maka kualitas sensor masih bagus dan script berjalan dengan baik, jika setelah di coba ternyata tidak ada perubahan cek sensor dan kabel pada sensor.


Gambar Percobaan.


Nilai sebelum ada gas


Nilai setelah ada gas



Catatan: Sensor gas yang dapat digunakan pada project ini diantaranya adalah MQ-2, MQ-3, MQ-4, MQ-5, MQ-6, MQ-7 .