
Tutorial ESP32: Cara Membuat Tempat Penyimpanan Kopi Pintar (Smart Coffee Storage) dengan Sistem Auto Vacuum, Sensor Timbangan Load Cell HX711, Sensor DHT22, & Blynk IoT pada WOKWI
Pada bagian ini akan dibahas pembuatan sistem penyimpanan biji kopi kedap udara otomatis (Smart Coffee Storage V5) berbasis mikrokontroler ESP32, sensor suhu dan kelembapan DHT22, modul ADC Load Cell HX711 untuk penimbangan berat stok kopi secara real-time, relay pompa vakum, indikator LED, buzzer alarm peringatan stok menipis, layar LCD 16×2 I2C, serta platform Blynk IoT pada software simulasi WOKWI. Skematik rangkaian ditunjukkan pada Gambar 1, program Arduino pada Kode 1, dan video pembuatan pada tautan Video 1. Sistem memantau kelembapan udara di dalam tabung penyimpanan untuk menjaga kualitas biji kopi. Jika kelembapan melebihi batas aman (>60%), sistem secara otomatis mengaktifkan pompa vakum untuk menjaga kekedapan udara. Selain itu, sistem memantau berat sisa kopi dan membunyikan alarm jika stok kopi kurang dari 50 gram, lengkap dengan tombol kalibrasi tare dan kontrol manual vacuum via aplikasi Blynk.
Gambar 1. Skematik rangkaian sistem
List Pin:
- Sensor Suhu & Kelembapan (DHT22)
VCC => 3.3V / 5V
GND => GND
Data => GPIO 15 (DHTPIN) - Modul Timbangan Load Cell HX711
DT (Data) => GPIO 16 (HX711_DT)
SCK (Clock) => GPIO 4 (HX711_SCK)
VCC => 5V / 3.3V
GND => GND - Display LCD 16×2 I2C (Alamat: 0x27)
GND => GND
VCC => 5V / 3.3V
SDA => GPIO 21
SCL => GPIO 22 - Aktuator Relay Pompa Vakum, Indikator LED & Buzzer Alarm
Relay Vacuum Pump (RELAY_VACUUM) => GPIO 19
LED Green (Indikator Normal / Aman) => GPIO 2 (LED_GREEN)
LED Red (Indikator Vacuum / Warning) => GPIO 12 (LED_RED)
Buzzer Alarm Peringatan => GPIO 13 (BUZZER_PIN)
List Virtual PIN:
- V0 => Kelembapan Udara (% RH) – Datastream Grafik Real-Time Tingkat Kelembapan di Dalam Tabung dari Sensor DHT22
- V1 => Temperatur (°C) – Datastream Grafik Real-Time Suhu Ruang Penyimpanan dari Sensor DHT22
- V2 => Status Sistem Kopi (String) – Menampilkan Status Operasional (“IDEAL / KEDAP”, “VACUUMING…”, atau “MANUAL VACUUM”)
- V3 => Pompa Vakum Status (Integer 0/255) – Indikator Widget LED Status Pompa Vakum Aktif/Mati
- V4 => Manual Vacuum Switch (Integer 0/1) – Sakelar Tombol Kontrol Paksa Vacuum dari Aplikasi Blynk
- V5 => Berat Stok Kopi (Gram) – Datastream Widget Gauge / Angka Berat Sisa Biji Kopi dari Sensor HX711
- V6 => Tombol Reset Tare (Integer Push 1) – Sakelar Tombol Blynk untuk Melakukan Tare / Menyetel Timbangan ke 0 Gram
Kode Arduino 1. Kode Program
// =============================
// ALFIAN CENTER
// SUBSCRIBE
// GAK AKAN KEHABISAN KOPI! Buat Smart Coffee Storage Auto Vacuum + Timbangan LOAD CELL HX711 Blynk IoT WOKWI V5
// PROGRAM BAKAL AKU KIRIM DENGAN SYARAT DIBAWAH
// LIKE 50, KOMEN 30 DAN * WAJIB SUBSCRIBE *
// PROGRAM DIKIRIM VIA KOMENTAR
// =============================
#define BLYNK_TEMPLATE_ID "TMPL6xsQRToHA"
#define BLYNK_TEMPLATE_NAME "COFFEE STORAGE V5"
#define BLYNK_AUTH_TOKEN "DODpQTDmlXGlPJ6Aulxgf1l_kVbHw50t"
#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
#include "DHT.h"
#include "HX711.h"
#define DHTPIN 15
#define DHTTYPE DHT22
#define HX711_DT 16
#define HX711_SCK 4
#define RELAY_VACUUM 19
#define LED_GREEN 2
#define LED_RED 12
#define BUZZER_PIN 13
char auth[] = BLYNK_AUTH_TOKEN;
char ssid[] = "Wokwi-GUEST";
char pass[] = "";
DHT dht(DHTPIN, DHTTYPE);
HX711 scale;
LiquidCrystal_I2C lcd(0x27, 16, 2);
BlynkTimer timer;
bool manualVacuumMode = false;
bool isVacuumActive = false;
// Faktor Skala Standar untuk Wokwi HX711
float calibrationFactor = 420.0;
BLYNK_WRITE(V4) {
manualVacuumMode = param.asInt() == 1;
}
// Tombol Tare / Reset Berat Nol dari Blynk
BLYNK_WRITE(V6) {
if (param.asInt() == 1) {
scale.tare();
Blynk.logEvent("coffee_alert", "⚖️ Timbangan Direset! Nilai Berat Diatur ke 0 Gram.");
}
}
void checkCoffeeStorageV5() {
float hum = dht.readHumidity();
float temp = dht.readTemperature();
float weight = scale.get_units(5); // Ambil rata-rata 5 pembacaan
if (weight < 0) weight = 0; // Cegah angka minus akibat toleransi sensor
if (isnan(hum) || isnan(temp)) {
lcd.setCursor(0, 0);
lcd.print("Sensor Error!! ");
return;
}
String coffeeStatus = "";
// 1. LOGIKA KONTROL POMPA VAKUM
if (hum > 60.0 || manualVacuumMode) {
digitalWrite(RELAY_VACUUM, HIGH);
if (!isVacuumActive && !manualVacuumMode) {
tone(BUZZER_PIN, 1000, 300);
Blynk.logEvent("coffee_alert", "⚠️ PERINGATAN! Kelembapan " + String(hum, 1) + "%. Auto Vacuum Aktif!");
}
isVacuumActive = true;
coffeeStatus = manualVacuumMode ? "MANUAL VACUUM" : "VACUUMING...";
}
else if (hum <= 55.0 && !manualVacuumMode) {
digitalWrite(RELAY_VACUUM, LOW);
isVacuumActive = false;
coffeeStatus = "IDEAL / KEDAP";
}
else {
if (isVacuumActive) {
digitalWrite(RELAY_VACUUM, HIGH);
coffeeStatus = "VACUUMING...";
} else {
coffeeStatus = "IDEAL / KEDAP";
}
}
// LOGIKA ALARM STOK KOPI MENIPIS (< 50 Gram)
if (weight < 50.0 && weight > 0) {
tone(BUZZER_PIN, 2000, 100);
}
// Indikasi LED
if (isVacuumActive || weight < 50.0) {
digitalWrite(LED_RED, HIGH);
digitalWrite(LED_GREEN, LOW);
} else {
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, HIGH);
}
// 2. UPDATE DATA KE BLYNK IOT
Blynk.virtualWrite(V0, hum);
Blynk.virtualWrite(V1, temp);
Blynk.virtualWrite(V2, coffeeStatus);
Blynk.virtualWrite(V3, digitalRead(RELAY_VACUUM) ? 255 : 0);
Blynk.virtualWrite(V5, weight); // Data Berat dalam Gram
// 3. UPDATE DISPLAY LCD 16x2
lcd.setCursor(0, 0);
lcd.print("H:"); lcd.print(hum, 0); lcd.print("% ");
lcd.print("W:"); lcd.print(weight, 0); lcd.print("g ");
lcd.setCursor(0, 1);
lcd.print("ST:"); lcd.print(coffeeStatus); lcd.print(" ");
}
void setup() {
Serial.begin(115200);
pinMode(RELAY_VACUUM, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_RED, OUTPUT);
pinMode(BUZZER_PIN, OUTPUT);
digitalWrite(RELAY_VACUUM, LOW);
dht.begin();
lcd.init();
lcd.backlight();
// Inisialisasi Modul HX711
scale.begin(HX711_DT, HX711_SCK);
scale.set_scale(calibrationFactor);
scale.tare(); // Zero-out scale at startup
lcd.print("Smart Coffee V5");
lcd.setCursor(0, 1);
lcd.print("Vacuum + Scale ");
delay(1500);
Blynk.begin(auth, ssid, pass);
lcd.clear();
timer.setInterval(2000L, checkCoffeeStorageV5);
}
void loop() {
Blynk.run();
timer.run();
}

