2-5 在ESP8266中接收 MQTT 消息

本文介绍了如何在ESP8266设备上配置MQTT客户端,以接收并根据接收到的`outdoor/light`主题消息控制GPIO 12上的LED。当接收到值为1的消息时,LED开启;收到0则关闭。ESP8266通过Wi-Fi连接到网络,并订阅与mosquitto_pub发布的相同主题。在连接断开时,会每五秒尝试重新连接并继续监听消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ESP8266 家庭自动化项目中文版目录​​​​​​​

现在让我们使用 mosquitto_pub 发布消息并在 ESP8266 中接收它。
为此,ESP8266 需要订阅 mosquitto_pub 将发布消息的相同主题。我们将主题称为 outdoor/light,它将发布 01 值。如果 ESP8266 的值为 1,它将打开连接到 GPIO 12 的 LED,如果它接收到 0,它将关闭该 LED:

#include <ESP8266WiFi.h>
#include <PubSubClient.h>

使用适合您网络的值更新这些值:

const char* wifi_network= "YOUR_WIFI_SSID";
const char* password = "YOUR_WIFI_PASSWORD";
const char* mqtt_serv_address = "YOUR_MQTT_SERVER_IP";
const int mqtt_port_number = 1883;
#define OUTDOOR LIGHT 12
WiFiClient espClient;
PubsubClient client(espClient);
long lastMsg = 0;

启动与Wi-Fi网络的连接,并设置从MQTT代理接收消息时将调用的函数的名称,如下所示:</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值