前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >esp8266+oled+DHT 11温湿度显示

esp8266+oled+DHT 11温湿度显示

作者头像
剧终
发布2020-08-27 15:26:53
4.6K0
发布2020-08-27 15:26:53
举报
文章被收录于专栏:Linux学习日志Linux学习日志

设备清单

代码语言:javascript
复制
NodeMCU(esp8266)开发板一块
oled屏4pin i2c引脚一块
DHT11温湿度传感器一个
杜邦线

esp8266连接oled

代码语言:javascript
复制
3.3V --- VCC
G (GND) --- GND
D1(GPIO5)--- SCL
D2(GPIO4)--- SDA

esp8266连接DHT11

代码语言:javascript
复制
VCC ---- 3V3(+)
GND --- -GND(-)
输出---- D5

(NodeMcu板子)

请输入图片描述
请输入图片描述

(oled屏)

请输入图片描述
请输入图片描述

(DHT11)

请输入图片描述
请输入图片描述

安装库文件

打开Arduino,点击项目>加载库>管理库 搜索SSD1306然后安装这个

请输入图片描述
请输入图片描述

搜索GFX安装

请输入图片描述
请输入图片描述

搜索DHT安装

请输入图片描述
请输入图片描述

搜索Adafruit Unified Sensor安装

请输入图片描述
请输入图片描述

上传代码

代码:

代码语言:javascript
复制
/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Adafruit_Sensor.h>
#include <DHT.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

#define DHTPIN 14     // Digital pin connected to the DHT sensor

// Uncomment the type of sensor in use:
#define DHTTYPE    DHT11     // DHT 11
//#define DHTTYPE    DHT22     // DHT 22 (AM2302)
//#define DHTTYPE    DHT21     // DHT 21 (AM2301)

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(115200);

  dht.begin();

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  delay(2000);
  display.clearDisplay();
  display.setTextColor(WHITE);
}

void loop() {
  delay(5000);

  //read temperature and humidity
  float t = dht.readTemperature();
  float h = dht.readHumidity();
  if (isnan(h) || isnan(t)) {
    Serial.println("Failed to read from DHT sensor!");
  }
  // clear display
  display.clearDisplay();
  
  // display temperature
  display.setTextSize(1);
  display.setCursor(0,0);
  display.print("Temperature: ");
  display.setTextSize(2);
  display.setCursor(0,17);
  display.print(t);
  display.print(" ");
  display.setTextSize(1);
  display.cp437(true);
  display.write(167);
  display.setTextSize(2);
  display.print("C");
  
  // display humidity
  display.setTextSize(1);
  display.setCursor(0, 35);
  display.print("Humidity: ");
  display.setTextSize(2);
  display.setCursor(0, 45);
  display.print(h);
  display.print(" %"); 
  
  display.display(); 
}

效果图

请输入图片描述
请输入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 设备清单
  • esp8266连接oled
  • 安装库文件
  • 上传代码
  • 效果图
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档