Video 1. Video tutorial pembuatan
TAG:
simulasi traffic light arduino, lampu lalu lintas arduino uno, tutorial arduino wokwi, koding traffic light dasar, led merah kuning hijau arduino, pinout led arduino, serial monitor arduino, fungsi delay arduino, digitalWrite high low, program lampu perempatan jalan, belajar arduino pemula, simulator wokwi arduino, rangkaian led arduino uno, diy traffic light arduino, alat peraga lalu lintas arduino, display serial monitor arduino, algoritma perulangan loop arduino, fungsi setup dan loop, sistem pengatur jalan raya, proyek mekatronika elektro, proyek sains arduino, tugas akhir traffic light, skripsi arduino lampu jalan, ide proyek arduino uno, skematik traffic light arduino, diagram rangkaian led digital, kodingan arduino lampu lalu lintas, belajar arduino wokwi, panduan wokwi arduino, simulator lampu jalan wokwi, tutorial mikrokontroler indonesia, proyek elektronika populer, kodingan led lengkap, sistem pengatur lalulintas, otomasi perangkat lampu, sistem kedip led bergantian, tampilan status serial monitor, cara koding digitalwrite, variabel pin led 8 9 10, pengatur waktu delay, logika urutan lampu merah kuning hijau, sistem proteksi persimpangan, otomatisasi perangkat penerangan, proyek mekatronika elektro, simulasi hardware traffic light, sistem lampu lalulintas arduino, proyek arduino populer, kodingan led sederhana, rangkaian tiga led arduino, tutorial mikrokontroler iot, wawasan teknik elektro, proyek arduino uno populer, kodingan traffic light simpel, kontrol multi led digital, teknik delay bergantian, tutorial lengkap wokwi arduino, sistem lampu jalan otomatis, pengendali lalu lintas berbasis mikrokontroler, aplikasi arduino uno dasar, proyek elektronika pemula, koding logika urutan lampu, pengatur waktu nyala led, indikator visual lalu lintas, otomatisasi persimpangan jalan, sistem kendali otomatis arduino, rancang bangun alat traffic light, praktikum arduino uno dasar, simulasi rangkaian wokwi indonesia, kodingan lengkap lampu lalulintas, teknik dasar pemrograman arduino, pemanfaatan led digital, referensi tugas akhir elektro, panduan praktis arduino uno
