MODUL IOT (Internet Of Things) untuk SMART HOME APPLIANCE
IOT (Internet of Things) adalah suatu konsep untuk menghubungkan perangkat satu dengan yang lainnya dengan bantuan internet. Nah kali ini saya akan mencoba sharing salah satu project IoT sederhana. Project kali ini yaitu membuat Modul (Prototype) IOT untuk Smart Home Appliance (Perangkat Rumah Pintar). Nantinya modul iot ini akan dapat memonitoring dan mengkontrol berbagai macam alat/sensor seperti berikut:
1. Kontrol Relay - Dapat dimanfaatkan untuk menyalakan lampu, doorlock, motor DC, dan lain sebagainya.
2. Kontrol Servo - Dapat dimanfaatkan untuk menggerakan alat tertentu.
3. Monitoring Suhu dan Kelembaban
4. Monitoring pergerakan
Modul IoT kali ini terdiri dari berbagai macam part seperti berikut:
1. Wemos D1 - Merupakan module development board yang berbasis WiFi dari keluarga ESP8266 yang dimana dapat diprogram menggunakan software IDE Arduino seperti halnya dengan NodeMCU.
2. Modul Relay - Digunakan sebagai kontaktor untuk menyalakan lampu AC dan Solenoid Doorlock 12V.
3. Servo SG90
4. Sensor PIR - Untuk mendeteksi adanya pergerakan.
5. Sensor DHT11 - Untuk mendeteksi Temperature dan Kelembaban.
6. Solenoid Doorlock 12V - Digunakan untuk pengunci pintu atau jendela atau yang lain semacamnya.
7. Project Board
Setelah itu rangkai wemos beserta komponen lainnya seperti skematik dibawah ini
1. Rangkaian Sensor PIR
2. Rangkaian Servo SG90
3. Rangkaian DHT11
4. Rangkaian Solenoid Doorlock
5. Rangkaian Lampu AC
Setelah semua komponen terangkai dengan benar, sekarang kita masuk ke software arduino untuk memprogram WEMOS nya. Jika baru pertama kali menggunakan WEMOS, silahkan install/setting WEMOS pada arduino terlebih dahulu.
Setelah WEMOS terinstall, masukkan library DHT_Sensor, Adafruit_Sensor, dan BLYNK program dibawah ini:
#define BLYNK_PRINT Serial
#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266_SSL.h>
#include <DHT.h>
#include <Servo.h>
#define DHTPIN D2
#define DHTTYPE DHT11
char auth[] = "..................."; //Auth dari BLYNK di email anda
char ssid[] = "...................."; //Nama wifi
char pass[] = "..................."; //Password wifi
#define pirPin D5
int pirValue;
int pinValue;
DHT dht(DHTPIN, DHTTYPE);
BlynkTimer timer;
Servo servo;
BLYNK_WRITE(V0)
{
pinValue = param.asInt();
}
BLYNK_WRITE(V3)
{
servo.write(param.asInt());
}
void sendSensor()
{
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
Serial.println("Failed to read from DHT sensor!");
return;
}
Blynk.virtualWrite(V5, h);
Blynk.virtualWrite(V6, t);
}
void setup()
{
Serial.begin(9600);
//delay(10);
Blynk.begin(auth, ssid, pass);
pinMode(pirPin, INPUT);
dht.begin();
timer.setInterval(100L, sendSensor);
servo.attach(D10);
}
void loop()
{
Blynk.run();
Timer.run();
getPirValue();
}
void getPirValue(void)
{
pirValue = digitalRead(pirPin);
if (pinValue == HIGH)
{if (pirValue==HIGH)
{
Serial.println("Motion detected");
Blynk.notify("Motion detected");
Blynk.virtualWrite(V1, 1);
}
if (pirValue==LOW)
{
Serial.println("Motion undetected");
Blynk.virtualWrite(V1, 0);
}}
else{
if (pirValue==HIGH)
{
Serial.println("Motion detected");
Blynk.virtualWrite(V1, 1);
}
if (pirValue==LOW)
{
Serial.println("Motion undetected");
Blynk.virtualWrite(V1, 0);
}
}
}
Oke setelah sukses upload program, langkah selanjutnya yaitu install aplikasi BLYNK di Smartphone. BLYNK dapat di download gratis di google play.
Setelah aplikasi terinstal buka BLYNK untuk membuat aplikasi seperti berikut:
Setelah semua telah disetting maka aplikasi BLYNK telah siap untuk digunakan. Jangan lupa, aplikasi harus terhubung dengan internet.
Ketika Aplikasi BLYNK sudah terkoneksi dengan perangkat, maka
- Ketika Button Lampu ditekan -> Relay aktif dan lampu akan menyala
- Ketika Button Doorlock ditekan -> Relay aktif dan doorlock akan aktif
- Button PIR akan aktif / ON ketika PIR mendeteksi pergerakan
- Ketika Button Alert PIR diaktifkan / ditekan -> Akan ada notifikasi saat PIR mendeteksi pergerakan
- Ketika slider digeser -> Servo akan berputar sesuai nilai slider tersebut
- LCD akan menampilkan hasil dari pembacaan Sensor DHT11 yaitu Humidity dan Temperature
.
.