Senin, 14 September 2026

Simulasi Sistem Lampu Otomatis Berdasarkan Intensitas Cahaya Menggunakan ESP32 pada Wokwi

 Simulasi Sistem Lampu Otomatis Berdasarkan Intensitas Cahaya Menggunakan ESP32 pada Wokwi




Disusun Oleh:

Muhammad Adrian Vibrianto (24051204124)

Mohammad Rizqi Nova Triatmaja (24051204131)

Adhim Musafak (24051204191)

M. Faisal Alfiansyah (24051204205)



Dosen Pengampu:

Aditya Prapanca, S.T., M.Kom.






FAKULTAS TEKNIK

PROGRAM STUDI S1 TEKNIK INFORMATIKA

UNIVERSITAS NEGERI SURABAYA

2026

BAB I

PENDAHULUAN

1.1 Latar Belakang

Perkembangan teknologi mikrokontroler telah memberikan banyak kemudahan dalam pembuatan sistem elektronik yang dapat bekerja secara otomatis. Mikrokontroler dapat digunakan untuk menerima data dari sensor, mengolah data tersebut, kemudian menghasilkan keluaran sesuai dengan program yang telah dibuat. Salah satu penerapannya adalah sistem pencahayaan otomatis yang dapat menyesuaikan kondisi lampu berdasarkan keadaan lingkungan.

Penggunaan lampu secara manual terkadang menyebabkan lampu tetap menyala ketika kondisi lingkungan sudah cukup terang. Hal tersebut dapat menyebabkan penggunaan energi listrik menjadi kurang efisien. Oleh karena itu, diperlukan suatu sistem yang dapat mengatur kondisi lampu secara otomatis berdasarkan intensitas cahaya lingkungan. Beberapa penelitian telah menerapkan sensor LDR dan mikrokontroler ESP32 untuk mengendalikan lampu secara otomatis berdasarkan kondisi cahaya.

Pada proyek ini digunakan ESP32 sebagai mikrokontroler dan LDR (Light Dependent Resistor) sebagai sensor untuk mendeteksi intensitas cahaya. Ketika kondisi lingkungan gelap, ESP32 akan memberikan perintah untuk menyalakan lampu. Sebaliknya, ketika kondisi lingkungan terang, lampu akan dimatikan. ESP32 sendiri merupakan mikrokontroler yang mendukung berbagai fitur dan banyak digunakan dalam pengembangan sistem IoT.

Sebelum diterapkan pada perangkat keras secara langsung, sistem dapat dirancang dan diuji menggunakan Wokwi. Wokwi merupakan simulator elektronik berbasis web yang dapat digunakan untuk melakukan simulasi berbagai mikrokontroler, termasuk ESP32, beserta komponen elektronik secara virtual. Dengan menggunakan simulasi, rangkaian dan program dapat diuji terlebih dahulu tanpa memerlukan perangkat keras secara langsung.

Berdasarkan hal tersebut, dibuat simulasi sistem lampu otomatis menggunakan ESP32 dan sensor LDR pada Wokwi. Proyek ini diharapkan dapat memberikan pemahaman mengenai cara kerja mikrokontroler dalam membaca input sensor, memproses data, dan mengendalikan output secara otomatis.

1.2 Rumusan Masalah

Berdasarkan latar belakang yang telah dijelaskan, rumusan masalah dalam proyek ini adalah:

  1. Bagaimana merancang sistem lampu otomatis menggunakan ESP32 dan sensor LDR?

  2. Bagaimana melakukan simulasi dan pengujian sistem lampu otomatis menggunakan Wokwi?

1.3 Tujuan Laporan

Tujuan dari pembuatan proyek ini adalah:

  1. Mengetahui proses perancangan sistem lampu otomatis menggunakan ESP32 dan sensor LDR.

  2. Memahami cara ESP32 mengolah data dari sensor LDR untuk mengendalikan lampu.

  3. Melakukan simulasi dan pengujian sistem menggunakan Wokwi.

1.4 Manfaat Penulisan

Manfaat yang diperoleh dari pembuatan proyek ini adalah:

  1. Menambah pemahaman mengenai penggunaan ESP32 sebagai mikrokontroler.

  2. Memahami penggunaan sensor LDR sebagai perangkat input.

  3. Melatih kemampuan dalam membuat program dan rangkaian mikrokontroler.

  4. Menambah pengalaman dalam melakukan simulasi sistem elektronik menggunakan Wokwi.


