基于esp8266的温湿度测量(dht11模块)
材料:
esp8266开发板(或者arduino等其他类型开发板)
dht11温湿度测量模块
0.96寸4针OLED屏幕
杜邦线若干
开发软件:Arduino IDE (在开发前先选择esp8266作为开发板)
库的准备:arduino——工具——管理库—— DHT sensor library 以及 U8g2 下载最新版本
接线 :dht11模块既可以3.3V供电也可以5V供电,按照产品数据手册为准
0.96寸OLED屏幕使用3.3V供电。
OLED屏幕: VCC接开发板的3V GND接开发板的G SCL接开发板D1 SDA接开发板 D2
dht11温湿度测量模块: VCC接开发板的3V GND接开发板的G DATE连接开发板D5
代码:
#include <DHT.h>
#define DHTPIN 14//14号引脚
#define DHTTYPE DHT11//定义类型DHT dht(DHTPIN,DHTTYPE);//进行初始化设
#include <U8g2lib.h> //u8g2库
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0,SCL,SDA); //配置构造函数
DHT dht(DHTPIN,DHTTYPE);//进行初始化设置
void setup()
{
u8g2.begin(); //启动u8g2驱动程序
u8g2.clearBuffer(); //清空显示屏缓存
dht.begin();//DHT开始工作
}
void loop()
{
face(); //调用函数,显示图案
delay(1000); //持续一秒钟
}
void face()
{
delay(1000);//延时
float h = dht.readHumidity();//读湿度
float t = dht.readTemperature();//读湿度
char c[10];
dtostrf(t,1,2,c); //float 转换成char
char d[10];
dtostrf(h,1,2,d);
u8g2.clearBuffer(); //清空显示屏缓存
u8g2.setFont(u8g2_font_open_iconic_human_2x_t); //设置英文字体
u8g2.setFont(u8g2_font_unifont_t_chinese2); //设置字体
u8g2.drawUTF8(0,15,"tem:"); //显示文字
u8g2.drawUTF8(0,30,c); //显示文字
u8g2.drawUTF8(0,45,"hum:"); //显示文字
u8g2.drawUTF8(0,61,d); //显示文字
u8g2.sendBuffer(); //加载以上内容
}