|
AM2301温湿度传感器模块,又被称作DHT21模块,是著名的DHT温湿度传感器系列之一。DHT21和DHT22的规格非常相似,除了主要区别,包括外壳设计和输出引脚的物理外观 - AM2301有三根输出线,而DHT22使用金属引脚。
在本篇文章中,我们主要介绍如何基于Arduino开发板使用AM2301温湿度模块。
所需的组件 ● Arduino UNO R3开发板 ● AM2301温度和湿度模块 ● 跳线
AM2301传感器模块简介 AM2301模块是一种内部校准的数字传感器,用于测量温度和湿度。它可以测量0至99.9%的湿度,精度为±2%,温度为-40至80°C,精度为±3°C。
该数字模块使用单线协议进行通信。因此,除了电源引脚外,它只需要一个数字引脚即可与微控制器通信。使用此协议,我们可以通过这条线传输数据,最大距离为20米。
AM2301模块的引脚分布 该温湿度传感器模块共有3个引脚,如下图所示:
● VCC(红线):模块电源正极(3.3至5.5V) ● GND(黑线):接地 ● OUT(黄线):数据线(连接到微控制器的一个数字引脚)
AM2301温度和湿度传感器模块与Arduino开发板的硬件连接 按如下所示连接电线。传感器模块的OUT引脚连接到Arduino开发板的D2引脚。
代码 首先在ArduinoIDE中安装DHT库。您可以从此链接下载DHT库的zip文件:DHT库。
在Arduino中复制并运行以下代码。
- //Libraries
- #include <DHT.h>;
- //Constants
- #define DHTPIN 2 //what pin we're connected to
- #define DHTTYPE DHT21 //DHT 21 (AM2301)
- DHT dht(DHTPIN, DHTTYPE); //Initialize DHT sensor for normal 16mhz Arduino
- //Variables
- float hum; //Stores humidity value
- float temp; //Stores temperature value
- void setup()
- {
- Serial.begin(9600);
- dht.begin();
- }
- void loop()
- {
- //Read data and store it to variables hum and temp
- hum = dht.readHumidity();
- temp= dht.readTemperature();
-
- //Print temp and humidity values to serial monitor
- Serial.print("Humidity: ");
- Serial.print(hum);
- Serial.print("%, Temperature: ");
- Serial.print(temp);
- Serial.println(" Celsius");
-
- delay(2000); //Delay 2 sec.
- }
复制代码上述库还用于设置DHT11和DHT22传感器。 要将上述代码用于任何提到的传感器,只需将下面一行中的“DHT11”或“DHT22”替换为“DHT21”即可。
输出结果 将代码上传到Arduino开发板上后,打开串口监视器窗口查看输出。
如果一切操作正确,监视器串口输出中的温度和湿度数据应类似于下图。
随着环境温度或湿度的变化,您应该看到串口输出中相应的变化,以确保模块正常工作。例如,通过在传感器附近点火,输出温度应该会快速变化。
以上就是基于Arduino开发板使用AM2301温湿度模块的方法,如果有任何疑问,请随时在本帖下回复。 |