• 082226375801
  • alfianmaarif@ee.uad.ac.id
  • Yogyakarta
Materi
Tutorial ESP32: Cara Membuat Smart Coffee Storage Auto Vacuum dan RTC Resting Timer Berbasis Blynk IoT pada WOKWI

Tutorial ESP32: Cara Membuat Smart Coffee Storage Auto Vacuum dan RTC Resting Timer Berbasis Blynk IoT pada WOKWI

Pada bagian ini akan dibahas pembuatan sistem wadah penyimpanan biji kopi pintar (Smart Coffee Storage) berbasis mikrokontroler ESP32, sensor suhu dan kelembapan DHT22, modul RTC DS1307 untuk menghitung durasi resting kopi, relay penggerak pompa vakum, LED indikator, buzzer alarm, 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 mengontrol pompa vakum secara otomatis saat kelembapan udara tinggi guna menjaga kesegaran biji kopi, memantau hari proses resting kopi menggunakan jam RTC secara akurat, serta mengirimkan data dan notifikasi peringatan ke dashboard aplikasi Blynk IoT.

Gambar 1. Skematik rangkaian sistem

List Pin:

  • LCD 16×2 I2C (Alamat: 0x27)
    GND => GND
    VCC => 5V / 3.3V
    SDA => GPIO 21
    SCL => GPIO 22
  • Sensor Suhu & Kelembapan (DHT22)
    VCC => 3.3V / 5V
    Data => GPIO 15 (DHTPIN)
    GND => GND
  • Modul Real-Time Clock (RTC DS1307)
    GND => GND
    VCC => 5V
    SDA => GPIO 21 (I2C SDA)
    SCL => GPIO 22 (I2C SCL)
  • Relay Pompa Vakum
    Signal => GPIO 19 (RELAY_VACUUM)
  • LED Indikator Red (Proses Vakum)
    Anode (+)=> GPIO 4 (LED_RED)
  • LED Indikator Green (Kondisi Ideal)
    Anode (+)=> GPIO 2 (LED_GREEN)
  • Buzzer Alarm
    Positive => GPIO 13 (BUZZER_PIN)

List Virtual Pin:

  • V0 => Read Humidity (%) – Datastream Nilai Kelembapan Sensor DHT22
  • V1 => Read Temperature (°C) – Datastream Nilai Suhu Sensor DHT22
  • V2 => Status Coffee Storage (String) – Menampilkan Status “IDEAL / KEDAP”, “VACUUMING…”, atau “MANUAL VACUUM”
  • V3 => Relay / Vacuum State (Integer 0-255) – Indikator Widget LED/Gauge Status Pompa Vakum Aktif/Mati
  • V4 => Switch Manual Vacuum (Integer 0/1) – Tombol Sakelar Kontrol Vakum Manual dari Aplikasi Blynk
  • V5 => Status Resting Kopi (String) – Menampilkan Jumlah Hari Resting Kopi (Contoh: “Resting: 3 Hari”)
  • V6 => Button Reset Timer Resting (Integer Push 1) – Tombol Reset Hari Resting Kopi Kembali ke Nol

Kode Arduino 1. Kode Program

// ============================= 
// ALFIAN CENTER 
// SUBSCRIBE 
// RASA KOPI LEBIH NIKMAT! Buat Smart Coffee Storage Auto Vacuum + RTC Resting Timer 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 "TMPL6IQZvllFP"
#define BLYNK_TEMPLATE_NAME "Coffee Storage V4"
#define BLYNK_AUTH_TOKEN "7gSoVvxbWeQ5Zuarqqiwb_2X7z_zwAU3"

#include <WiFi.h>
#include <BlynkSimpleEsp32.h>
#include <LiquidCrystal_I2C.h>
#include <RTClib.h>
#include "DHT.h"

#define DHTPIN 15
#define DHTTYPE DHT22

#define RELAY_VACUUM 19
#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);
RTC_DS1307 rtc;
LiquidCrystal_I2C lcd(0x27, 16, 2);
BlynkTimer timer;

bool manualVacuumMode = false;
bool isVacuumActive = false;
unsigned long restStartUnix = 0; // Waktu awal simpan/roast dalam Epoch/Unix

BLYNK_WRITE(V4) {
  manualVacuumMode = param.asInt() == 1;
}

// Tombol V6 untuk reset hari resting ketika memasukkan biji kopi baru
BLYNK_WRITE(V6) {
  if (param.asInt() == 1) {
    DateTime now = rtc.now();
    restStartUnix = now.unixtime();
    Blynk.logEvent("coffee_alert", "🔄 Timer Resting Kopi Direset! Perhitungan hari dimulai dari nol.");
  }
}

