和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器
機緣巧合在網上認識一位12歲小同志,從零開始系統(tǒng)輔導其創(chuàng)客開發(fā)思維和技巧。
項目專欄:https://blog.csdn.net/m0_38106923/category_11097422.html?
本篇博文將使用DHT11做一款溫濕度檢測器,檢測的溫濕度數(shù)據(jù)將通過LCD1602顯示。
項目連線效果如下所示:
實現(xiàn)代碼如下所示:
#include <dht11.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>LiquidCrystal_I2C lcd(0x20,16,2); //設置LCD的地址為0x20,可以設置2行,每行16個字符 dht11 DHT;
#define DHT11_PIN 4void setup(){lcd.init(); // LCD初始化設置lcd.backlight(); // 打開LCD背光Serial.begin(9600); // 設置串口波特率9600//串口輸出”Type, status, Humidity(%), Temperature(C)”Serial.println("Type,\tstatus,\tHumidity(%),\tTemperature(C)");lcd.print("Humidity(%): "); //LCD屏顯示” Humidity(%):”lcd.setCursor(0, 1); //光標移到第2行,第一個字符lcd.print("Temp(C): "); //LCD屏顯示”Temp(C):”
}void loop(){int chk; //chk用于存儲DHT11傳感器的數(shù)據(jù)Serial.print("DHT11, \t"); //讀取DHT11傳感器的數(shù)據(jù)chk = DHT.read(DHT11_PIN); switch (chk){ case DHTLIB_OK: Serial.print("OK,\t"); break;case DHTLIB_ERROR_CHECKSUM: Serial.print("Checksum error,\t"); break;case DHTLIB_ERROR_TIMEOUT: Serial.print("Time out error,\t"); break;default: Serial.print("Unknown error,\t"); break;}//串口顯示溫濕度值Serial.print(DHT.humidity,1);Serial.print(",\t");Serial.println(DHT.temperature,1);//LCD顯示溫濕度值lcd.setCursor(12, 0);lcd.print(DHT.humidity,1);lcd.setCursor(8, 1);lcd.print(DHT.temperature,1);delay(1000);
}
首先把用到的庫聲明一下:
#include <dht11.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
本項目使用到dht11.h和LiquidCrystal_l2C的庫,需要加載庫,那么Wire.h的庫為什么不需要加載呢?因為我們下載的Arduino IDE本身自帶這個庫。
有了現(xiàn)有的庫,所以只需要在程序的一開始聲明一下LCD:
LiquidCrystal_I2C lcd(0x20,16,2); //設置LCD的地址為0x20,可以設置2行,每行16個字符
其中:
- 0X20:是LCD I2C地址,由屏后面的A0~A1決定,可參見產品手冊;
- 16:每行16個字符;
- 2:共2行。
程序中LiquidCrystal_I2C.h設計函數(shù)說明如下表所示:
“switch”可以理解為是“開關”,多選擇開關。與if語句相似之處在于switch…case也用于判斷,又與if不同點在于它能判斷多種情況。使用如下所示:
需要注意幾點:
1、case后面是冒號,不是分號。
2、關鍵字break用于退出switch語句,通常每條case語句都以break結尾。如果沒有break語句,switch語句將會一直執(zhí)行接下來的語句(一直向下)直到遇見一個break,或者switch語句結尾。
最后,下載運行程序看看效果吧~
總結
以上是生活随笔為你收集整理的和12岁小同志搞创客开发:手撕代码,做一款温湿度检测器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python Qt GUI设计:窗口之间
- 下一篇: 和12岁小同志搞创客开发:手撕代码,做一