#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h> // 导入LCD库
#include <Adafruit_Sensor.h> // 导入传感器库
#include <Wire.h> // 导入I2C通信库
#include <Adafruit_LiquidCrystal.h> // 导入LCD库
#include <DHT.h>
#define DHTPIN 8 //定义DHT11输入管脚为8管脚
#define DHTTYPE DHT11
#define uint unsigned int
#define ulong unsigned long
DHT dht(DHTPIN, DHTTYPE);
Adafruit_LiquidCrystal lcd(0);
bool isCelsius = true; // 摄氏温度标志位
int buttonPin = 2;
void setup() {
Serial.begin(9600);
dht.begin(); // 初始化温度传感器
lcd.begin(16, 2); // 初始化LCD屏幕,16列2行
pinMode(buttonPin, INPUT_PULLUP); // 设置按钮引脚为输入模式,并启用上拉电阻
}
void toggleTemperatureUnit()
{
isCelsius = !isCelsius; // 切换摄氏度和华氏度标志位
lcd.clear(); // 清除LCD屏幕上的文本
if (isCelsius) {
lcd.print("Fahrenheit");
lcd.setCursor(0, 1); // 将光标移动到第二行
lcd.print(dht.readTemperature(true)); // 显示华氏温度
}
}
void loop() {
delay(2000);
float t = dht.readTemperature();//读温度,默认为摄氏度
lcd.setCursor(0,0);
lcd.print("Tem: ");//温度
lcd.print((int)t);
lcd.print(" C");
int buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
toggleTemperatureUnit();
delay(500); // 延迟一段时间以防止多次切换
}
}