/**北工IoT接入示例代码 2021-8-8 上位机软件-->微信小程序:北工IoT 文档资料-->微信公众号:蚍蜉荣光 官方网站:www.cbug.top 视频教程:https://www.cbug.top/article/9.html */ #include <ESP8266WiFi.h> #include <PubSubClient.h> const char* ssid = ""; //你家的wifi名 const char* password = ""; //你家的wifi密码 const char* mqtt_server = "mqtt.cbug.top"; //mqtt服务器地址 const char* mqtt_user = ""; //mqtt服务器用户名 const char* mqtt_pass = ""; //mqtt服务器密码 const char* mysub = ""; //北工IoT小程序推送的主题,命名建议in+mqtt服务器用户名 const char* mypub = ""; //北工IoT小程序订阅的主题,命名建议out+mqtt服务器用户名 WiFiClient espClient; PubSubClient client(espClient); String msg = ""; /** 连接wifi */ void setup_wifi() { delay(10); Serial.println(); Serial.print("开始连接wifi"); Serial.println(ssid); WiFi.mode(WIFI_STA); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } randomSeed(micros()); Serial.println(""); Serial.println("WiFi连接成功"); Serial.println("你的设备IP是: "); Serial.println(WiFi.localIP()); } /** 接收消息回调,灯控制 */ void callback(char* topic, byte* payload, unsigned int length) { Serial.print("Message arrived ["); Serial.print(topic); Serial.print("] "); msg = ""; for (int i = 0; i < length; i++) { msg += (char)payload[i]; } Serial.println("msg--->"); Serial.println(msg); /** 灯的控制,可以扩展到其他用途 **/ if ( msg == "on") { digitalWrite(BUILTIN_LED, LOW); // 打开LED client.publish(mypub, "灯打开了"); } else if (msg == "off") { digitalWrite(BUILTIN_LED, HIGH); //关闭LED client.publish(mypub, "灯关闭了"); } } /** 连接北工IoT的MQTT服务器,订阅主题 */ void reconnect() { while (!client.connected()) { Serial.println("开始连接MQTT服务器..."); String clientId = "ESP8266Client-"; clientId += String(random(0xffff), HEX); if (client.connect(clientId.c_str(), mqtt_user, mqtt_pass)) { Serial.println("MQTT服务器连接成功"); client.publish(mypub, "设备连接成功"); client.subscribe(mysub); } else { Serial.print("failed, rc="); Serial.print(client.state()); Serial.println("5秒后重试"); delay(5000); } } } void setup() { pinMode(BUILTIN_LED, OUTPUT); Serial.begin(115200); setup_wifi(); client.setServer(mqtt_server, 1883); client.setCallback(callback); } void loop() { if (!client.connected()) { reconnect(); } client.loop(); }代码下载:CBUG_BGIoT_DEMO