Monday, April 6, 2026

Tugas Pengemabangan

Solusi Tugas Pengembangan: Integrasi Monitoring Analog dan Web Control

Tugas ini mengintegrasikan dua konsep fundamental IoT: Data Acquisition (akuisisi data dari sensor) dan Remote Actuation (pengendalian jarak jauh). Sistem ini memungkinkan pengguna memantau nilai tegangan analog dari potensiometer sekaligus mengontrol status LED melalui satu antarmuka web.

I. Skema Logika Program

Mekanisme Kerja:
  • Fungsi analogRead(): Mengonversi sinyal analog pada GPIO 34 menjadi data digital 12-bit (0-4095).
  • Konstruksi String HTML: Nilai sensor disisipkan secara dinamis ke dalam variabel string sebelum dikirimkan ke client.
  • HTTP Endpoint: Server menyediakan jalur (route) khusus untuk perintah eksekusi "/on" dan "/off".

II. Implementasi Kode Sumber (Full Script)

Berikut adalah kode lengkap yang telah dioptimasi untuk dijalankan pada simulator Wokwi maupun perangkat fisik.

Advanced_IoT_Solution.ino
#include #include // Konfigurasi Jaringan const char* ssid = "Wokwi-GUEST"; const char* password = ""; WebServer server(80); // Definisi Pin const int potPin = 34; const int ledPin = 2; void handleRoot() { // Membaca nilai sensor saat halaman diakses int sensorValue = analogRead(potPin); float voltage = sensorValue * (3.3 / 4095.0); // Membangun Dokumen HTML Dinamis String ptr = ""; ptr += ""; ptr += "ESP32 Dashboard"; ptr += "

ESP32 IoT Dashboard

"
; ptr += "
Nilai Sensor: " + String(sensorValue) + "
"
; ptr += "
Estimasi Tegangan: " + String(voltage) + " V
"
; ptr += "
"
; ptr += "

Kendali Peralatan

"
; ptr += ""; ptr += ""; ptr += ""; server.send(200, "text/html", ptr); } void setup() { Serial.begin(115200); pinMode(ledPin, OUTPUT); // Inisialisasi Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("\nTerhubung ke Wi-Fi"); Serial.print("Akses alamat IP: "); Serial.println(WiFi.localIP()); // Routing server.on("/", handleRoot); server.on("/on", { digitalWrite(ledPin, HIGH); server.sendHeader("Location", "/"); // Redirect ke halaman utama server.send(303); }); server.on("/off", { digitalWrite(ledPin, LOW); server.sendHeader("Location", "/"); server.send(303); }); server.begin(); } void loop() { server.handleClient(); }

III. Analisis Teknis Solusi

Pada solusi ini, terdapat peningkatan teknik komunikasi data yang disebut HTTP Redirect (Status Code 303). Teknik ini memastikan bahwa setelah pengguna menekan tombol, browser secara otomatis kembali ke halaman utama ("/") untuk memperbarui tampilan nilai sensor terbaru.

Kalkulasi Konversi ADC

Konversi nilai digital ke tegangan nyata menggunakan rumus linier:

$$V_{out} = \frac{\text{Nilai ADC}}{4095} \times 3.3V$$

IV. Kesimpulan Praktik

Integrasi ini membuktikan bahwa ESP32 mampu menangani tugas komputasi (pembacaan sensor) dan tugas komunikasi (web server) secara simultan. Ini adalah fondasi utama dalam pembuatan sistem monitoring industri sederhana maupun perangkat pintar rumah tangga.

Langkah Pro: Untuk pembaruan nilai sensor tanpa perlu refresh halaman secara manual, di masa mendatang Anda dapat mengimplementasikan teknologi AJAX atau WebSockets.

No comments:

Post a Comment