{"id":585,"date":"2026-10-26T06:40:44","date_gmt":"2026-10-26T06:40:44","guid":{"rendered":"https:\/\/kuliahelektro.org\/?p=585"},"modified":"2026-10-26T06:40:45","modified_gmt":"2026-10-26T06:40:45","slug":"tutorial-esp32-cara-membuat-sistem-smart-greenhouse-jamur-tiram-dengan-monitoring-level-tangki-air-sensor-cahaya-ldr-lux-sprayer-otomatis-blynk-iot-pada-wokwi","status":"publish","type":"post","link":"https:\/\/kuliahelektro.org\/?p=585","title":{"rendered":"Tutorial ESP32: Cara Membuat Sistem Smart Greenhouse Jamur Tiram dengan Monitoring Level Tangki Air, Sensor Cahaya LDR (Lux), Sprayer Otomatis, &amp; Blynk IoT pada WOKWI"},"content":{"rendered":"\n<p>Pada bagian ini akan dibahas pembuatan sistem otomatisasi kumbung jamur tiram pintar (Smart Mushroom Cultivation System V3) berbasis mikrokontroler ESP32, sensor suhu dan kelembapan DHT22, sensor cahaya LDR (untuk pemantauan intensitas cahaya Lux), sensor ultrasonik HC-SR04 (untuk mengukur persentase level air tangki), relay pompa sprayer, relay kipas exhaust, buzzer alarm peringatan, indikator LED status, 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 kelembapan udara secara presisi (idealnya 70% &#8211; 80% RH) dan suhu ruang (&lt; 28\u00b0C), melindungi pompa dari kerusakan akibat tangki kosong (proteksi level air &lt;= 15%), serta mendeteksi paparan cahaya berlebih yang berbahaya bagi pertumbuhan jamur tiram.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.youtube.com\/watch?v=MSUQfcIL9EE&amp;lc=UgxwwDTHOyiQWVaTL5Z4AaABAg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1213\" height=\"682\" src=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-edited.png\" alt=\"\" class=\"wp-image-588\" srcset=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-edited.png 1213w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-edited-300x169.png 300w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-edited-1024x576.png 1024w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-edited-768x432.png 768w\" sizes=\"(max-width: 1213px) 100vw, 1213px\" \/><\/a><\/figure>\n\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>Sensor Ultrasonik HC-SR04 (Level Tangki Air)<br>Trig Pin =&gt; GPIO 5 (TRIG_PIN)<br>Echo Pin =&gt; GPIO 18 (ECHO_PIN)<br>VCC =&gt; 5V \/ 3.3V<br>GND =&gt; GND<\/li>\n\n\n\n<li>Sensor Cahaya (LDR)<br>Analog Output (AO) =&gt; GPIO 34 (LDR_PIN)<br>VCC =&gt; 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, Indikator LED &amp; Buzzer Alarm<br>LED Green (Indikator Sistem Aman) =&gt; GPIO 2 (LED_GREEN)<br>LED Red (Indikator Peringatan \/ Warning) =&gt; GPIO 4 (LED_RED)<br>SPRAYER_PIN (Relay Pompa Pelembap Jamur) =&gt; GPIO 19 (SPRAYER_PIN)<br>FAN_PIN (Relay Kipas Sirkulasi Udara) =&gt; GPIO 23 (FAN_PIN)<br>BUZZER_PIN (Alarm Peringatan Darurat) =&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; Humidity (% RH) &#8211; Datastream Grafik Real-Time Nilai Kelembapan Udara Kumbung dari DHT22<\/li>\n\n\n\n<li>V1 =&gt; Temperature (\u00b0C) &#8211; Datastream Grafik Real-Time Nilai Suhu Ruangan dari DHT22<\/li>\n\n\n\n<li>V2 =&gt; System Status (String) &#8211; Menampilkan Status Operasional (&#8220;ALL SYSTEM SAFE&#8221;, &#8220;TANK EMPTY!&#8221;, &#8220;SPRAYING\u2026&#8221;, &#8220;HOT! FAN ON&#8221;, atau &#8220;TOO BRIGHT!&#8221;)<\/li>\n\n\n\n<li>V3 =&gt; Sprayer Pump Status (Integer 0\/1) &#8211; Indikator Widget LED Status Pompa Penyiram Aktif\/Mati<\/li>\n\n\n\n<li>V4 =&gt; Exhaust Fan Status (Integer 0\/1) &#8211; Indikator Widget LED Status Kipas Pendingin Aktif\/Mati<\/li>\n\n\n\n<li>V5 =&gt; Light Intensity (Float Lux) &#8211; Datastream Nilai Intensitas Cahaya Ruangan dari Sensor LDR<\/li>\n\n\n\n<li>V6 =&gt; Water Tank Level (Integer 0-100%) &#8211; Widget Gauge \/ Indikator Persentase Ketersediaan Air di Tangki<\/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\/\/ Monitoring Cahaya, Level Tangki &amp; Penyiram Otomatis Jamur Tiram 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 \"TMPL6fXpWRB9k\"\r\n#define BLYNK_TEMPLATE_NAME \"Smart Jamur\"\r\n#define BLYNK_AUTH_TOKEN \"Be4I88wqVI3V_O9ZEv203tcLntkOjzBI\"\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\r\n#define DHTPIN 15     \r\n#define DHTTYPE DHT22   \r\n#define TRIG_PIN 5     \/\/ Trig Ultrasonik Tangki Air\r\n#define ECHO_PIN 18    \/\/ Echo Ultrasonik Tangki Air\r\n#define LDR_PIN 34     \/\/ LDR di GPIO 34\r\n#define LED_GREEN 2    \r\n#define LED_RED 4      \r\n#define SPRAYER_PIN 19 \/\/ Relay Pompa Sprayer\r\n#define FAN_PIN 23     \/\/ Relay Kipas Exhaust\r\n#define BUZZER_PIN 13  \r\n\r\nconst float GAMMA = 0.7; \r\nconst float RL10 = 33.0; \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\nLiquidCrystal_I2C lcd(0x27, 16, 2);\r\nBlynkTimer timer;\r\n\r\n\/\/ Fungsi Membaca Sensor LDR Presisi (GPIO 34)\r\nfloat readLux() {\r\n  int analogValue = analogRead(LDR_PIN);\r\n  float voltage = analogValue \/ 4096.0 * 3.3;\r\n  if (voltage >= 3.29) voltage = 3.29; \r\n\r\n  float resistance = 2000.0 * voltage \/ (1.0 - voltage \/ 3.3);\r\n  float lux = pow(RL10 * 1e3 * pow(10, GAMMA) \/ resistance, (1.0 \/ GAMMA));\r\n  return lux;\r\n}\r\n\r\n\/\/ Fungsi Membaca Level Air Tangki (0-100%)\r\nint readWaterTank() {\r\n  digitalWrite(TRIG_PIN, LOW);\r\n  delayMicroseconds(2);\r\n  digitalWrite(TRIG_PIN, HIGH);\r\n  delayMicroseconds(10);\r\n  digitalWrite(TRIG_PIN, LOW);\r\n\r\n  long duration = pulseIn(ECHO_PIN, HIGH, 30000); \r\n  if (duration == 0) return 100;\r\n\r\n  int distance = duration * 0.034 \/ 2; \/\/ Jarak cm\r\n  int tankLevel = map(distance, 25, 5, 0, 100);\r\n  tankLevel = constrain(tankLevel, 0, 100);\r\n  return tankLevel;\r\n}\r\n\r\nvoid monitorGreenhouseV3() {\r\n  float h = dht.readHumidity();\r\n  float t = dht.readTemperature();\r\n  float lux = readLux();\r\n  int waterLevel = readWaterTank();\r\n\r\n  if (isnan(h) || isnan(t)) {\r\n    lcd.setCursor(0, 0);\r\n    lcd.print(\"Sensor Error!!  \");\r\n    return;\r\n  }\r\n\r\n  String statusStr = \"\";\r\n  bool isWarning = false;\r\n\r\n  \/\/ Debug Serial\r\n  Serial.print(\"Lux: \"); Serial.print(lux);\r\n  Serial.print(\" | Hum: \"); Serial.print(h);\r\n  Serial.print(\"% | Tank: \"); Serial.print(waterLevel); Serial.println(\"%\");\r\n\r\n  \/\/ LOGIKA SISTEM\r\n  \/\/ 1. Proteksi Tangki Air Kosong\r\n  if (waterLevel &lt;= 15) {\r\n    digitalWrite(SPRAYER_PIN, LOW); \/\/ Matikan pompa paksa\r\n    statusStr = \"TANK EMPTY!\";\r\n    isWarning = true;\r\n    tone(BUZZER_PIN, 1500, 200);\r\n    \/\/ PERBAIKAN: Menambahkan tanda petik dua (\") sebelum BAHAYA\r\n    Blynk.logEvent(\"tank_kosong\", \"BAHAYA! Tangki Air Habis (\" + String(waterLevel) + \"%). Pompa Dimatikan!\");\r\n  } \r\n  else {\r\n    \/\/ 2. Kontrol Penyiram Pelembab\r\n    if (h &lt; 70.0) {\r\n      digitalWrite(SPRAYER_PIN, HIGH);\r\n      statusStr = \"SPRAYING...\";\r\n      isWarning = true;\r\n    } else if (h >= 80.0) {\r\n      digitalWrite(SPRAYER_PIN, LOW);\r\n    }\r\n  }\r\n\r\n  \/\/ 3. Kontrol Kipas (Suhu)\r\n  if (t > 28.0) {\r\n    digitalWrite(FAN_PIN, HIGH);\r\n    if (statusStr == \"\") statusStr = \"HOT! FAN ON\";\r\n    isWarning = true;\r\n  } else {\r\n    digitalWrite(FAN_PIN, LOW);\r\n  }\r\n\r\n  \/\/ 4. Proteksi Intensitas Cahaya (> 50 Lux)\r\n  if (lux > 50.0) {\r\n    statusStr = \"TOO BRIGHT!\";\r\n    isWarning = true;\r\n    tone(BUZZER_PIN, 2000, 100);\r\n  } \r\n  \r\n  if (!isWarning &amp;&amp; waterLevel > 15) {\r\n    statusStr = \"ALL SYSTEM SAFE\";\r\n    noTone(BUZZER_PIN);\r\n  }\r\n\r\n  \/\/ Indikator LED\r\n  if (isWarning) {\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  \/\/ Blynk Update\r\n  Blynk.virtualWrite(V0, h);\r\n  Blynk.virtualWrite(V1, t);\r\n  Blynk.virtualWrite(V2, statusStr);\r\n  Blynk.virtualWrite(V3, digitalRead(SPRAYER_PIN) ? 1 : 0);\r\n  Blynk.virtualWrite(V4, digitalRead(FAN_PIN) ? 1 : 0);\r\n  Blynk.virtualWrite(V5, lux);\r\n  Blynk.virtualWrite(V6, waterLevel);\r\n\r\n  \/\/ LCD Update\r\n  lcd.setCursor(0, 0);\r\n  lcd.print(\"H:\"); lcd.print(h, 0); lcd.print(\"% L:\"); lcd.print(lux, 0); lcd.print(\"Lx   \");\r\n\r\n  lcd.setCursor(0, 1);\r\n  lcd.print(\"ST:\");\r\n  lcd.print(statusStr);\r\n  lcd.print(\"    \");\r\n}\r\n\r\nvoid setup() {\r\n  Serial.begin(9600); \r\n\r\n  pinMode(LED_GREEN, OUTPUT);\r\n  pinMode(LED_RED, OUTPUT);\r\n  pinMode(SPRAYER_PIN, OUTPUT);\r\n  pinMode(FAN_PIN, OUTPUT);\r\n  pinMode(BUZZER_PIN, OUTPUT);\r\n  pinMode(LDR_PIN, INPUT);\r\n  pinMode(TRIG_PIN, OUTPUT);\r\n  pinMode(ECHO_PIN, INPUT);\r\n\r\n  dht.begin();\r\n\r\n  lcd.init();\r\n  lcd.backlight();\r\n  lcd.print(\"Smart Mushroom\");\r\n  lcd.setCursor(0, 1);\r\n  lcd.print(\"V3 Tank &amp; Lux\");\r\n  delay(1500);\r\n\r\n  Blynk.begin(auth, ssid, pass);\r\n  lcd.clear();\r\n\r\n  timer.setInterval(500L, monitorGreenhouseV3);\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=MSUQfcIL9EE&amp;lc=UgxwwDTHOyiQWVaTL5Z4AaABAg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-1024x576.png\" alt=\"\" class=\"wp-image-587\" srcset=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-1024x576.png 1024w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-300x169.png 300w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-768x432.png 768w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-1-1536x864.png 1536w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/10\/Screenshot-2026-08-06-193157-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\">smart greenhouse jamur tiram, budidaya jamur otomatis esp32, pemantauan tangki air ultrasonik, ldr lux meter esp32, blynk iot smart mushroom, dht22 esp32 blynk, simulasi wokwi jamur tiram, tutorial esp32 blynk, iot pertanian modern, penyiram otomatis jamur blynk, relay sprayer esp32, relay fan exhaust esp32, sensor level air tangki esp32, lcd 16&#215;2 i2c esp32, blynk logevent tank kosong, kontrol suhu kelembapan jamur, tutorial blynk iot esp32, library dht sensor esp32, library liquidcrystal i2c, gpio 15 dht22 esp32, gpio 5 18 ultrasonik tangki, gpio 34 ldr lux esp32, gpio 2 4 led indikator, gpio 19 sprayer pump, gpio 23 fan exhaust, gpio 13 buzzer alarm, proyek iot esp32 smart agriculture, tutorial wokwi indonesia, simulasi iot kumbung jamur, pemantauan jamur jarak jauh, blynk app smart mushroom, datastream blynk dht22 ldr ultrasonik, virtual pin blynk jamur tiram, smart farming iot esp32, proyek teknik elektro iot, mekatronika pertanian modern, tugas akhir iot kumbung jamur, skripsi iot smart mushroom, ide proyek esp32 iot, skematik jamur tiram esp32, diagram rangkaian dht22 relay ultrasonik lcd, source code jamur tiram esp32, program arduino blynk mushroom, simulasi iot tanpa hardware, platform simulasi wokwi, wokwi esp32 smart greenhouse, blynk auth token esp32, pengontrol kumbung berbasis iot, telemetry data dht22 ldr tangki, proyek sains iot elektro, portofolio iot esp32, praktikum mikrokontroler esp32, modul esp32 wroom 32, pinout esp32 dht22 relay sensor, gpio esp32 sensor display, indikator status blynk, grafik lingkungan blynk, smart agriculture esp32, efisiensi budidaya jamur, panduan iot jamur esp32, belajar mikrokontroler online, simulator komponen elektronik, wokwi custom chip esp32, blynk iot platform agriculture, internet of things indonesia, iot smk pertanian, iot universitas teknik, prototipe kumbung jamur esp32, alat pengontrol kelembapan otomatis, iot smart farming, esp32 arduino ide blynk, tutorial iot pemula, proyek elektro smart agriculture, panduan lengkap wokwi blynk, sensor dht22 kelembapan akurat, sistem proteksi tangki kosong, logika kontrol sprayer kipas, notifikasi blynk logevent tank, sistem mikroklimat jamur tiram, otomatisasi pertanian modern, proyek mekatronika elektro, simulasi hardware smart mushroom, sistem kumbung jamur esp32, proyek iot populer, kodingan sprayer otomatis, sensor ultrasonik digital esp32, rangkaian relay dan ldr, tutorial mikrokontroler iot, wawasan teknik elektro, aplikasi iot smart farming, jamur tiram cerdas esp32, koding logika kelembapan 70 persen, pemantauan kumbung jamur real time, iot mushroom management system<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada bagian ini akan dibahas pembuatan sistem otomatisasi kumbung jamur tiram pintar (Smart Mushroom Cultivation System V3) berbasis mikrokontroler ESP32, sensor suhu dan kelembapan DHT22, sensor cahaya LDR (untuk pemantauan intensitas cahaya Lux), sensor ultrasonik HC-SR04 (untuk mengukur persentase level air tangki), relay pompa sprayer, relay kipas exhaust, buzzer alarm peringatan, indikator LED status, layar LCD 16&#215;2 I2C, serta platform&#8230;<\/p>\n","protected":false},"author":3,"featured_media":587,"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\/585"}],"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=585"}],"version-history":[{"count":1,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/585\/revisions"}],"predecessor-version":[{"id":589,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/585\/revisions\/589"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/media\/587"}],"wp:attachment":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=585"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=585"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=585"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}