首页/新闻资讯/正文详情

STM32 通过 ESP-01S 获取北京时间,并通过 MQTT 上传到云端

发布时间:2026/9/25 5:47:08 来源:云帆数科 栏目:资讯中心
STM32 通过 ESP-01S 获取北京时间,并通过 MQTT 上传到云端
一、前言很多单片机项目都会遇到一个很现实的问题数据能上传但时间不对。比如你在服务器上看到的可能是固定时间、开机计时或者根本没有时间字段。这样后面做历史数据统计、告警分析、曲线展示都会很麻烦。这篇文章只讲一件事1.STM32 如何通过 ESP-01S 获取北京时间2.STM32 如何把北京时间写进 MQTT 报文3.STM32 如何把数据上传到服务器云端二、整体思路整个流程其实很简单1.STM32 上电初始化2.ESP-01S 连接 WiFi3.通过 NTP 获取北京时间4.STM32 解析时间字符串5.组装成 JSON 报文6.通过 MQTT 上传到服务器三、硬件准备本例使用的硬件很简单STM32F103C8T6ESP-01S WiFi 模块USB 转 TTLMQTT 服务器串口连接建议如下STM32 USART3_TX 接 ESP-01S RXSTM32 USART3_RX 接 ESP-01S TX3.3V 供电供电不稳可以上5VGND 共地四、ESP-01S 需要执行的 AT 命令先确认模块在线AT设置 STA 模式ATCWMODE1连接路由器ATCWJAP你的WiFi名,你的WiFi密码配置 NTPATCIPSNTPCFG1,8,cn.ntp.org.cn,ntp.sjtu.edu.cn查询当前北京时间ATCIPSNTPTIME?演示结果五、北京时间是怎么来的这里最关键的一步就是 NTP。我们发这条命令ATCIPSNTPCFG1,8,cn.ntp.org.cn,ntp.sjtu.edu.cn它的意思是1开启 NTP8时区偏移代表北京时间 UTC8后面两个是 NTP 服务器地址然后查询时间ATCIPSNTPTIME?返回可能类似CIPSNTPTIME:Thu Jun 26 09:19:25 2026 OK六、STM32 端如何读取时间STM32 不需要自己去算时间只需要把 ESP-01S 返回的字符串解析出来。核心思路是先发 ATCIPSNTPTIME?再找返回值中的 CIPSNTPTIME:然后把时间存成统一格式示意代码static HAL_StatusTypeDef WifiTime_QueryCurrent(char *timeText, uint16_t size) { if (ESP01S_SendCommand(ATCIPSNTPTIME?\r\n, OK, 5000U) ! HAL_OK) { return HAL_ERROR; } const char *p strstr(ESP01S_GetLastResponse(), CIPSNTPTIME:); if (p NULL) { return HAL_ERROR; } p strlen(CIPSNTPTIME:); // 这里继续解析时间字符串 return HAL_OK; }七、如何把北京时间写进 MQTT 报文拿到北京时间后就可以把它写进 JSON 里。例如{ saleid: 10100001, gateid: 10100001001, type: report, time: 2026-06-26 09:19:25, sequence: 11, source: da, meter: [ { id: ENV001, status: 1, name: RadarDHT11, values: { Temp: 31.5, Humi: 45.6 } } ] }八、为什么推荐 MQTTPUBRAW在实际测试中直接用 ATMQTTPUB 容易遇到转义问题尤其 JSON 里面有很多引号和逗号。所以更稳的方式是ATMQTTPUBRAW0,report/allpoints,69,0,0九、结语这套方案的核心其实很简单STM32 负责控制和组包ESP-01S 负责联网和 NTPMQTT 负责上传北京时间由 NTP 获取

相关推荐

别等 Agent 上线后补评估:先用 DeepEval 写失败样本
别等 Agent 上线后补评估:先用 DeepEval 写失败样本

# 别等 Agent 上线后补评估:先用 DeepEval 写失败样本很多团队接入 AI Agent、RAG 或客服机器人时,最容易晚一步做的事情就是评估。先把模型、prompt、工具调用、RAG 检索串起来,等 demo 能跑,再补一个“评估模块”。这条路看起来… · 2026/9/25 5:47:08

IntelliJ IDEA快捷键速成手册:从新手到高手,7天掌握90%高频操作
IntelliJ IDEA快捷键速成手册:从新手到高手,7天掌握90%高频操作

更多请点击: https://intelliparadigm.com 第一章:IntelliJ IDEA快捷键体系概览与学习路径规划 IntelliJ IDEA 的快捷键体系并非零散命令的堆砌,而是一个分层、可扩展、高度上下文感知的操作语言。它由基础导航、编辑增强、代码重构、构建调… · 2026/9/19 5:13:22

PMMA-b-PEO/PEO-b-PMMA聚苯乙烯-b-聚甲基丙烯酸甲酯
PMMA-b-PEO/PEO-b-PMMA聚苯乙烯-b-聚甲基丙烯酸甲酯

一、基本定义PMMA-b-PEO PMMA-b-PEG 两嵌段共聚物:疏水段聚甲基丙烯酸甲酯 亲水段聚环氧乙烷 。二、核心特性与应用两亲性自组装:在水中自发形成以PMMA为内核、PEO为外壳的胶束,可用于包载疏水性药物。固态电解质:PEO链段提供离… · 2026/9/11 21:15:02

WIFI共享小程序独立版源码实战:Flask后端+小程序前端从零搭建
WIFI共享小程序独立版源码实战:Flask后端+小程序前端从零搭建

简介:WIFI共享小程序独立版源码是一套面向本地共享WiFi商业运营的完整源码包,适合想快速搭建自主共享WiFi平台的团长、拓展员、商家及个人开发者,解决从技术部署到项目落地的全流程问题。压缩包内共2004个文件,以PHP实现后端逻辑、… · 2026/9/25 5:47:06

OpenCodex 自定义模型功能国际化落地:i18n 键注入与发布前全量验证指南
OpenCodex 自定义模型功能国际化落地:i18n 键注入与发布前全量验证指南

【免费下载链接】opencodex Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code 项目地址: https://gitcode.com/gh_mirrors/ope/opencodex 点击… · 2026/9/25 5:47:06

MikroORM 多 Schema 使用指南:实体定义、运行时切换与通配符 Schema 原理
MikroORM 多 Schema 使用指南:实体定义、运行时切换与通配符 Schema 原理

后端 【免费下载链接】mikro-orm TypeScript ORM for Node.js based on Data Mapper, Unit of Work and Identity Map patterns. Supports MongoDB, MySQL, MariaDB, MS SQL Server, PostgreSQL and SQLite/libSQL databases. 项目地址: https://gitcode.com/gh_mir… · 2026/9/25 5:47:06

MySQL索引失效底层原理与慢SQL排查优化实践
MySQL索引失效底层原理与慢SQL排查优化实践

1. 为什么索引失效,值得认真聊一聊每个写过SQL的工程师,几乎都经历过这样一幕:where条件的字段明明建了索引,explain一执行却是type ALL,rows显示几万几十万,慢查询日志里躺着这个SQL。第一反应是“索引没… · 2026/9/25 5:47:00

Spring Boot 集成 OpenSearch:选型、环境搭建与检索实战
Spring Boot 集成 OpenSearch:选型、环境搭建与检索实战

1. 为什么是OpenSearch:从一次授权变更引发的选型思考很多人看到“Spring Boot OpenSearch 集成”这个标题,第一反应是把它当成Elasticsearch的平替方案。这个理解方向是对的,但不够完整。OpenSearch是从Elasticsearch 7.10.2分叉出来的开源… · 2026/9/25 5:47:00

用 DIGITS 训练 FCN-Alexnet 语义分割模型:jetson-inference 端到端实操指南
用 DIGITS 训练 FCN-Alexnet 语义分割模型:jetson-inference 端到端实操指南

人工智能计算机视觉深度学习微调 【免费下载链接】jetson-inference Hello AI World guide to deploying deep-learning inference networks and deep vision primitives with TensorRT and NVIDIA Jetson. 项目地址: https://gitcode.com/gh_mirrors/je/jetson-inf… · 2026/9/25 5:47:00

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

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

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

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

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

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

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码