A-6 溫溼度偵測與顯示
透過IFTTT記錄至Google試算表
透過IFTTT記錄至Google試算表
接線說明
拉出一條連接ESP5V的杜邦線到上方第2排(如上圖短的紅色線)。
LCD VCC拉出一條公對母的杜邦線,接到上方第2排連接5V(如上圖長的紅色線)。
拉出一條連接ESP32 GND的杜邦線到下面倒數第2排。
LCD GND拉出一條連接GND的公對母杜邦線,接下面倒數第2排(如上圖短黑色線)。
LCD SDA用公對母杜邦線接ESP32 GPIO 21腳位(如圖藍色線)。
LCD SCL用公對母杜邦線接ESP32 GPIO 22腳位(如圖綠色線)。
DHT11的v腳(+),接到上方第2排,連接5V(如圖紅色線)。
DHT11的s腳(out),接到GPIO 04腳位(如圖黃色線)。
DHT11的g腳(-),接到下方倒數第2排GND(如圖短黑色線)。
#include <DHT.h> //DHT simple 程式庫
#include <Wire.h> // 匯入 I2C 通訊的函式庫
#include <LiquidCrystal_I2C.h> // 匯入 I2C LCD 的函式庫
DHT dht11(4, DHT11);
LiquidCrystal_I2C lcd(0x27, 16,2); // 使用 LiquidCrystal_I2C 類別建立一個 lcd 物件,I2C 位址為 0x27,LCD 尺寸為 16x2
void setup()
{
lcd.init(); // 初始化 LCD
lcd.backlight(); // 打開 LCD 背光
dht11.begin(); //初始化DHT11
}
void loop()
{
lcd.setCursor(0, 0); // 設定 LCD 游標位置為第一行第一列
lcd.print("Temp: ");
lcd.print((int)dht11.readTemperature()); // 讀取溫度值並印出,轉換為整數顯示
lcd.print(" C"); // 在 LCD 上印出溫度單位
lcd.setCursor(0, 1); // 設定 LCD 游標位置為第二行第一列
lcd.print("Humidity: ");
lcd.print((int)dht11.readHumidity()); // 讀取濕度值並印出,轉換為整數顯示
lcd.print(" %"); // 在 LCD 上印出濕度單位
delay(1000);
}