圣源电子制作

 找回密码
 立即注册
查看: 12931|回复: 1

Arduino LCD1602 DHT11传感器 温度湿度的显示

[复制链接]
发表于 2012-4-28 12:05:49 | 显示全部楼层 |阅读模式
正如你可能知道,Geeetech位于中国南部城市深圳,。 那里的天气,所有一年之久,几乎是炎热和潮湿的。 越来越来使用它,是不容易的,尤其是当你来到这个国家的北部。  3月在深圳越来越温暖潮湿。 但是经过最近阴雨天,气温又开始下降。 使电动温度计可以测量当前的温度和湿度的液晶读数,用我们的Arduino是一个好主意。

我们需要的是:
  Arduino的乌诺或兼容
  DHT11温湿度传感器模块
  16×2字符液晶显示模块
  10K欧姆电位器
面包板和跳线的捆绑

我们可以建立它一步一步,如果你有DHT11传感器和16个没有使用以往的经验×2液晶显示模块。

DHT11sensor1.jpg

首先,我们应采取DHT11温度和湿度传感器,在深入了解。 这种传感器包括湿度测量元件和一个NTC温度测量元件,并连接到一个高性能8位microcontroller.DHT11的电源是3-5.5V DC。

有趣的是在这个模块中使用MCU和DHT11传感器之间的数据传输协议。 所有的传感器读数发送通过一个单线总线,从而降低了成本,并延长距离。 一个沟通的过程关于4ms.Data是由十进制和不可分割的组成部分。 一个完整的数据传输是40位,和传感器发出更高的数据位第一。

数据格式:
  8位积分RH数据+ 8位十进制湿度数据
  + 8位组成T数据+ 8位十进制T数据
  + 8位校验和。

  DH11传感器模块的更多细节,请访问我们的Wiki。

因为阅读DHT11传感器模块的原代码是如此“晦涩”,我们可以导入一个DHT的传感器库,使其工作更明显,更方便用户。 你可以在这里下载的DHT库,然后将其拖动到的阿尔杜伊诺/图书馆/夹DHT的文件夹,然后重新启动IDE.It的很容易连接起来DHT11模块的Arduino,针S是数据输出。

现在加载例子DHT的DHTtester草图。 由于DHT的传感器库不仅DHT11传感器模块,同时也为其他类型的DHT的传感器,如DHT12,DHT22。 因此,该代码需要改变装修传感器模块位,否则,它不能正常工作。

dht11-com-300x263.jpg

在下面的步骤中,我们需要一个16×2字符液晶显示模块,IC控制器HD44780的或兼容的,这些通常是在零售商店发现的共同。 有许多方法Arduino板,4位,8位并行接口液晶等。 在这里,我们选择了最简单的方法4位并行接口。

1602-lcd-300x137.jpg

液晶显示模块有16个引脚,引脚标签的详细信息,请访问我们的wiki。 针不同类型的标签,可能有一点点的变化,但总的来说,它是几乎相同。 现在,我们可以连接16×2液晶屏使用Arduino板图。

  10k欧姆电位器应连接contrast.Likewise调整显示器PIN3,为方便起见,我们可以使用它应该在的Arduino IDE预装的LiquidCrystal库。 我们可以加载的例子LiquidCrystal-HelloWorld的检查,如果液晶sreeen正常工作。

我们下一步要做的是更容易,只是DHT11传感器模块连接到Arduino的board.Schematic是继。

DHT11-schematic-300x300.jpg
lcd-temp-300x204.jpg

代码
  1. #include “DHT.h”
  2. #include <LiquidCrystal.h>
  3. #define DHTPIN 8
  4. #define DHTTYPE DHT11
  5. DHT dht(DHTPIN, DHTTYPE);
  6. LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
  7. void setup() {
  8. Serial.begin(9600);
  9. lcd.begin(16, 2);
  10. dht.begin();
  11. }
  12. void loop() {
  13. float h = dht.readHumidity();
  14. float t = dht.readTemperature();
  15. if (isnan(t) || isnan(h)) {
  16. Serial.println(“Failed to read from DHT”);
  17. }
  18. else {
  19. lcd.setCursor(0,0);
  20. lcd.print(“Temp=”);
  21. lcd.print(t);
  22. lcd.print(” *C”);
  23. lcd.setCursor(0,1);
  24. lcd.print(“Humidity=”);
  25. lcd.print(h);
  26. lcd.print(“% “);
  27. delay(500);
  28. }
  29. }
复制代码
回复

使用道具 举报

发表于 2012-10-9 20:32:34 | 显示全部楼层
问一下dht库在哪下载   找了半天没找到啊
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|联系我们|闽公网安备 35012102000020号|圣源电子 ( 闽ICP备11020110号 )

GMT+8, 2024-3-29 12:46 , Processed in 0.052580 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表