如何利用DHT22传感器来监测温度,并通过TM1650显示屏显示
W55MH32L-EVB是一款功能强大的以太网支持的微控制器开发板,搭载W55MH32L芯片。其核心为32位Arm® Cortex®-M3处理器,最高运行频率可达216MHz,配备1024KB闪存、96KB SRAM以及完全集成的硬件TCP/IP卸载引擎(TOE)。
在本项目中,我们将构建一个温度监控系统,实现以下功能:
- 从DHT22传感器读取温度数据
- 将温度显示在TM1650四位七段数码管上
- 当温度超过23°C时,自动启动电机并点亮LED灯
- 提供清晰的控制台反馈信息,便于调试
该系统是环境监测、智能家居自动化或任何需要根据传感器输入触发条件操作的项目的理想起点。
引脚连接
设置
安装所需库
需要使用DHT22和TM1650驱动程序:
•DHT22 — dht模块已包含在标准MicroPython中,使用方式为:from dht import DHT22。
•TM1650 — 从W55MH32的GitHub仓库下载TM1650 MicroPython驱动程序。
将 main.py 和 tm1650.py 上传到您板子的根目录。
代码说明
1. 导入模块和引脚定义
我们导入以下必要模块:
- machine.Pin 用于 GPIO 控制
- machine.I2C 用于与 TM1650 进行 I2C 通信
- dht.DHT22 用于读取 DHT22 传感器数据
- tm1650.TM1650 用于 4 位数码显示屏驱动
2. 硬件初始化
DHT22 连接到 PC6 引脚,TM1650 通过 I2C 总线 1 初始化,亮度级别为 5。
3. 辅助函数
motor_on() / motor_off() – 通过设置 INA 和 INB 引脚来控制电机驱动器
led_on() / led_off() – 控制 PC7 上的 LED 灯
display_temp() – 将温度格式化为四位数显示
4. 显示格式
温度以一位小数形式显示。例如,23.6°C 显示为“23.6”,小数点位于第二位数字上。
5. 主循环
每2秒执行以下操作:
- 从DHT22传感器读取温度和湿度
- 更新显示屏
- 检查温度是否超过23°C
- 若温度高于阈值,启动电机和LED灯;若低于阈值,则关闭它们
总结
本项目展示了如何利用MicroPython轻松将传感器输入、显示输出和执行器控制集成到W55MH32L-EVB上。借助硬件TCP/IP卸载引擎,您可后续扩展该系统,实现以太网连接、MQTT通信或网页界面功能,且不会牺牲性能。
本文编译自hackster.io





