"Kamu ingin memiliki rumah pintar yang
dapat dikelola dengan mudah? Dengan ESP8266 dan AI Asisten, kamu dapat
menghubungkan perangkat IoT ke sistem AI dan mengontrolnya dengan mudah.
Dapatkan rumah pintar yang cerdas dan efisien dengan menghubungkan ESP8266
dengan AI Asisten sekarang juga!" Kode Contoh: Kode contoh yang dapat kamu
gunakan untuk menghubungkan ESP8266 dengan AI Asisten adalah sebagai berikut:
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
#include <WiFiClientSecure.h>
const char* ssid = "ssid";
const char* password = "password";
const char* host = "generatedpromptpro.online";
String apiKey = "sk-iot-xxxxxxxxxxxx";
String deviceID = "lampu_kamar";
const int RELAY_PIN = D5;
void setup() {
Serial.begin(115200);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
WiFi.begin(ssid, password);
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" Connected!");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
WiFiClientSecure client;
client.setInsecure(); // Wajib untuk HTTPS
HTTPClient http;
String url = "https://" + String(host) + "/sikai/api/iot_gateway.php?k=" + apiKey + "&d=" + deviceID;
// --- TAMBAHAN PENTING (Agar tidak dianggap BOT) ---
http.setUserAgent("Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/115.0.0.0 Safari/537.36");
// --------------------------------------------------
Serial.print("Requesting: ");
Serial.println(url);
http.begin(client, url);
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
Serial.println("Response Code: " + String(httpCode));
Serial.println("Payload: " + payload);
if (payload == "1") {
digitalWrite(RELAY_PIN, HIGH);
} else {
digitalWrite(RELAY_PIN, LOW);
}
} else {
Serial.print("Error HTTP: ");
Serial.println(httpCode);
}
http.end();
}
delay(1000);
}
Koding Wokwi Simulasi (ESP32)
#include <WiFi.h>
#include <HTTPClient.h>
#include <WiFiClientSecure.h>
const char* ssid = "Wokwi-GUEST";
const char* password = "";
const char* host = "generatedpromptpro.online";
String apiKey = "sk-iot-xxxxxx";
String deviceID = "lampu_kamar";
// Di ESP32 Wokwi, pin 14 biasanya aman digunakan
const int RELAY_PIN = 14;
void setup() {
Serial.begin(115200);
pinMode(RELAY_PIN, OUTPUT);
digitalWrite(RELAY_PIN, LOW);
WiFi.begin(ssid, password);
Serial.print("Connecting to WiFi");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConnected!");
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
WiFiClientSecure client;
client.setInsecure(); // Mengabaikan verifikasi SSL agar simpel
HTTPClient http;
String url = "https://" + String(host) + "/sikai/api/iot_gateway.php?k=" + apiKey + "&d=" + deviceID;
// Inisialisasi HTTP dengan client secure
http.begin(client, url);
http.setUserAgent("Mozilla/5.0");
int httpCode = http.GET();
if (httpCode > 0) {
String payload = http.getString();
payload.trim(); // Penting: menghapus karakter liar seperti \n atau spasi
Serial.println("Response: " + payload);
if (payload == "1") {
digitalWrite(RELAY_PIN, HIGH);
Serial.println("Relay: ON");
} else {
digitalWrite(RELAY_PIN, LOW);
Serial.println("Relay: OFF");
}
} else {
// Perbaikan di sini: Menggunakan errorToString untuk ESP32
Serial.printf("[HTTP] GET... failed, error: %s\n", http.errorToString(httpCode).c_str());
}
http.end();
}
delay(5000); // Tunggu 5 detik sebelum cek lagi
}
Comments
Post a Comment