DHT22和gpio如何工作?

DHT22和gpio如何工作?

问题描述:

我只是给自己一个温度和湿度传感器DHT22,我有一些疑问: - 这个设备只能用于arduino或Rpi吗? - 如果答案为否,它如何与GPIO协同工作?据我所知,gpio有2个选项:-Direcion(in或out)和Value(0或1)。所以根据这一点,我正在检查arduino和Rpi如何使用这些设备的很多示例,并且所有这些都附加到了gpio的端口。那么这是如何工作的? c/C++有更大的容量来处理这些读数吗? - 如果传感器可以使用更多的设备,是否有任何Linux标准库/代码来处理这个设备?DHT22和gpio如何工作?

谢谢。

正如您所描述的,DHT22是通过GPIO引脚工作的。这意味着任何带有GPIO的设备都可以使用它。

关于图书馆。有两个通过GPIO编写的主要库,一个用于C++,另一个用于Python。这意味着任何具有GPIO并且可以运行Python或C++的设备都可以使用您的DHT22。

那么没有C++,Python,Java ...基础库?那么,有没有Linux标准库通过GPIO进行通信。当然,如果你渴望学习和探索,你可以在Assembly或Bash中编写一个库,它将尽可能接近LSL。通过这样做,您可以在没有任何其他编程语言的情况下通过GPIO通过GPIO进行本地通信。如果你对Bash感兴趣,请看this

当Linux只能读取0和1时,Linux如何知道温度和湿度?考虑两件事情:

  1. 如何计算机门店数量?电脑只知道's和's,所以他需要将转换为二进制。什么是32 = 2^6十进制,是二进制。
  2. 电脑如何读取温度和湿度?当您执行像

    get_temperature() 
    

    一个函数,它从DHT22请求下,实际发生的事情是,你的计算机发送信号,DHT22(它DHT22“写道:”到DHT22在GPIO通过,这是一样的OUT在电脑上)。然后DHT22检测温度并将数据“发回”。 它是如何发送的?它通过GPIO(计算机上的GPIO IN和DHT22上的GPIO OUT)创建一系列电荷。在我们的情况下,如果温度是,那么它发送下一个序列:1-0-0-0-0-0。计算机读取序列,当您尝试打印它时将其转换为十进制。

希望我明白了,这就是你想要的。

在这link你会发现一个C代码读取DHT22温度和湿度,如果这是你想要的。请让我知道你一般想做什么(读取温度和哼声。通过库,编写新的库以通过GPIO进行通信,使用DHT22的另一种语言编写新库...)。

+0

谢谢你的回答。关于gpio功能的问题呢?为什么在Linux上,我只能得到值0或1,并与C + +或python我可以读取例如在这种情况下的湿度温度? – Lomezno

+1

我会编辑回答完成它,谢谢你提醒我我错过了一些... – campovski

+0

感谢您的链接。这里是我的问题出现的地方,我将DHT22连接到我的gpio,然后在发送给我的链接上,我得到的唯一结果是0.我期望定期获得一些值,但不会。我不明白这一点,可能可能是我的传感器没有正确连接? – Lomezno