STM32开发-智能家居
文章平均质量分 86
本专栏以STM32F411RET6为主控,结合ESP-12F物联网模块,从零开始手把手打造一套完整的智能家居系统。内容涵盖硬件选型、CubeMX配置、多传感器驱动(DHT11/ENS160)、PWM执行器控制、蓝牙/WiFi通信及MQTT云端对接。通过14个实战章节,带你打通嵌入式软硬件全链路。
硅基造物主
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STM32 从 0 到 1 做智能家居(十四):整机联调与验收 —— 把七个模块装成一台机器
本文总结整机联调核心经验:以串口日志为唯一真相源,按“供电→时钟→通信→控制”分层排查。强调“只改一个变量”、严格遵循上电顺序与按键语义,重点解析了蓝牙/MQTT切换时的阻塞机制与日志误判陷阱。提供可直接执行的验收脚本与工具清单,确保30秒内定位问题层级,实现从模块通过到整机可用的跨越。原创 2026-10-29 10:13:45 · 883 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(十三):H5 网页控制端 —— 用 mqtt.js 把浏览器接到板子上
本文详解如何通过浏览器网页实现对智能硬件的实时监控与远程控制。基于MQTT协议,构建了从浏览器→公网Broker→ESP32→STM32的五跳通信链路,重点解决前端常见“看似正确却无效”的环境问题:如WebSocket端口误用(1883 vs 8084)、主题名称不一致、缓存干扰及连接状态异常等。强调代码逻辑之外的环境配置关键性,提出“先定位断点,再排查”的排错原则,并梳理了H5与固件间必须严格对齐的四项参数,确保温湿度实时显示与设备一键开关功能稳定可用。原创 2026-10-29 10:12:58 · 341 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(十二):USART2 分时复用 —— ESP-12F + MQTT
本文详解ESP-12F模块在STM32平台实现MQTT通信的完整链路,聚焦“分时复用”串口引脚的硬件与软件协同设计。通过拨码开关切换蓝牙(9600)与WiFi(115200)通道,强调切换顺序、供电稳定性及启动时序的重要性。重点揭示了ESP8266上电后自动连接Broker导致AT+MQTTUSERCFG失败的隐藏陷阱,并详细拆解初始化流程中各标志位的作用与执行顺序,确保每一步“回OK”真实有效,最终实现稳定远程控制。原创 2026-10-28 12:56:38 · 367 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(十一):蓝牙远程控制(HC-06)
本文详解蓝牙远程控制风扇的实现过程,重点剖析从手机到STM32的通信链路。核心问题在于各层潜在故障:波特率错(默认9600)、拨码开关位置错误、命令缓冲区被逐字节清空导致指令拼接失败等。通过裸测HC-06模块、正确接线(PA2/PA3)、确认拨码开关在蓝牙侧、遵循“按键顺序:KEY2→KEY4”进入远程模式,并在主循环中安全切换波特率与接收状态,最终实现手机一键控扇。强调“先看灯、再看代码”,每一步都需验证,避免盲目调试。原创 2026-10-28 12:50:21 · 358 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(十):串口与 printf 重定向
本文系统梳理STM32串口调试核心要点:明确三路USART分工(USART1专用于调试日志,严禁混用),强调共地、交叉接线与3.3V电平的重要性;详解波特率计算与误差分析,指出9600为容错首选;通过自检技巧快速定位乱码问题;最后提供fputc重定向实现及关键配置项(如勾选Use MicroLIB),确保调试信息稳定输出。原创 2026-10-28 12:48:54 · 466 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(九):按键消抖与三模式状态机
本文详解STM32按键输入设计,重点解决“人机交互”核心问题。采用下降沿触发、内部上拉电阻,确保按键按下为低电平。通过EXTI中断实现四键输入,强调仅用下降沿触发以避免双中断干扰。关键在于中断处理规范:禁止使用HAL_Delay等阻塞操作,仅置标志位;消抖采用每键独立时间戳的40ms窗口机制,避免共用时间戳导致连按失效。同时揭示了中断链路中标志位清除、回调函数唯一性及日志打印限制等易错点,确保系统响应可靠、实时。原创 2026-10-27 17:35:44 · 356 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(八):PWM 控制风扇、加热片与 SG90 窗帘
本文详解STM32 PWM控制原理与实战,重点区分功率型(如风扇)与角度型(如舵机)设备的控制差异:前者看占空比,后者看脉宽(微秒)。通过TIM3/TIM5定时器配置,实现1kHz风扇控制与50Hz舵机控制,关键在于正确设置时钟分频、周期(ARR)、脉宽(CCR)及启用HAL_TIM_PWM_Start。文中强调参数计算细节(如1MHz计数频率使CCR直接对应微秒),并警示常见错误:未调用启动函数、误将舵机脉宽当占空比处理、超范围设置CCR导致无效输出。最后提醒配置中“Pulse=0”确保上电安全,以及引脚原创 2026-10-27 17:34:50 · 400 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(七):ENS160 空气质量(I2C)
本文详解I2C通信原理与常见陷阱,重点剖析ENS160传感器因地址配置错误导致HAL_I2C_Mem_Read返回HAL_ERROR的根源。强调I2C“两根线、开漏结构、上拉电阻”的核心机制,阐明起始/终止信号、数据采样时序、应答机制及7位地址的正确处理方式。指出地址未左移或读写位设置错误是导致通信失败的主因,结合实例说明寄存器读写帧格式,帮助开发者避开I2C“隐形坑”。原创 2026-10-27 17:33:54 · 745 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(五):工程结构与代码骨架
本文聚焦于STM32项目代码结构设计,提出“分层管理、职责分离”的核心原则:将代码分为App(自写驱动)、Core(CubeMX生成)和Drivers(HAL库)三层,确保工程可维护性。强调volatile变量、HAL_GetTick()周期控制、中断仅置标志、状态机模式管理等关键实践,并规范main.c骨架结构与主循环纪律,避免阻塞操作,实现代码清晰、易调试、可扩展的开发体系。原创 2026-10-26 08:46:34 · 180 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(六):DHT11 温湿度采集
DHT11为单总线数字温湿度传感器,需严格遵循微秒级时序:主机拉低≥18ms后释放,从机应答80μs低/高电平,数据位以50μs低电平+26~28μs(0)或70μs(1)区分。读取时需关中断避免干扰,采样点设在低电平结束后40μs。校验和为前四字节之和,失败多因时序不准、中断干扰或未正确初始化delay_us。关键点:18ms起始、80μs应答、40μs采样、1s间隔,缺一不可。原创 2026-10-26 08:47:25 · 398 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(四):用 CubeMX 把工程骨架搭起来
本章强调时钟、引脚、定时器等配置必须严格照抄,否则编译无错但运行异常,排查困难。以STM32F411RET为例,核心板25MHz晶振需正确设置输入频率,通过PLL倍频至100MHz主频,关键参数如M=25、N=400、P=4不可随意更改。APB1总线分频后定时器时钟需×2,达100MHz。Flash等待周期设为3WS,避免偶发死机。GPIO配置中User Label用于生成宏定义,命名需规范且唯一。所有设置均在CubeMX中完成,生成代码结构清晰,工程路径与文件层级需确认无误,确保后续开发顺利。原创 2026-10-26 08:44:27 · 287 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(三):硬件接线与拨码开关
本文详解硬件接线关键规范:坚持断电操作、先接电源地再接信号、每接模块即查通断;明确三类电源域(5V/3.3V/独立5V舵机),强调共地重要性及加电容防干扰;提供精准引脚表与各模块接线指南,重点提醒ENS160勿接5V、舵机用独立电源、蓝牙/ESP-12F交叉接线与波特率设置,确保上电前检查无误,为后续MQTT通信打下可靠基础。原创 2026-10-25 17:44:20 · 342 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(二):把开发环境一次配好
本文为STM32项目开发系列第二篇,聚焦工具链配置与开发纪律。强调环境干净的重要性,详细指导安装Keil MDK、STM32CubeMX、ST-Link驱动及USB转TTL串口驱动,并验证串口通信与本地H5服务。核心纪律:所有自定义代码仅写入USER CODE BEGIN/END区域,新增文件统一放入App目录并手动添加至Keil工程组,确保代码不被覆盖,提升开发效率与可维护性。原创 2026-10-25 17:41:57 · 369 阅读 · 0 评论 -
STM32 从 0 到 1 做智能家居(一):先想清楚要做什么
本文为STM32智能家居项目第一篇,强调“先想清楚再动手”。通过明确五大功能模块(数据采集、自动/手动控制、蓝牙与网页远程),绘制系统框图与三条数据链路(调试、蓝牙、网络),梳理硬件连接与软件工具链,并给出分步验证的推进顺序。重点提醒:串口日志是唯一可信真相,共地、独立供电、波特率切换等易错点必须规避。最终目标是构建可逐层验证的稳定开发流程,避免“玄学排查”。下一篇将从STM32CubeMX建工程开始,实现串口打印。原创 2026-10-25 17:37:15 · 316 阅读 · 0 评论
分享