@[TOC](
【Arduino】温湿度传感器(DHT11)控制设计 四位数码管,LCD1602,带蜂鸣器、LED灯报警,串口输入设定阈值
)
一、实验器材
UNO控制板:1块
共阳极四位数码管:1个
面包板:1块
面包板跳线:若干
220Ω电阻:4个
有源蜂鸣器:1个
红色led灯-1
黄色led灯-1
DHT11:1个
二、连线示意图
注意:A4接LCD1602的SDA、A5接LCD1602的SCL
三、代码如下
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <dht11.h>
dht11 dht11;
char signal;
int dhtpin = A3;//DHT11温湿度传感数据读取端口
int buzzerPin = A0;//蜂鸣器端口
int LED1 = A2;
int LED2 = A1;
//设置初始温度湿度
int temperatureset=22;
int humidityset=20;
//设置阴极接口
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 7;
int g = 8;
int p = 9;
//设置阳极接口
int d4 = 12;
int d3 = 13;
int d2 = 11;
int d1 = 10;
//设置变量
float humidity;
float temperature;
int num4;
int num3;
int num2;
int num1;
// I2C地址, 一般为0x3F, 0x20或0x27
LiquidCrystal_I2C lcd(0x27,16,2);
void setup(){
lcd.init();
lcd.backlight(); // 打开背光
Serial.begin(9600);
pinMode(d1, OUTPUT);
pinMode(d2, OUTPUT);
pinMode(d3, OUTPUT);
pinMode(d4, OUTPUT);
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
pinMode(p, OUTPUT);
pinMode(buzzerPin,OUTPUT);
pinMode(LED1,OUTPUT);//设置led引脚为输出引脚
pinMode(LED2,OUTPUT);//设置led引脚为输出引脚
lcd.setCursor(0,1); // line 1, pos 0
lcd.print("H: % T:");
delay(1000);
}
void pickDigit(int x) //定义pickDigit(x),其作用是开启dx端口
{
digitalWrite(d1, LOW);
digitalWrite(d2, LOW);
digitalWrite(d3, LOW);
digitalWrite(d4, LOW);
switch(x)
{
case 1:
digitalWrite(d1, HIGH);
break;
case 2:
digitalWrite(d2, HIGH);
break;
case 3:
digitalWrite(d3, HIGH);
break;
default