久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4678|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

DHT11溫濕度模塊+LCD1602模塊制作顯示溫度溫度器

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:675619 發(fā)表于 2020-2-3 16:15 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
對于Arduino我也是個初學(xué)者,今天學(xué)個如何使用DHT11溫濕度模塊和LCD1602顯示模塊來制作一個溫度濕度儀器。
搜索了很多的相關(guān)資料,包括DHT11模塊的類庫和原理圖,和LCD1602的接線和原理圖等資料,終于搞定了這個實驗制作。
DHT11的類庫會作為附件提供

1、DHT11的連接線路比較簡單,在數(shù)據(jù)信號引腳(2腳)上要接個上拉電阻,阻值根據(jù)文檔要求是4.7kΩ,其他沒有特別需要注意的。

2、LCD1602的連接線路有點復(fù)雜,需要注意的是V0(3腳)可以接一個4.7kΩ的電阻,可以增加LCD1602的對比度,這個阻值可以根據(jù)自己的1602顯示效果來調(diào)整的,并不一定是4.7k。另外注意的是第15腳是1602的LED背光的正極,需要接一個100-200Ω左右的電阻,以調(diào)節(jié)背光的明暗度。

LCD1602默認是英文顯示,如果想要用中文顯示“溫度”“溫度”的,就要建立字庫,對于我這個初學(xué)者來說,就不要太復(fù)雜了,先用簡單的方式來做,有必要再進一步研究。

實驗所用到的材料有:
Arduino Uno,面包板,電阻(200Ω*1,4.7kΩ*2),DHT11模塊,LCD1602模塊,杜邦線等


連接示意圖




原理圖




源代碼
  1. double Fahrenheit(double celsius)
  2. {
  3.         return 1.8 * celsius + 32;
  4. }    //攝氏溫度度轉(zhuǎn)化為華氏溫度

  5. double Kelvin(double celsius)
  6. {
  7.         return celsius + 273.15;
  8. }     //攝氏溫度轉(zhuǎn)化為開氏溫度

  9. // 露點(點在此溫度時,空氣飽和并產(chǎn)生露珠)
  10. double dewPoint(double celsius, double humidity)
  11. {
  12.         double A0= 373.15/(273.15 + celsius);
  13.         double SUM = -7.90298 * (A0-1);
  14.         SUM += 5.02808 * log10(A0);
  15.         SUM += -1.3816e-7 * (pow(10, (11.344*(1-1/A0)))-1) ;
  16.         SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ;
  17.         SUM += log10(1013.246);
  18.         double VP = pow(10, SUM-3) * humidity;
  19.         double T = log(VP/0.61078);   // temp var
  20.         return (241.88 * T) / (17.558-T);
  21. }

  22. // 快速計算露點,速度是5倍dewPoint()
  23. // 參考: http://en.wikipedia.org/wiki/Dew_point
  24. double dewPointFast(double celsius, double humidity)
  25. {
  26.         double a = 17.271;
  27.         double b = 237.7;
  28.         double temp = (a * celsius) / (b + celsius) + log(humidity/100);
  29.         double Td = (b * temp) / (a - temp);
  30.         return Td;
  31. }

  32. #include <dht11.h>
  33. #include <LiquidCrystal.h>

  34. dht11 DHT11;

  35. const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
  36. LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

  37. #define DHT11PIN 8

  38. void setup()
  39. {
  40.   Serial.begin(9600);
  41.   Serial.println("DHT11 TEST PROGRAM ");
  42.   Serial.print("LIBRARY VERSION: ");
  43.   Serial.println(DHT11LIB_VERSION);
  44.   Serial.println();

  45.   lcd.begin(16,2);
  46.   lcd.cursor();
  47. }

  48. void loop()
  49. {
  50.   Serial.println("\n");

  51.   int chk = DHT11.read(DHT11PIN);

  52.   Serial.print("Read sensor: ");
  53.   switch (chk)
  54.   {
  55.     case DHTLIB_OK:
  56.                 Serial.println("OK");
  57.                 break;
  58.     case DHTLIB_ERROR_CHECKSUM:
  59.                 Serial.println("Checksum error");
  60.                 break;
  61.     case DHTLIB_ERROR_TIMEOUT:
  62.                 Serial.println("Time out error");
  63.                 break;
  64.     default:
  65.                 Serial.println("Unknown error");
  66.                 break;
  67.   }

  68.   Serial.print("Humidity (%): ");
  69.   Serial.println((float)DHT11.humidity, 2);

  70.   Serial.print("Temperature (oC): ");
  71.   Serial.println((float)DHT11.temperature, 2);

  72.   Serial.print("Temperature (oF): ");
  73.   Serial.println(Fahrenheit(DHT11.temperature), 2);

  74.   Serial.print("Temperature (K): ");
  75.   Serial.println(Kelvin(DHT11.temperature), 2);

  76.   Serial.print("Dew Point (oC): ");
  77.   Serial.println(dewPoint(DHT11.temperature, DHT11.humidity));

  78.   Serial.print("Dew PointFast (oC): ");
  79.   Serial.println(dewPointFast(DHT11.temperature, DHT11.humidity));

  80.   lcd.setCursor(0,0);
  81.   lcd.print("Hum(%):");
  82.   lcd.setCursor(10,0);
  83.   lcd.print((float)DHT11.humidity,2);

  84.   lcd.setCursor(0,1);
  85.   lcd.print("Temp(oC):");
  86.   lcd.setCursor(10,1);
  87.   lcd.print((float)DHT11.temperature,2);

  88.   delay(2000);
  89. }
