之前讲过用串口控制ESP8266
MQTT通过ESP8266控制STM32
这一节 我们试着把前面两者组合起来,把ESP8266当成一个中转站
不懂的可以看之前的博客,从环境配置一步一步过来的。
这一节
ESP8266只做一个功能 :
将STM32串口发送过来的消息 发布到MQTT
将MQTT收到的消息 发送给STM32串口
复制完代码记得改网关,wifi ,密码
#include <ESP8266WiFi.h>
#include <PubSubClient.h>
#define LED D0 // GPIO引脚别名 仅使用于NodeMCU开发板
String comdata = "";//串口字符串
//默认使用'$'符号作为调试信息输出的标识
//默认使用'#'符号作为控制信息的标识开头
const char *WIFI_SSID = "xxxxxxx"; // WIFI名称
const char *WIFI_PASS = "xxxxxxxxxx"; // WIFI密码
const char *MQTT_BROKER = "xxxxxxxx"; // MQTT服务器地址
const int MQTT_PORT = 1883; // MQTT服务端口
const char *CLIENT_ID = "c001"; //客户端ID
const char *PUBLISH_TOPIC = "pub01"; //发布的topic
const char *SUBSCRIBE_TOPIC = "sub01"; //订阅的topic
void callback(char *topic, uint8_t *message, unsigned int length); //回调函数声明,用于传入mqtt客户端构造函数作为参数
WiFiClient wifiClient;
//参数: MQTT服务器地址,端口号,回调函数名,承载的连接(WIFI)
PubSubClient mqttClient(MQTT_BROKER, MQTT_PORT, callback, wifiClient);