#include <WiFi.h>
#include <WiFiManager.h>
#include <ArduinoJson.h>
#include <PubSubClient.h>
// ตั้งค่า WiFiManager
WiFiManager wm;
// ตั้งค่า MQTT
WiFiClient espClient;
PubSubClient client(espClient);
char mqtt_server[40];
char mqtt_port[6];
// ตั้งค่า JSON document
StaticJsonDocument<200> doc;
void setup() {
Serial.begin(115200);
// รีเซ็ตการตั้งค่า WiFi เมื่อกดปุ่มรีเซ็ตนาน 3 วินาที
wm.resetSettings();
// กำหนดค่าเริ่มต้นสำหรับการกำหนดค่าผ่าน WiFiManager
WiFiManagerParameter custom_mqtt_server("server", "MQTT Server", "mqtt.example.com", 40);
WiFiManagerParameter custom_mqtt_port("port", "MQTT Port", "1883", 6);
wm.addParameter(&custom_mqtt_server);
wm.addParameter(&custom_mqtt_port);
bool res = wm.autoConnect("ESP32-AP");
if (!res) {
Serial.println("Failed to connect");
// ไม่สามารถเชื่อมต่อ WiFi ให้เข้าสู่โหมด Deep Sleep
} else {
Serial.println("Connected to WiFi");
// เก็บค่า MQTT Server และ Port จากการกำหนดค่าผ่าน WiFiManager
strcpy(mqtt_server, custom_mqtt_server.getValue());
strcpy(mqtt_port, custom_mqtt_port.getValue());
// เชื่อมต่อ MQTT
client.setServer(mqtt_server, atoi(mqtt_port));
client.connect("ESP32-Client");
}
// เพิ่มข้อมูลลงใน JSON document
doc["sensor"] = "BME280";
doc["data"][0] = 24.5;
doc["data"][1] = 65.2;
// สร้าง JSON string จาก JSON document
String output;
serializeJson(doc, output);
Serial.println(output);
// ส่งข้อมูล JSON ไปยัง MQTT topic
client.publish("sensors/data", output.c_str());
}
void loop() {
// คงการเชื่อมต่อ MQTT
client.loop();
}
For further actions, you may consider blocking this person and/or reporting abuse
Top comments (0)