Oleh:
Tujuan :
siswa mampu memahami rancang bangun IoT web server dengan menggunakan
ESP32
siswa mampu menjelaskan sistem IoT web server berbasis ESP32
siswa mampu membuat program control lampu dengan menggunakan HP maupun PC
tanpa menggunakan aplikasi database (menggunakan browser)
Gambar Rangkaian
Langkah Kerja
pertama siapkan nodeMCU ESP32 ke papan projek board, lalu hubungkan kaki
resistor 100 ohm ke pin D27 dan D26.
lalu kaki satunya di hubungkan ke kaki negatif led, setelah itu kaki positif led
dihubungkan ke gnd ESP32 menggunakan kabel jumper male to male, pastikan
kaki positif dan negatif pada lampu LED tidak terbalik.
setelah rangkaian jadi, kita masuk ke software atau aplikasi Arduino untuk
membuat program kontrol lampu led.
apload program yang sudah jadi lalu transfer program ke ESP32 melalui kabel
micro USB dan pastikan ESP32 sudah terhubung ke jaringan internet.
setelah di transfer program nya lalu masuk ke serial monitor di software
Arduinonya untuk mengetahui alamat IP pada ESP32 pencet tombol EN pada
ESP32 agar alamat IP muncul di serial monitor.
setelah alamat IP nya sudah muncul, salin atau copy alamatnya setelah itu buka
chrome di HP atau PC lalu tempel atau paste alamat tadi supaya mucul tombol
on/of yang berwarna hijau untuk mengontrol hidup dan matinya lampu LED.
Kode Program
#include <WiFi.h>
const char* ssid = "VivoAD";
const char* password = "@mirudin12";
WiFiServer server(80);
String header;
String Lamp1State = "off";
String Lamp2State = "off";
const int Lamp1 = 26;
const int Lamp2 = 27;
unsigned long currentTime = millis();
unsigned long previousTime = 0;
const long timeoutTime = 2000;
void setup() {
Serial.begin(115200);
pinMode(Lamp1, OUTPUT);
pinMode(Lamp2, OUTPUT);
digitalWrite(Lamp1, LOW);
digitalWrite(Lamp2, LOW);
Serial.print("Connecting to ");
Serial.println(ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected.");
Serial.println("IP address: ");
Serial.println(WiFi.localIP());
server.begin();
}
void loop(){
WiFiClient client = server.available();
if (client) {
currentTime = millis();
previousTime = currentTime;
Serial.println("New Client.");
String currentLine = "";
while (client.connected() && currentTime - previousTime <= timeoutTime) {
currentTime = millis();
if (client.available()) {
char c = client.read();
Serial.write(c);
header += c;
if (c == '\n') {
if (currentLine.length() == 0) {
client.println("HTTP/1.1 200 OK");
client.println("Content-type:text/html");
client.println("Connection: close");
client.println();
client.println("<!DOCTYPE html><html>");
client.println("<head><meta name=\"viewport\" content=\"width=device-width,
initial-scale=1\">");
client.println("<link rel=\"icon\" href=\"data:,\">");
client.println("<style>html { font-family: Helvetica; display: inline-block; margin:
0px auto; text-align: center;}");
client.println(".button { background-color: #3DE31B; border: none; color: black;
padding: 16px 40px;");
client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}");
client.println(".button2 {background-color: #DB240F;}</style></head>");