BAB II

TINJAUAN PUSTAKA 

2.1 Dasar Teori 

2.1.1 Internet of Things (IoT) dan Otomatisasi 

Internet of Things (IoT) merupakan konsep integrasi antara perangkat keras, sensor, dan sistem komputasi yang terhubung untuk mengumpulkan serta mengolah data secara otomatis. Penggunaan teknologi IoT pada sistem pencahayaan (smart lighting) terbukti efektif meningkatkan efisiensi penggunaan energi listrik (Haigis, 2025). Melalui penerapan otomatisasi, kelalaian manusia dalam mematikan lampu saat kondisi sekitar sudah terang dapat dihindari, sehingga pemborosan energi dapat dikurangi (Prihanto et al., 2024; Wafiudin et al., 2026). 

2.1.2 Sensor Analog dan Pembacaan ADC pada Mikrokontroler 

Mikrokontroler beroperasi dengan sinyal digital, sementara sensor di lingkungan fisik menghasilkan sinyal analog berupa variasi tegangan. Untuk mengolah data dari sensor analog, digunakan fitur Analog-to-Digital Converter (ADC) internal pada mikrokontroler. Modul ADC mengubah besaran tegangan analog yang diterima dari sensor menjadi nilai digital terkuantisasi (0–4095 pada resolusi 12-bit) yang selanjutnya digunakan oleh logika program untuk mengendalikan aktuator (Puspitasari, 2022). 

2.2 Komponen dan Perangkat Utama 

2.2.1 Mikrokontroler ESP32 

ESP32 merupakan sistem dalam keping (System on Chip / SoC) berkinerja tinggi yang dikembangkan oleh Espressif Systems (Wokwi, 2026a). Mikrokontroler ini dilengkapi dengan antarmuka komunikasi nirkabel (Wi-Fi dan Bluetooth), pin General Purpose Input/Output (GPIO), serta modul ADC internal. ESP32 banyak digunakan dalam pengembangan sistem kendali berbasis IoT dan penerangan otomatis karena keandalan pemrosesan data dan fleksibilitas pin masukan/keluarannya (Wafiudin et al., 2026). 


2.2.2 Sensor Cahaya LDR (Light Dependent Resistor) 

Light Dependent Resistor (LDR) adalah resistor variabel yang nilai resistansinya berubah secara berbanding terbalik terhadap intensitas cahaya yang diterima (Haigis, 2025). Pada kondisi lingkungan gelap, nilai hambatan LDR akan meningkat secara signifikan, sedangkan pada kondisi terang hambatannya akan menurun. Perubahan nilai hambatan ini menghasilkan luaran tegangan analog yang dibaca oleh pin ADC ESP32 untuk menentukan batasan (threshold) menyala atau padamnya lampu secara otomatis (Puspitasari, 2022). 


2.2.3 LED (Light Emitting Diode) 

LED (Light Emitting Diode) difungsikan sebagai aktuator atau komponen luaran (output) utama pada sistem ini. LED akan memancarkan cahaya saat menerima sinyal logika HIGH dari pin GPIO ESP32 (saat sensor membaca kondisi gelap) dan akan padam ketika menerima sinyal LOW (saat sensor membaca kondisi terang). 

2.2.4 Simulator Wokwi

Wokwi merupakan platform simulator elektronik dan mikrokontroler berbasis web yang mendukung berbagai peranti keras, termasuk ESP32 beserta komponen pendukungnya (Wokwi, 2026b). Simulator ini memungkinkan perancangan tata letak rangkaian, pengkabelan, serta pengujian logika program (source code) secara virtual (real-time) sebelum diimplementasikan pada perangkat keras fisik (Haigis, 2025).


BAB III

PEMBAHASAN

3.1 Penjelasan Simulasi

Simulasi sistem lampu otomatis ini dilakukan menggunakan platform Wokwi berbasis web. Sistem dirancang untuk membaca tingkat intensitas cahaya linkungan menggunakan sensor LDR secara virtual. Mikrokontroler ESP32 bertindak sebagai pusat pemrosesan yang akan menerima masukan data analog dari sensor LDR. Data berupa luaran tegangan analog tersebut kemudian dikonversi menjadi nilai digital (0-4095) menggunakan fitur Analog-to-Digital Converter (ADC) internal pada ESP32.


