Senin, 14 September 2026

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


Tidak ada komentar:

Posting Komentar