用DHT11做一个连续测量的温湿度计

前一段用STM32F103C8T6和SD16B20做了一个温度计,连续测量室内温度变化,记录最高值与最低值,最近找了一个DHT11,对温度计改造一下,变成温湿度计,试试效果也不错,不断动手折腾满足好奇心,呵呵!
用料:
STM32F103C8T6
四针1.30OLED
连线为:
OLED的SCL连STM32 PB6,
OLED的SDA连STM32 PB7
DHT11接在STM32 PA2
程序

#include <U8g2lib.h>
#include <DHT.h> 
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, /* clock=*/ PB6, /* data=*/ PB7, /* reset=*/ U8X8_PIN_NONE);
double wdMax=0;
double wdMini=0;
double sdMax=0;
double sdMini=0;
int R=0;
void setup(void) {
  dht.begin();
  u8g2.begin();
  u8g2.enableUTF8Print();
  wdMax = dht.readTemperature();
  wdMini = dht.readTemperature();
  sdMax = dht.readHumidity(); 
  sdMini= dht.readHumidity();
}
void loop(void) {
//此部分显示测量次数
  R=R+1;
  u8g2.setFont(u8g2_font_6x13_tf);
  u8g2.setFontDirection(0);
  u8g2.clearBuffer();
  u8g2.setCursor(20, 12);
  u8g2.print("number of times:");
  u8g2.setCursor(25, 45);
  u8g2.print("No:  ");
  u8g2.print(R);
  u8g2.drawFrame(5, 0, 120, 16);
  u8g2.drawFrame(5, 0, 120, 64);//(x1,y1,x2,y2)
  u8g2.sendBuffer();
  delay(3000);
  u8g2.clearBuffer();
//以下是显示温度并记录最大值最小值
if(dht.readTemperature()>wdMax){
  wdMax = dht.readTemperature();}
  else{
   if(dht.readTemperature()<wdMini)
   wdMini =dht.readTemperature(); }
  u8g2.setFont(u8g2_font_6x13_tf);
  u8g2.setFontDirection(0);
  u8g2.clearBuffer();
  u8g2.setCursor(20, 12);
  u8g2.print("Temperature:");
  u8g2.setCursor(10, 32);
  u8g2.print(dht.readTemperature());
  u8g2.print("   ");
  u8g2.print("Max: ");
  u8g2.print(wdMax);
  u8g2.setCursor(10, 50);
  u8g2.print("  /C    ");
  u8g2.print("Mini:");
  u8g2.print(wdMini);
  u8g2.drawFrame(3, 0, 124, 15);//(x1,y1,x2,y2)
  u8g2.drawFrame(3, 0,124,64 );
  u8g2.drawFrame(49, 15,124,49);
  u8g2.sendBuffer();
  delay(5000); 
//以下是显示湿度并记录最大最小值
  if(dht.readHumidity()>sdMax){
  sdMax = dht.readHumidity();}
  else{
   if(dht.readHumidity()<sdMini)
   sdMini =dht.readHumidity(); }
  u8g2.setFont(u8g2_font_6x13_tf);
  u8g2.setFontDirection(0);
  u8g2.clearBuffer();
  u8g2.setCursor(10, 12);
  u8g2.print("relative humidity");
  u8g2.setCursor(10, 32);
  u8g2.print(dht.readHumidity());
  u8g2.print("   ");
  u8g2.print("Max: ");
  u8g2.print(sdMax);
  u8g2.setCursor(10, 50);
  u8g2.print("  %     ");
  u8g2.print("Mini:");
  u8g2.print(sdMini);
  u8g2.drawFrame(3, 0, 124, 15);//(x1,y1,x2,y2)
  u8g2.drawFrame(3, 0,124,64 );
  u8g2.drawFrame(49, 15,124,49);
  u8g2.sendBuffer();
  delay(5000); 
     }

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值