目录
简介
这个项目将向你展示如何用DHT 11制作一个Arduino OLED温度计和湿度计。
我们今天将使用的OLED是1.3英寸的大小,特点128×64像素和使用SPI总线。在接下来的步骤中,您将发现关于OLED技术和这个显示器的更多有用的信息。
我们将使用u8glib库与我们的oled显示器通信。这个库有许多可用的参数,您可以在OLED和图形LCD上显示数字、字母、位图和其他符号,它也适用于电子墨水显示。
步骤一 材料准备
硬件准备:
- Arduino UNO&Genuino UNO
- DHT 11温湿度传感器(4个引脚)
- DHT 22温度传感器
- 面包板(通用)
- 1.3寸 OLED显示屏SPI接口
- 杜邦线(通用)
软件准备:
- Arduino IDE
- u8glib库
步骤二 原理说明
有关DHT11的信息
所述DHT11 是一个基础的,超低成本数字温度和湿度传感器。它使用电容式湿度传感器和热敏电阻测量周围空气,并在数据引脚上返回数字信号(无需模拟输入引脚)。它使用起来相当简单,但需要一定的时间才能获取准确数据。这种传感器唯一的缺点是你每2秒只能从中获取一次新数据,传感器读数最长可达2秒。
特征:
- 体积小,成本低
- 易于使用,3至5V电源和I / O.
- 转换期间使用2.5mA最大电流(同时请求数据)
- 适用于20-80%湿度读数,准确度为5%
- 适用于0-50°C温度读数±2°C精度
- 采样率不超过1 Hz(每秒一次)
步骤三 硬件搭建
现在看一下上面的示意图,将显示器和传感器插入面包板。然后使用杜邦线将DHT11和OLED 的负极和正极电压引脚连接到Arduino UNO板的地和+ 5v 引脚。
然后取一个杜邦线,将传感器的输出引脚连接到Arduino板的A0 。
连接OLED引脚:
- DIN 连接引脚13 ;
- CLK 连接引脚11 ;
- CS 连接引脚10 ;
- D / C 连接引脚9
- RES 连接引脚8
- 13,11,10,9 和8是SPI Arduino的UNO的总线他们也是ICSP 微控制器下连接器。
步骤四 开始编程
您需要下载的库:DHT 和u8glib :
DHT库:
u8glib库:
,然后将它们解压缩到/ Program Files(x86)/ Arduino / Libraries(默认)。
完整程序代码:
版本1:
#include // U8glib library
#include // DHT library
#define dht_apin A5 // Analog pin to which the sensor is connected
dht DHT;
/*Uncomment and comment*/
U8GLIB_SH1106_128X64 u8g(13, 11, 10, 9, 8); // CLK=13, DIN=11, CS=10, DC=9, Reset=8
//U8GLIB_SSD1306_128X32 u8g(13, 11, 10, 9, 8); // CLK=13, DIN=11, CS=10, DC=9, Reset=8
//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 8); // CLK=13, DIN=11, CS=10, DC=9, Reset=8
void draw(void)
{
u8g.setFont(u8g_font_fub11r); // select font
u8g.drawStr(0, 11, "Temp: "); // put string of display at position X, Y
u8g.drawStr(80, 11, "Humi: ");
u8g.setFont(u8g_font_fub14r);
u8g.setPrintPos(10, 45); // set position
u8g.print(DHT.temperature, 0); // display temperature from DHT11 in Celsius
u8g.println("F");
u8g.setPrintPos(72, 45); // set position
u8g.print(DHT.humidity, 0); // display humidity from DHT11
u8g.println("%");
}
void setup(void)
{
}
void loop(void)
{
DHT.read11(dht_apin); // Read apin on DHT11
u8g.firstPage();
do
{
draw();
} while( u8g.nextPage() );
delay(2000); // Delay of 2 sec before accessing DHT11 (min - 2sec)
}
/*END OF FILE*/
版本2:
版本3: