物联网开发实战2-家庭温湿度计的实现

前言

继续打磨之前的家庭温湿计,增加空气质量传感器和OLED屏的显示。

前一篇

目标

实现OLED显示 温度、湿度、空气质量

配件

0.96寸蓝色 黄蓝双色 白色 I2C IIC通信 显示器 OLED液晶屏模块

image.png

MQ-135空气质量传感器模块


image.png

MB-102专用电源模块3.3V/5V

image.png

面包板


image.png

接线

image.png

给个宏观图,线太多,这里文字发下吧。

  • OLED 屏和 ESP8266对应的接线
ESP8266 OLED
D1 SCL
D2 SDA
3V VCC
GND GND
image.png
  • MQ-135 的接线.

MQ-135需要5v供电,esp8266无法满足。我这里通过面包板来供电。

ESP8266 MQ-135
A0 A0
D0 D3

注意,开发调试时,esp8266使用的usb,通常GND没插的,而MQ-135插在面包板上,此时,可能出现a0读取的值异常,原因是
esp8266的GND 没有连接。记得esp8266也插上面包板,二者GND要联通。

代码部分

代码逻辑:
接之前的逻辑,在上报数据时,OLED显示值即可。

空气质量传感器读取

int airpollution = 0;
    int airwarn = 1;

    Serial.print("ADC Value: ");
    
airpollution = analogRead(A0);
   Serial.println(airpollution);//读取A0脚的数据,输出0-1023  值越大,则污染越重


airwarn = digitalRead(pinMQ2);
     Serial.print("TTL Value: ");

    Serial.println(airwarn);//读取d3脚的数据,输出0和1  1表示出现污染。

OLED屏幕值显示

  u8g2.setFont(u8g2_font_wqy12_t_gb2312); 
  u8g2.setFontDirection(0);
  u8g2.clearBuffer();
  u8g2.setCursor(0, 15);

    char firstLine[50];
    sprintf(firstLine, "温度: %s℃ ", ts);
    u8g2.print(firstLine);

      u8g2.setCursor(0, 35);

    char secondLine[50];
    sprintf(secondLine, "湿度: %s%% ", hs);
    u8g2.print(secondLine);



      u8g2.setCursor(0, 60);

    char threeLine[50];
    sprintf(threeLine, "空气质量: %d ", airpollution);
    u8g2.print(threeLine);


      u8g2.sendBuffer();

最终结果

image.png

腾讯连连界面

image.png

注意:腾讯连连的自定义界面存在局限,例如上图的时间是字符串,是无法显示的。需要自定义开发h5界面。

腾讯连连h5开发文档

下载

https://download.csdn.net/download/douniwan123654/13489398

推荐阅读更多精彩内容