我刚拿到一个温湿度传感器DHT22,我有些疑惑: - 此设备仅适用于arduino或Rpi吗? - 如果答案为否,那么它如何与GPIO一起使用?据我所知,gpio有2个选项:-Direcion(in或out)和Value(0或1)。所以根据这个,我正在检查arduino和Rpi关于如何使用这个设备的很多例子,并且都附加到gpio的端口。那怎么工作呢? c / c ++有更大的容量来处理这个读数吗? - 如果传感器可以与更多设备一起使用,是否有任何linux标准库/代码来处理这个设备?
感谢。
答案 0 :(得分:1)
正如您所描述的那样,DHT22可以通过GPIO引脚工作。这意味着任何具有GPIO的设备都可以使用它。
关于图书馆。有两个主要的库通过GPIO进行通信,一个用于C ++,另一个用于Python。这意味着任何具有GPIO并且可以运行Python或C ++的设备都可以使用您的DHT22。
如果没有基于C ++,Python,Java的库?那么,没有 Linux标准库可以通过GPIO进行通信。当然,如果你渴望学习和探索,你可以在Assembly或Bash中编写一个库,这将尽可能接近LSL。通过这样做,您可以在没有任何其他编程语言的情况下通过GPIO从Linux shell本地进行通信。如果您对Bash感兴趣,请查看this。
当Linux只读取0和1时,它如何知道温度和湿度?考虑两件事:
电脑如何读取温度和湿度?当您执行类似
的功能时get_temperature()
从DHT22请求温度,实际发生的是你的计算机向DHT22发送信号(它通过DHT22上的IN“写入”DHT22,这与计算机上的OUT相同)。然后DHT22检测温度并“返回”数据。 如何发送?它通过GPIO(计算机上的GPIO IN和DHT22上的GPIO OUT)创建一系列电荷。在我们的例子中,如果温度 32 ,则它会发送下一个序列: 1-0-0-0-0-0 。计算机读取序列,当您尝试将其打印到屏幕时,它将其转换为十进制。
希望我清楚自己,这就是你想要的。
在这个link中,如果你想要的话,你会找到一个用于读取DHT22温度和湿度的C代码。请让我知道你一般想做什么(通过库读取温度和嗡嗡声,编写用于通过GPIO进行通信的新库,使用另一种语言为DHT22编写新库...)。