项目作者: morestart

项目描述 :
ESP8266 fast wifi&mqtt
高级语言: C++
项目地址: git://github.com/morestart/general8266.git
创建时间: 2019-06-02T02:45:33Z
项目社区:https://github.com/morestart/general8266

开源协议:GNU General Public License v3.0

下载


ESP8266

结构

  1. ----general8266
  2. |----tree.py
  3. |----LICENSE
  4. |----test
  5. | |----README
  6. |----include
  7. | |----wifi.h
  8. | |----processdata.h
  9. | |----README
  10. | |----mqtt.h
  11. | |----button.h
  12. | |----definitions.h
  13. |----platformio.ini
  14. |----README.md
  15. |----lib
  16. | |----README
  17. |----src
  18. | |----mqtt.cpp
  19. | |----button.cpp
  20. | |----processData.cpp
  21. | |----wifi.cpp
  22. | |----main.cpp

依赖树

  1. |-- <ArduinoJson> 6.11.5
  2. |-- <ESP8266WebServer> 1.0
  3. | |-- <ESP8266WiFi> 1.0
  4. |-- <ESP8266WiFi> 1.0
  5. |-- <Ticker> 3.1.5
  6. |-- <WifiManager> 0.14
  7. | |-- <DNSServer> 1.1.1
  8. | | |-- <ESP8266WiFi> 1.0
  9. | |-- <ESP8266WebServer> 1.0
  10. | | |-- <ESP8266WiFi> 1.0
  11. | |-- <ESP8266WiFi> 1.0
  12. |-- <PubSubClient> 2.7

代码说明

  1. void setup()
  2. {
  3. Serial.begin(115200);
  4. // 初始化重置按钮
  5. initButton();
  6. // 加载web配置
  7. loadWifiWebConfig();
  8. // 加载mqtt配置
  9. loadMQTTConfig();
  10. // 初始化定时器
  11. initTimer();
  12. // 订阅主题
  13. subscribeTopic_();
  14. pinMode(D4, OUTPUT);
  15. }
  16. void loop()
  17. {
  18. // 保持mqtt连接
  19. keepMqttConnect();
  20. // 检测是否重置wifi mqtt信息
  21. getButtonDown();
  22. // 更新定时器
  23. loopTimer();
  24. }

初始波特率115200, 初始化重置按钮,第一次上电加载web配置页面配置wifi以及mqtt的信息,然后加载本地mqtt信息

循环中用于检测mqtt是否掉线,如果掉线开始重连重订阅,以及检测按钮是否按下,按下的话就执行清空信息操作.

请勿随意修改主函数中引用的函数

在本项目中,只需要关注processData.cpp这个文件即可,此文件包含mqtt消息以及定时任务的处理和初始化,在这个文件中处理你的业务逻辑.

你需要开发的:

  • 添加定时器(需要的话) 修改 void initTimer()内容
  • 发布主题, void publishTopic_()函数可以随意修改, 甚至修改函数名或者启动定时器定时发布主题和内容
  • 订阅主题, void subscribeTopic_()这个函数不能随意修改,因为主函数中调用了这个函数在初始化时进行主题订阅
  • 数据处理, void processData(const char* topic, const char* data)这个函数中会传入监听到的发往mqtt broker的订阅的主题的topic和data.你可以根据传入的主题和数据进行进一步的处理