#include <WiFi.h>
#include <HTTPClient.h>
// ---------- Relay pins (LOW = ON) ----------
#define RELAY_MOTOR 18
#define RELAY_FAN 19
#define RELAY_LIGHT 23
const char* ssid = "Wokwi-GUEST";
const char* password = "";
// Polling API
const char* baseUrl =
"http://sensor.somee.com/api/getcommand.aspx?device=";
void setup() {
Serial.begin(115200);
pinMode(RELAY_MOTOR, OUTPUT);
pinMode(RELAY_FAN, OUTPUT);
pinMode(RELAY_LIGHT, OUTPUT);
digitalWrite(RELAY_MOTOR, LOW);
digitalWrite(RELAY_FAN, LOW);
digitalWrite(RELAY_LIGHT, LOW);
WiFi.begin(ssid, password);
Serial.print("Connecting WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nWiFi connected");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
checkDevice("motor", RELAY_MOTOR);
checkDevice("fan", RELAY_FAN);
checkDevice("light", RELAY_LIGHT);
}
delay(500);
}
void checkDevice(String device, int pin) {
HTTPClient http;
String url = String(baseUrl) + device;
http.begin(url);
int code = http.GET();
if (code == 200) {
String payload = http.getString();
Serial.println(payload);
// SIMPLE JSON PARSE
if (payload.indexOf("\"state\":1") > 0) {
digitalWrite(pin, HIGH); // ON
} else {
digitalWrite(pin, LOW); // OFF
}
} else {
Serial.print("HTTP error: ");
Serial.println(code);
}
http.end();
}
FAN
MOTOR
LIGHT