Berdasarkan nilai pembacaan digital tersebut, logika program akan menentukan batasan (threshold) menyala atau padamnya lampu. Jika nilai hambatan LDR menunjukkan kondisi lingkungan gelap, ESP32 akan memberikan perintah dengan mengirimkan sinyal logika HIGH untuk menyalakan lampu LED. Sebaliknya, jika sensor mendeteksi kondisi terang, tegangan akan menyesuaikan dan ESP32 akan mengirimkan sinyal LOW sehingga LED padam secara otomatis.

3.2 Konfigurasi Rangkaian

Pada simulasi Wokwi, perancangan tata letak dan pengkabelan dilakukan secara virtual sebelum diterapkan pada peranti fisik. Komponen-komponen pendukung dihubungkan melalui pin antarmuka General Purpose Input/Output (GPIO) pada ESP32. Berikut adalah rincian konfigurasi rangkaian yang digunakan:

  1. Sensor Cahaya LDR (Input):

Pin VCC dihubungkan ke sumber tegangan 3.3V pada ESP32.

Pin GND dihubungkan ke pin GND pada ESP32.

Pin AO (Analog Output) dihubungkan ke salah satu pin ADC pada ESP32 (misalnya pin GPIO 340) agar modul ADC dapa mengubah besaran tegangan analog menjadi nilai digital

  1. Lampu LED (Output):

Kaki Anoda (Positif) LED yang difungsikan sebagai aktuator utama dihubungkan ke pin digital output ESP32 (misalnya pin GPIO 2). Catatan: Biasanya ditambahkan resistor 220 Ohm secara seri untuk membatasi arus.

Kaki Katoda (Negatif) LED dihubungkan ke pin GND pada ESP32.

3.3 Program

  

const int pinLDR = 34; // Pin ADC ESP32 untuk LDR

const int pinLED = 2;  // Pin GPIO ESP32 untuk LED


// Batas threshold intensitas cahaya

const int threshold = 2000; 


void setup() {

  Serial.begin(115200);

  pinMode(pinLED, OUTPUT);

  pinMode(pinLDR, INPUT);

}


void loop() {

  // Membaca nilai ADC 12-bit (0 - 4095) dari sensor LDR

  int nilaiLDR = analogRead(pinLDR);

  

  // Menampilkan hasil pembacaan pada Serial Monitor

  Serial.print("Nilai Pembacaan LDR: ");

  Serial.println(nilaiLDR);


  // Logika kontrol otomatis

  if (nilaiLDR > threshold) {

    digitalWrite(pinLED, HIGH); // Lingkungan Gelap -> Lampu Menyala

    Serial.println("Kondisi: GELAP | Status Lampu: MENYALA");

  } else {

    digitalWrite(pinLED, LOW);  // Lingkungan Terang -> Lampu Padam

    Serial.println("Kondisi: TERANG | Status Lampu: PADAM");

  }


  delay(1000); // Penundaan pembacaan 1 detik

}

3.4 Hasil Pengujian

           Pengujian dilakukan melalui simulator Wokwi dengan mengondisikan intensitas cahaya virtual pada modul sensor LDR. Fitur Analog-to-Digital Converter (ADC) 12-bit pada ESP32 membaca masukan tegangan analog dan mengonversinya menjadi nilai digital (0–4095). Batas nilai ambang (threshold) yang ditentukan pada logika program adalah 2000.

Hasil pengujian berdasarkan simulasi aktual ditunjukkan pada tabel berikut:

Tabel 3.1 Data Hasil Pengujian Pembacaan Sensor LDR dan Status LED

Berdasarkan hasil pengujian yang dieksekusi secara real-time

  1. Pengujian Kondisi Gelap:

Ketika slider cahaya diposisikan redup/gelap, pembacaan nilai ADC LDR berada pada angka 3591. Karena nilai 3591 > 2000, logika if terpenuhi sehingga ESP32 mengirimkan sinyal logika HIGH ke pin GPIO 2. Lampu LED secara otomatis 

menyala dan Serial Monitor menampilkan luaran Kondisi: GELAP | Status Lampu: MENYALA.

Contoh Gambar

  1. Pengujian Transisi & Kondisi Terang:

