到目前为止,从 WiFiManager 页面保存的唯一参数是网络的 SSID 和 密码。让我们添加其他参数,例如 MQTT 服务器,端口,用户,密码和主题,并将它们保存到位于 SPIFFS 中的配置文件:
#include <FS.h>
#include <espg266wiFi.h>
#include <pubsubClient.h>
#include <DNSServer.h>
#include <Esp8266WebServer.H>
#include <wiFiManager.h>
定义稍后将用于连接到 MQTT 代理的 CLIENT_ID:
#define CLIENT_ID "ESP_%06X"
在此定义您的默认值;如果 config.json 中存在不同的值,则会覆盖它们:
char mqtt_server[ 40];
char mqtt_port[6] = "1883";
char mqtt_user[32];
char mqtt_pass[32];
char mqtt_topic[64];
char dev_name[50];
如果要再次初始化 ESP,请设置为 true:
boolean clean_g = false;
WiFiClient espClient;
PubSubClient client(espClient);
当ESP8266收到来自MQTT代理的消息时,将触发此功能:
void mqtt_callback(char* topic, byte* payload, unsigned int length) {
char rxj[512];
for(inti=0;i<length;i++){
rxj[i] = payload[i];