日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Arduino从DHT11读取温湿度数据并显示在1602LCD

發布時間:2023/12/10 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Arduino从DHT11读取温湿度数据并显示在1602LCD 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

硬件清單

Arduino NANO
1602LCD + PCF8574T模塊
YL-47 DHT11模塊

連線

1. 連接LCD: PCF8574T模塊4pin(Gnd, Vcc, SDA i2c數據, SCL i2c時鐘) 連接至Arduino接口 Gnd -> Gnd, Vcc -> Vcc, SDA -> A4, SDL -> A5
2. 連接YL-47 DHT11: Gnd -> Gnd, Vcc -> Vcc, Data-> D4

Library

除了1602需要的庫以外, 需要安裝兩個自帶的庫:? DHT Sensor Library by Adafruit, Adafruit Unified Sensor

測試代碼

#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <DHT.h>#define DHTPIN 4 #define DHTTYPE DHT11// I2C地址, 一般為0x3F, 0x20或0x27 LiquidCrystal_I2C lcd(0x27,16,2); // 初始化DHT DHT dht(DHTPIN, DHTTYPE);void setup() {lcd.init();lcd.backlight(); // 打開背光Serial.begin(9600);dht.begin();lcd.setCursor(0,0); // line 0, pos 0lcd.print("Good Day!");lcd.setCursor(0,1); // line 1, pos 0lcd.print("H: % T:");delay(1000); }void loop() {// Reading temperature or humidity takes about 250 milliseconds!// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)float h = dht.readHumidity();// Read temperature as Celsius (the default)float t = dht.readTemperature();// Read temperature as Fahrenheit (isFahrenheit = true)float f = dht.readTemperature(true);// Check if any reads failed and exit early (to try again).if (isnan(h) || isnan(t) || isnan(f)) {Serial.println("Failed to read from DHT sensor!");return;}// Compute heat index in Fahrenheit (the default)float hif = dht.computeHeatIndex(f, h);// Compute heat index in Celsius (isFahreheit = false)float hic = dht.computeHeatIndex(t, h, false);Serial.print("Humidity: ");Serial.print(h);Serial.print(" %\t");Serial.print("Temperature: ");Serial.print(t);Serial.print(" *C ");Serial.print(f);Serial.print(" *F\t");Serial.print("Heat index: ");Serial.print(hic);Serial.print(" *C ");Serial.print(hif);Serial.println(" *F");lcd.setCursor(2,1); // line 1, pos 0 lcd.print(h);lcd.setCursor(11,1); // line 1, pos 0 lcd.print(t);delay(1000); }

?

代碼說明

1. DHT11啟動到讀取數據需要等待1~2秒
2. 溫濕度的精度都為1, 沒有小數部分
3. DHT庫里面帶了計算熱指數的方法 computeHeatIndex(), 用于生成綜合溫濕度計算得到的熱指數值

改進拼接字符串

改進后的代碼, 注意: arduino里的sprintf只能格式化整數, 不能格式化浮點

#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <DHT.h> #include <DS3231.h>#define DHTPIN 4 #define DHTTYPE DHT11// I2C地址, 一般為0x3F, 0x20或0x27 LiquidCrystal_I2C lcd(0x27,16,2); DHT dht(DHTPIN, DHTTYPE); DS3231 Clock; bool century=false; bool h12; bool PM;void setup() {lcd.init();//lcd.backlight(); // 打開背光Serial.begin(9600);dht.begin();lcd.setCursor(0,0); // line 0, pos 0lcd.print("Good Day Jessie~~");lcd.setCursor(0,1); // line 1, pos 0lcd.print("H: % T: T:");delay(1000); }void loop() {char str[17];sprintf(str,"%02d-%02d %02d:%02d:%02d ",Clock.getMonth(century),Clock.getDate(),Clock.getHour(h12, PM),Clock.getMinute(),Clock.getSecond());lcd.setCursor(0,0); // line 0, pos 0 lcd.print(str);// Reading temperature or humidity takes about 250 milliseconds!// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)float h = dht.readHumidity();// Read temperature as Celsius (the default)float t = dht.readTemperature();// Read temperature as Fahrenheit (isFahrenheit = true)float f = dht.readTemperature(true);// Check if any reads failed and exit early (to try again).if (isnan(h) || isnan(t) || isnan(f)) {Serial.println("Failed to read from DHT sensor!");return;}// Compute heat index in Fahrenheit (the default)float hif = dht.computeHeatIndex(f, h);// Compute heat index in Celsius (isFahreheit = false)float hic = dht.computeHeatIndex(t, h, false);Serial.print("Humidity: ");Serial.print(h);Serial.print(" %\t");Serial.print("Temperature: ");Serial.print(t);Serial.print(" *C ");Serial.print(f);Serial.print(" *F\t");Serial.print("Heat index: ");Serial.print(hic);Serial.print(" *C ");Serial.print(hif);Serial.println(" *F");lcd.setCursor(2,1); // line 1, pos 0lcd.print((int)h);lcd.setCursor(8,1); // line 1, pos 0lcd.print((int)t);lcd.setCursor(13,1);lcd.print((int)(Clock.getTemperature()*10));delay(1000); }