Ketika slider cahaya mulai digeser ke arah terang, pembacaan ADC turun ke angka 1880 lalu stabil di angka 344. Karena nilai pembacaan berada di bawah threshold (1880 < 2000 dan 344  < 2000), ESP32 langsung merespons dengan mengirimkan sinyal logika LOW ke pin GPIO 2. Lampu LED berada dalam kondisi padam dan Serial Monitor menampilkan luaran Kondisi: TERANG | Status Lampu: PADAM.


Contoh Gambar



BAB IV

PENUTUP

4.1 Kesimpulan

      Berdasarkan perancangan, pembuatan program, dan pengujian simulasi sistem lampu otomatis menggunakan ESP32 pada platform Wokwi, dapat ditarik kesimpulan sebagai berikut:

  1. Perancangan sistem berhasil diintegrasikan pada Wokwi dengan menghubungkan sensor LDR ke pin ADC (GPIO 34) serta LED ke pin digital (GPIO 2) ESP32 menggunakan resistor pembatas arus 220 Ohm.

  2. ESP32 mampu mengolah masukan analog dari sensor LDR menjadi data kuantisasi digital 12-bit secara akurat. Data tersebut dibandingkan dengan batas threshold 2000 untuk mengeksekusi kontrol lampu secara otomatis.

  3. Hasil simulasi membuktikan sistem bekerja secara akurat dan responsif, di mana pembacaan ADC bernilai 3591 menghasilkan kondisi LED menyala (gelap), sedangkan pembacaan ADC bernilai 1880 hingga 344 menghasilkan kondisi LED padam (terang).

4.2 Saran

       Beberapa saran yang dapat diberikan untuk pengkayaan proyek ini di masa depan antara lain:

  1. Pengembangan Berbasis IoT: Mengintegrasikan fitur Wi-Fi pada ESP32 agar data pembacaan intensitas cahaya dapat dipantau secara real-time melalui dashboard IoT (seperti Blynk atau MQTT).

  2. Penerapan Algoritma Histeresis: Menambahkan rentang batas atas dan batas bawah (hysteresis threshold) dalam kode program guna mencegah kondisi lampu berkedip (flicker) saat intensitas cahaya berada tepat di nilai batas.

  3. Implementasi Perangkat Keras Fisik: Menguji rancangan simulasi ini menggunakan komponen fisik (hardware prototype) dengan memanfaatkan modul relay untuk mengendalikan beban lampu AC 220 v


DAFTAR PUSTAKA

Haigis, R. F. (2025). Smart light system berbasis sensor cahaya dengan teknologi IoT. JATI (Jurnal Mahasiswa Teknik Informatika), 9(3), 5057–5062. https://doi.org/10.36040/jati.v9i3.13588

Prihanto, A., Prapanca, A., & Alit, R. (2024). Adaptive smart lighting dengan memanfaatkan teknologi berbasis Internet of Things (IoT). Jurnal Ilmu Pendidikan dan Teknologi Pembelajaran, 4(1), 22–29. https://journal.unesa.ac.id/index.php/jieet/article/view/28077

Puspitasari, D. (2022). Aplikasi sensor cahaya LDR dalam sistem otomatisasi lampu. Jurnal Teknologi Informasi, 5(2), 112–119.

Wafiudin, M. I., Solichan, A., & Kiswanto, A. (2026). Sistem SOLART berbasis ESP32 untuk kendali otomatis lampu dan tirai berdasarkan intensitas cahaya. Jurnal Teknik Informatika dan Teknologi Informasi, 6(2). https://doi.org/10.55606/jutiti.v6i2.7623

Wokwi. (2026a). ESP32 simulation. Wokwi Documentation.

Wokwi. (2026b). Welcome to Wokwi. Wokwi Documentation.



Sistem Deteksi Bahaya Industri dan Keselamatan Kerja (Smart Industrial Safety & Hazard Monitoring System) Berbasis ESP32 dengan Simulasi Wokwi dan Cloud ThingSpeak

 LAPORAN PRAKTIKUM INTERNET OF THINGS (IOT)


Sistem Deteksi Bahaya Industri dan Keselamatan Kerja
(Smart Industrial Safety & Hazard Monitoring System)
Berbasis ESP32 dengan Simulasi Wokwi dan Cloud ThingSpeak

Dosen Pengampu:

Aditya Prapanca, S.T., M.Kom.



Disusun Oleh:
1. Indina Anisa Zahrah (24051204213)

2. Alfan Mahardhika Yuda Prajakusuma (24051204182)

