
Monitoring Suhu dan Kelembaban Coffe Storage | Penyimpanan Kopi DHT22 ESP32 Blynk IoT Wokwi
Monitoring Suhu dan Kelembaban Coffe Storage | Penyimpanan Kopi DHT22 ESP32 Blynk IoT Wokwi
Pada bagian ini akan dibahas pembuatan sistem monitoring suhu dan kelembapan ruang penyimpanan kopi (coffee storage) menggunakan mikrokontroler ESP32, sensor DHT22, dan sistem Internet of Things (IoT) dengan Blynk IoT, serta software simulasi WOKWI. Skematik rangkaian ditunjukkan pada Gambar 1, program Arduino pada Kode 1, dan video pembuatan pada tautan Video 1. Suhu dan kelembapan ideal area penyimpanan akan diukur secara akurat dan ditampilkan pada LCD. Data pengkondisian udara tersebut dikirim secara real-time ke aplikasi Blynk IoT untuk mencegah kerusakan biji kopi akibat kelembapan berlebih.

Gambar 1. Skematik rangkaian sistem
Pemetaan PIN:
* LCD 16×2 I2C
GND => GND
VCC => 5V
SDA => 21
SCL => 22
* DHT22
VCC => 5V
SDA => 15
GND => GND
* LED RED
R => 4
GND => GND
* LED GREEN
G => 2
GND => GND
* BUZZER
GND => GND
OUT => 13
// =============================
// ALFIAN CENTER
// SUBSCRIBE
// Monitoring Suhu dan Kelembaban Coffe Storage | Penyimpanan Kopi DHT22 ESP32 Blynk IoT Wokwi
// PROGRAM BAKAL AKU KIRIM DENGAN SYARAT DIBAWAH
// LIKE 50, KOMEN 30 DAN * WAJIB SUBSCRIBE *
// PROGRAM DIKIRIM VIA KOMENTAR
// =============================
#define BLYNK_TEMPLATE_ID "TMPLxxxxxx"
#define BLYNK_TEMPLATE_NAME "Coffee Storage"
#define BLYNK_AUTH_TOKEN "Your_Auth_Token"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#define DHTPIN 15
#define DHTTYPE DHT22
#define LED_GREEN 2
#define LED_RED 4
#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 checkCoffeeStorage() {
float hum = dht.readHumidity();
float temp = dht.readTemperature();
if (isnan(hum) || isnan(temp)) {
lcd.setCursor(0, 0);
lcd.print("Sensor Error!! ");
return;
}
String coffeeStatus = "";
bool isWarning = false;
// LOGIKA AMBANG BATAS KELEMBAPAN KOPI
if (hum > 60.0) {
// TERLALU LEMBAB / SEGAL BOCOR (>60%)
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, LOW);
tone(BUZZER_PIN, 1000, 200); // Alarm Suara
coffeeStatus = "WADAH BOCOR!";
isWarning = true;
// Kirim Notifikasi ke Smartphone via Blynk
Blynk.logEvent("coffee_alert", "⚠️ PERINGATAN! Kelembapan Wadah Kopi Tembus " + String(hum, 1) + "%. Segel Bocor/Berpotensi Berjamur!");
}
else if (hum <= 55.0) {
// AMAN / OPTIMAL (<=55%)
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
noTone(BUZZER_PIN);
coffeeStatus = "KOPI AMAN";
isWarning = false;
}
else {
// RENTANG WASPADA (55.1% - 60.0%)
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, LOW);
noTone(BUZZER_PIN);
coffeeStatus = "WASPADA LEMBAB";
isWarning = false;
}
// UPDATE DATA KE BLYNK IOT
Blynk.virtualWrite(V0, hum); // Double / Float
Blynk.virtualWrite(V1, temp); // Double / Float
Blynk.virtualWrite(V2, coffeeStatus); // String
Blynk.virtualWrite(V3, isWarning ? 255 : 0); // Integer (LED Widget)
// UPDATE LCD DISPLAY 16x2
lcd.setCursor(0, 0);
lcd.print("H:"); lcd.print(hum, 1); lcd.print("% T:"); lcd.print(temp, 1); lcd.print("C ");
lcd.setCursor(0, 1);
lcd.print("ST:"); lcd.print(coffeeStatus); lcd.print(" ");
}
void setup() {
Serial.begin(115200);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_RED, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
dht.begin();
lcd.init();
lcd.backlight();
lcd.print("Smart Coffee");
lcd.setCursor(0, 1);
lcd.print("Beans Storage");
delay(1500);
Blynk.begin(auth, ssid, pass);
lcd.clear();
// Evaluasi kondisi wadah setiap 2 detik
timer.setInterval(2000L, checkCoffeeStorage);
}
void loop() {
Blynk.run();
timer.run();
}

Video 1. Video tutorial pembuatan simulasi di WOKWI