{"id":477,"date":"2026-09-27T14:16:10","date_gmt":"2026-09-27T13:16:10","guid":{"rendered":"https:\/\/kuliahelektro.org\/?p=477"},"modified":"2026-09-27T14:16:10","modified_gmt":"2026-09-27T13:16:10","slug":"tutorial-esp32-cara-membuat-smart-coffee-storage-auto-vacuum-dan-rtc-resting-timer-berbasis-blynk-iot-pada-wokwi","status":"publish","type":"post","link":"https:\/\/kuliahelektro.org\/?p=477","title":{"rendered":"Tutorial ESP32: Cara Membuat Smart Coffee Storage Auto Vacuum dan RTC Resting Timer Berbasis Blynk IoT pada WOKWI"},"content":{"rendered":"\n<p>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&#215;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.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/www.youtube.com\/watch?v=Oo1m1JzOPyk&amp;lc=UgzMvsTxDvXednkUHH54AaABAg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"986\" height=\"714\" src=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/image-25.png\" alt=\"\" class=\"wp-image-478\" style=\"aspect-ratio:1.380952380952381;width:595px;height:auto\" srcset=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/image-25.png 986w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/image-25-300x217.png 300w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/image-25-768x556.png 768w\" sizes=\"(max-width: 986px) 100vw, 986px\" \/><\/a><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><strong>Gambar 1. Skematik rangkaian sistem<\/strong><\/p>\n\n\n\n<p><strong>List Pin:<\/strong><\/p>\n\n\n\n<ul>\n<li>LCD 16&#215;2 I2C (Alamat: 0x27)<br>GND =&gt; GND<br>VCC =&gt; 5V \/ 3.3V<br>SDA =&gt; GPIO 21<br>SCL =&gt; GPIO 22<\/li>\n\n\n\n<li>Sensor Suhu &amp; Kelembapan (DHT22)<br>VCC =&gt; 3.3V \/ 5V<br>Data =&gt; GPIO 15 (DHTPIN)<br>GND =&gt; GND<\/li>\n\n\n\n<li>Modul Real-Time Clock (RTC DS1307)<br>GND =&gt; GND<br>VCC =&gt; 5V<br>SDA =&gt; GPIO 21 (I2C SDA)<br>SCL =&gt; GPIO 22 (I2C SCL)<\/li>\n\n\n\n<li>Relay Pompa Vakum<br>Signal =&gt; GPIO 19 (RELAY_VACUUM)<\/li>\n\n\n\n<li>LED Indikator Red (Proses Vakum)<br>Anode (+)=&gt; GPIO 4 (LED_RED)<\/li>\n\n\n\n<li>LED Indikator Green (Kondisi Ideal)<br>Anode (+)=&gt; GPIO 2 (LED_GREEN)<\/li>\n\n\n\n<li>Buzzer Alarm<br>Positive => GPIO 13 (BUZZER_PIN)<\/li>\n<\/ul>\n\n\n\n<p><strong>List Virtual Pin:<\/strong><\/p>\n\n\n\n<ul>\n<li>V0 =&gt; Read Humidity (%) &#8211; Datastream Nilai Kelembapan Sensor DHT22<\/li>\n\n\n\n<li>V1 =&gt; Read Temperature (\u00b0C) &#8211; Datastream Nilai Suhu Sensor DHT22<\/li>\n\n\n\n<li>V2 =&gt; Status Coffee Storage (String) &#8211; Menampilkan Status &#8220;IDEAL \/ KEDAP&#8221;, &#8220;VACUUMING\u2026&#8221;, atau &#8220;MANUAL VACUUM&#8221;<\/li>\n\n\n\n<li>V3 =&gt; Relay \/ Vacuum State (Integer 0-255) &#8211; Indikator Widget LED\/Gauge Status Pompa Vakum Aktif\/Mati<\/li>\n\n\n\n<li>V4 =&gt; Switch Manual Vacuum (Integer 0\/1) &#8211; Tombol Sakelar Kontrol Vakum Manual dari Aplikasi Blynk<\/li>\n\n\n\n<li>V5 =&gt; Status Resting Kopi (String) &#8211; Menampilkan Jumlah Hari Resting Kopi (Contoh: &#8220;Resting: 3 Hari&#8221;)<\/li>\n\n\n\n<li>V6 =&gt; Button Reset Timer Resting (Integer Push 1) &#8211; Tombol Reset Hari Resting Kopi Kembali ke Nol<\/li>\n<\/ul>\n\n\n\n<p class=\"has-text-align-center\"><strong>Kode Arduino 1. Kode Program<\/strong><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ ============================= \r\n\/\/ ALFIAN CENTER \r\n\/\/ SUBSCRIBE \r\n\/\/ RASA KOPI LEBIH NIKMAT! Buat Smart Coffee Storage Auto Vacuum + RTC Resting Timer ESP32 Blynk IoT WOKWI\r\n\/\/ PROGRAM BAKAL AKU KIRIM DENGAN SYARAT DIBAWAH \r\n\/\/ LIKE 50, KOMEN 30 DAN * WAJIB SUBSCRIBE *\r\n\/\/ PROGRAM DIKIRIM VIA KOMENTAR \r\n\/\/ =============================\r\n\r\n#define BLYNK_TEMPLATE_ID \"TMPL6IQZvllFP\"\r\n#define BLYNK_TEMPLATE_NAME \"Coffee Storage V4\"\r\n#define BLYNK_AUTH_TOKEN \"7gSoVvxbWeQ5Zuarqqiwb_2X7z_zwAU3\"\r\n\r\n#include &lt;WiFi.h>\r\n#include &lt;BlynkSimpleEsp32.h>\r\n#include &lt;LiquidCrystal_I2C.h>\r\n#include &lt;RTClib.h>\r\n#include \"DHT.h\"\r\n\r\n#define DHTPIN 15\r\n#define DHTTYPE DHT22\r\n\r\n#define RELAY_VACUUM 19\r\n#define LED_GREEN 2\r\n#define LED_RED 4\r\n#define BUZZER_PIN 13\r\n\r\nchar auth&#91;] = BLYNK_AUTH_TOKEN;\r\nchar ssid&#91;] = \"Wokwi-GUEST\";\r\nchar pass&#91;] = \"\";\r\n\r\nDHT dht(DHTPIN, DHTTYPE);\r\nRTC_DS1307 rtc;\r\nLiquidCrystal_I2C lcd(0x27, 16, 2);\r\nBlynkTimer timer;\r\n\r\nbool manualVacuumMode = false;\r\nbool isVacuumActive = false;\r\nunsigned long restStartUnix = 0; \/\/ Waktu awal simpan\/roast dalam Epoch\/Unix\r\n\r\nBLYNK_WRITE(V4) {\r\n  manualVacuumMode = param.asInt() == 1;\r\n}\r\n\r\n\/\/ Tombol V6 untuk reset hari resting ketika memasukkan biji kopi baru\r\nBLYNK_WRITE(V6) {\r\n  if (param.asInt() == 1) {\r\n    DateTime now = rtc.now();\r\n    restStartUnix = now.unixtime();\r\n    Blynk.logEvent(\"coffee_alert\", \"\ud83d\udd04 Timer Resting Kopi Direset! Perhitungan hari dimulai dari nol.\");\r\n  }\r\n}\r\n\r\nvoid checkCoffeeStorageV4() {\r\n  float hum = dht.readHumidity();\r\n  float temp = dht.readTemperature();\r\n  DateTime now = rtc.now();\r\n\r\n  if (isnan(hum) || isnan(temp)) {\r\n    lcd.setCursor(0, 0);\r\n    lcd.print(\"Sensor Error!!  \");\r\n    return;\r\n  }\r\n\r\n  \/\/ Set awal jika belum di-reset\r\n  if (restStartUnix == 0) {\r\n    restStartUnix = now.unixtime();\r\n  }\r\n\r\n  \/\/ Hitung berapa hari kopi sudah di-resting\r\n  unsigned long currentUnix = now.unixtime();\r\n  int daysResting = (currentUnix - restStartUnix) \/ 86400;\r\n\r\n  String restStatus = \"Resting: \" + String(daysResting) + \" Hari\";\r\n  String coffeeStatus = \"\";\r\n\r\n  \/\/ 1. LOGIKA KONTROL POMPA VAKUM\r\n  if (hum > 60.0 || manualVacuumMode) {\r\n    digitalWrite(RELAY_VACUUM, HIGH);\r\n    if (!isVacuumActive &amp;&amp; !manualVacuumMode) {\r\n      tone(BUZZER_PIN, 1000, 300);\r\n      Blynk.logEvent(\"coffee_alert\", \"\u26a0\ufe0f PERINGATAN! Kelembapan \" + String(hum, 1) + \"%. Auto Vacuum Aktif!\");\r\n    }\r\n    isVacuumActive = true;\r\n    coffeeStatus = manualVacuumMode ? \"MANUAL VACUUM\" : \"VACUUMING...\";\r\n  } \r\n  else if (hum &lt;= 55.0 &amp;&amp; !manualVacuumMode) {\r\n    digitalWrite(RELAY_VACUUM, LOW);\r\n    isVacuumActive = false;\r\n    coffeeStatus = \"IDEAL \/ KEDAP\";\r\n  } \r\n  else {\r\n    if (isVacuumActive) {\r\n      digitalWrite(RELAY_VACUUM, HIGH);\r\n      coffeeStatus = \"VACUUMING...\";\r\n    } else {\r\n      coffeeStatus = \"IDEAL \/ KEDAP\";\r\n    }\r\n  }\r\n\r\n  \/\/ Indikasi LED\r\n  if (isVacuumActive) {\r\n    digitalWrite(LED_RED, HIGH);\r\n    digitalWrite(LED_GREEN, LOW);\r\n  } else {\r\n    digitalWrite(LED_RED, LOW);\r\n    digitalWrite(LED_GREEN, HIGH);\r\n  }\r\n\r\n  \/\/ 2. UPDATE DATA KE BLYNK IOT\r\n  Blynk.virtualWrite(V0, hum);\r\n  Blynk.virtualWrite(V1, temp);\r\n  Blynk.virtualWrite(V2, coffeeStatus);\r\n  Blynk.virtualWrite(V3, digitalRead(RELAY_VACUUM) ? 255 : 0);\r\n  Blynk.virtualWrite(V5, restStatus);\r\n\r\n  \/\/ 3. UPDATE DISPLAY LCD 16x2\r\n  lcd.setCursor(0, 0);\r\n  lcd.print(\"H:\"); lcd.print(hum, 0); lcd.print(\"% \");\r\n  lcd.print(\"D:\"); lcd.print(daysResting); lcd.print(\"Hari \");\r\n  lcd.print(now.hour() &lt; 10 ? \"0\" : \"\"); lcd.print(now.hour()); lcd.print(\":\");\r\n  lcd.print(now.minute() &lt; 10 ? \"0\" : \"\"); lcd.print(now.minute());\r\n\r\n  lcd.setCursor(0, 1);\r\n  lcd.print(\"ST:\"); lcd.print(coffeeStatus); lcd.print(\"        \");\r\n}\r\n\r\nvoid setup() {\r\n  Serial.begin(115200);\r\n\r\n  pinMode(RELAY_VACUUM, OUTPUT);\r\n  pinMode(LED_GREEN, OUTPUT);\r\n  pinMode(LED_RED, OUTPUT);\r\n  pinMode(BUZZER_PIN, OUTPUT);\r\n\r\n  digitalWrite(RELAY_VACUUM, LOW);\r\n\r\n  dht.begin();\r\n  lcd.init();\r\n  lcd.backlight();\r\n\r\n  if (!rtc.begin()) {\r\n    lcd.print(\"RTC Error!\");\r\n    while (1);\r\n  }\r\n\r\n  \/\/ Jika RTC kehilangan daya, atur ke waktu kompilasi\r\n  if (!rtc.isrunning()) {\r\n    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));\r\n  }\r\n\r\n  lcd.print(\"Smart Coffee V4\");\r\n  lcd.setCursor(0, 1);\r\n  lcd.print(\"Vacuum + RTC    \");\r\n  delay(1500);\r\n\r\n  Blynk.begin(auth, ssid, pass);\r\n  lcd.clear();\r\n\r\n  timer.setInterval(2000L, checkCoffeeStorageV4);\r\n}\r\n\r\nvoid loop() {\r\n  Blynk.run();\r\n  timer.run();\r\n}<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.youtube.com\/watch?v=Oo1m1JzOPyk&amp;lc=UgzMvsTxDvXednkUHH54AaABAg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"575\" src=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-185018-1024x575.png\" alt=\"\" class=\"wp-image-479\" srcset=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-185018-1024x575.png 1024w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-185018-300x169.png 300w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-185018-768x432.png 768w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-185018-1536x863.png 1536w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/09\/Screenshot-2026-09-01-185018-2048x1151.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><strong>Video 1. Video tutorial pembuatan<\/strong><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">TAG:<\/h1>\n\n\n\n<p>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&#215;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<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#215;2 I2C, serta platform Blynk IoT pada software simulasi WOKWI. Skematik rangkaian ditunjukkan pada Gambar 1, program Arduino pada&#8230;<\/p>\n","protected":false},"author":3,"featured_media":479,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/477"}],"collection":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=477"}],"version-history":[{"count":1,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/477\/revisions"}],"predecessor-version":[{"id":480,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/477\/revisions\/480"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/media\/479"}],"wp:attachment":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=477"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=477"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=477"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}