因为开发板可能会在不同的WIFI环境中便用,所以不能把Wifi名和密码写入代码,可利用BGWiFiConfig库把开发板设置成AP模式,用手机或电脑连接开发板热点,填写Wifi名和密码,自动写入开发板的FLASH闪存中,即可完成开发板的配网设置。重启开发板,自动连接WIFI、连接MQTT服务器,即可控制物联网设备。
另外,下面的代码,利用开发板上FLASH按钮D3,可清除配网信息,重启开发板后,进行配网模式AP。
#include <BGWiFiConfig.h> #include <PubSubClient.h> BGWiFiConfig wifipw; const char* mqttServer = "test.ranye-iot.net"; // 免费MQTT服务器地址 WiFiClient wifiClient; PubSubClient mqttClient(wifiClient); void setup(){ Serial.begin(115200); pinMode(D4, OUTPUT); // LED灯,也可用LED_BUILTIN pinMode(D3, INPUT); // 设置板载的FLASH按钮为输入模式 mblink(D4,500); wifipw.begin(); //开始联网 // 设置MQTT服务器和端口号 mqttClient.setServer(mqttServer, 1883); mqttClient.setCallback(receiveCallback); } void loop() { wifipw.Loop(); if (!digitalRead(D3)){ mblink(D4,100); Serial.println("开始清除配网信息..."); wifipw.clearWiFi(); Serial.println("配网信息清除成功,请重启开发板!"); mblink(D4,100); delay(3000); } if (mqttClient.connected()) { // 保持客户端心跳 mqttClient.loop(); } else { // 尝试连接服务器 connectMQTTServer(); } } void connectMQTTServer(){ // 避免与其它ESP8266设备重名 需要修改----------- String clientId = "connect_all_esp8266_mqtt_led_client" + WiFi.macAddress(); // 连接MQTT服务器 if (mqttClient.connect(clientId.c_str())) { Serial.println("MQTT服务器连接成功!"); Serial.println(); // 订阅指定主题 subscribeTopic(); } else { Serial.print("MQTT服务器连接失败. Client State:"); Serial.println(mqttClient.state()); delay(3000); } } // 收到信息 void receiveCallback(char* topic, byte* payload, unsigned int length) { Serial.print("Message Received ["); Serial.print(topic); Serial.print("] "); if ((char)payload[0] == '1') { digitalWrite(D4, LOW); // 则点亮LED。 Serial.println("LED ON"); } else if ((char)payload[0] == '0') { digitalWrite(D4, HIGH); // 否则熄灭LED。 Serial.println("LED OFF"); }else { Serial.println((char)payload[0]); } } // 订阅指定主题 void subscribeTopic(){ // topicString与前端代码中发送topic一致 需要修改--------------- String topicString = "connect_all_esp8266_mqtt_led_topic"; char subTopic[topicString.length() + 1]; strcpy(subTopic, topicString.c_str()); // 通过串口监视器输出是否成功订阅主题以及订阅的主题名称 if(mqttClient.subscribe(subTopic)){ Serial.println("Subscrib Topic:"); Serial.println(subTopic); } else { Serial.print("Subscribe Fail..."); } } void mblink(int pin,int shijian) { int i; for (i = 0; i <= 3; i++) { digitalWrite(pin, HIGH); delay(shijian); digitalWrite(pin, LOW); delay(shijian); } }
相关资料分享:https://pan.baidu.com/s/1J18qAifp53qLXUrqbof4dg?pwd=r75t
免费的在线 MQTT服务器介绍https://www.emqx.com/zh/mqtt/public-mqtt5-broker
接入信息如下:
Broker:broker-cn.emqx.io
TCP 端口:1883
Websocket 端口:8083
TCP/TLS 端口:8883
Websocket/TLS 端口:8084
CA 证书文件:broker.emqx.io-ca.crt
相关推荐
Nodemcu v3-CH340 sch ESP8266Nodemcu原理图.pdf
ESP8266 Nodemcu V3-340原理图顶
中文版资料详细介绍从固件烧写,NODEMCU开发的接口API,Node,file,wifi,timer,GPIO,PWM,net模块,lua 开发说明,目前最全面的NODEMCU技术宝典!
ESP8266NodeMCU固件源码 NodeMCU,是一个开源的物联网平台。 它使用Lua脚本语言编程。该平台基于eLua开源项目,底层使用ESP8266 sdk 0.9.5版本。该平台使用了很多开源项目, 例如 lua-cjson, spiffs. NodeMCU包含了...
NodeMCU-ESP8266原理图
ESP8266最新nodemcu固件,生产日期2021-07-20-16-03-31,含Adc模块
ESP8266 Nodemcu lua固件包含模块adc, enduser_setup, file, gpio, http, i2c, net, node, pwm, spi, tmr, u8g, uart, websocket, wifi
ESP8266 nodmcu 固件,包含的模块有: adc, dht, ds18b20, file, gpio, net, node, sjson, tmr, uart, wifi。有整数版和浮点数版两种。
MCU:NodeMCU/ ESP-12F/ESP-12E (ESP8266EX) 通过COM口输入命令,控制TB6600,调节步进电机的正转、反转和停转; 内含TB6600与电机接线的DOC文档,完整的VS代码和工程,也可以直接用Arduino IDE打开ino文件。 /* ...
分享虚拟机,可以一键构建Nodemcu lua固件,只需要两步就可以生成固件,固件默认是现在nodemcu-firmware 3.0-master_20190907 教程链接:https://blog.csdn.net/u011993802/article/details/105623137
esp8266nodemcu blynk物联网平台,手机端实时查看 温湿度上传 开发环境arduino
本文介绍了一款在Arduino开发环境下基于NodeMCU开发板(板载ESP8266)开发的Wifi天气站,该天气站由内置锂电池供电,具有基于IP5306电源管理SOC的充放电保护模块,具有NTP服务器自动校时RTC和自动调用OpenWeatherMap...
esp8266在lua编程时调用API说明,英语不好的同学,应该有帮助,资料来源也可以百度
ESP8266_NodeMCU DEVKIT开发板原理图和PCB源文件.rar
NodeMcu control L298N MOTOR DRIVER 通过COM口输入命令,控制L298N电机模块,驱动直流电机,可调节电机速度、正转、反转、停转 命令:正转11、反转12、停转10 速度2xxx,后面的速度必须为为三位数,是通过修改...
ESP8266 nodeMCU lua入门视频教程网址https://www.bilibili.com/video/av22926769?from=search&seid=5209010497175217218。需要用到的工具如附件所示
ESP12(ESP8266)Wi-Fi 模块NodeMCU DEVKIT开发板altium设计硬件原理图+PCB文件,硬件采用2层板设计,大小为25*48mm,包括AD设计的完整原理图及PCB文件,可供学校及开发设计参考。 硬件主要器件: CP2102 CP2102 ESP_...
该程序为本人博客1.3寸 SH1106 OLED+ESP8266 NodeMCU+DHT11气象站教程中的源码
空气质量检测app源码+项目说明(android手机和ESP8266 NodeMCU作为客户端).zip 1、该资源内项目代码经过严格调试,下载即用确保可以运行! 2、该资源适合计算机相关专业(如计科、人工智能、大数据、数学、电子信息...
如何通过 Arduino 内核将 HC-SR04 超声波传感器与 ESP8266 NodeMCU 板一起使用。超声波传感器使用声纳来确定与物体的距离。我们将向您展示如何将传感器连接到 ESP8266,并提供几个示例草图来确定使用 HC-SR04 到物体...