当前位置:首页 » 《随便一记》 » 正文

ESP8266-NodeMCU项目(二):ESP8266-NodeMCU+Blinker+DHT11+小爱同学_错开の博客

16 人参与  2022年03月13日 13:42  分类 : 《随便一记》  评论

点击全文阅读


错开の折腾经历: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库文件:
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 <Blinker.h>     //点灯科技的头文件
#include <DHT.h>         //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(3000);//这里至少要延时2s,不然小爱回返回设备不在线
    //延时函数, 在延时过程中仍保持设备间连接及数据接收处理
}

接线:
接线
烧录进板子:
请添加图片描述
烧录后,连网没问题的话,app就可以看见设备上线啦(~ ̄▽ ̄)~

5.接入米家、小爱同学

在这里插入图片描述
在这里插入图片描述
输入Blinker的账号密码,进行绑定
在这里插入图片描述
可以看见设备啦
在这里插入图片描述
然后小爱同学可以进行训练
在这里插入图片描述

三、测试效果

在这里插入图片描述

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

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

在这里插入图片描述
手动刷新,emmm
问题不大,小爱同学数据有更新,目的达到√

总结

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

拜了个拜,共勉!!!


点击全文阅读


本文链接:http://zhangshiyu.com/post/36134.html

设备  数据  小爱  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1