就在最近,DFRobot又发布了一个新品——IIC温湿度传感器DHT20。
我们也是很快就收到了DFRobot寄过来的测评产品。
步骤1 开箱
在我们打开它的包装后,随包装附送的有这些
这是它的背面
他和DHT11的外观也非常相似
这是他和LM35的对比图
步骤2 介绍
DHT20是一款智能温湿度传感器模块,是DHT11的全新升级产品。模块内配置一颗全新设计的ASIC专用芯片、经过改进的MEMS半导体电容式湿度传感元件和一个标准的温度传感元件,在测量精度、供电电压、测量范围、响应时间、稳定性等方面的性能参数相交DHT11都有大幅提升。具有出厂标定、低功耗、高精度、高稳定性等特点,采用完全校准的数字I2C接口,响应迅速,抗干扰能力强,性价比更高。可应用于消费电子、汽车、工业、气象等领域,例如:智能空调、温湿度调节、温湿度检测设备及其他相关温湿度控制产品。
所以简单来说DHT20的亮点是:
1. 支持更稳定的IIC通信
2. 测量精度及稳定性等综合性能相比DHT11有提升
步骤3 对比
我们也将DHT20与LM35和普通的温湿度计测得的结果做了对比
这是与LM35做的对比
这是与普通的温湿度计做的对比
可以看出,DHT20还是有一点误差的
步骤4 编程
这款传感器兼容Arduino系列、micro:bit、ESP32、掌控板、树莓派
当然它也支持mind+编程
首先我们要导入库文件
打开mind+
点击扩展
选择板型
然后找到用户库选项卡
输入DHT20
点击即可加载,加载完后会出现在工作台上
我们也准备了Arduino LDE的库文件
这是我们在OLED屏幕打印温湿度的程序
图形化编程如下
代码编程如下
代码
#include<DFRobot_DHT20.h>
#include <DFRobot_SSD1306_I2C.h>
// 静态常量
const chCode chBuf[] = {
{0x6e29,0xe6b8a9,0xCEC2,{0x00,0x00,0x73,0xf8,0x3b,0xfc,0x3f,0x18,0xdf,0xf8,0xef,0xf8,0x7b,0x18,0x7b,0xf8,0x1b,0x1c,0x37,0xfe,0x77,0xfe,0xf7,0xbc,0x77,0xbc,0x77,0xbc,0x7f,0xff,0x7f,0xff}},
{0x5ea6,0xe5baa6,0xB6C8,{0x00,0x00,0x01,0xc4,0x30,0xce,0x3f,0xfe,0x33,0xb6,0x3b,0x36,0x3f,0xff,0x33,0x30,0x33,0xf0,0x33,0x30,0x3f,0xf8,0x3b,0x78,0x31,0xf0,0x71,0xe0,0x63,0xfc,0x6f,0x3f}},
{0x6e7f,0xe6b9bf,0xCAAA,{0x00,0x00,0x33,0xfe,0x3b,0xfe,0x1f,0x06,0x4f,0xfe,0x7f,0x06,0x7b,0x06,0x3b,0xfe,0x1b,0xfe,0x3d,0xb7,0x7f,0xb7,0x77,0xbe,0x37,0xbc,0x33,0xba,0x79,0xb7,0x7f,0xff}}
};
DFRobot_DHT20 dht20;
DFRobot_SSD1306_I2C oled12864;
void setup() {
oled12864.setChCode(chBuf);
while(dht20.begin()){delay(1000);}
oled12864.begin(0x3c);
}
void loop() {
oled12864.setCursorLine(1);
oled12864.printLine((String("DHT11温度:") + String((dht20.getTemperature()))));
oled12864.setCursorLine(2);
oled12864.printLine((String("DHT11湿度:") + String((dht20.getHumidity()*100))));
delay(1000);
}
步骤5 总结
评论