在上一篇文章中,我们学习了如何将温湿度传感器与arduino接口,并在arduino IDE的串行监视器上读出显示。在这篇文章中,我们将学习如何使用Arduino在16x2液晶显示屏上显示数字温度/湿度计的读数。
介绍
这个项目可用作房间里的温度计以及湿度计,因为这两种功能集成到一个传感器。
如果您还没有阅读上一篇文章,请查看它。它覆盖了DHTxx系列传感器基础知识.
现在,您已经对DHTxx传感器有了一定的了解。对于你要长期使用的项目,最好使用DHT22传感器。
原型形象:
设计:
LCD和arduino之间的连接是标准的,你可以在其他地方找到类似的连接基于液晶项目.
这个程序是这样写的,你只需要把DHT11插入Arduino上正确的端口。这将减少项目原型期间的线路拥塞。
如果你想要感知一些区域/电路周围的环境温度,你可以从传感器延伸电线。所以,你的整个设置可能是在一个垃圾箱内,传感器是延伸出垃圾箱内,就像一个探针。
这个项目你可以使用你喜欢的Arduino板,但是我建议使用“Arduino pro mini”,它价格便宜,体积小,对于这样简单的项目,它可以很容易的装进一个小垃圾盒里。
DHT库中编写了许多错误检测机制来通知用户错误。但为了使程序简单,我添加了一个错误检测机制,如下图所示:
大多数错误是由于传感器和arduino之间的错误连接,其他错误不太可能发生,因为arduino和传感器之间传输的数据很少。这并不意味着不会发生其他类型的错误。
要了解与此传感器相关的各种错误,请查看“DHTlib”中的示例代码。
以上说明的Arduino数字温湿度计程序代码:
程序代码
//------------------ 项目由R.Girish -----------------//
# include < LiquidCrystal.h >
# include < dht.h >
dht dht;
LiquidCrystal液晶(12、11日5、4、3、2);
#定义DHTxxPIN A1
int p = A0;
int n = A2;
int应答;
int f;
无效的设置()
{
lcd.begin(16日2);
pinMode (p输出);
pinMode (n、输出);
}
无效循环()
{
digitalWrite (p, 1);
digitalWrite (n, 0);
ack = 0;
int chk = DHT.read11(DHTxxPIN);
开关(分)
{
案例DHTLIB_ERROR_CONNECT:
ack = 1;
打破;
}
如果(ack = = 0)
{
f = DHT.temperature * 1.8 + 32;
lcd.clear ();
lcd.setCursor (0,0);
lcd.print(“临时:”);
lcd.print (DHT.temperature);
lcd.print (C / ");
lcd.print (f);
lcd.print(“F”);
lcd.setCursor (0,1);
湿度lcd.print(“:”);
lcd.print (DHT.humidity);
lcd.print(“%”);
延迟(500);
}
如果(ack = = 1)
{
lcd.clear ();
lcd.setCursor (0,0);
液晶显示器。打印(“没有数据,请”);
lcd.setCursor (0,1);
液晶显示器。打印(“检查连接”);
延迟(500);
}
}
//------------------ 项目由R.Girish -----------------//
注:本程序仅与DHT11传感器兼容
你的评论太有价值了!但是请注意,它们是与上面的文章相关的,并且不是跑题的!