|
看到一些求助帖子中关于ESP8266-01S DHT11和IIC OLED无法工作的问题。这里首先说明的是8266默认SDA,SCL为GPIO4,GPIO5.若用ESP8266-01S的TX(GPIO1),RX(GPIO3)来代替就需在
void setup() 中添加 Wire.begin(1,3);语句。下面给出ESP8266-01S DHT11 OLED显示程序仅供参考。
#include <dht11.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 0
Adafruit_SSD1306 display(OLED_RESET);
#define NUMFLAKES 10
#define XPOS 0
#define YPOS 1
#define DELTAY 2
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16
dht11 DHT11;
#define DHT11PIN 2
void setup() {
Wire.begin(1,3);
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
}
void loop() {
display.clearDisplay();
int chk = DHT11.read(DHT11PIN);
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.println("Tem:");
display.setCursor(48,0);
display.println((float)DHT11.temperature);
display.setCursor(110,0);
display.println("C");
display.setCursor(0,18);
display.println("Hum:");
display.setCursor(48,18);
display.println((float)DHT11.humidity);
display.setCursor(110,18);
display.println("%");
display.display();
delay(1000);
}
|
|