利用Arduino Uno在LCD1602屏上显示温度和湿度

发布于 2024-06-11  1277 次阅读


一、元件介绍

LCD1602 IIC液晶显示屏:

温湿度传感器:

当然啦我们还需要Arduino主板(型号就没有要求啦,我们用UNO r3为例)

二、接线图

LCD1602IIC引脚Arduino引脚
VCC5V
GNDGND
SDAA4
SCLA5
这里用的是IIC的所有就用到四根线
传感器引脚Arduino引脚
-(GND)GND
S2
+(VCC)5V
NC不连

三、代码

直接照搬就对了,包没错的。

#include <DHT.h>
#include <LiquidCrystal_I2C.h>

const int Pin = 2;

DHT dht(Pin, DHT11);
LiquidCrystal_I2C lcd(0x27, 16, 2);

unsigned long previousMillis = 0;
const long interval = 1000; // 更新间隔

void setup()
{
  Serial.begin(9600);
  lcd.init();  // 初始化LCD
  lcd.backlight(); // 设置LCD背景灯亮
  lcd.clear();
}

void loop()
{
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval)
  {
    previousMillis = currentMillis;

    float tempC = dht.readTemperature(true); // 读取温度,转换为摄氏度
    float Humi = dht.readHumidity();; // 读取湿度

    if (isnan(tempC) || isnan(Humi))
    {
      lcd.setCursor(0, 0);
      lcd.print("TM:ERROR");
      lcd.setCursor(0, 1);
      lcd.print("HM:ERROR");
    }
    else
    {
      lcd.clear();
      // 显示温度和湿度
      lcd.setCursor(0, 0);
      lcd.print("TM:");
      lcd.print(tempC, 1);
      lcd.print("`C");

      lcd.setCursor(0, 1);
      lcd.print("HM:");
      lcd.print(Humi, 1);
      lcd.print("%");
    }
  }
}
效果图

附件

DHT库

这里主要解决你在编译器里面安装了DHT库,还是无法编译的情况。

分享名称:arduino-DHT-master.zip
分享链接:http://47.113.180.251:8180/#s/-gPxP1kw
访问密码:NDXE8

或者你直接在GitHub下载

LCD库

GitHub - lucasmaziero/LiquidCrystal_I2C: Library for the LiquidCrystal LCD display connect I2C bus to an ESP8266 or Arduino board

  • alipay_img
  • wechat_img
心若有所向往,何惧道阻且长。
最后更新于 2024-06-11