尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
ESP32 + MQTT 实现 LED 远程控制与数据上报
本人玩各种AI硬件、具身智能、AI算法、模型训练、机器视觉等。欢迎合作通过 ESP32 连接公共 MQTT Brokerbroker.emqx.io实现 LED 远程控制和定时数据上报无需自建服务器。硬件ESP32 开发板任意型号USB 数据线环境Arduino IDE 安装 ESP32 板级支持库管理器搜索安装PubSubClient by Nick O’Leary代码#includeWiFi.h#includePubSubClient.h#defineLED_BUILTIN14// 配置区修改这里 constchar*ssid你的WiFi名称;constchar*password你的WiFi密码;constchar*mqtt_brokerbroker.emqx.io;constchar*mqtt_topicemqx/esp32;constintmqtt_port1883;// WiFiClient espClient;PubSubClientmqtt_client(espClient);// 获取芯片唯一IDStringgetChipId(){returnString((uint32_t)ESP.getEfuseMac());}voidconnectToWiFi(){WiFi.begin(ssid,password);Serial.print(Connecting WiFi);while(WiFi.status()!WL_CONNECTED){delay(500);Serial.print(.);}Serial.printf(\nConnected! IP: %s\n,WiFi.localIP().toString().c_str());}voidconnectToMQTT(){String client_idesp32-getChipId();while(!mqtt_client.connected()){Serial.printf(Connecting MQTT as %s...\n,client_id.c_str());if(mqtt_client.connect(client_id.c_str(),nullptr,nullptr)){mqtt_client.subscribe(mqtt_topic);mqtt_client.publish(mqtt_topic,ESP32 online);Serial.println(MQTT connected subscribed);}else{Serial.printf(Failed (rc%d), retry in 5s\n,mqtt_client.state());delay(5000);}}}// 每10秒发布模拟传感器数据voidpublishMessage(){String msg{\device\:\esp32-getChipId()\,\temp\:String(random(20,30)),\humidity\:String(random(40,70))};if(mqtt_client.publish(mqtt_topic,msg.c_str()))Serial.printf(Published: %s\n,msg.c_str());}// 收到消息时自动触发voidmqttCallback(char*topic,byte*payload,unsignedintlength){String msg;for(unsignedinti0;ilength;i)msg(char)payload[i];Serial.printf(Received [%s]: %s\n,topic,msg.c_str());if(msgledon)digitalWrite(LED_BUILTIN,HIGH);if(msgledoff)digitalWrite(LED_BUILTIN,LOW);}voidsetup(){Serial.begin(115200);pinMode(LED_BUILTIN,OUTPUT);connectToWiFi();mqtt_client.setServer(mqtt_broker,mqtt_port);mqtt_client.setKeepAlive(60);mqtt_client.setCallback(mqttCallback);connectToMQTT();}voidloop(){if(!mqtt_client.connected())connectToMQTT();mqtt_client.loop();// 必须定期调用// 每10秒发布一次staticunsignedlonglast0;if(millis()-last10000){lastmillis();publishMessage();}}代码要点功能说明mqtt_client.loop()loop 中必须调用维持连接 处理消息setKeepAlive(60)心跳 60 秒防止 Broker 判定超时getChipId()用芯片 MAC 作为唯一 client_id断线重连每次循环检查连接状态断开自动重连测试MQTT Explorer连接broker.emqx.io:1883向主题emqx/esp32发送ledon/ledoff控制 LED。命令行# 接收数据mosquitto_sub-hbroker.emqx.io-temqx/esp32# 发送指令mosquitto_pub-hbroker.emqx.io-temqx/esp32-mledon常见问题WiFi 连不上ESP32 只支持 2.4GHz收不到消息确认主题一致loop()已调用PubSubClient.h 找不到安装 PubSubClient 库LED 不亮确认LED_BUILTIN引脚与板子一致
RELATED

相关推荐

Spring Boot中构建大模型安全闸门:意图解析与策略引擎实践

Spring Boot中构建大模型安全闸门:意图解析与策略引擎实践

1. 项目缘起:当大模型开始“自作主张” 最近在做一个内部效率工具,核心想法挺简单:让业务人员用自然语言描述需求,比如“帮我查一下上个月华东区销售额超过50万的客户,把他们的联系人和最近一次沟通记录整理成Excel发我…

📅 2026/9/1 18:14:18
Python面试核心:从对象模型到并发编程的深度解析

Python面试核心:从对象模型到并发编程的深度解析

1. 面试准备:为什么Python基础是必考题?最近帮几个朋友做面试辅导,发现一个挺有意思的现象:很多人简历上写着“精通Python”,结果被问到“Python里is和有什么区别”或者“解释一下GIL”这种基础问题时,要么…

📅 2026/9/10 7:20:00
RT-DETR网络结构解析技术文章大纲

RT-DETR网络结构解析技术文章大纲

目录 目录 RT-DETR的核心设计目标与创新 整体框架分析 1 骨干网络 2 高效混合编码器(AIFI CCFF) 2.1 AIFI 2.1.1 AIFI内部运算流程 2.1.2 单层多头自注意力MHSA(AIFI核心) 2.2 ccff 3 解码器 3.1 整体结构 3.2 单层内…

📅 2026/9/29 8:09:25
MORE NEWS

更多资讯

📰

DeepSeek V4 突然发布,DeepSeek-V4 技术报告深度解读:从架构到实测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

用Python编写一个远程控制程序:基于paramiko的SSH批量命令执行与文件传输实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

PostgreSQL 内置 UUID 生成:免扩展使用 gen_random_uuid()(v13+)

文档教程知识库 【免费下载链接】til :memo: Today I Learned 项目地址: https://gitcode.com/gh_mirrors/ti/til 点击查看 免费下载 导读 本文讲解如何在 PostgreSQL 中不安装任何扩展就能生成随机的 v4 UUID。自 PostgreSQL v13 起,gen_random_uuid(…

📰

微服务常用组件汇总:TaoToken 统一 Key 打通 API 网关与注册中心

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

收藏!小白程序员必看:AI Agent = Model + 工程化,从入门到精通大模型实战指南(TaoToken 统一 Key 接入篇)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

拆解端侧大模型实战:小米MiMo-V2.6训练技巧与部署要点

最近更新发布的这份小米 MiMo-V2.6 技术报告,在端侧大模型圈子里讨论度相当高。很多人看到标题会下意识觉得这只是又一份“自卖自夸”的模型卡,但实际翻完原文会发现,信息密度比预期高很多——尤其是关于训练数据配比、长上下文能力边界、轻量…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