3. Dhani Rakha Aditya Rahma (24051204113)

4. Bee Nayaka Athalah Muchamad (24051204125)



PROGRAM STUDI S1 TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI SURABAYA
2026


BAB 1 PENDAHULUAN

1.1 Latar Belakang

Integrasi teknologi sistem tertanam (embedded system) dan komputasi cerdas telah menjadi fondasi utama dalam modernisasi sistem keselamatan kerja industri dan pemantauan lingkungan. Pada fasilitas pabrik, laboratorium kimia, maupun area manufaktur, deviasi ekstrem pada parameter fisis lingkungan seperti peningkatan suhu secara tiba-tiba (overheating) dan kebocoran gas beracun atau mudah terbakar berpotensi menimbulkan bahaya fatal, ledakan, serta kerusakan infrastruktur. Pengawasan manual secara periodik dinilai kurang efektif, lambat merespons keadaan darurat, dan membahayakan keselamatan personel penanggung jawab.

Untuk mengatasi permasalahan tersebut, dibutuhkan instrumen pemantauan otomatis berteknologi Internet of Things (IoT) yang beroperasi secara real-time. Mikrokontroler ESP32 dengan arsitektur dual-core Tensilica Xtensa 32-bit dan modul Wi-Fi terintegrasi menjadi pilihan ideal sebagai pusat pemroses data. Dengan menghubungkan sensor suhu digital DHT22 dan sensor gas analog MQ-2 (disimulasikan dengan p otensiometer), sistem dapat mengklasifikasikan kondisi keselamatan ke dalam tiga tingkatan hazard (Aman, Waspada, dan Bahaya).

Sistem ini menyajikan indikasi visual dan audio secara lokal melalui layar OLED SSD1306, alarm Buzzer, serta LED Tri-Color. Selain itu, data telemetri dikirimkan secara berkala ke platform cloud ThingSpeak melalui protokol HTTP GET request untuk memungkinkan pemantauan jarak jauh. Pengujian dilakukan melalui platform simulasi virtual Wokwi untuk memvalidasi kelayakan fungsional sistem sebelum diterapkan pada perangkat keras fisik.

1.2 Rumusan Masalah

  1. Bagaimana merancang skematik sirkuit dan pengkabelan (wiring architecture) yang mengintegrasikan ESP32, sensor DHT22, sensor gas analog, OLED SSD1306, alarm Buzzer, dan LED Tri-Color pada simulator Wokwi?

  2. Bagaimana membangun algoritma kendali kondisional 3-level hazard (Aman, Waspada, Bahaya) untuk merespons ancaman keselamatan kerja secara otomatis?

  3. Bagaimana mengonfigurasi komunikasi I2C pada OLED dan pengiriman data telemetri ke platform ThingSpeak Cloud menggunakan protokol HTTP GET request?

1.3 Tujuan Laporan

  1. Merancang dan memvalidasi sirkuit sistem deteksi bahaya industri berbasis ESP32 pada platform simulasi Wokwi.

  2. Mengembangkan firmware berbasis C++/Arduino IDE untuk mengolah data multi-sensor serta mengendalikan aktuator lokal (OLED, Buzzer, LED) secara akurat.

  3. Mengimplementasikan pengiriman data telemetri suhu, konsentrasi gas, dan level hazard ke server ThingSpeak Cloud secara berkala.

BAB 2 TINJAUAN PUSTAKA

2.1 Dasar Teori

2.1.1 Internet of Things (IoT) dan Mikrokontroler ESP32

Internet of Things (IoT) merupakan paradigma komputasi yang menghubungkan perangkat fisik bersensor dan beraktuator ke jaringan internet untuk bertukar data secara otomatis. Mikrokontroler ESP32 DevKit V1 berbasis System on a Chip (SoC) dipilih karena memiliki prosesor dual-core 32-bit, konektivitas Wi-Fi (802.11 b/g/n), serta modul Analog-to-Digital Converter (ADC) 12-bit beresolusi 0–4095 yang presisi untuk membaca sensor analog.

2.1.2 Sensor Suhu DHT22 dan Sensor Gas MQ-2

