//Generated Date: Sun, 26 Oct 2025 02:16:22 GMT
char led = 0;
char ledG = 0;
#include <WiFi.h>
#include <PubSubClient.h>
#define MQTT_USER ""
#define MQTT_PASSWORD ""
char _lwifi_ssid[] = "Wokwi-GUEST";
char _lwifi_pass[] = "";
void initWiFi() {
for (int i=0;i<2;i++) {
WiFi.begin(_lwifi_ssid, _lwifi_pass);
delay(1000);
Serial.println("");
Serial.print("Connecting to ");
Serial.println(_lwifi_ssid);
long int StartTime=millis();
while (WiFi.status() != WL_CONNECTED) {
delay(500);
if ((StartTime+5000) < millis()) break;
}
if (WiFi.status() == WL_CONNECTED) {
Serial.println("");
Serial.print("STAIP address: ");
Serial.println(WiFi.localIP());
Serial.println("");
break;
}
}
}
const char* mqtt_server = "MQTTGO.io";
const unsigned int mqtt_port = 1883;
String MQTT_CLIENTID = "CN017";
WiFiClient espClient;
PubSubClient mqtt_client(espClient);
String mqtt_data = "";
void mqtt_sendText(String topic, String text) {
if (mqtt_client.connect(MQTT_CLIENTID.c_str(), MQTT_USER, MQTT_PASSWORD)) {
mqtt_client.publish(topic.c_str(), text.c_str());
}
}
void reconnect() {
while (!mqtt_client.connected()) {
if (mqtt_client.connect(MQTT_CLIENTID.c_str(), MQTT_USER, MQTT_PASSWORD)) {
Serial.println("MQTT OK");
mqtt_client.subscribe("lhucin/D113IOT/cn017/bin");
mqtt_client.subscribe("lhucin/D113IOT/cn017/led");
mqtt_client.subscribe("lhucin/D113IOT/cn017/btnG");
mqtt_client.subscribe("lhucin/D113IOT/cn017/ledG");
} else {
delay(5000);
}
}
}
void setup()
{
Serial.begin(9600);
initWiFi();
mqtt_client.setServer(mqtt_server,mqtt_port);
mqtt_client.setCallback(callback);
//mqtt_client.setBufferSize(1024);
reconnect();
Serial.println("Wifi...");
Serial.println("MQTT...");
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
}
void loop()
{
if (!mqtt_client.connected()) {
reconnect();
}
mqtt_client.loop();
}
void callback(char* topic, byte* payload, unsigned int length) {
mqtt_data = "";
for (int ci = 0; ci < length; ci++) {
char c = payload[ci];
mqtt_data+=c;
}
Serial.println((mqtt_data));
if (String(topic)=="lhucin/D113IOT/cn017/bin"&&mqtt_data!="[]") {
led = (mqtt_data).charAt(0);
if (led == '1') {
digitalWrite(2, HIGH);
mqtt_sendText("lhucin/D113IOT/cn017/led", "1");
Serial.println("ON");
} else if (led == '0') {
digitalWrite(2, LOW);
mqtt_sendText("lhucin/D113IOT/cn017/led", "0");
Serial.println("OFF");
}
}
if (String(topic)=="lhucin/D113IOT/cn017/btnG"&&mqtt_data!="[]") {
ledG = (mqtt_data).charAt(0);
if (ledG == '1') {
digitalWrite(4, HIGH);
mqtt_sendText("lhucin/D113IOT/cn017/ledG", "1");
Serial.println("ON");
} else if (ledG == '0') {
digitalWrite(4, LOW);
mqtt_sendText("lhucin/D113IOT/cn017/ledG", "0");
Serial.println("OFF");
}
}
}