无需库文件,直接读取dht11数据

RaspiSQH 120.9m2019-10-035660 次点击2 人收藏2 人感谢
前言
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编码。

p.s 这个本来应该几周之前发的,然鹅小组出了点问题,把文稿弄丢了.....这次在github码了一个md,在这里:https://rpiqhsy.github.io/temp
收藏 ♥ 感谢
Spoony 小组长 2019-10-03 
小组的锅我来背。谢谢po主分享。
RaspiSQH 120.9m 2020-03-17  ♥ 1
今天刷了buster看了一下,地址应该改成
/sys/devices/platform/dht11@xxxx/iio:device0
才能读出来,QAQ。不过这个不一定每次都可以读,如果链接有误或者过于频繁就会显示io错误。
Spoony 小组长 2020-03-17 
@RaspiSQH 看来也是不稳定
zabulonHu 1.15m 2020-03-17  ♥ 1
国内还是需要多一点这样的创客文化
Spoony 小组长 2020-03-17 
@zabulonHu 是的,需要多实践多总结多分享。
RaspiSQH 120.9m 2020-03-17  ♥ 1
用这个方法做了一个web dht(窗台外面的温度)(failed可以刷新一下)
http://echocraft.com.cn/dht
adafruit库已经完全挂了,读不出来或者读出来三千多度(滑稽),看了一下github已经archived了
yfhaotian 10cm 2020-10-09 
哥没有这个目录

pi@raspberrypi:~ $ sudo cat /dev/dht11
cat: /dev/dht11: 没有那个文件或目录
yfhaotian 10cm 2020-10-09 
@RaspiSQH
/sys/devices/platform/dht11@xxxx/iio:device0 这个是什么地址 怎么修改的??
Spoony 小组长 2020-10-09 
@yfhaotian 这个方法试验下来觉得不稳定
建议用这个方法
https://shumeipai.nxez.com/2020/05/19/raspberry-pi-read-data-from-dht11-sensor-by-c.html
九年吃菜粥 38.85m 2020-10-09  ♥ 1
@Spoony
@yfhaotian
manjaro(Arch Linux)(新内核的系统应该也是这样)中读取路径为:
温度:/sys/devices/platform/dht11@*/iio:device0/in_temp_input
湿度:/sys/devices/platform/dht11@*/iio:device0/in_humidityrelative_input
稳定性问题应该因该是刚好遇见系统正在采样

话说wiringpi不是被弃用了吗
yfhaotian 10cm 2020-10-10 
@九年吃菜粥
我的根本读不出来 显示连接超时,都不知道是什么问题

登录注册 后可回复。