Sensor DHT22 (AM2302) adalah sensor digital presisi tinggi untuk mengukur suhu (-40°C hingga +80°C) dan kelembapan udara relatif (%RH) melalui antarmuka single-bus digital. Sensor gas MQ-2 mendeteksi gas mudah terbakar (LPG, propana, metana, asap) dengan luaran tegangan analog yang dikonversi oleh ADC ESP32 menjadi nilai persentase kepekatan gas (0–100%). Pada simulasi Wokwi, sensor gas direpresentasikan menggunakan modul potensiometer analog.

2.1.3 Display OLED SSD1306 dan Protokol I2C

Layar Organic Light-Emitting Diode (OLED) SSD1306 beresolusi 128x64 piksel menawarkan visualisasi data lokal dengan kontras tinggi dan konsumsi daya rendah. Layar ini berkomunikasi dengan ESP32 melalui protokol Inter-Integrated Circuit (I2C) yang hanya membutuhkan dua jalur komunikasi, yaitu SDA (Serial Data pada GPIO 21) dan SCL (Serial Clock pada GPIO 22) dengan alamat I2C 0x3C.

2.1.4 Cloud Telemetry ThingSpeak dan Wokwi Simulator

ThingSpeak adalah platform analitik IoT berbasis cloud dari MathWorks yang memungkinkan pengumpulan, visualisasi, dan analisis data sensor secara real-time via API Key menggunakan protokol HTTP GET request. Wokwi merupakan simulator sirkuit berbasis web yang memungkinkan perancangan, pemrograman, dan verifikasi alur kerja hardware virtual secara aman tanpa risiko kerusakan fisik.

2.2 Komponen dan Pemetaan Pin

Konfigurasi interkoneksi komponen hardware pada mikrokontroler ESP32 disajikan pada Tabel 2.1 berikut.

Nama Komponen

Pin Komponen

Pin GPIO ESP32

Jenis Sinyal & Fungsi

ESP32 DevKit V1

-

-

Mikrokontroler Utama & Client Wi-Fi

Sensor DHT22

DATA

GPIO 15

Input Digital (Suhu & Kelembapan)

Sensor Gas (MQ-2 / Pot)

SIG / A0

GPIO 34

Input Analog (ADC 12-bit Gas)

OLED SSD1306 (128x64)

SDA

GPIO 21

Komunikasi Serial I2C Data

OLED SSD1306 (128x64)

SCL

GPIO 22

Komunikasi Serial I2C Clock

Piezo Buzzer

Positive (+)

GPIO 27

Output PWM (Alarm Audio)

LED Hijau

Anoda (+)

GPIO 25

Output Digital (Indikator AMAN)

LED Kuning

Anoda (+)

GPIO 19

Output Digital (Indikator WASPADA)

LED Merah

Anoda (+)

GPIO 26

Output Digital (Indikator BAHAYA)


BAB 3 HASIL DAN PEMBAHASAN

3.1 Skema Rangkaian dan Cara Kerja Sistem

Sistem dirancang untuk bekerja secara otomatis dan kontinu melalui pemrosesan sinyal multi-sensor pada ESP32. Gambar 3.1 memperlihatkan diagram arsitektur sistem yang menjelaskan hubungan antarmuka hardware, mikrokontroler, dan layanan cloud.


Gambar 3.1. Diagram Arsitektur Smart Industrial Safety System

Cara Kerja Sistem secara Alur Logika:

  1. Inisialisasi Sistem: ESP32 menghubungkan Wi-Fi virtual Wokwi ('Wokwi-GUEST'), menginisialisasi layar OLED (0x3C), serta memulai sensor DHT22.

  2. Akuisisi Data: ESP32 membaca data suhu (°C) dari sensor DHT22 di GPIO 15 dan tegangan analog gas dari GPIO 34 yang dikonversi menjadi persentase (0–100%).

  3. Klasifikasi Level Hazard (Kondisional):

  1. Level AMAN (0): Suhu < 40°C DAN Gas < 30%. LED Hijau ON, Buzzer OFF, OLED menampilkan 'NORMAL'.

  2. Level WASPADA (1): Suhu 40°C–50°C ATAU Gas 30%–60%. LED Kuning ON, Buzzer Beep Intermiten, OLED 'WARNING'.

  3. Level BAHAYA (2): Suhu > 50°C ATAU Gas > 60%. LED Merah ON, Buzzer Siren Kontinu, OLED 'DANGER! EVAKUASI!'.

4 . Telemetri Cloud: Setiap 15 detik, ESP32 mengirimkan parameter Suhu (field1), Gas (field2), dan Hazard Level (field3) ke ThingSpeak Cloud via HTTP GET request.

