前期准备:
硬件:一个arduino UNO板子,数据传输线,dht11温湿度传感器,128*64OLED 屏幕,杜邦线若干,面包板
软件:vscode
需要下载的库:<dht11.h>, <Adafruit_GFX.h><Adafruit_SSD1306.h>
硬件连接:
dht11:
GND------GND
VCC-------3.3V/VIN
OUT--------2(这个可以自己在函数中定义)
lcd:
GND------GND
VCC-------3.3V/VIN
SCL--------A5 时钟线
SDA-------A4 数据传输线
其中SDA和SCL不可更改连接方式
代码:
#include <dht11.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_REST 4 //复位引脚
#define height 64 //屏幕的高
#define width 128 //屏幕的宽
Adafruit_SSD1306 display(width,height,&Wire,OLED_REST);//新建屏幕画的对象
dht11 dht; //新建dht11对象
// #define dhtpin =2;读取dht11的数据引脚
void setup(){
Serial.begin(9600);
init_display();
}
void loop(){
Serial.println();
serial_show();
}
void serial_show(){
dht.read(2);//读取数据
//在串口中显示
Serial.print("Temperature : ");
Serial.println(dht.temperature);
Serial.print("Huminity : ");
Serial.println(dht.humidity);
delay(1000);//延时1s
String T=(String)dht.temperature;//将数值转化为string
String H=(String)dht.humidity;
display.setTextSize(2);
display.setCursor(5,5);
display.print("T: ");
display.println(T);
display.setTextSize(2);//设置显示文字大小
display.setCursor(5,20);//设置显示位置(X,Y)
display.print("H: ");
display.println(H);
display.display();
delay(1000);
display.clearDisplay();//清屏
}
//初始化屏幕
void init_display(){
display.begin(SSD1306_SWITCHCAPVCC,0x3C);//开始启动屏幕,并设置地址0x3C,3.3v电压
display.setTextColor(WHITE);//设置字体颜色为白色
display.clearDisplay();//清屏,将之前的图像清除
}
有错误之处还望指出