设备清单

  • esp8266开发板
  • oled显示器
  • 杜邦线

    电路图

    777.png

连线示意图
显示器连接
VCC----3V3(+)
GND----GND(-)
SCL----D1
SOA----D2
传感器示意图
VCC----3V3(+)
GND----GND(-)
OUT----D5

实物连接图

安装库文件

Installing the OLED libraries

依次打开Sketch > Include Library > Manage Libraries
搜索SSD1306然后安装
install-ssd1306-adafruit-library.png
搜索GFX安装
install-gfx-library-adafruit.png
搜索DHT
adafruit_dht_library.webp.jpg
搜索Adafruit Unified Sensor
adafruit_unified_sensor_library.webp.jpg

实例代码

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

#include 
#include 
#include 
#include 
#include 

#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(); 
}

效果

请输入图片描述

视频

最后修改:2023 年 08 月 04 日
如果觉得我的文章对你有用,请随意赞赏