基于RT-Thread的简易物联网温控系统设计与实现
本文介绍了一款基于RT-Thread实时操作系统构建的桌面级物联网温控箱项目。该系统具备高精度温度控制能力,并通过Wi-Fi实现远程监控与参数调整,为用户提供本地与远程多维度的交互体验。
项目概述
该系统以NXP FRDM-MCXA156开发板为硬件平台,搭载RT-Thread 5.2.1版本操作系统,构建了一个完整的软硬件结合解决方案。其核心功能包括温度闭环控制、多传感器融合、OLED本地显示与Web远程监控。系统最大功耗为24W,温控范围在常温至70°C之间,且具备扩展支持更高温度PTC加热模块的能力。
- 温控精度:稳态波动控制在±1°C范围内
- 支持多传感器协同工作
- 支持Web远程调参与实时可视化
- 采用级联PID+前馈复合控制算法
- 利用TCP-WebSocket技术实现Web数据桥接
RT-Thread在系统中的应用
RT-Thread作为系统的核心实时操作系统,承担任务调度、设备驱动与网络通信等核心功能。
- 线程管理:系统创建了多个线程,包括PID控制线程、OLED刷新线程、网络服务线程等,通过抢占式调度机制保障关键任务实时响应。
- 设备驱动:统一的设备模型简化了外设操作。例如,通过ADC采集NTC热敏电阻信号,PWM调节PTC功率输出,I²C驱动OLED与P3T1755温度传感器。
- 网络通信:使用lwIP协议栈与SAL接口搭建TCP服务器,实现远程访问;通过WLAN框架连接Wi-Fi网络。
- 命令行支持:通过FinSH/MSH命令行工具,用户可实时查看系统状态并进行参数调整。
- 软件包集成:包括u8g2图形库、dhtxx传感器驱动、p3t1755温度传感器软件包等,强化系统功能。
系统硬件架构
系统硬件由控制器、传感器、执行器与人机交互四部分构成。
- 控制器:NXP FRDM-MCXA156开发板,作为系统主控单元。
- 传感器模块:涵盖DHT11(箱内温湿度)、NTC热敏电阻(PTC表面温度)和P3T1755 I²C传感器(环境温度)。
- 执行器模块:采用PTC加热片与直流风扇作为加热/散热单元,通过PWM信号控制功率,继电器实现模式切换。
- 人机交互模块:本地采用SSD1306 OLED显示关键信息,远程通过Web浏览器访问可视化仪表盘。
硬件连接示意图
软件架构与控制逻辑
软件核心基于三态状态机与PID控制算法,分别在main线程与pid_entry线程中实现。
- 状态机控制(main线程):根据实时温度数据,周期性判断系统处于加热、保温或散热模式,并相应切换继电器控制信号,确保系统稳定。
- PID控制逻辑(pid_entry线程):
- 加热/保温模式:采用级联PID结构,外环控制箱内温度,内环控制PTC表面温度,并叠加前馈控制提升响应速度。
- 散热模式:切换为PI控制,依据温度差调节风扇速度。
- 安全机制:实时监测PTC温度,一旦超过设定阈值,自动切断PWM信号。
- 远程控制(remote.c模块):基于TCP服务器实现远程访问,支持get_status与tune命令,用于获取系统状态与动态调整控制参数。
- OLED显示(screen.c模块):周期性刷新显示屏,展示系统模式、温度数据与控制状态。
系统演示效果
OLED本地显示界面:
界面清晰显示系统运行状态与温度数据。
远程Web监控界面:
远程浏览器可查看实时温度曲线、系统状态及控制参数。
串口命令行调试:
通过串口终端执行get_status与tune命令,可查看系统运行信息并在线修改参数。
未来优化方向
尽管当前系统已实现基本功能,但仍存在多方面优化空间:
- 硬件层面:可升级传感器类型,例如将DHT11替换为更高精度的DHT22。
- 功能层面:引入预设温度曲线功能,使系统适用于更复杂温度调节场景。
- 参数优化:通过建模仿真手段替代实验调试,提高控制参数寻优效率。
项目代码开源
该项目已在GitHub开源,欢迎开发者下载使用与复刻。
GitHub链接:https://github.com/Cylopsis/Little-TempControled-Box