復(fù)制代碼
代碼是由DHT11類庫自帶的示例代碼進行修改,增加了LCD顯示的代碼進去。

有網(wǎng)友說DHT11模塊的溫度濕度不是很準確,這個大家可以自己感覺,我對比過覺得還是比較準確的,也有網(wǎng)友說它的響應(yīng)速度慢,其實這個真的見仁見智,感應(yīng)器的靈敏度再高也不可能秒變的,反正日常家居溫度溫度檢測是能滿足的。

附件里有兩個文件,一個是DHT11的說明文檔PDF格式,一個是Dht11.zip類庫,要加載到Arduino的庫里才能使用,LCD1602的類庫在Arduino的庫管理里搜索安裝即可

附件下載:
Dht11.zip (3.03 KB, 下載次數(shù): 33)

DHT11_.pdf (786.99 KB, 下載次數(shù): 17)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 婷婷色国产偷v国产偷v小说 | 亚洲一区二区三区四区五区午夜 | 欧美中文一区 | 久久蜜桃资源一区二区老牛 | 欧美二区三区 | 黑人精品欧美一区二区蜜桃 | www97影院 | 皇色视频在线 | 欧美在线视频一区二区 | 国产精品不卡一区 | 91精品国产欧美一区二区 | 日韩黄色小视频 | 天天干国产| 一区二区三区欧美 | 欧美精品福利视频 | 亚洲综合色视频在线观看 | 福利社午夜影院 | 亚洲看片网站 | 高清av电影| 好婷婷网| 久草在线 | 成人小视频在线免费观看 | 北条麻妃国产九九九精品小说 | 日韩三区在线 | 91麻豆精品国产91久久久更新资源速度超快 | 国产精品视频综合 | 国产免费一区二区 | 成人黄色av网址 | 久久精品高清视频 | 日韩精品一区二区三区免费观看 | 久久精品国产v日韩v亚洲 | 久久亚洲一区二区 | 国产97在线视频 | 欧美精品久久久久久久久久 | 超级乱淫av片免费播放 | 在线国产中文字幕 | 亚洲天堂免费在线 | 久久久久久亚洲 | 精品一二区 | 97国产精品 | 婷婷在线免费 |