单总线的连接就很简单了,下面是温湿度传感器DHT11和AUDUINOUNO的接线图。其中R的阻值为4.7k,数据线Data接在D2引脚上即可。
DHT11与UNO接线
前面我们讲了DHT11的输出数据格式,如果自己写代码来组合数据比较复杂,ARDUINO提供了专门针对DHT11读取的库函数和实例,从官网上直接下载即可使用。
安装文件里是没有这个库文件的,我们要把下载后的文件夹拷贝到ArduinoIDE的安装目录下才可以使用,比如,你的ArduinoIDE安装在c盘下,路径为:
C:\ProgramFiles(x86)\Arduino,就要把文件夹拷贝到:C:\ProgramFiles(x86)\Arduino\libraries目录下。
库文件位置
然后打开ArduinoIDE,可以从文件菜单中找到示例代码:
选择示例代码
打开之后,主要代码如下:
defineDHT11PIN2//指定D2管脚为单总线数据接口
voidsetup()
{
(9600);//初始化串口,用于打印数据
}
voidloop()
{
("\n");//换行
intchk=(DHT11PIN);//读取DHT11数据,并获得错误码
("Readsensor:");//打印常量字符串
switch(chk)//查看错误码
{
caseDHTLIB_OK://通讯正常
("OK");
break;
caseDHTLIB_ERROR_CHECKSUM://通讯校验码错误
("Checksumerror");
break;
caseDHTLIB_ERROR_TIMEOUT://通讯超时
("Timeouterror");
break;
default:
("Unknownerror");
break;
}
("Humidity(%):");//打印常量字符串
((float),2);//打印湿度数据,保留小数点后两位
("Temperature(oC):");//打印常量字符串
((float),2);//打印温度数据,保留小数点后两位
delay(2000);//延时2秒
}
上传程序之后,打开串口助手,就可以看到温度及湿度值了。
显示温湿度数值