2021-05-31 电子科协技术部学习报告

2021.5.31

ESP8266

DHT11温湿度传感器

OLED屏幕

最近初次接触esp8266,所以用他和一些传感器,屏幕,做了个可以显示温湿度的温湿度计。看到这篇文章的小伙伴建议自行安装好DHT库,ssd1306库

esp8266

esp8266nodemcu简介
ESP8266-NodeMCU是一个开源硬件开发板

由于它支持WIFI功能,所以在物联网(IOT)领域,Arduino开发板最大的对手之一就是ESP8266-NodeMCU开发板。
简单来说,就是个价格很便宜,可以连接WiFi,蓝牙的智能开发板。

主要技术参数

核心模块 ESP8266
工作电压 5伏特
输入电压(推荐) 5伏特
输入电压(极限) 4.5 ~ 10 伏特
数字输入输出引脚 10个(全部可以作为PWM引脚)
PWM引脚 10个
模拟输入引脚 2个
WIFI标准 802.11 b / g / n
工作模式 STA / AP / STA + AP
重量 7g

DHT11

简介

DHT11 数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,内部由一个 8 位单片机控制一个电阻式感湿元件和一个 NTC 测温元件。DHT11 虽然也是采用单总线协议,但是该协议与 DS18B20 的单总线协议稍微有些不同之处。

相比于 DS18B20 只能测量温度,DHT11 既能检测温度又能检测湿度,不过 DHT11 的精度和测量范围都要低于 DS18B20,其温度测量范围为 0~50℃,误差在±2℃;湿度的测量范围为 20%~90%RH(Relative Humidity 相对湿度—指空气中水汽压与饱和水汽压的百分比),误差在±5%RH。DHT11 电路很简单,只需要将 Dout 引脚连接单片机的一个 I/O 即可,不过该引脚需要上拉一个 5K 的电阻,DHT11 的供电电压为 3~5.5V。

OLED

简介
  OLED,即有机发光二极管(Organic Light-Emitting Diode),又称为有机电激光显示(OrganicElectroluminesence Display, OELD)。OLED 由于同时具备自发光,不需背光源、对比度高、厚度薄、视角广、反应速度快、可用于挠曲性面板、使用温度范围广、构造及制程较简单等优异之特性,被认为是下一代的平面显示器新兴应用技术。

LCD 都需要背光,而 OLED 不需要,因为它是自发光的。这样同样的显示,OLED 效果要来得好一些。以目前的技术,OLED 的尺寸还难以大型化,但是分辨率确可以做到很高。

在这里插入图片描述

在这里插入图片描述

arduino代码

     #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);    //128*64像素,逐行式
#define DHTPIN 14    //定义引脚D5
#define DHTTYPE    DHT11
DHT dht(DHTPIN, DHTTYPE);
void setup()
{  Serial.begin(115200); 
dht.begin(); 
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C))    // 扫描OLED的地址,默认0x3c
{    
  Serial.println(F("SSD1306 allocation failed"));  
  for(;;);  
  }  
  delay(2000); 
  display.clearDisplay();    //  清屏 
  display.setTextColor(WHITE);  //开像素点发光
  }
  void loop()
  {
    delay(5000);
  float t = dht.readTemperature();
  float h = dht.readHumidity(); 
  if (isnan(h) || isnan(t))  // 如果都没有采集到数据,则打印失败
  {  
    Serial.println("Failed to read from DHT sensor!");
    }
    display.clearDisplay();   // 清屏
    display.setTextSize(1);  // 字体
    display.setCursor(0,0);  //显示位置在第一行第一个
    display.print("Temperature: ");  
    display.setTextSize(2);  
    display.setCursor(0,10);  
    display.print(t);  
    display.print(" ");  
    display.setTextSize(1);  
    display.cp437(true);  //使用cp437符号集
    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();
    }

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值