Project 9 | ESP32 - Web Server Sensor - Asyrofi

Jumat, 26 Maret 2021

Project 9 | ESP32 - Web Server Sensor

Tugas Sistem Embedded
Penulis: 
Asyrofi


Halo semua. Pada tulisan kali ini, saya akan menjelaskan percobaan tentang bagaimana membuat project dengan ESP32 yaitu Web Server Sensor

Pada project ini, kita akan memberikan perintah untuk menampilkan pembacaan nilai sensor yaitu persentase level air melalui server ESP32. Oke, sebelum memulai, persiapkan dahulu komponen dan perangkat yang akan digunakan.



    Daftar Komponen

    Berikut adalah daftar komponen dan perangkat yang akan digunakan:

    1. Mikrokontroller ESP32 (1 buah)

    2. Kabel Micro-USB (1 buah)

    3Kabel jumper female - female (3 buah)

    4. Sensor water level (1 buah)


    Alur Kerja Project

   Saat ESP dinyalakan, maka ESP32 akan mencoba terhubung dengan wifi yang telah diisi sebelumnya di dalam kode. Ketika berhasil terhubung dengan wifi, hasil pembacaan oleh water level sensor akan ditampilkan pada web server.


    Kode Program beserta Penjelasannya

    sumber kode: adaptasi dari randomnerdtutorials.com

    Pertama kita import library Wifi.h kemudian masukkan SSID dan Password Wifi yang akan kita hubungkan dengan ESP32. Kemudian kita set port number web server dengan 80 melalui WifiServer server(80) dan String header untuk HTTP request. Kemudian pin untuk water level sensor dengan variabel waterLevelPin diinisialisasi dengan pin yang digunakan yaitu 35. Setelah itu, currentTime untuk menghitung waktu saat ini dan previousTime diinisialisasi dengan nilai 0.


Pada void setup(), Tampilkan ke layar serial dengan Serial.begin(115200) dan pinMode(waterLevelPin, INPUT) untuk mengatur pin output26 sebagai output. Wifi.begin untuk mengkoneksikan ESP32 dengan Wifi sesuai dengan SSID dan PASSWORD yang telah diisi sebelumnya. Jika berhasil maka akan menampilkan WiFi connected dan IP addresnya serta server dibuat melalui server.begin


    Pada void loop, client menyimpan nilai dari server.available(). Jika tersedia maka currentTime diassign dengan milis() dan previousTime diisi dengan currentTime. Selama client masih terhubung dan currentTime – previousTime masih kurang dari sama dengan 2000 (2 detik) maka currentTime diassign dengan milis()Char c menyimpan nilai dari client.read(). Jika dalam karakter tidak terdapat nilai “/n” maka mengecek handshaking berhasil dengan currentLine.length() == 0.


    client.println("<!DOCTYPE html><html>") untuk mengidentifikasi bahwa kode yang ditulis adalah kode html. Kemudian dilengkapi dengan CSS untuk mengatur style / desain tampilan dari website. Pada bagian heading website, beri judul "ESP32 with Water Level Sensor" dan buat tabel untuk menampilkan pembacaan sensor. <tr> digunakan untuk membuat row(baris) sedangkan <td> digunakan untuk membuat kolom. client.println(readSensor()) untuk menampilkan pembacaan sensor water level melalui fungsi readSensor().


    Pada bagian ini, koneksi ditutup dengan menggunakan client.stop() dan menampilkan pesan pada serial monitor dengan Serial.println("Client disconnected"). Fungsi yang digunakan pada bagian sebelumnya yaitu readSensor() yaitu dengan menyimpan pembacaan sensor water level pada suatu variabel val bertipe integer. Kemudian mengembalikan nilai val dibagi 25. Pembagian tergantung kondisi nilai yang diinginkan.


Gambar Percobaan

    Gambar 1. Hasil pembacaan sensor pada web server


    Gambar 2. Hasil pembacaan sensor setelah di refresh pada web server


    Video Percobaan



    Analisis

    Pada project kali ini, terdapat berbagai pengalaman baru selama pengerjaan project ini. Sebelumnya saya sempat bingung mengapa setiap kali saya refresh web-nya tetapi pembacaan pada sensornya masih tetap tidak ada perubahan meskipun sudah saya cemplungkan dan saya angkat. Setelah beberapa jam troublesooting, saya menemukan masalahnya terdapat pada pin yang digunakan. Saat itu saya menggunakan pin 27 pad ESP32 dan pin tersebut conflict dengan library Wifi.h sehingga solusinya adalah saya pindahkan ke pin yang lain sehingga setelah saya refresh ulang websitenya pembacaan sensornya sudah dapat update.

Tidak ada komentar:

Posting Komentar

Post Bottom Ad