基于RT-Thread的简易物联网温控箱 | 技术集锦

2025-12-31 16:20:39
关注

基于RT-Thread的简易物联网温控箱 | 技术集锦

目录

项目概述


RT-Thread 使用情况概述


硬件架构


软件架构说明


演示效果


优化方向


源码获取方式

1 项目概述

该项目构建了一个桌面级的高精度、易扩展温控系统。系统能够精准控制箱内温度,并通过Wi-Fi接入网络,配合完善的Web可视化监控与调参仪表盘,形成了完整的物联网控制闭环。在开发过程中,充分运用了RT-Thread操作系统提供的多线程管理、设备驱动接口及网络组件功能,实现了软硬件协同的完整解决方案。

硬件平台:NXP FRDM-MCXA156

RT-Thread 版本:5.2.1

核心特性包括:

  • 整机最大功耗 24W
  • 温度控制范围为常温至70°C(通过接入制冷片或更高耐温的PTC可进一步扩展)
  • 实现较稳定恒温控制(最大波动为3°C,稳态波动不超过1°C)
  • 多传感器数据融合机制
  • OLED 本地状态显示
  • 远程Web监控与参数在线调整

项目亮点:采用级联PID+前馈复合控制策略、三态控制状态机设计、TCP-WebSocket桥接的可视化方案。

2 RT-Thread 使用情况概述

RT-Thread 在本系统中作为核心操作系统,支撑了各项功能的实现。其稳定内核、丰富的中间件生态和简洁的API显著提高了开发效率。

内核与调度机制:系统创建多个线程分别处理主控逻辑、PID计算、OLED刷新、网络服务及LED指示灯控制。借助RT-Thread的抢占式调度,确保温度控制等关键任务具备较高的响应速度。

设备驱动接口:利用统一的设备模型,轻松操作多个外设:

  • Pin 设备:用于控制LED指示灯及加热/制冷切换的继电器
  • ADC 设备:采集NTC热敏电阻电压,结合Steinhart-Hart模型计算PTC温度。
  • PWM 设备:控制PTC加热片与风扇的输出。
  • I2C 设备:驱动OLED显示(基于u8g2库)及板载P3T1755环境温度传感器

Sensor 框架:用于获取DHT11与P3T1755的传感器数据。

网络协议栈:采用内置的lwIP协议栈与SAL抽象层,实现稳定可靠的TCP服务,为远程控制提供通信支持。

WLAN 框架:通过rt_wlan_connect接口实现Wi-Fi连接。

FinSH/MSH 命令行:定义get_status与tune命令,允许通过串口动态调整运行参数。

软件包生态:

  • u8g2:图形库用于OLED显示。
  • dhtxx:DHT11温湿度传感器包。
  • p3t1755:P3T1755 I2C温感器包。

3 硬件架构

整体硬件系统由控制器、传感器、执行器及人机交互模块组成。

核心控制器:NXP FRDM-MCXA156开发板。

传感器模块:

  • 箱内温湿度监测:DHT11传感器,集成于RT-Thread Sensor框架。
  • PTC 表面温度监测:NTC热敏电阻,通过ADC采样并计算,用于内环控制与过温保护。
  • 环境温度监测:开发板集成的P3T1755 I2C传感器。

执行器模块:

  • 加热模块:采用LR7843 MOSFET驱动PTC加热片,通过PWM调节。
  • 冷却模块:12V直流风扇,同样由PWM控制。
  • 模式切换:通过继电器切换PWM信号至加热或散热设备,实现自动切换。

人机交互模块:

  • 本地:SSD1306 OLED实时显示系统状态与关键温度数据。
  • 远程:通过Wi-Fi连接,支持PC或手机浏览器访问远程仪表盘。

硬件连接示意图

4 软件架构说明

软件核心包含三态状态机与PID控制算法,分别部署于main.c与pid_entry线程。

软件模块详解

主控与状态机(main.c)

main函数初始化传感器、PWM、ADC与Wi-Fi模块,并创建各应用线程。

主循环构成系统状态机,周期性读取箱内温度,根据目标设定与迟滞范围,自动在HEATING(加热)、WARMING(保温)、COOLING(散热)状态间切换。

状态切换过程中通过STATE_PIN控制继电器,切换PWM信号通路,并重置PID积分项,避免系统突变。

核心控制逻辑(pid_entry线程)

该线程以高频率运行,负责温度调节核心算法。

级联PID + 前馈控制(加热/保温模式)

  • 外环PID(pid_box):根据箱内与目标温度的差值,动态调整PTC目标温度(ptc_target_temp)。
  • 内环PID(pid_ptc):根据PTC实际温度与目标值的偏差,调节PWM输出。
  • 前馈控制:通过ff_table建立温度与PWM的关系,使PID输出叠加于基础PWM之上,加快响应速度并避免积分饱和。

PI控制(散热模式)

  • 切换至COOLING状态后,采用pi_cool控制器,根据温度偏差调节风扇速度。
  • 系统实时监控PTC温度,一旦超过安全阈值,立即将PWM设为零,以确保系统安全。

远程控制服务(remote.c)

remote_server_thread_entry线程创建TCP服务器,监听5000端口。

支持两种命令:

  • get_status:将温度、湿度、PID参数、运行状态等信息封装成JSON返回。
  • tune:接收参数修改指令并调用main.c中的tune函数进行在线调整。

OLED显示(screen.c)

screen_on线程负责驱动OLED。

UI界面展示工作模式(HEATING/COOLING/WARMING)、四个温度值(当前、目标、环境、PTC)及温差指示条,使状态一目了然。

5 演示效果

本地OLED显示

实时呈现系统关键参数。

远程Web仪表盘

通过浏览器访问远程监控界面,包括仪表、状态提示及参数调节区域。

温度历史曲线图可用于分析系统响应速度、超调量及稳态误差。

MSH 命令行调试

通过串口连接,可执行get_status命令查看系统状态,或使用tune命令调整参数。

6 优化方向

硬件优化

  • 将DHT11替换为更高精度传感器(如DHT22),以提升整体控制精度。

功能拓展

  • 允许用户在Web界面上定义随时间变化的温度曲线,如先保温30分钟再升温至70°C并保持1小时,从而支持更复杂的应用场景。

参数优化

  • 当前PID参数仍有优化空间。由于温度变化缓慢,实验法耗时较长,目前正尝试通过仿真建模寻找最佳控制参数。

7 源码获取方式

本项目已开源,欢迎开发者参与与复现。

GitHub: https://github.com/Cylopsis/Little-TempControled-Box

您觉得本篇内容如何
评分

评论

您需要登录才可以回复|注册

提交评论

广告

感知论坛

这家伙很懒,什么描述也没留下

关注

点击进入下一篇

红外测温传感器:开启厨电智能化新“食”代

提取码
复制提取码
点击跳转至百度网盘