ESP8266-NodeMCU项目(二):ESP8266-NodeMCU+Blinker+DHT11+小爱同学

ESP8266-NodeMCU项目(二):ESP8266-NodeMCU+Blinker+DHT11+小爱同学,第1张

错开の折腾经历:ESP8266 NodeMCU

文章目录
  • 前言
  • 一、Blinker
    • 1、Blinker——点灯科技
      • 特性:
      • blinker应用场景:
  • 二、任务开始
    • 1.实验材料
    • 2.安装库文件
    • 3.安装Blinker_APP并配置设备
    • 4.代码环节
    • 5.接入米家、小爱同学
  • 三、测试效果
  • 总结


前言

经过上一项目,以及后来的学习,俺感觉可以入手新的项目辽。
So,就突然有了个 idea:身边不但有个ESP8266-NodeMCU(可以上网的板),还有个DHT11传感器,就想看看能不能数据上云,这个也是前期学习的一个重要方向,然后就开始网上冲浪找资料,不经意间触发了我的小爱同学(emmm,可能是误触,自己跑出来,吓一跳),突然就有个想法,温湿度传感器接入米家、小爱同学。折腾嘛,就是怕你没idea,有的话就可以尽情折腾了。说干就干。。。。。。


滴滴:以下是本篇文章正文内容

一、Blinker 1、Blinker——点灯科技

官网:点我传送

Blinker是一套专业且易用物联网解决方案,提供了服务器、应用、设备端sdk支持。 基于高性能异步框架开发的服务器端可以承载大量设备连接,让设备所有者方便的进行设备管理;简单便捷的应用配合多设备支持的sdk,可以让开发者在3分钟内实现设备的接入。 点灯服务有三个版本,社区版开源且免费,让大家可以体验到点灯方案的特点和优势;云服务版提供更多增值服务与功能,且有效降低客户的项目实施成本,让客户更快的进行物联网升级;商业版可进行独立部署,可以满足客户更多样的需求;

blinker支持多种主流通信方式,如:蓝牙 、 WiFi ,理论上只要是支持蓝牙或者WiFi的设备,都可以使用blinker连接。(✪ω✪) (小白大爱)

特性:

其由服务器端、app端、设备端组成,可以部署到几乎所有物联网平台
app端支持ios、android

设备端可以使用蓝牙、WiFi、MQTT等方式接入,支持Arduino、freeRTOS、mbed OS、Linux等开发平台

服务器端可以部署到阿里云、腾讯云、OneNET、百度云、AWS、google cloud等平台

通过界面布局器,免费版用户可自己拖拽布局设备控制界面,自由打造您的物联网设备

通过专属SDK,专业版用户可以使用Blinker开发自己的产品,并用于商业用途

blinker应用场景:
快速开发物联网 / 智能家居 / 无线遥控项目;
手机 / 语音助手 控制设备;
蓝牙ble / 局域网WiFi / 远程MQTT 接入设备;
设备联动交互;
数据采集分析 / 数据可视化;
二、任务开始 1.实验材料

老朋友:ESP8266-NodeMCU板子
温湿度传感器:DHT11
杜邦线、usb线
pc(Arduino IDE)、手机(安装blinker_APP、米家、小爱同学)

特写:

2.安装库文件

安装blinker库文件:

安装DHT11库文件:

并安装所需依赖:

3.安装Blinker_APP并配置设备

下载:Blinker官网下载

PS:按照自己所需进行下载

进行账号注册,登录后进入界面,创建设备,获取key
如图 *** 作:





获取你的key,记得保存好哈,后面要凭此接入Blinker的

然后,别走开,点进设备里面,创建组件:

选数据组件

组件键名比较重要,建议设为自己好记的,代码方面要对接键名的
其他样式、颜色、文本都可以自己按情况设置



保存好后退出,准备进入紧张刺激的代码环节─=≡Σ(((つ•̀ω•́)つ

4.代码环节

首先当然是要看资料啦:
Blinker官网:esp8266 & WiFi帮助文档
Blinker官网:对接小爱同学帮助文档
Blinker官网:Arduino支持库帮助文档
Blinker官网:Arduino入门库帮助文档

基本找以上帮助文档都可以解决大部分问题

我这边直接贴代码了

#define BLINKER_WIFI          //协议所需宏定义
#define BLINKER_MIOT_SENSOR   //小爱同学定义为传感器设备
 
#include      //点灯科技的头文件
#include          //DHT11传感器的头文件
 
#define DHTPIN 4      //定义DHT11模块连接管脚io4(D2脚)
#define DHTTYPE DHT11   // 使用DHT11温度湿度模块,当然也可以换其他DHT

#define BLINKER_PRINT Serial //启用串口调试输出功能 

char auth[] = "自己的key"; //点灯app的密钥key
char ssid[] = "WiFi名";   //所需连接的WiFi名
char pswd[] = "WiFi密码";   //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 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);//注册回调函数
}
 
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(2000);
    //延时函数, 在延时过程中仍保持设备间连接及数据接收处理
}

接线:

烧录进板子:

烧录后,连网没问题的话,app就可以看见设备上线啦(~ ̄▽ ̄)~

5.接入米家、小爱同学



输入Blinker的账号密码,进行绑定

可以看见设备啦

然后小爱同学可以进行训练

三、测试效果

点它传送:小爱同学交互读取宿舍温湿度的录屏

PS:Blinker_APP的数据刷新有点问题,得每次重新点进设备才能刷新数据,你要是一直在那个页面,数据是不会动态刷新的,emmm
所以,可以在里面加个调试组件,进行刷新数据:


手动刷新,emmm
问题不大,小爱同学数据有更新,目的达到√

总结 又到了总结的时候了:
不得不说ESP8266-NodeMCU板子实在的太方便了,10多块钱,支持WIFI,啧啧啧,老香了。
Blinker的应用也很棒,小白感觉很友好,还有更多功能等待探索呢。
DHT11的话,感觉数据还是不太精准,有空换个贵的(啧,有钱也可以!)
OK,下一个项目就是ESP8266-NodeMCU+红外+美的空调之间的故事了,害,等我红外发射模块到货再说了。

拜了个拜,共勉!!!

项目目录:
错开のESP8266-NodeMCU项目一
错开のESP8266-NodeMCU项目二
错开のESP8266-NodeMCU项目三
错开のESP8266-NodeMCU项目四
错开のESP8266-NodeMCU项目五

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/733276.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-27
下一篇 2022-04-27

发表评论

登录后才能评论

评论列表(0条)

保存