3.2 Kode Program C++/Arduino ESP32

Berikut adalah implementasi kode program lengkap (sketch.ino) yang dijalankan pada simulator Wokwi:

#include <WiFi.h>
#include <HTTPClient.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DHT.h>

#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

#define DHTPIN 15
#define DHTTYPE DHT22
#define MQ2_GAS_PIN 34
#define BUZZER_PIN 27
#define LED_HIJAU 25
#define LED_KUNING 19
#define LED_MERAH 26

DHT dht(DHTPIN, DHTTYPE);

const char* ssid = "Wokwi-GUEST";
const char* password = "";
String apiKey = "KJ4WOEVXO7A8E7S3";
String serverName = "http://api.thingspeak.com/update";

unsigned long lastTime = 0;
unsigned long timerDelay = 15000;

void setup() {
  Serial.begin(115200);
  pinMode(MQ2_GAS_PIN, INPUT);
  pinMode(BUZZER_PIN, OUTPUT);
  pinMode(LED_HIJAU, OUTPUT);
  pinMode(LED_KUNING, OUTPUT);
  pinMode(LED_MERAH, OUTPUT);

  dht.begin();
  if (!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("OLED SSD1306 Gagal Inisialisasi"));
    for (;;);
  }

  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(10, 20);
  display.println("SAFETY SYSTEM");
  display.setCursor(10, 35);
  display.println("Connecting WiFi...");
  display.display();

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }

  display.clearDisplay();
  display.setCursor(10, 25);
  display.println("WiFi Terhubung!");
  display.display();
  delay(1000);
}

void loop() {
  float suhu = dht.readTemperature();
  float kelembapan = dht.readHumidity();
  int rawGas = analogRead(MQ2_GAS_PIN);
  int gasPercent = map(rawGas, 0, 4095, 0, 100);

  if (isnan(suhu) || isnan(kelembapan)) {
    Serial.println("Gagal membaca sensor DHT22!");
    return;
  }

  int hazardLevel = 0;
  if (suhu > 50.0 || gasPercent > 60) {
    hazardLevel = 2; // BAHAYA
  } else if ((suhu >= 40.0 && suhu <= 50.0) || (gasPercent >= 30 && gasPercent <= 60)) {
    hazardLevel = 1; // WASPADA
  } else {
    hazardLevel = 0; // AMAN
  }

  display.clearDisplay();
  display.setTextSize(1);
  display.setCursor(0, 0);
  display.print("Suhu : "); display.print(suhu, 1); display.println(" C");
  display.print("Gas  : "); display.print(gasPercent); display.println(" %");
  display.println("---------------------");

  if (hazardLevel == 2) {
    digitalWrite(LED_MERAH, HIGH);
    digitalWrite(LED_KUNING, LOW);
    digitalWrite(LED_HIJAU, LOW);
    tone(BUZZER_PIN, 2000);
    display.setTextSize(2); display.setCursor(0, 35); display.println("DANGER!!!");
    display.setTextSize(1); display.setCursor(0, 55); display.println("EVAKUASI SEGERA!");
  } else if (hazardLevel == 1) {
    digitalWrite(LED_MERAH, LOW);
    digitalWrite(LED_KUNING, HIGH);
    digitalWrite(LED_HIJAU, LOW);
    tone(BUZZER_PIN, 1000, 200);
    display.setTextSize(2); display.setCursor(0, 35); display.println("WARNING!");
    display.setTextSize(1); display.setCursor(0, 55); display.println("Cek Area Kerja");
  } else {
    digitalWrite(LED_MERAH, LOW);
    digitalWrite(LED_KUNING, LOW);
    digitalWrite(LED_HIJAU, HIGH);
    noTone(BUZZER_PIN);
    display.setTextSize(2); display.setCursor(0, 35); display.println("NORMAL");
    display.setTextSize(1); display.setCursor(0, 55); display.println("Kondisi Aman");
  }
  display.display();

  if ((millis() - lastTime) > timerDelay) {
    if (WiFi.status() == WL_CONNECTED) {
      HTTPClient http;
      String url = serverName + "?api_key=" + apiKey + "&field1=" + String(suhu) + "&field2=" + String(gasPercent) + "&field3=" + String(hazardLevel);
      http.begin(url);
      int httpCode = http.GET();
      if (httpCode > 0) {
        Serial.print("Data Terkirim ke Cloud! HTTP Response: "); Serial.println(httpCode);
      } else {
        Serial.println("Gagal mengirim data ke ThingSpeak");
      }
      http.end();
    }
    lastTime = millis();
  }
  delay(1000);
}

