LAPORAN PRAKTIKUM INTERNET OF THING MINGGU KE: 3 SISTEM MONITORING DAN ALARM SUHU DAN KELEMBAPAN KAMAR BAYI BERBASIS ESP32, SENSOR DHT22, DAN BLYNK IoT
Disusun Oleh :
| Muhamad Fauzan | (24051204013) |
| Julian Esa Mahendra. P | (24051204018) |
| Rahman Abror Zati | (24051204019) |
| Firmas Ferdiansya | (24051204032) |
BAB IPENDAHULUAN
1.1 Latar Belakang
Perkembangan teknologi Internet of Things (IoT) telah membuka banyak peluang dalam bidang otomasi dan monitoring, salah satunya dalam pemantauan kondisi lingkungan di dalam rumah. Suhu dan kelembapan ruangan merupakan parameter penting yang perlu dijaga, terutama pada kamar bayi. Bayi belum mampu mengatur suhu tubuhnya dengan baik, sehingga ruangan yang terlalu dingin maupun terlalu panas dapat mengganggu kenyamanan tidur dan berisiko bagi kesehatan. Karena itu, dibutuhkan sistem yang dapat memantau kondisi kamar secara terus-menerus dan memberikan peringatan otomatis ketika suhu keluar dari batas nyaman.
Mikrokontroler ESP32 merupakan platform embedded system yang memiliki modul WiFi bawaan sehingga dapat dimanfaatkan untuk membangun sistem monitoring berbasis IoT. Dengan memanfaatkan sensor DHT22 sebagai pembaca suhu dan kelembapan, layar LCD I2C sebagai tampilan lokal, LED RGB sebagai indikator visual, buzzer sebagai indikator suara, serta platform Blynk IoT sebagai dashboard pemantauan jarak jauh, dapat dibangun sistem yang mampu mendeteksi perubahan kondisi ruangan dan memberikan peringatan secara real-time. Berdasarkan latar belakang tersebut, penulis membuat simulasi "Sistem Monitoring dan Alarm Suhu dan Kelembapan Kamar Bayi Berbasis ESP32, Sensor DHT22, dan Blynk IoT" menggunakan platform simulasi Wokwi.
1.2 Rumusan Masalah
Berdasarkan latar belakang di atas, rumusan masalah dalam laporan ini adalah:
- Bagaimana cara membaca data suhu dan kelembapan menggunakan sensor DHT22 pada ESP32?
- Bagaimana cara membuat sistem alarm yang memberikan indikator audio-visual melalui LED RGB dan buzzer berdasarkan ambang batas suhu kamar bayi?
- Bagaimana cara mengirimkan data hasil pembacaan sensor ke dashboard Blynk IoT agar dapat dipantau secara jarak jauh?
1.3 Tujuan Laporan
Tujuan dari penulisan laporan ini adalah:
- Mengetahui cara kerja sensor DHT22 dalam membaca suhu dan kelembapan udara.
- Memahami proses pengolahan data sensor, penentuan status berdasarkan ambang batas suhu, dan pengiriman data ke platform Blynk IoT menggunakan pemrograman ESP32.
- Merancang dan mensimulasikan sistem monitoring dan alarm suhu dan kelembapan kamar bayi menggunakan ESP32, sensor DHT22, layar LCD I2C, LED RGB, buzzer, dan Blynk IoT melalui platform Wokwi.
1.4 Manfaat Penulisan
Manfaat dari penulisan laporan ini antara lain:
- Menambah pemahaman penulis mengenai konsep dasar sistem embedded dan IOT, khususnya dalam pemanfaatan sensor lingkungan dan konektivitas WIFi.
- Memberikan gambaran implementasi sistem monitoring kamar bayi sederhana yang dapat dikembangkan lebih lanjut menjadi produk smart home.
- Sebagai bahan referensi bagi pembaca yang ingin mempelajari pembuatan sistem monitoring dan alaram berbasis ESP32 dan Blynk
BAB IITINJAUAN PUSTAKA
2.1 Dasar Teori
Internet of Things (IoT) merupakan konsep yang menghubungkan berbagai perangkat fisik dengan jaringan internet sehingga dapat saling bertukar data. Dalam piramida IoT, terdapat empat lapisan utama, yaitu data from things (pengambilan data melalui sensor), connectivity (jaringan penghubung), platform (pengolahan data), dan apps (aplikasi yang menggunakan data tersebut). Pada laporan ini, sistem yang dibangun mencakup seluruh lapisan tersebut: sensor DHT22 sebagai things, WiFi pada ESP32 sebagai connectivity, Blynk Cloud sebagai platform, dan dashboard Blynk sebagai aplikasi pemantauan.
Sensor DHT22 adalah sensor digital yang dapat mengukur suhu dan kelembapan relatif udara sekaligus. Sensor ini mengirimkan data melalui satu pin data (single-wire) dengan rentang pengukuran suhu sekitar -40 hingga 80°C dan kelembapan 0 hingga 100%. Sensor ini memiliki laju pembacaan maksimal sekitar satu kali setiap dua detik, sehingga pembacaan pada program dilakukan dengan interval 2 detik.
ESP32 merupakan mikrokontroler dengan prosesor dual-core yang dilengkapi WiFi dan Bluetooth bawaan. Fitur WiFi ini memungkinkan ESP32 terhubung langsung ke internet tanpa modul tambahan, sehingga sangat sesuai untuk aplikasi IoT.
Blynk IoT adalah platform IoT berbasis cloud yang memungkinkan pengguna membuat dashboard untuk memantau dan mengendalikan perangkat. Data dikirim dari perangkat menggunakan Virtual Pin (V0, V1, dan seterusnya) dan ditampilkan pada widget seperti gauge, label, LED, dan chart. Blynk juga menyediakan fitur Event untuk mengirim notifikasi ketika kondisi tertentu terpenuhi.
2.2 Komponen
Komponen yang digunakan dalam simulasi ini adalah:
- ESP32 DevKit: Berfungsi sebagai pusat pengendali yang membaca data sensor, menentukan status suhu, mengendalikan LCD, LED RGB, dan buzzer, serta mengirim data ke Blynk melalui WiFi.
- Sensor DHT22: Berfungsi sebagai komponen input yang membaca suhu dan kelembapan udara.
- Layar LCD 16x2 I2C: Berfungsi menampilkan suhu, kelembapan, dan status kondisi ruangan secara real-time menggunakan komunikasi I2C (SDA/SCL).
- LED RGB 4 Pin (Common Cathode): Berfungsi sebagai indikator visual status ruangan. Biru menandakan terlalu dingin, hijau menandakan suhu ideal, dan merah menandakan terlalu panas.
- Buzzer: Berfungsi sebagai indikator suara yang berbunyi ketika suhu terlalu panas.
- Platform Blynk IoT: Berfungsi sebagai dashboard pemantauan jarak jauh yang menampilkan suhu, kelembapan, status, indikator alarm, dan grafik.
BAB IIIPEMBAHASAN
3.1 Penjelasan Simulasi
Simulasi ini dibuat menggunakan platform Wokwi dengan rangkaian yang terdiri dari ESP32, sensor DHT22, layar LCD 16x2 I2C, LED RGB, dan buzzer. Pemetaan pin rangkaian ditunjukkan pada tabel berikut:
| Komponen | Pin Komponen | Pin ESP32 |
|---|---|---|
| LCD 16X2 12C | GND | GND |
| VCC | 5V | |
| SDA | GPIO 21 | |
| SCL | GPIO 22 | |
| DHT22 | VCC | 5V |
| SDA (data) | GPIO 15 | |
| GND | GND | |
| LED RGB | R | GPIO 4 |
| G | GPIO 2 | |
| B | GPIO 16 | |
| Common (cathode) | GND | |
| Buzzer | GND | GND |
| OUT | GPIO 13 |
Cara kerja sistem adalah sebagai berikut. Setelah dinyalakan, ESP32 menginisialisasi LCD, menampilkan teks "Smart Baby Room" dan "Initializing...", lalu terhubung ke WiFi dan server Blynk. Setiap 2 detik, ESP32 membaca suhu dan kelembapan dari sensor DHT22. Nilai suhu kemudian dibandingkan dengan ambang batas untuk menentukan status ruangan:
- Suhu di bawah 22°C: status "TOO COLD", LED RGB menyala biru, buzzer mati, dan notifikasi peringatan dikirim melalui Blynk Event.
- Suhu di atas 27°C: status "TOO HOT", LED RGB menyala merah, buzzer berbunyi (beep pendek), dan notifikasi peringatan dikirim melalui Blynk Event.
- Suhu 22°C sampai 27°C: status "IDEAL / COMFY", LED RGB menyala hijau, buzzer mati, dan tidak ada notifikasi.
Setelah status ditentukan, data dikirim ke Blynk melalui Virtual Pin, yaitu V0 untuk suhu, V1 untuk kelembapan, V2 untuk teks status, dan V3 untuk indikator alarm (bernilai 255 saat alarm aktif dan 0 saat normal). Data yang sama juga ditampilkan pada LCD: baris pertama menampilkan suhu dan kelembapan, baris kedua menampilkan status. Jika sensor gagal membaca data, LCD menampilkan pesan "Sensor Error!!".
3.2 Konfigurasi Dashboard BLYNK
Dashboard Blynk dibuat dengan nama perangkat "MONITORING KAMAR BAYI" dan terdiri dari lima widget:
| Widget | Virtual Pin | Fungsi |
|---|---|---|
| Gauge “Temperaature” | V0 | Menampilkan suhu (c) |
| Gauge “Temperaature” | V1 | Meamnpilkan kelembapan (%) |
| Label “Status” | V2 | Menampilkan Status Ruangan |
| LED “LED” | V3 | Indikator Alarm (menyala saat alarm aktif) |
| Chart | V0 dan V1 | Grafik suhu dan kelembapan terhadap waktu |
Screenshot dashboard Blynk:
3.3 Program
Program ditulis dalam bahasa C/C++ pada Wokwi dengan library WiFi, BlynkSimpleEsp32, LiquidCrystal_I2C, dan DHT.
// =============================
// Sistem Monitoring dan Alarm Suhu dan Kelembapan Kamar Bayi ESP32 DHT22 Blynk IoT WOKWI
#define BLYNK_TEMPLATE_ID "TMPL6CC39TCsd"
#define BLYNK_TEMPLATE_NAME "MONITORING KAMAR BAYI"
#define BLYNK_AUTH_TOKEN "lC9lWZ1LNAaNZPOvv4hMdauFBFRgqJj1"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
#define LED_RED 4
#define LED_GREEN 2
#define LED_BLUE 16
#define BUZZER_PIN 13
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal_I2C lcd(0x27, 16, 2);
BlynkTimer timer;
void setRGB(bool red, bool green, bool blue) {
digitalWrite(LED_RED, red ? HIGH : LOW);
digitalWrite(LED_GREEN, green ? HIGH : LOW);
digitalWrite(LED_BLUE, blue ? HIGH : LOW);
}
void checkBabyRoom() {
float temp = dht.readTemperature();
float hum = dht.readHumidity();
if (isnan(temp) || isnan(hum)) {
lcd.setCursor(0, 0);
lcd.print("Sensor Error!! ");
return;
}
String statusText = "";
bool isAlarm = false;
// Logika Ambang Batas Suhu Kamar Bayi
if (temp < 22.0) {
// TERLALU DINGIN
setRGB(false, false, true); // LED Biru
noTone(BUZZER_PIN);
statusText = "TOO COLD! (<22C)";
isAlarm = true;
Blynk.logEvent("suhu_kamar", "Peringatan: Suhu kamar bayi terlalu dingin! (" + String(temp, 1) + " C)");
}
else if (temp > 27.0) {
// TERLALU PANAS
setRGB(true, false, false); // LED Merah
tone(BUZZER_PIN, 1000, 100); // Beep intermiten pelan
statusText = "TOO HOT! (>27C)";
isAlarm = true;
Blynk.logEvent("suhu_kamar", "Peringatan: Suhu kamar bayi terlalu panas! (" + String(temp, 1) + " C)");
}
else {
// SUHU IDEAL (22C - 27C)
setRGB(false, true, false); // LED Hijau
noTone(BUZZER_PIN);
statusText = "IDEAL / COMFY";
isAlarm = false;
}
// Update Data ke Blynk IoT
Blynk.virtualWrite(V0, temp);
Blynk.virtualWrite(V1, hum);
Blynk.virtualWrite(V2, statusText);
Blynk.virtualWrite(V3, isAlarm ? 255 : 0);
// Update Display LCD 16x2
lcd.setCursor(0, 0);
lcd.print("T:"); lcd.print(temp, 1); lcd.print("C H:"); lcd.print(hum, 0); lcd.print("% ");
lcd.setCursor(0, 1);
lcd.print("ST:"); lcd.print(statusText); lcd.print(" ");
}
void setup() {
Serial.begin(115200);
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_BLUE, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
dht.begin();
lcd.init();
lcd.backlight();
lcd.print("Smart Baby Room");
lcd.setCursor(0, 1);
lcd.print("Initializing...");
delay(1500);
Blynk.begin(auth, ssid, pass);
lcd.clear();
// Jalankan pemantauan setiap 2 detik
timer.setInterval(2000L, checkBabyRoom);
}
void loop() {
Blynk.run();
timer.run();
}
Penjelasan program secara garis besar:
- Pada bagian deklarasi, didefinisikan Blynk Template ID, Template Name, dan Auth Token, serta pin DHT22 (15), LED merah (4), LED hijau (2), LED biru (16), dan buzzer (13). Objek sensor DHT22, LCD I2C (alamat 0x27, 16 kolom, 2 baris), dan BlynkTimer juga dibuat di bagian ini. Koneksi WiFi menggunakan jaringan simulasi "Wokwi-GUEST".
- Fungsi setRGB() mengatur nyala LED merah, hijau, dan biru sesuai nilai yang diberikan sehingga warna indikator dapat diganti dengan satu pemanggilan fungsi.
- Fungsi checkBabyRoom() membaca suhu dan kelembapan, memeriksa apakah pembacaan valid dengan isnan(), menentukan status berdasarkan ambang batas dengan struktur if-else, mengatur LED dan buzzer, mengirim data ke Blynk dengan Blynk.virtualWrite(), dan memperbarui tampilan LCD.
- Pada fungsi setup(), dilakukan inisialisasi serial (115200 baud), pengaturan mode pin output, inisialisasi sensor dan LCD, penyambungan ke Blynk dengan Blynk.begin(), serta pengaturan timer agar checkBabyRoom() dijalankan setiap 2 detik.
- Pada fungsi loop(), program menjalankan Blynk.run() dan timer.run() secara berulang untuk menjaga koneksi dan menjalankan pembacaan terjadwal.
3.4 Hasil Pengujian
Pengujian dilakukan pada simulasi Wokwi dengan mengubah nilai suhu pada sensor DHT22. Hasil pengujian ditunjukkan pada tabel berikut:
| Kondisi Suhu | LED RGB | Buzzer | Status LCD dan Blynk | Notifikasi |
|---|---|---|---|---|
| <22 | Biru | Mati | TOO COLD | Ya |
| 22C-27C | Hijau | Mati | IDEAL/COMFY | Tidak |
| >27C | Merah | Berbunyi | TOO HOT | Ya |
Pada pengujian dengan suhu 19°C dan kelembapan 43%, LCD menampilkan data suhu dan kelembapan, LED RGB menyala biru, dan dashboard Blynk menampilkan status "TOO COLD! (<22C)" dengan indikator LED alarm berwarna merah. Data pada LCD dan dashboard Blynk menunjukkan nilai yang sama, sehingga pengiriman data ke cloud berjalan dengan baik. Grafik pada dashboard juga memperlihatkan perubahan suhu dan kelembapan terhadap waktu.
Tampilan Percobaan Wokwi
Tampilan Percobaan BLYNK
BAB IVPENUTUP
4.1 Kesimpulan
Berdasarkan simulasi yang telah dibuat, dapat disimpulkan bahwa:
- Sensor DHT22 dapat digunakan untuk membaca suhu dan kelembapan udara pada ESP32, dan hasilnya dapat ditampilkan secara real-time pada LCD dan dashboard Blynk.
- Sistem alarm kamar bayi dapat dibangun menggunakan ESP32 dengan kombinasi indikator audio-visual, yaitu LED RGB (biru, hijau, merah) untuk membedakan kondisi dingin, ideal, dan panas, serta buzzer untuk kondisi suhu terlalu panas.
- Platform Blynk IoT memungkinkan pemantauan suhu, kelembapan, dan status ruangan dari jarak jauh, serta mengirim notifikasi ketika suhu keluar dari batas nyaman (22°C – 27°C).
- Simulasi menggunakan Wokwi memudahkan proses perancangan, pengujian rangkaian, dan debugging program tanpa risiko kerusakan perangkat keras secara langsung.
4.2 Saran
Sistem yang dibuat dalam laporan ini masih bersifat dasar. Untuk pengembangan lebih lanjut, disarankan untuk:
- Menambahkan ambang batas kelembapan ke dalam logika status, karena saat ini status hanya ditentukan oleh suhu.
- Membatasi frekuensi pengiriman notifikasi (misalnya maksimal satu kali per menit) agar tidak membebani kuota pesan Blynk dan tidak mengganggu pengguna.
- Menambahkan aktuator pengendali suhu seperti kipas atau pemanas, serta sensor tambahan seperti sensor suara untuk mendeteksi tangisan bayi.
- Mengimplementasikan sistem pada perangkat keras sebenarnya dengan catu daya dan casing yang aman untuk ruangan bayi.
DAFTAR PUSTAKA
Aosong Electronics. (n.d.). DHT22 (AM2302) Digital Temperature and Humidity Sensor Datasheet .
Espressif Systems. (n.d.). ESP32 Series Datasheet . https://www.espressif.com
Blynk Inc. (n.d.). Blynk IoT Platform Documentation . https://docs.blynk.io
Wokwi. (n.d.). Wokwi: World's most advanced ESP32 simulator . https://wokwi.com
Alfian Center. (n.d.). Sistem Monitoring dan Alarm Suhu dan Kelembapan Kamar Bayi ESP32 DHT22 Blynk IoT Wokwi YouTube. https://www.youtube.com/watch?v=SjRASYkbuI4
LAMPIRAN
Link Video Penjelasan:
https://drive.google.com/drive/folders/1IMxikzJjQhX4QVeNMIZHugsPSYyjlWum
Tidak ada komentar:
Posting Komentar