Arduino Uno零基础入门学习笔记——在LCD1602屏上显示温度和湿度

一、电路连接

LCD1602IIC

LCD1602IIC引脚Arduino引脚
VCC5V
GNDGND
SDAA4
SCLA5

我这里的LCD1602是IIC的,所以只需要4根线

在这里插入图片描述

1-WIRE

传感器引脚Arduino引脚
-GND
S8
+5V

在这里插入图片描述
中间的线是要接5V的
这里是DHT11的库:DHT11

二、程序

#include <dht11.h>   //引用dht11库文件,使得下面可以调用相关参数
#include <Wire.h> 
#include <LiquidCrystal_I2C.h> //引用I2C库
#define dht11Pin 8   //定义温湿度针脚号为8号引脚
dht11 dht;    //实例化一个对象
LiquidCrystal_I2C lcd(0x27,16,2); //这里是0x27

void setup()    //初始化函数,只执行一次
{
  Serial.begin(9600);      //设置波特率参数
  pinMode(dht11Pin, OUTPUT);    //通过定义将Arduino开发板上dht11Pin引脚(8号口)的工作模式转化为输出模式

  lcd.init();                  // 初始化LCD
  lcd.backlight();             //设置LCD背景等亮

  lcd.setCursor(0,0); 
  lcd.print("  Thermometer    ");
  delay(2000);
  lcd.clear();
}

void loop()     //loop函数,重复循环执行
{
  SerialTem();
  ther();
  delay(1000);      //延时1秒
}
void ther()//温湿度计
{
  int tol = dht.read(dht11Pin);    //将读取到的值赋给tol
  int temp = (float)dht.temperature; //将温度值赋值给temp
  int humi = (float)dht.humidity; //将湿度值赋给humi

  lcd.setCursor(0,0);
  lcd.print("Tem:");
  lcd.setCursor(4,0);
  lcd.print(temp);
  lcd.setCursor(6,0);
  lcd.print("C");

  lcd.setCursor(0,1);
  lcd.print("Hum:");
  lcd.setCursor(4,1);
  lcd.print(humi);
  lcd.setCursor(6,1);
  lcd.print("%");
}
void SerialTem()//串口打印温度湿度
{
  int tol = dht.read(dht11Pin);    //将读取到的值赋给tol
  int temp = (float)dht.temperature; //将温度值赋值给temp
  int humi = (float)dht.humidity; //将湿度值赋给humi
  Serial.print("Temperature:");     //在串口打印出Tempeature:
  Serial.print(temp);       //在串口打印温度结果
  Serial.println(".C");    //在串口打印出℃
  Serial.print("Humidity:");     //在串口打印出Humidity:
  Serial.print(humi);     //在串口打印出湿度结果
  Serial.println("%");     //在串口打印出%  
}

三、效果

请添加图片描述

好的,你需要连接一个温湿度传感器一个烟雾传感器到Arduino板上,然后连接一个LCD1602一个蜂鸣器。接下来,你需要编写一个Arduino程序来读取传感器数据并将其显示LCD幕上,同时当烟雾浓度超过一定值时触发蜂鸣器报警。 以下是一个简单的代码示例: ``` #include <LiquidCrystal.h> // 引入LCD库 #include <DHT.h> // 引入温湿度传感器库 #define DHTPIN 2 // 温湿度传感器连接到Arduino的2号引脚 #define DHTTYPE DHT11 // 使用DHT11传感器 DHT dht(DHTPIN, DHTTYPE); // 创建DHT对象 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // 创建LCD对象,传入连接引脚 int smokePin = A0; // 烟雾传感器连接到Arduino的A0引脚 int buzzerPin = 6; // 蜂鸣器连接到Arduino的6号引脚 void setup() { dht.begin(); // 初始化温湿度传感器 lcd.begin(16, 2); // 初始化LCD幕,传入列数行数 pinMode(smokePin, INPUT); // 将烟雾传感器引脚设为输入 pinMode(buzzerPin, OUTPUT); // 将蜂鸣器引脚设为输出 } void loop() { float temperature = dht.readTemperature(); // 读取温度 float humidity = dht.readHumidity(); // 读取湿度 int smokeValue = analogRead(smokePin); // 读取烟雾浓度 lcd.setCursor(0, 0); // 将光标移动到第一行第一列 lcd.print("Temp: "); // 在LCD幕上显示"Temp: " lcd.print(temperature); // 在LCD幕上显示温度lcd.print("C"); // 在LCD幕上显示单位 lcd.setCursor(0, 1); // 将光标移动到第二行第一列 lcd.print("Humidity: "); // 在LCD幕上显示"Humidity: " lcd.print(humidity); // 在LCD幕上显示湿度lcd.print("%"); // 在LCD幕上显示单位 if (smokeValue > 500) { // 如果烟雾浓度超过500 digitalWrite(buzzerPin, HIGH); // 打开蜂鸣器 } else { digitalWrite(buzzerPin, LOW); // 关闭蜂鸣器 } } ``` 请确保你正确连接了所有的电路,并且将程序上传到你的Arduino板上。现在,你应该能够在LCD幕上看到温度湿度值,并且当烟雾浓度超过500时蜂鸣器会响起。
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sol-itude

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值