亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

Arduino UNO + DHT22 + I²C 1602 LCD:温湿度监测实战

物料清单

组件数量
Arduino UNO R31
DHT22 温湿度传感器 (AM2302)1
1602 LCD + I²C 背包模块 (5 V)1
全尺寸无焊面包板1
9 V 电池 + 5.5/2.1 mm 电池夹1
公对公/公对母/母对母跳线若干

所需库文件

硬件接线

电源总线

UNO 5 V → 面包板红线(+),GND → 蓝线(-)。

DHT22(4 脚,面向自己时最右为 VCC)

DHT22 引脚连接
1 VCC面包板 +
2 DATAUNO D4(黄线)
3 NC悬空
4 GND面包板 -

I²C LCD(4 脚,从左到右)

LCD 引脚连接
GND面包板 -
VCC面包板 +
SDAUNO A4
SCLUNO A5
Arduino UNO + DHT22 + I²C 1602 LCD:温湿度监测实战

I²C 地址确认

常见地址为 0x3F 或 0x27。上传 I2C Scanner 例程可自动检测。本教程默认 0x3F,若不同请修改代码 #define I2C_ADDR 0x3F。

完整固件代码

/* DHT22 + I2C 1602 LCD 温湿度显示
   库: Adafruit_Sensor, DHT, NewliquidCrystal
*/
#include <DHT.h>
#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal_I2C.h>

#define DHTPIN 4
#define DHTTYPE DHT22
DHT dht(DHTPIN, DHTTYPE);

#define I2C_ADDR 0x3F
#define BACKLIGHT_PIN 3
#define En_pin 2
#define Rw_pin 1
#define Rs_pin 0
#define D4_pin 4
#define D5_pin 5
#define D6_pin 6
#define D7_pin 7
LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);

float hum, temp;

void setup() {
  Serial.begin(9600);
  dht.begin();
  lcd.begin(16, 2);
  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
  lcd.setBacklight(HIGH);
}

void loop() {
  delay(2000);
  hum = dht.readHumidity();
  temp = dht.readTemperature();

  // 串口调试
  Serial.print("Humidity: "); Serial.print(hum);
  Serial.print(" %, Temp: "); Serial.print(temp);
  Serial.println(" Celsius");

  // LCD 显示
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("Temp: "); lcd.print(temp); lcd.print(" "); lcd.print((char)223); lcd.print("C");
  lcd.setCursor(0, 1);
  lcd.print("Hum: "); lcd.print(hum); lcd.print(" %");
}

常见问题排查

原理图与 Fritzing 源文件

Arduino UNO + DHT22 + I²C 1602 LCD:温湿度监测实战

可下载 schema_UcHE1qRu2t.fzz 在 Fritzing 中二次编辑。

制造工艺

  1. Arduino 与树莓派 2 I2C 通信集成:打造物联网传感器项目的最佳搭档
  2. Arduino Nano飞行模拟2020控制面板——LCD与CDI显示
  3. Arduino Nano高速摄影控制器 – 定格水滴碰撞瞬间
  4. Arduino + DHT11 + 以太网盾板温湿度数据记录仪
  5. 基于 Arduino Mega 与 Nextion 显示屏的交互式气象站
  6. Arduino UNO 驱动 1.17 英寸 TFT 屏显示图片 (SD 卡读取)
  7. BME280 环境数据实时显示于 Nextion 触摸屏——Visuino 图形化开发
  8. DIY Arduino Nano 示波器:10 Hz–50 kHz / 128×64 LCD
  9. u-blox LEA-6H GPS 模块:Arduino 与 Python 集成指南
  10. Blynk + Arduino 读取 DHT11 温湿度数据教程
  11. 基于 Arduino Nano 和 MAX30102 的心率监测仪(16x2 LCD 显示)
  12. 用 DS1302 RTC 和 Arduino UNO 制作可靠闹钟