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

带有 LCD I2C 16x2 显示器的 Arduino DTH22 湿度温度

组件和用品

Arduino UNO
× 1
DHT22 温度传感器
× 1
蓝底白字 16×2 LCD 模块,带 I2C 背包模块 – 5V
× 1
无焊面包板全尺寸
× 1
9V 电池(通用)
× 1
Adafruit 9V 电池夹,带 5.5 毫米/2.1 毫米插头
× 1
USB-A 转 Mini-USB 线缆
× 1
公/母跳线
× 1
公/公跳线
× 1

关于这个项目

两年来,我的儿子 (7) 一直渴望拥有一条宠物蛇。最后他买了几条带玻璃容器的蛇。为了让蛇处于一个舒适的环境,我们需要监测温度和湿度。

所以我们购买了一个模拟湿度/温度传感器,并发现将两者保持在一个良好的水平并不容易。当我迫不及待地想用我新买的 Arduino Uno 开始一个项目时,使用湿度/温度传感器并让 Arduino 自动控制玻璃容器中的温度和湿度似乎是个好主意。为此我买了一个 DTH22 湿度/温度传感器和一个 LCD I2C 16x2 显示器并试了一下。

本教程是本项目的基础。本教程中没有任何自动化。只是使用 DTH22 和 LCD I2C 显示器。

为此,我看过另一个教程,但这是使用没有 I2C 的 LCD。如果您没有将 I2C 连接到 LCD,请查看 ThothLoki 的本教程

硬件要求

  • 任何 5V Arduino(在本例中为 Arduino Uno R3)
  • DTH22 湿度/温度传感器
  • 安装有 I2C 的 LCD 16x2 显示器
  • 面包板
  • 6 公/公跳线
  • 4 公/母跳线

需要的库

  • Adafruit_Sensor
  • DHT
  • NewliquidCrystal

在我们开始之前

我喜欢安装了 I2C 的 LCD 16x2,因为它可以为您省去所有可能需要或可能不需要连接到 Arduino 的引脚的麻烦。您只需要 4 根跳线,仅此而已。

显示器有一个 I2C 地址来接受命令或发送消息。缺点是您需要弄清楚它使用哪个地址才能继续。我不会在这里详细介绍,但是在 Arduino 论坛上,您可以阅读有关它的所有内容。

就我而言,我们的设备使用 0x3F 地址 , 如果您的设备也使用此地址,那么您很幸运,只需复制我们的代码即可。

将面包板连接到 Arduino

DHT22 传感器以及 LCD 1602 I2C 使用 5V 电源。因此,我将 Arduino 上的 5V 引脚连接到面包板上的红色 + 行,将 Arduino 的接地连接到面包板上的蓝色。由于我想保持颜色同步,在我的架构中,我将使用红色电缆连接 5V,蓝色电缆连接接地。在现实生活中,我没有使用蓝色作为地面,而是使用白色......我猜我对汽车电子玩得太多了。

我将黄色电缆用于数据,橙色电缆用于 SDA,灰色电缆用于 SCL。字母二将在 I2C 上。

添加 DHT22 传感器

让我们来看看引脚排列。 DHT22 传感器(如 DHT11)有四个引脚。我将 DHT22 传感器放在面包板上,正面朝外。这样第一个引脚(5V电源)在右边(见原理图)。

我使用一条小的红色跨接电缆将 5V VCC 连接到面包板上的 5V (+) 行。还有一条蓝色的小跨接电缆,用于将接地连接到面包板上的接地 (-) 排。我用一条黄色的长电缆将第二个引脚(数据引脚)连接到 Arduino。由于它是数字数据,我将其连接到 Arduino 上的数据端口 4。在其他示例中,您可能会看到人们使用端口 7,两者都可以使用。我使用端口 4 是因为我预计我将使用更多数据端口并希望保存端口 7 以防万一。您还将在架构中看到这一点。

添加 LCD 16x2 I2C

LCD 16x2 I2C 也有 4 个引脚。看下图,从左到右:

  • 地面
  • VCC (5V)
  • SDA
  • SCL

将第一个(左)引脚连接到面包板上的接地 (-) 行。将第二个引脚连接到面包板的 5V (+) 行红色。我使用 Arduino Uno,因此它在 A4 (SDA) 和 A5 (SCL) 上具有 I2C 连接。所以我将第三个引脚连接到 A4,第四个引脚连接到 Arduino 上的 A5 连接器。

代码

请记住,您可以使用不同的地址连接到屏幕。我的 I2C 使用地址 0x3F(请参阅“开始之前”部分),因此请注意我的代码是为此地址设置的。

记住所需的库(Adafruit_Sensor、DHT、NewliquidCrystal)。下载这些库,解压缩它们并将它们放在项目的库目录中。

然后将代码上传到您的 Arduino 并检查您的玻璃容器(或服务器机柜、冰箱或只是您的客厅)的湿度和温度。

代码

  • hygroThermo.ino
hygroThermo.inoC/C++
/* 如何将 DHT-22 传感器与 Arduino uno 温湿度传感器一起使用 更多信息:http://www.ardumotive.com/how-to-use-dht-22-sensor-en.html Dev: Michalis Vasilakis // 日期:1/7/2015 // www.ardumotive.com *///Libraries#include #include  #include #include //Constants#define DHTPIN 4 // 我们连接到什么引脚#define DHTTYPE DHT22 // DHT 22 (AM2302)DHT dht(DHTPIN, DHTTYPE); //// 为普通 16mhz Arduino 初始化 DHT 传感器//始终使用 LCD I2C 和地址 0x3F#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 D_define DHT #define D6_pin 6#define D7_pin 7LiquidCrystal_I2C lcd(I2C_ADDR,En_pin,Rw_pin,Rs_pin,D4_pin,D5_pin,D6_pin,D7_pin);//Variablesint chk;float hum; //存储湿度值float temp; //存储温度值void setup(){ Serial.begin(9600); dht.begin();液晶显示器。开始(16,2); lcd.setBacklightPin(BACKLIGHT_PIN,POSITIVE); lcd.setBacklight(HIGH);}void loop(){ delay(2000); //读取数据并存入变量hum和temp hum =dht.readHumidity(); temp =dht.readTemperature(); //将温度和湿度值打印到串行监视器Serial.print("Humidity:");串行打印(嗡嗡声); Serial.print(" %, 温度:");串行打印(温度); Serial.println("摄氏度");液晶显示器(); lcd.setCursor(0,0); lcd.print("温度:");液晶打印(温度);液晶打印(“”);液晶打印((字符)223);液晶打印(“C”); lcd.setCursor(0,1); lcd.print("嗡嗡声:");液晶打印(嗡嗡声); lcd.print("%");延迟(2000); //延迟 2 秒。}

示意图

Schema Fritzing schema_UcHE1qRu2t.fzz

制造工艺

  1. Arduino I2C 与 Raspi 2 WIOT 的通信
  2. 带有 Arduino 的用于飞行模拟器的 LCD 面板
  3. 用 Arduino 捕捉水滴
  4. 温湿度数据记录仪
  5. 玩 Nextion Display
  6. 使用 Arduino UNO 在 LCD TFT 屏幕上显示图像!
  7. BME280 Nextion Display 上的温度、湿度和压力
  8. DIY 10Hz-50kHz 示波器在 128x64 LCD 显示器上
  9. u-blox LEA-6H 02 GPS 模块,带有 Arduino 和 Python
  10. 如何使用 DHT11 在 Blynk 上读取温度和湿度
  11. MAX 30102 16x2 LCD 心率监测器
  12. 带 DS1302 RTC 的简单闹钟