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