news 2026/4/18 7:01:47

TM32F103与ESP8266联网实战:搭建简易物联网终端S

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
TM32F103与ESP8266联网实战:搭建简易物联网终端S

文章目录

    • 摘要
    • 一、项目概述
    • 二、开发环境搭建
      • 硬件清单
      • 软件安装步骤
    • 三、硬件连接
    • 四、ESP8266固件配置
      • AT指令测试代码
    • 五、STM32程序开发
      • 核心代码结构
      • DMA环形缓冲区实现
      • AT指令状态机
    • 六、系统集成测试
      • MQTT连接代码
      • 测试结果
    • 七、典型问题排查
      • 常见故障表
    • 完整技术图谱

摘要

本文详细介绍基于STM32F103与ESP8266的物联网终端开发全流程,包含硬件电路设计、AT指令解析、TCP协议栈实现及云端对接,通过20+代码示例与5个关键流程图,助你快速构建可量产级物联网设备。


一、项目概述

本教程实现可通过手机APP控制的物联网终端,核心架构:

UART
WiFi
STM32F103
ESP8266
云平台
手机APP

二、开发环境搭建

硬件清单

组件型号数量
MCUSTM32F103C8T61
WiFi模块ESP8266-01S1
电平转换TXS0108E1
电源模块AMS1117-3.32

软件安装步骤

  1. Keil MDK安装流程:
    choco install keil-mdk
  2. ST-Link驱动检测:
    lsusb|grepST-Link

三、硬件连接

电路设计要点:

ESP8266侧
5V
5V
TXS0108_B1
ESP_RX
ESP_TX
TXS0108_B2
STM32侧
3.3V
3.3V
TXS0108_A1
USART2_TX
USART2_RX
TXS0108_A2

四、ESP8266固件配置

AT指令测试代码

创建esp_at_tester.c

// 发送AT指令并等待响应ESP_StatussendATCommand(constchar*cmd,uint32_ttimeout){HAL_UART_Transmit(&huart2,(uint8_t*)cmd,strlen(cmd),1000);uint8_tbuffer[128]={0};returnwaitResponse("OK",buffer,timeout);}

常用指令序列:

STM32ESP8266AT+CWMODE=1OKAT+CWJAP="SSID","PWD"WIFI CONNECTEDSTM32ESP8266

五、STM32程序开发

核心代码结构

创建文件:

  • main.c:系统主循环
  • esp8266_driver.c:AT指令引擎
  • network_protocol.c:数据封包

DMA环形缓冲区实现

usart_dma.c关键代码:

#defineRX_BUF_SIZE512typedefstruct{uint8_tbuffer[RX_BUF_SIZE];volatileuint32_thead;volatileuint32_ttail;}RingBuffer;// DMA中断接收回调voidHAL_UART_RxCpltCallback(UART_HandleTypeDef*huart){ringbuf.buffer[ringbuf.head]=rx_byte;ringbuf.head=(ringbuf.head+1)%RX_BUF_SIZE;}

AT指令状态机

IDLE
CMD_SENT:
发送指令
CMD_SENT
WAIT_RESP:
启动定时器
WAIT_RESP
SUCCESS:
收到OK
ERROR:
收到ERROR或超时
SUCCESS
ERROR
RETRY:
重试计数<3

六、系统集成测试

MQTT连接代码

mqtt_client.c

voidconnectToMQTT(){charcmd[128];sprintf(cmd,"AT+MQTTUSERCFG=0,1,\"clientID\",\"user\",\"pass\",0,0,\"\"");sendATCommand(cmd,2000);sprintf(cmd,"AT+MQTTCONN=0,\"%s\",%d,1",MQTT_BROKER,1883);sendATCommand(cmd,5000);}

测试结果

测试项结果延迟
WiFi连接成功1.2s
TCP连接成功0.8s
数据上传成功25ms

七、典型问题排查

常见故障表

现象原因解决方案
AT无响应波特率不匹配统一为115200bps
频繁断线电源干扰增加220uF电容
数据错误未启用流控开启RTS/CTS

完整技术图谱

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:58:34

46、UNIX相关知识与组织介绍

UNIX相关知识与组织介绍 1. 推荐组织 在UNIX相关领域,有许多专业组织发挥着重要作用,以下是一些推荐的组织: | 组织名称 | 简介 | 官网 | | ---- | ---- | ---- | | ACM | 世界上历史最悠久、规模最大的教育和科学计算协会。自1947年以来,ACM为信息、思想和发现的交流…

作者头像 李华
网站建设 2026/4/7 17:07:13

buuctf中的ciscn_2019_en_2

首先checksec检查保护机制&#xff1a;-64位程序-开启了栈不可执行保护接下来使用IDA反汇编工具进行分析&#xff1a;发现begin函数&#xff0c;点进去begin函数内部&#xff1a;输入1可用进入encrypt函数&#xff0c;输入2可从主函数看到并没有什么用&#xff0c;3是退出程序这…

作者头像 李华
网站建设 2026/4/8 12:40:32

Kotaemon面试模拟机器人:AI考官训练求职者

Kotaemon面试模拟机器人&#xff1a;AI考官训练求职者 在招聘旺季&#xff0c;一家科技公司HR每天要筛选上百份简历&#xff0c;安排初面、评估候选人表达能力与逻辑思维。传统流程中&#xff0c;每位候选人的初步沟通至少耗时30分钟&#xff0c;而面试官的主观判断差异又常常导…

作者头像 李华
网站建设 2026/4/12 11:07:21

约翰·伯格的长期投资回报预期管理

约翰伯格的长期投资回报预期管理 关键词:约翰伯格、长期投资、回报预期管理、投资理念、指数基金 摘要:本文围绕约翰伯格的长期投资回报预期管理展开深入探讨。首先介绍了约翰伯格及其投资理念的背景,阐述了长期投资回报预期管理的重要性。接着分析了核心概念及相互联系,通…

作者头像 李华
网站建设 2026/4/17 14:36:42

Kotaemon边缘计算部署:Jetson设备运行可行性验证

Kotaemon边缘计算部署&#xff1a;Jetson设备运行可行性验证 在智能制造车间的一台数控机床前&#xff0c;工程师对着语音助手提问&#xff1a;“E-203设备连续报警过热&#xff0c;该怎么处理&#xff1f;”不到两秒&#xff0c;系统便返回了结构化建议&#xff1a;“请立即停…

作者头像 李华
网站建设 2026/4/12 11:49:18

AI的未来趋势:GPT-5.2与Gemini Deep Research API的深度对比与前景展望

人工智能技术的飞速发展&#xff0c;正深刻改变着各行各业的面貌&#xff0c;特别是在语言处理和科研领域&#xff0c;涌现出了一些创新性产品。近期&#xff0c;OpenAI 和 谷歌 分别发布了各自的重大创新&#xff1a;GPT-5.2 和 Gemini Deep Research API。这两款产品不仅在技…

作者头像 李华