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

首先我们打开Arduino IDE的库管理搜索SimpleDHT并安装:
ESP8266使用用Arduino IDE获取温湿度信息并显示在OLED上_第1张图片
打开示例中的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中,可以看到已经正常工作了,可惜有时候会读取错误,遇到这种情况再次读取即可。
ESP8266使用用Arduino IDE获取温湿度信息并显示在OLED上_第2张图片
下载成功后,打开右上角的串口监视器,已经在读取了:
ESP8266使用用Arduino IDE获取温湿度信息并显示在OLED上_第3张图片

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

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

#include 
#include 
#include 

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最引人关注的是网络功能,请关注我,下期推出和树莓派的网络通信):

ESP8266使用用Arduino IDE获取温湿度信息并显示在OLED上_第4张图片ESP8266使用用Arduino IDE获取温湿度信息并显示在OLED上_第5张图片
如果你有什么疑问或者想法欢迎留言。
欢迎大家加入我自建的创客交流群,分享diy经验,一起学习,一起进步。群号:784939897,你也可以扫码加群ESP8266使用用Arduino IDE获取温湿度信息并显示在OLED上_第6张图片

你可能感兴趣的:(ESP8266)