esp8266查看ip地址(ESP8266之blinker物联网平台DHT11温湿度数据上报)
esp8266查看ip地址(ESP8266之blinker物联网平台DHT11温湿度数据上报)APP端配置,两个图表组件即可四、APP配置 ESP8266通过DHT11将温湿度数据监测,并上传至blinker物联网平台,同时在APP端显示对应的数据。PS:实现原理极为简单,不复杂,体验电子DIY的快乐,才是我们玩电子的初衷嘛!三、电路连接网上直接购买的模块,上电即用
一、背景
很久以前购买的DHT11温湿度传感器,被无情遗忘。终于在今天倒腾器件时,给翻了出来。压箱这么久,也是亏欠了这位小老弟,怎么也得让它实现点自我价值才行啊!想了很久,这玩意似乎也只能做点温湿度检测的活了。说干就干,那就让你继续做温湿度数据上报吧!以后有更好的想法的时候,再让你实现更多的价值!
二、实现原理
本次使用到的器件如下:
- ESP8266 WIFI模块
- DHT11 温湿度传感器模块
- 3.3~5.0V电源适配器
ESP8266通过DHT11将温湿度数据监测,并上传至blinker物联网平台,同时在APP端显示对应的数据。PS:实现原理极为简单,不复杂,体验电子DIY的快乐,才是我们玩电子的初衷嘛!
三、电路连接
网上直接购买的模块,上电即用
四、APP配置
APP端配置,两个图表组件即可
五、编码实现
#define BLINKER_WIFI
#include <Blinker.h>
#include <DHT.h>
// 定义温湿度传感器引脚
#define DHTPIN 2
#define DHTTYPE DHT11
// 认证信息
char auth[] = "XXXXXXXX";
char ssid[] = "XXXXXXXX";
char pswd[] = "XXXXXXXX";
// 创建组件
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
// DHT11初始化
DHT dht(DHTPIN DHTTYPE);
uint32_t read_time = 0;
float humi_read temp_read;
// 数据读取
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: " data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print("millis" BlinkerTime);
}
// 温湿度数据发送
void heartbeat()
{
HUMI.print(humi_read);
TEMP.print(temp_read);
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth ssid pswd);
Blinker.attachData(dataRead);
Blinker.attachHeartbeat(heartbeat);
dht.begin();
}
void loop()
{
Blinker.run();
if (read_time == 0 || (millis() - read_time) >= 2000)
{
read_time = millis();
float h = dht.readHumidity();
float t = dht.readTemperature();
if (isnan(h) || isnan(t)) {
BLINKER_LOG("Failed to read from DHT sensor!");
return;
}
float hic = dht.computeHeatIndex(t h false);
humi_read = h;
temp_read = t;
BLINKER_LOG("Humidity: " h " %");
BLINKER_LOG("Temperature: " t " *C");
BLINKER_LOG("Heat index: " hic " *C");
}
}
六、展望一下
其实DHT11也不能说一点用都没有,曾经用它实现过一个想法:通过DHT11采集室内温度,并上报,然后通过米家的多个设备设置自动化任务,最后实现在一定温度条件下控制某个插座或者开关打开。尤其针对南方的东西,尤为有效的。每天定时、定温度将电热毯打开,等你到床上躺着的时候,那叫一个舒服,一个享受!各位小伙伴还可以有其他想法,通过物联网平台的各种自动化、智能化任务,使多个设备联动,从而达到一个物物联通为自己服务,岂不快哉!