3.3 Hasil Pengujian Simulasi dan Pembahasan

Pengujian dilakukan secara komprehensif pada simulator Wokwi untuk memvalidasi performa sistem dalam merespons 3 tingkatan kondisi keselamatan kerja.

Gambar 3.2. Tampilan Simulasi Wokwi pada Kondisi Normal (Aman)

Pada kondisi awal (Gambar 3.2), parameter lingkungan berada pada tingkat normal (Suhu 26.5°C, Kelembapan 40.5%, Gas 12%). Sistem mengaktifkan LED Hijau (GPIO 25), menonaktifkan Buzzer, dan mencetak teks 'NORMAL - Kondisi Aman' pada layar OLED. Hal ini menunjukkan indikator visual lokal bekerja sesuai ekspektasi pada zona aman.

Gambar 3.3. Tampilan Simulasi Wokwi pada Kondisi Waspada (Warning)

Ketika parameter gas atau suhu dinaikkan ke tingkat menengah (Gambar 3.3), sistem secara otomatis beralih ke Level 1 (Waspada). LED Kuning menyala (GPIO 19), Buzzer membunyikan beep intermiten singkat, dan OLED menampilkan 'WARNING - Cek Area Kerja'. Penanda ini memberi kesempatan bagi operator untuk melakukan inspeksi sebelum bahaya meningkat.

Gambar 3.4. Tampilan Simulasi Wokwi pada Kondisi Bahaya (Danger)

Saat kondisi ekstrem diterapkan (Gambar 3.4), seperti gas melebihi 60% atau suhu melampaui 50°C, sistem langsung memicu Level 2 (Bahaya). LED Merah menyala terang (GPIO 26), Buzzer membunyikan sirene kontinu berfrekuensi 2000 Hz, dan OLED menampilkan instruksi 'DANGER!!! EVAKUASI SEGERA!'. Respon otomatis ini sangat krusial dalam meminimalkan korban jiwa saat terjadi insiden di lokasi kerja.

Gambar 3.5. Tampilan Log Serial Monitor & Pengiriman Data Cloud ThingSpeak

Proses telemetri data disajikan pada Gambar 3.5. Setiap 15 detik, Serial Monitor menampilkan log keberhasilan pengiriman HTTP GET request dengan kode respons 200. Kode 200 mengonfirmasi bahwa data suhu, persentase gas, dan nilai hazard level telah diterima dan disimpan secara tepat oleh server ThingSpeak Cloud.

BAB 4 PENUTUP

4.1 Kesimpulan

  1. Sistem Smart Industrial Safety & Hazard Monitoring berbasis ESP32 berhasil dirancang dan disimulasikan secara virtual pada simulator Wokwi.

  2. Algoritma kondisional 3-level hazard (Aman, Waspada, Bahaya) bekerja akurat dalam mengendalikan indikator visual Tri-Color LED, alarm Buzzer, dan layar OLED SSD1306.

  3. Komunikasi serial I2C pada OLED dan pengiriman data telemetri ke platform ThingSpeak Cloud berjalan stabil dengan bukti respons kode HTTP 200.

4.2 Saran

  1. Pengembangan hardware fisik disarankan dengan mengganti potensiometer menggunakan sensor gas fisik MQ-2/MQ-135 nyata.

  2. Penambahan fitur notifikasi peringatan darurat otomatis via email atau WhatsApp API ketika sistem mendeteksi Level Bahaya (Level 2).


DAFTAR PUSTAKA

Adafruit. (2023). Adafruit SSD1306 and GFX Library Documentation. GitHub Repository.


Espressif Systems. (2024). ESP32 Series Datasheet. Diakses dari https://www.espressif.com/


MathWorks. (2024). ThingSpeak IoT Analytics Documentation. Diakses dari https://www.mathworks.com/help/thingspeak/


Monk, S. (2022). Programming Arduino: Getting Started with Sketches (3rd ed.). McGraw Hill.

LAMPIRAN

Link Simulasi Proyek Wokwi: https://wokwi.com/projects/475064126040844289