基于arduino uno实现温湿度实时监测

前期准备:

硬件:一个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();//清屏,将之前的图像清除

}

有错误之处还望指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值