?

總結

以上是生活随笔為你收集整理的Arduino从DHT11读取温湿度数据并显示在1602LCD的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩久久在线 | 欧美一区二区三区国产 | free性欧美69巨大 | 日韩av大片在线观看 | 无码人妻丰满熟妇区96 | 日日干夜夜艹 | 久久久久区 | 国产精品国产三级国产播12软件 | 青青青视频免费观看 | 卡通动漫亚洲综合 | 国产综合福利 | 妺妺窝人体色www在线小说 | 蜜臀麻豆| 好吊操这里有精品 | 黄色91在线观看 | 中文字幕第一页在线 | 亚洲人吸女人奶水 | 一区二区三区偷拍 | 国产99在线播放 | 精品人妻一区二区三区蜜桃视频 | 日韩在线视频二区 | 日韩岛国片 | 国产91久久婷婷一区二区 | 影音先锋在线观看视频 | 欧美两根一起进3p做受视频 | 日韩欧美黄色 | 久久中文字幕电影 | 国产一区二区三区视频 | 亚洲性夜 | 黄色录像网址 | 午夜av成人| 日韩免费网址 | 亚洲欧美国产精品久久久久久久 | 国产寡妇亲子伦一区二区三区四区 | 国产精品久久毛片 | 久久国产精品免费观看 | 国产精品毛片av | 高潮一区 | 日本一二三不卡 | 一本一道久久a久久精品蜜桃 | 第四色在线视频 | 在线观看亚洲色图 | 欧美丝袜一区二区 | 美女扒开尿口给男人看 | 日韩成人片 | 熟妇大屁股一区二区三区视频 | 成人在线免费观看网站 | 色婷婷av一区二区三区大白胸 | 活大器粗np高h一女多夫 | 国产精品国色综合久久 | 97超碰免费在线观看 | av网站一区 | 国产盗摄精品一区二区酒店 | 日韩福利 | 黄色大片网址 | 激情av中文字幕 | 成人精品一区二区三区电影黑人 | 另类一区 | 国产精品毛片久久久久久久 | 亚洲福利影院 | 在线视频免费观看 | 欧日韩一区二区三区 | 久久理论视频 | 超碰美女 | 久久美 | 97午夜 | 超级砰砰砰97免费观看最新一期 | 成人福利在线视频 | 成人av观看| 精品人妻一区二区三区免费看 | 日本黄色一区二区三区 | 四虎影视库 | 精品视频久久久久久久 | 黄色成人一级片 | 精品国产aⅴ一区二区三区四川人 | 亚洲国产综合av | 五月丁香 | 日韩黄色在线视频 | 久久艹精品 | 免费看成人av | 欧美激情视频网址 | 日本夜夜操 | 91精品国产99 | 国产精品夫妻自拍 | 村上凉子av | 黄色1级片 | 黄色片免费在线观看 | 一级黄色片看看 | 日韩欧美网| 青青草免费观看 | 伊人网视频在线观看 | 百合sm惩罚室羞辱调教 | 国产精品1234 | 欧美性高潮| 91国内在线 | 久久国产精 | 中文天堂在线播放 | 欧美精品激情视频 | 久久视频一区 |