因为开发板可能会在不同的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
相关推荐
ESP8266 NodeMCU 的设计使得开发者能够轻松地利用其强大的无线连接和处理能力,构建各种 IoT 应用,如智能家居、远程传感器监控等。通过了解原理图,开发者可以更好地理解硬件工作方式,从而更有效地利用 ESP8266 ...
ESP8266 Nodemcu V3-340是一款基于ESP8266 Wi-Fi芯片的开发板,广泛应用于物联网(IoT)项目中。它集成了微控制器和Wi-Fi功能,使得开发者能够快速构建连接互联网的应用程序。本章节将详细介绍该开发板的原理图及相关...
中文版资料详细介绍从固件烧写,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-ESP8266的核心电路设计与外围接口连接方式,对于理解和优化硬件结构具有重要意义。 ...
《ESP8266 NodeMCU与Blynk平台整合实现物联网应用》 在当今的物联网(IoT)世界中,ESP8266 NodeMCU因其强大的功能和低廉的价格,已经成为众多DIY爱好者和开发者青睐的微控制器之一。本项目以"esp8266nodemcu+blynk...
ESP8266 NodeMCU支持Lua脚本编程,也可以用Arduino IDE进行编程,它内建了USB转串口芯片CP2102,这意味着它可以通过USB接口与计算机连接进行通信和编程。CP2102是一款由Silicon Labs生产的USB转串口芯片,其优势在于...
NodeMCU是基于ESP8266的开源项目,它提供了基于Lua的脚本语言环境,使得开发者可以快速进行原型设计和应用开发。这个"esp8266-NodeMCU-API中文说明"文档,对于那些英语不是第一语言或对英文文档理解困难的开发者来说...
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。有整数版和浮点数版两种。
ESP12(ESP8266)Wi-Fi 模块NodeMCU DEVKIT开发板altium设计硬件原理图+PCB文件,硬件采用2层板设计,大小为25*48mm,包括AD设计的完整原理图及PCB文件,可供学校及开发设计参考。 硬件主要器件: CP2102 CP2102 ESP_...
分享虚拟机,可以一键构建Nodemcu lua固件,只需要两步就可以生成固件,固件默认是现在nodemcu-firmware 3.0-master_20190907 教程链接:https://blog.csdn.net/u011993802/article/details/105623137
MCU:NodeMCU/ ESP-12F/ESP-12E (ESP8266EX) 通过COM口输入命令,控制TB6600,调节步进电机的正转、反转和停转; 内含TB6600与电机接线的DOC文档,完整的VS代码和工程,也可以直接用Arduino IDE打开ino文件。 /* ...
在本教程中,我们将深入探讨ESP8266-01S NodeMCU的开发过程,包括所需的开发工具、固件安装以及应用实例。 首先,"ESP8266-天猫精灵.rar"可能是一个关于如何将ESP8266与阿里巴巴的智能音箱天猫精灵进行集成的教程。...
其中,NodeMCU是基于ESP8266的开源固件,提供了丰富的API和Lua脚本环境,方便用户快速开发物联网应用。然而,在实际操作中,我们需要将固件烧录到ESP8266芯片上,这时就需要借助如“nodemcu-flasher”这样的工具。...
NodeMCU基于乐鑫的ESP8266芯片,提供了一种易于编程和扩展的环境,尤其适合于智能家居、远程控制等应用。在本文中,我们将详细探讨如何使用NodeMCU Arduino开发板以及如何更方便地安装和下载程序。 首先,NodeMCU并...
Esp8266(NodeMCU)是一款集成了Wifi功能的MCU开发板,可以直接连接wifi,开发环境多元化,也是表较受欢迎的物联网芯片。 首先来张实物图: 原创文章 16获赞 7访问量 323 关注 私信 展开阅读全文 作者:青烨慕容
米思奇软件在本上下文中未给出具体定义,但根据常见的物联网项目开发工具推测,此处可能指的是用于ESP8266/NodeMCU编程和调试的集成开发环境(IDE)或相关工具。例如,Arduino IDE是广泛应用于ESP8266开发的一款软件...
本文将详细介绍如何使用Visual Studio Code (VSCODE)集成开发环境,配合PlatformIO插件,以及Arduino框架,来构建一个NodeMCU-ESP8266的开发工程模板。 首先,我们要理解`template`这个压缩包文件的作用。它通常...