03-Machine-2-dht.py K230外接数字温湿度传感器DHT11模块演示

dht.py 是K230外接数字温湿度传感器DHT11模块的演示程序。

01studio 的 k230_canmv_01studio镜像中,已经集成了DHT传感器驱动库,只需导入即可使用。

  • DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。
  • 每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。
  • 传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
  • 单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。

|-------|----------------|-------|------|-----|---------|
| 型号 | 测量范围 | 测湿精度 | 测温精度 | 分辨力 | 封装 |
| DHT11 | 20-90%RH 0-50℃ | ±5%RH | ±2℃ | 1 | 4 针单排直插 |

工作原理详细介绍:

  1. 传感器结构:DHT11包含一个电阻式测湿元件和一个NTC测温元件,这些元件与一个高性能的8位单片机连接,用于实时采集湿度和温度数据。
  2. 数据传输格式:DHT11的数据传输格式是高位在前低位在后,一次传输40位数据,包括8位湿度整数数据、8位湿度小数数据、8位温度整数数据、8位温度小数数据以及最后的8位校验和。
  3. 校准系数:传感器内部的校准系数以程序的形式存储在OTP内存中,这些系数在检测型号的处理过程中被调用以进行数据校准。
  4. 通信协议:DHT11采用单总线数据格式,即单个数据引脚端口完成输入输出双向传输。数据包由5个字节(40Bit)组成,数据分小数和整数部分,一次完整的数据传输为40bit,高位先出。
  5. 通信过程:在通信过程中,首先将总线拉低进行数据的写入,之后释放总线停止数据写入,然后再次拉低总线开始读出数据操作。通过检测DHT信号高电平的时间来判断传入的信号的值是0还是1。
  6. 校验和:数据传送正确时,校验和数据等于"8bit湿度整数数据+8位湿度小数数据+8bit温度整数数据+8bit温度小数数据"所得结果的末8位。

源代码如下:

python 复制代码
import time
import machine
import dht #导入DHT11的传感器驱动库

d = dht.DHT11(machine.Pin(12))

while True:
    try:
    
        d.measure()
        t = d.temperature()  # eg. 23 (°C)
        h = d.humidity()     # eg. 41 (% RH)
        print(f"temperature: {t}°C, humidity: {h}% RH")
    
    except OSError as e:
        if e.errno == 110:  # ETIMEDOUT
            pass  # Silently ignore timeout errors
        else:
            raise  # Re-raise other OSErrors
    
    except Exception as e:
        if "checksum error" in str(e):
            pass  # Silently ignore checksum errors
        else:
            raise  # Re-raise other exceptions
    
    time.sleep(1)

程序特点

  • 健壮性:能够处理传感器通信中的常见错误

  • 持续性:遇到错误不会停止,而是继续尝试

  • 实时性:每秒更新一次数据

  • 简洁性:代码清晰易懂

这种设计特别适合物联网应用,其中传感器偶尔的读取失败是可以接受的,而程序的持续运行更为重要。

相关推荐
SCJ水测家-水位流量监测17 小时前
2026 本地水务产品精选|管网双水位一体化监测,高效解决管网水位监测各类难题
智能硬件
QXWZ_IA18 小时前
**电力登高作业高空失保实时监管:千寻智能安全带高挂低用监测方案**
人工智能·科技·算法·能源·智能硬件
国产化创客3 天前
Kindle完整越狱改造:从闲置泡面盖到Linux开发与智能家居终端
linux·运维·物联网·嵌入式·智能家居·智能硬件
mk0153 天前
20V输入,12V 3A输出 效率96%DCDC降压芯片
驱动开发·单片机·硬件工程·智能硬件·pcb工艺
ShallWeL6 天前
NVIDIA Jetson 早期系列演进
人工智能·嵌入式硬件·边缘计算·智能硬件
Industio_触觉智能7 天前
开源鸿蒙OpenHarmony再进阶,OneConnect规范即将升级为国家级行业标准
嵌入式硬件·物联网·硬件架构·智能硬件·openharmony·开源鸿蒙
Industio_触觉智能8 天前
RK3576开发板GPIO驱动入门教程,基于触觉智能开发板教学-上
嵌入式硬件·硬件工程·智能硬件·开发板·gpio·瑞芯微·rk3576
kyle~9 天前
Haply Inverse3 力反馈设备
人工智能·机器人·智能硬件·力反馈
省四收割者14 天前
一文详解信号完整性(3)--规避SI问题的具体实现方法
嵌入式硬件·硬件架构·信号处理·智能硬件·pcb工艺·altium designer
魔点科技14 天前
智能会议门牌:解决会议室管理全流程痛点,开启企业数字化办公
智能硬件·智慧办公·电子门牌·魔点科技·会议门牌