#include <WiFi.h>
#include <HTTPClient.h>
#include <ArduinoJson.h>

const char* ssid = "XM";
const char* password = "79797979";
const char* serverURL = "https://relaylog.nongnghiep24h.com/api/arduino_post/relay_three/insert.php"; // Change this

// Relay pins
const int relayPins[] = {12, 13, 14}; // GPIOs for 3 relays

void setup() {
  Serial.begin(115200);
  for (int i = 0; i < 3; i++) {
    pinMode(relayPins[i], OUTPUT);
    digitalWrite(relayPins[i], LOW); // Initial state
  }

  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("WiFi Connected");
}

void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    for (int i = 0; i < 3; i++) {
      // Simulate status (Toggle for demonstration)
      String status = (digitalRead(relayPins[i]) == LOW) ? "ON" : "OFF";
      digitalWrite(relayPins[i], !digitalRead(relayPins[i])); 
      
      sendRelayData(String(i + 1), status);
      delay(2000); // Wait 2s between updates
    }
  }
  delay(10000); // Loop every 10s
}

void sendRelayData(String relayId, String status) {
  HTTPClient http;
  http.begin(serverURL);
  http.addHeader("Content-Type", "application/json");

  StaticJsonDocument<200> doc;
  doc["relay_id"] = relayId;
  doc["status"] = status;

  String jsonString;
  serializeJson(doc, jsonString);

  int httpCode = http.POST(jsonString);
  if (httpCode > 0) {
  String payload = http.getString();
  Serial.println(payload); // Print the retrieved payload to the Serial Monitor
  http.end();
}
}