#include <Adafruit_SSD1306.h>
#include <Wire.h>
#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>
#include <ESP32Servo.h>
#include "secrets.h" // Konfigurasi WiFi (Nama WiFi dan Kata Sandi)
#define SCREEN_WIDTH 128 // Lebar layar OLED, dalam piksel
#define SCREEN_HEIGHT 64 // Tinggi layar OLED, dalam piksel
#define OLED_RESET -1 // Pin Reset (atau -1 jika menggunakan pin reset Arduino)
#define SCREEN_ADDRESS 0x3C ///< Lihat datasheet untuk Alamat; 0x3D untuk 128x64, 0x3C untuk 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
Servo myservo;
const char *ssid = "Wokwi-GUEST";
const char *password = "";
//String lastPayload = ""; // Menyimpan hasil respons HTTP sebelumnya
//String lastPayload_2 = "";
void setup() {
Serial.begin(9600);
WiFi.begin(ssid, password);
myservo.attach(7);
pinMode(5, OUTPUT); // Inisialisasi pin untuk mengendalikan LED
if (!display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS)) {
Serial.println(F("Gagal menginisialisasi SSD1306"));
for (;;)
; // Jangan melanjutkan, loop selamanya
}
display.display();
delay(2000); // Jeda selama 2 detik
display.setTextSize(1);
display.setTextColor(SSD1306_WHITE);
while (WiFi.status() != WL_CONNECTED) {
delay(1000);
Serial.print("Menghubungkan ke WiFi ");
Serial.println(ssid);
display.clearDisplay();
display.setCursor(0, 10);
display.print("Menghubungkan WiFi ");
display.setCursor(0, 20);
display.println(ssid);
display.display();
delay(2000);
}
Serial.print("Terhubung ke ");
Serial.println(ssid);
display.clearDisplay();
display.setCursor(0, 10);
display.print("Terhubung ke ");
display.setCursor(0, 20);
display.println(ssid);
display.display();
delay(2000);
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
WiFiClient client;
HTTPClient http;
String url = "http://colortex.my.id/cek_lampu.php";
http.begin(client, url.c_str());
int httpCode = http.GET();
if (httpCode > 0) {
String response = http.getString();
int responseValue = response.toInt(); // Mengubah respons ke tipe data int
if (responseValue == 1) { // Membandingkan dengan nilai angka
digitalWrite(5, HIGH); // Menyalakan LED
myservo.write(90);
tone(6,500);
delay(500);
tone(6,400);
delay(500);
display.setTextSize(2);
display.clearDisplay();
display.setCursor(0, 10);
display.println("LAMPU ON");
display.display();
} else {
digitalWrite(5, LOW); // Mematikan LED
noTone(6);
display.setTextSize(2);
display.clearDisplay();
display.setCursor(0, 10);
display.println("LAMPU OFF");
display.display();
}
}
http.end();
}
delay(1000); // Tunggu 3 detik sebelum membaca data lagi
}
Loading
esp32-c3-devkitm-1
esp32-c3-devkitm-1
Loading
ssd1306
ssd1306