void checkCoffeeStorageV4() {
  float hum = dht.readHumidity();
  float temp = dht.readTemperature();
  DateTime now = rtc.now();

  if (isnan(hum) || isnan(temp)) {
    lcd.setCursor(0, 0);
    lcd.print("Sensor Error!!  ");
    return;
  }

  // Set awal jika belum di-reset
  if (restStartUnix == 0) {
    restStartUnix = now.unixtime();
  }

  // Hitung berapa hari kopi sudah di-resting
  unsigned long currentUnix = now.unixtime();
  int daysResting = (currentUnix - restStartUnix) / 86400;

  String restStatus = "Resting: " + String(daysResting) + " Hari";
  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";
    }
  }

  // Indikasi LED
  if (isVacuumActive) {
    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, restStatus);

  // 3. UPDATE DISPLAY LCD 16x2
  lcd.setCursor(0, 0);
  lcd.print("H:"); lcd.print(hum, 0); lcd.print("% ");
  lcd.print("D:"); lcd.print(daysResting); lcd.print("Hari ");
  lcd.print(now.hour() < 10 ? "0" : ""); lcd.print(now.hour()); lcd.print(":");
  lcd.print(now.minute() < 10 ? "0" : ""); lcd.print(now.minute());

  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();

  if (!rtc.begin()) {
    lcd.print("RTC Error!");
    while (1);
  }

  // Jika RTC kehilangan daya, atur ke waktu kompilasi
  if (!rtc.isrunning()) {
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }

  lcd.print("Smart Coffee V4");
  lcd.setCursor(0, 1);
  lcd.print("Vacuum + RTC    ");
  delay(1500);

  Blynk.begin(auth, ssid, pass);
  lcd.clear();

  timer.setInterval(2000L, checkCoffeeStorageV4);
}

void loop() {
  Blynk.run();
  timer.run();
}

Video 1. Video tutorial pembuatan

TAG:

smart coffee storage esp32, wadah kopi otomatis esp32, auto vacuum coffee storage, rtc ds1307 esp32, resting timer kopi, sensor dht22 esp32, blynk iot coffee storage, simulasi wokwi esp32, tutorial esp32 blynk, iot coffee roaster, penyimpan kopi vakum, relay pompa vakum esp32, lcd 16×2 i2c esp32, ldr dht22 wokwi, rtc timer resting blynk, otomatisasi penyimpan kopi, smart coffee blynk iot, penyimpan biji kopi kedap udara, tutorial blynk iot coffee, koding esp32 coffee storage, library blynk esp32, library dht22 esp32, library rtclib esp32, library liquidcrystal i2c, gpio 15 dht22 esp32, gpio 19 relay vacuum, proyek iot esp32, tutorial wokwi indonesia, simulasi iot coffee storage, pemantauan kualitas kopi jarak jauh, blynk iot app coffee, datastream blynk dht22 rtc, virtual pin blynk coffee, smart home iot esp32, proyek teknik elektro iot, mekatronika penyimpan kopi, tugas akhir iot coffee storage, skripsi iot smart coffee, ide proyek esp32 iot, skematik coffee storage esp32, diagram rangkaian dht22 rtc relay, source code smart coffee storage, program arduino coffee blynk, simulasi iot tanpa hardware, platform simulasi wokwi, wokwi esp32 coffee storage, blynk auth token esp32, wadah kopi pintar berbasis iot, telemetry data kelembapan kopi, proyek sains iot elektro, portofolio iot esp32, praktikum mikrokontroler esp32, modul esp32 wroom 32, pinout esp32 dht22 rtc relay, gpio esp32 led buzzer, indikator kelembapan kopi blynk, grafik suhu kelembapan blynk, smart coffee preservation, otomatisasi wadah kedap udara, panduan iot coffee storage esp32, belajar mikrokontroler online, simulator komponen elektronik, wokwi custom chip esp32, blynk iot platform coffee, internet of things indonesia, iot smk elektro, iot universitas elektro, prototipe wadah kopi vakum, alat pengatur kelembapan kopi, iot smart kitchen, esp32 arduino ide blynk, tutorial iot pemula, proyek elektro smart kitchen, panduan lengkap wokwi blynk, deteksi kelembapan kopi dht22, sistem kendali pompa vakum, logika auto vacuum dht22, sistem indikator led buzzer, kontrol manual vakum blynk, otomatisasi dapur pintar, proyek mekatronika kuliner, simulasi hardware coffee storage, sistem kopi pintar esp32, proyek iot populer, kodingan coffee storage otomatis, sensor dht22 presisi, rangkaian rtc dan lcd, tutorial mikrokontroler iot, wawasan iot teknik elektro, aplikasi iot smart living, coffee storage cerdas esp32, koding timer resting rtc, pemantauan kondisi kopi real time, iot coffee management system

Leave a Reply

Your email address will not be published. Required fields are marked *