Esp8266+DHT11+Binker 实现室内温湿度监测 您所在的位置:网站首页 blinker和arduino怎么通信 Esp8266+DHT11+Binker 实现室内温湿度监测

Esp8266+DHT11+Binker 实现室内温湿度监测

2024-07-17 16:47| 来源: 网络整理| 查看: 265

本文,我们来看看如何利用ESP8266+DHT11配合Binker实现读取室内温湿度。

实现效果准备材料esp8266DHT11线路连接

VCC--> 3V

GND-->GND

DATA--> 2

代码代码语言:javascript复制#define BLINKER_WIFI #define BLINKER_MIOT_SENSOR //引入小爱同学 #include #include //DHT11传感器的头文件 #define DHTPIN 4 //定义DHT11模块连接管脚io4(D2脚) #define DHTTYPE DHT11 // 使用DHT11温度湿度模块,当然也可以换其他DHT char auth[] = "1c2ce3eef946"; //点灯app的密钥key char ssid[] = "PDCN"; //所需连接的WiFi名 char pswd[] = "1234567890"; //WiFi的密码 BlinkerNumber HUMI("humi"); //定义湿度数据键名 BlinkerNumber TEMP("temp"); //定义温度数据键名 DHT dht(DHTPIN, DHTTYPE); //定义dht float humi_read = 0, temp_read = 0; //初始化读取的数据 //仪表盘组件 void heartbeat() { HUMI.print(humi_read); //给blinkerapp回传湿度数据 TEMP.print(temp_read); //给blinkerapp回传温度数据 } //实时曲线图组件 void dataStorage() { Blinker.dataStorage("temp", temp_read); Blinker.dataStorage("humi", humi_read); } //数据返回至小爱同学 void miotQuery(int32_t queryCode) { BLINKER_LOG("MIOT Query codes: ", queryCode); int humi_read_int=humi_read; //将float转成int类型,整数 BlinkerMIOT.humi(humi_read_int); //小爱接收湿度 BlinkerMIOT.temp(temp_read); //小爱接收温度 BlinkerMIOT.print(); } void setup() { //初始化串口Serial,开启调试输出 Serial.begin(115200);//波特率 BLINKER_DEBUG.stream(Serial); BLINKER_DEBUG.debugAll(); Blinker.begin(auth, ssid, pswd);//WIFI初始化设置 Blinker.attachHeartbeat(heartbeat);//注册仪表盘 dht.begin(); BlinkerMIOT.attachQuery(miotQuery);//注册小爱 Blinker.attachDataStorage(dataStorage);//注册实时曲线 } void loop() { Blinker.run();//负责处理blinker收到的数据,每次运行都会将设备收到的数据进行一次解析。(这个很重要) float h = dht.readHumidity();//读取DHT11采集的湿度数据 float t = dht.readTemperature();//读取DHT11采集的温度数据 if (isnan(h) || isnan(t))//判断温湿度值是否为空 { BLINKER_LOG("读取传感器数据失败"); } else { BLINKER_LOG("Humidity: ", h, " %");//打印输出调试信息 BLINKER_LOG("Temperature: ", t, " *C"); humi_read = h; temp_read = t; } Blinker.delay(200); //延时函数, 在延时过程中仍保持设备间连接及数据接收处理 }关于温湿度变化曲线

这里的云存储数据只支持联网设备,如果将温湿度计断电断网,数据是不会存储的,会在曲线图中骤然下降的趋势,重新连接后会骤然上升。这里的云存储的功能并不是很强大,如果修改代码重新上传程序的话之前云存储的数据会被清空。

2.具体函数

(1)云存储数据函数:

代码语言:javascript复制void dataStorage()//云存储温湿度数据函数 { Blinker.dataStorage("temp", temp_read);//存储温度 Blinker.dataStorage("humi", humi_read);//存储湿度 }

函数体里面Blinker.dataStorage("temp", temp_read);第一个参数是数据键名,用来在手机端图标中显示,第二个参数是要存储的数据变量。

(2)在代码中写好了函数后,需要在主循环中调用这个函数,调用函数如下:

代码语言:javascript复制Blinker.attachDataStorage(dataStorage);

这个函数的意思就是每次循环的时候就会调用上面的dataStorage函数,达到可以将每次获得的数据云存储的效果。

APP布局小爱效果

版权属于:逍遥子大表

本文链接:https://cloud.tencent.com/developer/article/2293348

按照知识共享署名-非商业性使用 4.0 国际协议进行许可,转载引用文章应遵循相同协议。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有