{"id":615,"date":"2026-11-04T11:27:00","date_gmt":"2026-11-04T11:27:00","guid":{"rendered":"https:\/\/kuliahelektro.org\/?p=615"},"modified":"2026-11-04T11:27:01","modified_gmt":"2026-11-04T11:27:01","slug":"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","status":"publish","type":"post","link":"https:\/\/kuliahelektro.org\/?p=615","title":{"rendered":"Tutorial ESP32: Cara Membuat Tempat Penyimpanan Kopi Pintar (Smart Coffee Storage) dengan Sistem Auto Vacuum, Sensor Timbangan Load Cell HX711, Sensor DHT22, &amp; Blynk IoT pada WOKWI"},"content":{"rendered":"\n<p>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&#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 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.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.youtube.com\/watch?v=BEMWaGjehNs&amp;lc=Ugyq2jS-H0GKZjV_eR14AaABAg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"817\" src=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-2-1024x817.png\" alt=\"\" class=\"wp-image-617\" style=\"aspect-ratio:1.2530120481927711;width:508px;height:auto\" srcset=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-2-1024x817.png 1024w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-2-300x239.png 300w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-2-768x613.png 768w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-2-500x400.png 500w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-2.png 1040w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/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>Sensor Suhu &amp; Kelembapan (DHT22)<br>VCC =&gt; 3.3V \/ 5V<br>GND =&gt; GND<br>Data =&gt; GPIO 15 (DHTPIN)<\/li>\n\n\n\n<li>Modul Timbangan Load Cell HX711<br>DT (Data) =&gt; GPIO 16 (HX711_DT)<br>SCK (Clock) =&gt; GPIO 4 (HX711_SCK)<br>VCC =&gt; 5V \/ 3.3V<br>GND =&gt; GND<\/li>\n\n\n\n<li>Display 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>Aktuator Relay Pompa Vakum, Indikator LED &amp; Buzzer Alarm<br>Relay Vacuum Pump (RELAY_VACUUM) =&gt; GPIO 19<br>LED Green (Indikator Normal \/ Aman) =&gt; GPIO 2 (LED_GREEN)<br>LED Red (Indikator Vacuum \/ Warning) =&gt; GPIO 12 (LED_RED)<br>Buzzer Alarm Peringatan =&gt; 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; Kelembapan Udara (% RH) &#8211; Datastream Grafik Real-Time Tingkat Kelembapan di Dalam Tabung dari Sensor DHT22<\/li>\n\n\n\n<li>V1 =&gt; Temperatur (\u00b0C) &#8211; Datastream Grafik Real-Time Suhu Ruang Penyimpanan dari Sensor DHT22<\/li>\n\n\n\n<li>V2 =&gt; Status Sistem Kopi (String) &#8211; Menampilkan Status Operasional (&#8220;IDEAL \/ KEDAP&#8221;, &#8220;VACUUMING\u2026&#8221;, atau &#8220;MANUAL VACUUM&#8221;)<\/li>\n\n\n\n<li>V3 =&gt; Pompa Vakum Status (Integer 0\/255) &#8211; Indikator Widget LED Status Pompa Vakum Aktif\/Mati<\/li>\n\n\n\n<li>V4 =&gt; Manual Vacuum Switch (Integer 0\/1) &#8211; Sakelar Tombol Kontrol Paksa Vacuum dari Aplikasi Blynk<\/li>\n\n\n\n<li>V5 =&gt; Berat Stok Kopi (Gram) &#8211; Datastream Widget Gauge \/ Angka Berat Sisa Biji Kopi dari Sensor HX711<\/li>\n\n\n\n<li>V6 =&gt; Tombol Reset Tare (Integer Push 1) &#8211; Sakelar Tombol Blynk untuk Melakukan Tare \/ Menyetel Timbangan ke 0 Gram<\/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\/\/ GAK AKAN KEHABISAN KOPI! Buat Smart Coffee Storage Auto Vacuum + Timbangan LOAD CELL HX711 Blynk IoT WOKWI V5\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 \"TMPL6xsQRToHA\"\r\n#define BLYNK_TEMPLATE_NAME \"COFFEE STORAGE V5\"\r\n#define BLYNK_AUTH_TOKEN \"DODpQTDmlXGlPJ6Aulxgf1l_kVbHw50t\"\r\n\r\n#include &lt;WiFi.h>\r\n#include &lt;BlynkSimpleEsp32.h>\r\n#include &lt;LiquidCrystal_I2C.h>\r\n#include \"DHT.h\"\r\n#include \"HX711.h\"\r\n\r\n#define DHTPIN 15\r\n#define DHTTYPE DHT22\r\n\r\n#define HX711_DT  16\r\n#define HX711_SCK 4\r\n\r\n#define RELAY_VACUUM 19\r\n#define LED_GREEN 2\r\n#define LED_RED 12\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\nHX711 scale;\r\nLiquidCrystal_I2C lcd(0x27, 16, 2);\r\nBlynkTimer timer;\r\n\r\nbool manualVacuumMode = false;\r\nbool isVacuumActive = false;\r\n\r\n\/\/ Faktor Skala Standar untuk Wokwi HX711\r\nfloat calibrationFactor = 420.0; \r\n\r\nBLYNK_WRITE(V4) {\r\n  manualVacuumMode = param.asInt() == 1;\r\n}\r\n\r\n\/\/ Tombol Tare \/ Reset Berat Nol dari Blynk\r\nBLYNK_WRITE(V6) {\r\n  if (param.asInt() == 1) {\r\n    scale.tare();\r\n    Blynk.logEvent(\"coffee_alert\", \"\u2696\ufe0f Timbangan Direset! Nilai Berat Diatur ke 0 Gram.\");\r\n  }\r\n}\r\n\r\nvoid checkCoffeeStorageV5() {\r\n  float hum = dht.readHumidity();\r\n  float temp = dht.readTemperature();\r\n  float weight = scale.get_units(5); \/\/ Ambil rata-rata 5 pembacaan\r\n\r\n  if (weight &lt; 0) weight = 0; \/\/ Cegah angka minus akibat toleransi sensor\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  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  \/\/ LOGIKA ALARM STOK KOPI MENIPIS (&lt; 50 Gram)\r\n  if (weight &lt; 50.0 &amp;&amp; weight > 0) {\r\n    tone(BUZZER_PIN, 2000, 100);\r\n  }\r\n\r\n  \/\/ Indikasi LED\r\n  if (isVacuumActive || weight &lt; 50.0) {\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, weight); \/\/ Data Berat dalam Gram\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(\"W:\"); lcd.print(weight, 0); lcd.print(\"g    \");\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  \/\/ Inisialisasi Modul HX711\r\n  scale.begin(HX711_DT, HX711_SCK);\r\n  scale.set_scale(calibrationFactor);\r\n  scale.tare(); \/\/ Zero-out scale at startup\r\n\r\n  lcd.print(\"Smart Coffee V5\");\r\n  lcd.setCursor(0, 1);\r\n  lcd.print(\"Vacuum + Scale \");\r\n  delay(1500);\r\n\r\n  Blynk.begin(auth, ssid, pass);\r\n  lcd.clear();\r\n\r\n  timer.setInterval(2000L, checkCoffeeStorageV5);\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=BEMWaGjehNs&amp;lc=Ugyq2jS-H0GKZjV_eR14AaABAg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-1-1024x576.png\" alt=\"\" class=\"wp-image-616\" srcset=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-1-1024x576.png 1024w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-1-300x169.png 300w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-1-768x432.png 768w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-1-1536x864.png 1536w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-1-2048x1152.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 class=\"has-text-align-left\">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<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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&#215;2 I2C, serta platform Blynk IoT pada software simulasi WOKWI. Skematik&#8230;<\/p>\n","protected":false},"author":3,"featured_media":616,"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\/615"}],"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=615"}],"version-history":[{"count":1,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/615\/revisions"}],"predecessor-version":[{"id":618,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/615\/revisions\/618"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/media\/616"}],"wp:attachment":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=615"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=615"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=615"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}