前言
dht11是一个较为普遍的温湿度传感器,但是在树莓派上读取却不容易。 转了一圈论坛、百度、实验室,例子里面大多数都是用库或者直接硬来(直接读取信号脚分析)。这些办法虽然行之有效,但是不够简单方便,毕竟我这个伪程序员要求的并不是有用,更重要的是简洁……(滑稽)树莓派官方系统自带了一种无需自己装库文件的方法,下面就来介绍一哈。
原理
打开 /boot/overlays/README,会发现有以下几行:
Name: dht11 Info: Overlay for the DHT11/DHT21/DHT22 humidity/temperature sensors Also sometimes found with the part number(s) AM230x. Load: dtoverlay=dht11,<param>=<val> Params: gpiopin GPIO connected to the sensor's DATA output. (default 4)
意思是,在 config.txt 中添加上 dtoverlay=dht11 就可以在 /dev/ 下找到 dht11 文件,内容就是 dht 传感器的温度啦。
步骤
首先确保你使用的是 Raspbian 最新版本。
把 dht11(或 dht21/dht22)信号脚连接到 gpio4。
编辑 config.txt。
sudo nano /boot/config.txt
在末尾另起一行,加上:
dtoverlay=dht11,gpiopin=4
然后 ctrl+x 保存退出。
重启。
sudo reboot
大功告成了!
读取方法
直接 sudo cat /dev/dht11 即可。
如何自定义引脚
找到刚才添加的 config.txt中的 dtoverlay=dht11,gpiopin=4,将4改为你想要的引脚即可。注意,引脚号码为 BCM 编码。
关于这个操作的一些问题补充见帖子,也欢迎反馈讨论你遇到的问题:
https://talk.quwj.com/topic/255
嘿嘿
太棒了
这个方法貌似在有的版本上不支持…..
谷歌play上的Rasp-controller里可以一键配置DHT11,很方便。
怎么没用呢。是 stretch 版本不够新吗?
您好,请问跟着操作之后为什么 /dev/ 没有 dht11 文件。树莓派4b
4B我去的这里
/sys/devices/platform/dht11@0/iio:device0
里面有对应的in_temp_input和in_humidityrelative_input
用cat读取有时会报错
4B最后有找到吗
地址应为
/sys/devices/platform/dht11@xxx(取决于引脚号)/iio:device0/
方便给份源码吗?关于DHT11的。
为什么我的dht@xx里面没有iio这个文件啊