欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

Arduino 与 HDT11 和 0.98 英寸 OLED 握手言和

最编程 2024-04-06 14:35:44
...

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 Arduino教程传送门???????????????????????? @[TOC](Arduino 与HDT11和0.98寸OLED握手)

1.0 简介

  • 温湿度传感器:温湿度传感器是一种装有湿敏和热敏元件,能够用来测量温度和湿度的传感器装置,有的带有现场显示,有的不带有现场显示。
  • 有机发光二极管(OrganicLight-Emitting Diode,OLED),又称为有机电激光显示、有机发光半导体(OrganicElectroluminesence Display,OLED),是指有机半导体材料和发光材料在电场驱动下,通过载流子注入和复合导致发光的现象。本篇通过==HDT11==采样得到温湿度,再通过串口和==0.98寸OLED==将电压数据打印显示。

相对湿度的学习 1.RH是相对湿度的缩写,55RH%指的是当前相对湿度为55%。 2.相对湿度是指单位体积空气中,实际水蒸气的分压与相同温度和体积下水饱和蒸气压的百分比。用百分数表达。也就是绝对湿度与最高湿度之间的比,它的值显示水蒸气的饱和度有多高。** 3.相对湿度是单位体积空气内实际所含的水气密度(用d1 表示)和同温度下饱和水气密度(用d2 表示)的百分比,即RH(%)= d1/ d2 x 100%;另一种计算方法是:实际的空气水气压强(用p1 表示)和同温度下饱和水气压强(用p2表示)的百分比,即RH(%)= p1/ p2 x 100%。 4.绝对湿度 “绝对湿度”指一定体积的空气中含有的水蒸气的质量,一般其单位是公克/立方米。绝对湿度的最大限度是饱和状态下的最高湿度。

  • 工作原理: 传感器采用DHT11温湿度传感器,可以检测温湿度的信息;输出元件有OLED。首先传感器将获取环境的温湿度信息,并将其传输至Arduino,Arduino获得数据后进行数据解析,将解析出的温湿度信息进行OLED显示器的显示,接着展示OLED字幕“Happy new year”,最后展示一个爱心????,希望大家有所收获????????????。

  • DHT11相关参数如下: 温度测量范围:0℃~ 50℃ 温度测量误差:+-2度 湿度测量范围:20% ~ 95%(0℃ ~ 50℃) 湿度测量误差:+-5% 产品尺寸:29.0mm * 18.0mm 固定孔尺寸:2.0mm

2.0 实验材料

  • Arduino Uno R3开发板
  • DHT11温湿度传感器
  • 0.98寸OLED
  • 七根公母线
  • USB数据线
  • 一台安装Arduino开发环境的电脑

3.0 实验步骤

3.1 根据原理图搭建电路

温湿度传感器为5V供电,其中信号输出端连接到Arduino的8号I/O引脚上;OLED显示器的通讯方式为IIC通讯,因此除了5V供电的两根线外,只需要一根信号线SDA(uno 的A4也可以)和一根时钟线SCL(uno 的A5也可以)就可以。 实验原理图: 在这里插入图片描述

实验接线图: 在这里插入图片描述

3.2 新建sketch,拷贝如下代码并进行保存编译上传

代码: MIxly模块 在这里插入图片描述

Arduino IDE代码所需U8g2lib库DHT库


#include <U8g2lib.h>
#include <Wire.h>
#include <DHT.h>

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE);
DHT dht8(8, 11);
const static unsigned char FACE_Heart_large[] PROGMEM = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7E, 0x00, 0x00, 0x00, 0xFC, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xBF, 0x07, 0x00, 0xC0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0x3F, 0x1C, 0x00, 0xF0, 0xFF, 0xE1, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0x71, 0x00, 0xF8, 0xFF, 0xC3, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xE7, 0x00, 0xFC, 0xFF, 0x8F, 0x03, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xCF, 0x01, 0xFE, 0xFF, 0x3F, 0x07, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0x9F, 0x03, 0xFF, 0xFF, 0x7F, 0x06, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x3F, 0x83, 0xFF, 0xFF, 0xFF, 0x0C, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0x7F, 0x87, 0xFF, 0xFF, 0xFF, 0x1D, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xC6, 0xFF, 0xFF, 0xFF, 0x19, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xEF, 0xFF, 0xFF, 0xFF, 0x33, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x37, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x6F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFC, 0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0xFF, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0xFF, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0xFF, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0xFF, 0xFF, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0xFF, 0x7F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0xFF, 0x1F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xFF, 0x0F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xFF, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFF, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xFE, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

void page1() {
  u8g2.setFont(u8g2_font_timB10_tf);
  u8g2.setFontPosTop();
  u8g2.setCursor(25, 10);
  u8g2.print("Temp:");
  u8g2.setCursor(70, 10);
  u8g2.print(dht8.readTemperature());
  u8g2.setCursor(25, 30);
  u8g2.print("Humi:");
  u8g2.setCursor(70, 30);
  u8g2.print(dht8.readHumidity());
}

void page2() {
  u8g2.setFont(u8g2_font_timB18_tf);
  u8g2.setFontPosTop();
  u8g2.setCursor(40, 10);
  u8g2.print("Happy");
  u8g2.setCursor(25, 30);
  u8g2.print("new year");
  delay(50);
}

void page3() {
  u8g2.drawXBMP(20, 0, 89, 64, FACE_Heart_large);
  u8g2.setFont(u8g2_font_open_iconic_all_1x_t);
  u8g2.drawGlyph(102, 45 + 1 * 8, 64);
  delay(500);
}

void setup() {
  u8g2.begin();
  Serial.begin(9600);
  dht8.begin();
  u8g2.enableUTF8Print();

}

void loop() {
  //OLED 两页切换
  //打印温湿度和爱心
  u8g2.firstPage();
  do
  {
    page1();
  } while (u8g2.nextPage());
  delay(1000);
  Serial.print("Temp:");
  Serial.println(dht8.readTemperature());
  Serial.print("Humi:");
  Serial.println(dht8.readHumidity());
  for (int i = 0; i <= 2; i = i + (1)) {
    u8g2.firstPage();
    do
    {
      page2();
    } while (u8g2.nextPage());
  }
  delay(2000);
  u8g2.firstPage();
  do
  {
    page3();
  } while (u8g2.nextPage());
  delay(1000);

}

3.3 实验现象

打开窗口监视,观察OLED显示屏和串口的数据是否一致 ,然后改变温度和湿度 ,观察其两者动态变化 ???????????? 视频演示

[video(video-rzm7EMBH-1612862323384)(type-youku)(url-player.youku.com/embed/XNTEw… 与HDT11和0.98寸OLED握手)]

在这里插入图片描述在这里插入图片描述

4.0 总结

  • ==首先传感器将获取环境的温湿度信息,并将其传输至Arduino,Arduino获得数据后进行数据解析,将解析出的温湿度信息进行OLED显示器的显示,接着展示OLED字幕“Happy new year”,最后展示一个爱心????==。难度综合性强,值得新手一试!!!????????????
  • 在以后的博文中我们将学会用arduino==常用传感器和执行器==,从而实现对外部世界进行感知,充分认识这个有机与无机的环境,科学地合理地进行创作和发挥效益,然后为人类社会发展贡献一点微薄之力