ESP8266使用用Arduino IDE获取温湿度信息并显示在OLED上

首先我们打开Arduino IDE的库管理搜索SimpleDHT并安装:
在这里插入图片描述
打开示例中的DHT11Default:
接线说明如下:
// for DHT11,
// VCC: 5V or 3V
// GND: GND
// DATA: 2
ESP8266 NodeMCU和Arduinod的引脚不是一样的,具体区别参考这篇文章
NodeMCU has weird pin mapping.
Pin numbers written on the board itself do not correspond to ESP8266 GPIO pin numbers. We have constants defined to make using this board easier:

static const uint8_t D0   = 16;
static const uint8_t D1   = 5;
static const uint8_t D2   = 4;
static const uint8_t D3   = 0;
static const uint8_t D4   = 2;
static const uint8_t D5   = 14;
static const uint8_t D6   = 12;
static const uint8_t D7   = 13;
static const uint8_t D8   = 15;
static const uint8_t D9   = 3;
static const uint8_t D10  = 1;

所以二号角应该接到D4,我们将程序下载到NodeNCU中,可以看到已经正常工作了,可惜有时候会读取错误,遇到这种情况再次读取即可。
在这里插入图片描述
下载成功后,打开右上角的串口监视器,已经在读取了:
在这里插入图片描述

关于如何驱动OLED显示屏请看我另一篇博客

仅做一些修改,代码如下:

#include <Wire.h>
#include <SimpleDHT.h>
#include <ACROBOTIC_SSD1306.h>

int pinDHT11 = 2;
SimpleDHT11 dht11(pinDHT11);

void setup() {
  Wire.begin();  
  oled.init();                      // Initialze SSD1306 OLED display
  oled.clearDisplay();              // Clear screen
  oled.setTextXY(0,0);              // Set cursor position
  oled.putString("Temp:  *C");
  oled.setTextXY(1,0);              // Set cursor position
  oled.putString("Humi:  %R");
}

void loop() {
  // read without samples.
  byte temperature = 0;
  byte humidity = 0;
  int err = SimpleDHTErrSuccess;
  if ((err = dht11.read(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
    delay(1000);
    return;
  }
  oled.setTextXY(0,5);              // Set cursor position
  oled.putString("  ");
  oled.setTextXY(0,5); 
  oled.putNumber(int(temperature));       

  oled.setTextXY(1,5);              // Set cursor position
  oled.putString("  ");
  oled.setTextXY(1,5); 
  oled.putNumber(int(humidity));     
  delay(1500);
}

接线和最终效果如图(ESP8266最引人关注的是网络功能,请关注我,下期推出和树莓派的网络通信):

在这里插入图片描述在这里插入图片描述
如果你有什么疑问或者想法欢迎留言。
欢迎大家加入我自建的创客交流群,分享diy经验,一起学习,一起进步。群号:784939897,你也可以扫码加群在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值