利用nodemcu制作支持本地显示和Blinker查询数据的温湿度计

本文介绍了通信工程学生使用nodemcu和DHT11温湿度传感器制作温湿度计的过程。通过ArduinoIDE开发,结合blinker SDK和相关库,实现了数据的本地显示、串口输出以及上传到blinker云平台进行实时查询和数据存储。同时,利用OLED屏展示温湿度信息,并给出了详细的接线和代码实现。
摘要由CSDN通过智能技术生成

前言

笔者是桂工大三通信工程学生郭某,在机缘巧合之下,了解到了esp8266,长期使用51单片机去做课设的我,不由得对它的WiFi模块产生了一丝好奇。碰巧,购买nodemcu的时候,店家送了个DHT11温湿度传感器和四针的OLED显示屏。
那正好, 不如我就做一个温湿度计吧。

对于温湿度计的构想

  1. 能够探测到温湿度。
  2. 可以利用oled屏去进行温湿度的本地实时显示。
  3. 在串口要有温湿度的状态输出,要方便调试
  4. 把数据上传到blinker,进行数据的云存储,app实时查询。

基于nodemcu的温湿度计制作

元件清单

  • 四针oled屏ssd1306
  • DHT11温湿度传感器
  • nodemcu
  • 杜邦线若干根

开发环境及工具

  • Arduino IDE
  • blinker的SDK
  • DHT-SENSOR的库
  • ssd1306的库

注:DHT的库可能会有编译错误,会提示少了一个头文件Adafruit_Sensor.h,读者遇到这个问题自己去下载这个头文件,放进库里即可。

代码编写思路

对于头文件,我们对于自己需要实现一些什么功能要有一个初步的认知。

#define BLINKER_WIFI //定义wifi模块
#include <Blinker.h>//包含Blinker头文件
#include <DHT.h>//包含DHT头文件
#include "SSD1306Wire.h"
#define DHTPIN D4      //定义DHT11模块连接管脚也可以通过gpio去进行定义
#define DHTTYPE DHT11   // 使用温度湿度模块的类型为DHT11

对于温湿度的读取和打印

if (isnan(h) || isnan(t))//判断是否成功读取到温湿度数据,isnan()可以用于判断空或非数
    {
        BLINKER_LOG("Fail to read from DHT sensor!");//无法读取温湿度
    }
    else//成功读取到数据
    {   
       //输出温湿度的值
        BLINKER_LOG("Humidity: ", h, " %");
        BLINKER_LOG("Temperature: ", t, " *C");
        humi_read = h;//将读取到的湿度赋值给全局变量humi_read
        temp_read = t;//将读取到的温度赋值给全局变量temp_read
    }

利用心跳包把数据上传到blinker,在app上添加相应的键名就可以实时查询到温湿度,更新频率为一分钟一次。

void heartbeat()
{
    HUMI.print(humi_read);        //给blinkerapp回传湿度数据
    TEMP.print(temp_read);        //给blinkerapp回传温度数据
}
Blinker.attachHeartbeat(heartbeat);//将传感器获取的数据传给blinker app上

上传了温湿度数据之后,我们还可以利用它的云存储去进行一个数据的曲线图回顾。

void dataStorage() {
    Blinker.dataStorage("humi",humi_read );
    Blinker.dataStorage("temp",temp_read );
} 

对于oled显示,代码实现就简单的多了。

display.setFont(ArialMT_Plain_16);
display.drawString(0, 0, "\n"+String(t)+"*C"+"\n"+String(h)+"%"+"\n");

对字体的选择,和显示数据就可以达到目的。

实物接线

外设nodemcu
oled的SCLD3
OLED的SDAD2
DHT11D4

注。nodemcu的D0管脚不能用于DHT11数据的读取。VCC和GND并没有写,读者看着连就行

实物效果

在这里插入图片描述
在这里插入图片描述
代码编译完成,烧录进去之后,通过blinker,绑定键名,查看数据即可。
至此,这个小小的温湿度计也算是完成了。

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kockpaiki

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值