当前位置: 首页 > news >正文

ESP8266 实际应用

ESP8266 实际应用

发送部分

// 原来
sprintf(buffer, "%s%02d%02d%02d%02d%02d", "T", Temperature, Humidity, smoke, Light, soil);
printf("%s", buffer);	// 加 \r\n 表示一条指令传输完毕
sprintf(buffer, "%s%02d%02d%02d%02d%02d\r\n", "T", Temperature, Humidity, smoke, Light, soil);
printf("%s", buffer);	

接收指令

X11 = 切换模式
A11=开风扇  A22=关风扇
B11=开灯    B22=关灯
C11=开水泵  C22=关水泵
D11=开报警  D22=关报警

代码实现

image-20260505180114451

esp8266代码

#include <ESP8266WiFi.h>
#include <PubSubClient.h>const char* WIFI_SSID     = "???";
const char* WIFI_PASSWORD = "???????????";
const char* MQTT_SERVER   = "???????";
const int   MQTT_PORT     = 1883;
const char* MQTT_CLIENTID = "?????";
const char* MQTT_SUB_TOP  = "test/chat1";   // 订阅(下发指令)
const char* MQTT_PUB_TOP  = "test/chat2";   // 发布(上传数据)WiFiClient espClient;
PubSubClient client(espClient);// MQTT收到消息 → 转发给单片机
void callback(char* topic, byte* payload, unsigned int length) {for (int i = 0; i < length; i++) {Serial.write((char)payload[i]);}Serial.write('\r');Serial.write('\n');
}void reconnect() {while (!client.connected()) {if (client.connect(MQTT_CLIENTID)) {client.subscribe(MQTT_SUB_TOP);} else {delay(5000);}}
}void setup() {Serial.begin(115200);       // 与单片机同波特率WiFi.begin(WIFI_SSID, WIFI_PASSWORD);while (WiFi.status() != WL_CONNECTED) delay(500);client.setServer(MQTT_SERVER, MQTT_PORT);client.setCallback(callback);
}void loop() {if (WiFi.status() != WL_CONNECTED) {WiFi.reconnect();delay(3000);return;}if (!client.connected()) reconnect();client.loop();// 单片机发来数据 → 上传 MQTTif (Serial.available()) {String data = Serial.readStringUntil('\n');if (data.length() > 3) {client.publish(MQTT_PUB_TOP, data.c_str());}}
}
单片机 ESP8266
3.3V 3.3V
GND GND
TX RX
RX TX

image-20260505180413125

http://www.jsqmd.com/news/758764/

相关文章:

  • 从防御者视角看Golden Ticket:如何检测和缓解黄金票据攻击(含Mimikatz日志分析)
  • 5分钟快速上手:BLiveChat打造B站直播弹幕的终极解决方案
  • 为什么你的Dify多模态Pipeline总是返回空结果?——基于137个真实报错日志的根因图谱分析
  • Qianfan-OCR案例分享:建筑施工图图例表OCR+构件编号自动关联
  • 别再手动写YAML了!用Higress Console可视化配置路由,5分钟搞定服务暴露
  • 终极指南:3步搭建QuantConnect量化交易本地学习环境
  • 即梦怎么去水印保存图片?2026最新实测即梦去水印方法全解析 - 爱上科技热点
  • LFM2.5-VL-1.6B开源大模型教程:支持Function Calling的纯文本扩展能力
  • 终极Uber Zap安全指南:如何彻底保护日志中的敏感信息安全
  • 避坑指南:在Ubuntu 20.04上从零部署PointPillars ROS可视化(含OpenPCDet、SpConv2.x环境配置)
  • Windows Insider 离线注册技术解析:绕过微软账户限制的注册表级解决方案
  • emilianJR/chilloutmix_NiPrunedFp32Fix与科学可视化:复杂数据图形化的终极解决方案
  • 别再乱设CUDA_VISIBLE_DEVICES了!PyTorch多GPU分配的3种正确姿势(附避坑清单)
  • 2026最新年即梦去水印软件怎么选?即梦AI图片视频去水印方法全介绍 - 爱上科技热点
  • Modbus RTU 与 Modbus TCP 深入指南-帧结构与报文格式
  • 告别混乱窗口:用QTTabBar实现Windows资源管理器的标签页革命
  • 番茄小说下载器:构建你的个人数字图书馆的3种技术方案
  • FanControl终极指南:如何用免费软件实现Windows风扇智能控制
  • 【RK3506实战-03】Linux eMMC 实战全攻略
  • Quectel RM255C系列5G RedCap模块技术解析与应用
  • 2026 年最佳手机杀毒软件排名公布,多维度对比助你选到合适之选!
  • 【设计模式】命令模式
  • 终极指南:Microsoft REST API中的可空属性设计与可选字段处理策略
  • 强力淘金币自动化:彻底解放淘宝用户的时间与精力
  • 即梦怎么去水印?2026最新 最全去水印手机方法和工具盘点 - 爱上科技热点
  • 2026年OpenClaw如何部署?阿里云及Coding Plan配置保姆级指南
  • 从爬虫到文件下载:Hutool HttpUtil在Java项目中的5个实战场景(含进度监控与代理配置)
  • AI就业影响研究报告:哪些工作最危险? - AI Prism 智棱
  • 2026 武汉GEO服务商全景评测:五大头部机构实力解析 - GEO优化
  • 2026最新年抖音视频怎么提取无水印版本?官方下载无水印视频的全方法盘点 - 爱上科技热点