Smoke Detector adalah alat yang digunakan untuk mendeteksi adanya gumpalan asap.
Smoke Detector ini dapat dioperasikan dengan mudah pada berbagai ruang. Alat ini dibuat tanpa memerlukan wire/kabel ke panel kontrol, hanya dengan menggunakan jaringan wifi/hotspot, pemantauan asap dapat dilakukan dari jarak jauh. Pada saat mendeteksi kepulan asap, alat ini akan memberikan peringatan dini berupa alarm secara otomatis.
DIAGRAM
Perhatikan Diagram Blok dibawah ini:
Diagram Blok |
Arduino memegang kendali dihampir seluruh bagian diagram blok. Arduino menerima dan mengirim perintah berupa input sebagai pengendali Sensor MQ2 dan proses keluarannya ialah LED dan Buzzer. Smoke Sensor membaca besaran asap sisa kebakaran untuk datanya dikirimkan ke Modul Wifi ESP8266 dan ditampilkan di Web berupa level indikator keadaan ruangan setelah kebakaran.
MATERIALS
- Arduino Uno
- Modul Wifi - ESP8266
- Sensor Gas MQ-2
- LED merah & hijau
- Buzzer
- Resistor 220 ohm
SCHEMATIC
Berikut ini adalah gambar skematik:
Schematic |
CODE
Untuk memudahkan dalam pembuatan program, berikut ini akan dijelaskan dari masing masing code yang harus di pahami. Berikut ini merupakan tambahan code library yang digunakan:
Kemudian code Pin dari masing komponen:
Baud Rate yang digunakan untuk komunikasi serial adalah 9600. Kemudian mengatur fungsi pin Led dan Pin buzzer sebagai output. Karena Led dan buzzer digunakan untuk indikator sekaligus memeberikan peringatan. Kemudian yang terakhir adalah pin Sensor gas diatur sebagai pin Input, karena arduino akan menerima sinyal analog dari sensor gas:
Alamat IP yang digunakan modul wifi ESP-8266 tergantung dengan hotspot/jaringan yang digunakan. ESP dapat mengirim dan menerima data dengan perintah berikut:
#include
#define DEBUG true
SoftwareSerial wifi_module(2,3); //hubungkan pin TX ESP ke Pin 2 Arduino dan pin RX ESP ke pin 3 Arduino
Kemudian code Pin dari masing komponen:
int red_led_pin = 9;
int green_led_pin = 8;
int buzzer_pin = 10;
int smoke_sensor_pin = A0;
Baud Rate yang digunakan untuk komunikasi serial adalah 9600. Kemudian mengatur fungsi pin Led dan Pin buzzer sebagai output. Karena Led dan buzzer digunakan untuk indikator sekaligus memeberikan peringatan. Kemudian yang terakhir adalah pin Sensor gas diatur sebagai pin Input, karena arduino akan menerima sinyal analog dari sensor gas:
Serial.begin(9600);
wifi_module.begin(9600); // Atur baudrate sesuai dengan esp8266 Anda
pinMode(red_led_pin, OUTPUT);
pinMode(green_led_pin, OUTPUT);
pinMode(buzzer_pin, OUTPUT);
pinMode(smoke_sensor_pin, INPUT);
Alamat IP yang digunakan modul wifi ESP-8266 tergantung dengan hotspot/jaringan yang digunakan. ESP dapat mengirim dan menerima data dengan perintah berikut:
esp8266_command("AT+RST\r\n",2000,DEBUG); // reset modul
esp8266_command("AT+CWMODE=2\r\n",1000,DEBUG); // konfigurasi access point
esp8266_command("AT+CIFSR\r\n",1000,DEBUG); // mencari ip address
esp8266_command("AT+CIPMUX=1\r\n",1000,DEBUG); // konfigurasi multiple connections
esp8266_command("AT+CIPSERVER=1,80\r\n",1000,DEBUG); // menghidupkan server pada port 80
Berikut ini merupakan code untuk fungsi perulangan/loop, jika nilai output lebih besar dari 400, maka LED merah akan menyala dan buzzer akan mulai berbunyi bip. Jika nilai output kurang dari 400, maka LED hijau akan menyala dan buzzer mati.
Baca: Cara Mudah Mengakses Sensor Gas MQ2
int analogSensor = analogRead(smoke_sensor_pin);
if (analogSensor > 400)
{
digitalWrite(red_led_pin, HIGH);
digitalWrite(green_led_pin, LOW);
tone(buzzer_pin, 1000, 200);
}
Setelah memahami code diatas, berikut ini merupakan code yang digunakan untuk mencetak data di halaman web. Pertama, kita akan mencetak "IoT Smoke detection system" di atas. Kemudian pada baris kedua, kita akan mencetak nilai asap dan pada baris ketiga, kita akan mencetak "Semuanya Normal" atau "BERBAHAYA! Move Somewhere Else” tergantung kondisinya.
String webpage = "
IOT Smoke Detection System
";
webpage +="Smoke Value is ";
webpage += analogSensor;
webpage +="
";
if (analogSensor > 400)
{
webpage +="
DANGER! Move Somewhere Else
";
}
else
{
webpage +="
Everything Normal
";
}
Kode di bawah ini digunakan untuk mengirim perintah ke ESP dan akan mencetak output pada serial monitor.
String esp8266_command(String command, const int timeout, boolean debug)
{
String response = "";
wifi_module.print(command);
long int time = millis();
while( (time+timeout) > millis())
{
while(wifi_module.available())
{
char c = wifi_module.read();
response+=c;
}
}
Nah, dengan penjelasan code diatas, kamu bisa lebih mudah memahami source code dibawah ini dan kamu bisa bereksplorasi sendiri:
SOURCES CODE
#include
#define DEBUG true
SoftwareSerial wifi_module(2,3);
int red_led_pin = 9;
int green_led_pin = 8;
int buzzer_pin = 10;
int smoke_sensor_pin = A0;
void setup()
{
Serial.begin(9600);
wifi_module.begin(9600);
pinMode(red_led_pin, OUTPUT);
pinMode(green_led_pin, OUTPUT);
pinMode(buzzer_pin, OUTPUT);
pinMode(smoke_sensor_pin, INPUT);
esp8266_command("AT+RST\r\n",2000,DEBUG); // reset module
esp8266_command("AT+CWMODE=2\r\n",1000,DEBUG); // configure as access point
esp8266_command("AT+CIFSR\r\n",1000,DEBUG); // get ip address
esp8266_command("AT+CIPMUX=1\r\n",1000,DEBUG); // configure for multiple connections
esp8266_command("AT+CIPSERVER=1,80\r\n",1000,DEBUG); // turn on server on port 80
}
void loop()
{
int analogSensor = analogRead(smoke_sensor_pin);
if (analogSensor > 400)
{
digitalWrite(red_led_pin, HIGH);
digitalWrite(green_led_pin, LOW);
tone(buzzer_pin, 1000, 200);
}
else
{
digitalWrite(red_led_pin, LOW);
digitalWrite(green_led_pin, HIGH);
noTone(buzzer_pin);
}
if(wifi_module.available())
{
if(wifi_module.find("+IPD,"))
{
delay(1000);
int connectionId = wifi_module.read()-48;
String webpage = "
IOT Smoke Detection System
";
webpage +="Smoke Value is ";
webpage += analogSensor;
webpage +="
";
if (analogSensor > 400)
{
webpage +="
DANGER! Move Somewhere Else
";
}
else
{
webpage +="
Everything Normal
";
}
String cipSend = "AT+CIPSEND=";
cipSend += connectionId;
cipSend += ",";
cipSend +=webpage.length();
cipSend +="\r\n";
esp8266_command(cipSend,1000,DEBUG);
esp8266_command(webpage,1000,DEBUG);
String closeCommand = "AT+CIPCLOSE=";
closeCommand+=connectionId; // append connection id
closeCommand+="\r\n";
esp8266_command(closeCommand,3000,DEBUG);
}
}
}
String esp8266_command(String command, const int timeout, boolean debug)
{
String response = "";
wifi_module.print(command);
long int time = millis();
while( (time+timeout) > millis())
{
while(wifi_module.available())
{
char c = wifi_module.read();
response+=c;
}
}
if(debug)
{
Serial.print(response);
}
return response;
}
Pastikan Modul ESP8266 sudah aktif, kemudian buka web browser kamu dan tuliskan alamat ip ESP kamu:
Alamat yang digunakan pada praktik ini menggunakan alamat ip 192.168.43.188.
SELESAI...!
Semoga bermanfaat, Silahkan SHARE dan tinggalkan Komentar.
Artikel yang menarik....
ReplyDeleteterimakasih sudah mampir
ReplyDeleteArtikel yg menarik. Singkat jelas dan bisa dengan mudah di implementasikan
ReplyDeleteTerimakasih, sudah mampir. selalu ada artikel menarik yang disediakan sejelas mungkin. jika memang ada yang kurang jelas, mohon ditanyakan.
DeleteMau buat ini. Nanti kalau ada kesulitan mohon panduannya y min.
ReplyDeleteDengan, senang hati bisa membantu. silahkan tinggalkan komentar terbaiknya.
DeletePada halaman home juga tersedia button whatsapp yg bisa langsung bisa konsultasi dengan saya
DeleteTerimakasih min. Sukses terus
ReplyDeleteTerimakasih kembali...
Delete