小爱同学+ESP8266+blinker监测数据

blinker数据反馈

一.简介

这一节我们主要说一下通过小爱同学来控制esp8266开发板采集温湿度数据,然后语言播报

这里我们用到的模块还是DHT11温湿度传感器,没有配置DHT库的朋友,可以看前面的教程,这里就不多说了

二.app配置

这次我们的设备是用于读取数据的,所以设备名称就不能是灯了,我们就起名为传感器在这里插入图片描述

三.小爱同学接入

1.代码部分

#define BLINKER_PRINT Serial  //用于打开串口
#define BLINKER_WIFI
#define BLINKER_MIOT_SENSOR   //定义为语音控制传感器设备 

#include <Blinker.h>
#include <DHT.h>
 
char auth[] = "774c60aac10f"; //上一步中在app中获取到的Secret Key(新建设备的秘钥)

char ssid[] = "ZFQ"; //你的WiFi热点名称

char pswd[] = "123456789"; //你的WiFi密码
 
BlinkerNumber HUMI("humi");
BlinkerNumber TEMP("temp");
 
#define DHTPIN 2 //
 
#define DHTTYPE DHT11   // DHT 11
//#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
//#define DHTTYPE DHT21   // DHT 21 (AM2301)
 
DHT dht(DHTPIN, DHTTYPE);
 
int32_t humi_read = 0;//湿度 小爱同学只能查整数的数据 
float temp_read = 0; //温度
 
void heartbeat()
{
    //反馈湿度数据
    HUMI.print(humi_read);
    //设置ui组件图标和颜色
    HUMI.icon("fas fa-tint");
    HUMI.color("#0099FF ");

    //反馈温度数据
    TEMP.print(temp_read);
    TEMP.icon("fas fa-thermometer-empty");
    TEMP.color("#FF3300");
}
 
 
void miotQuery(int32_t queryCode)
{
    BLINKER_LOG("MIOT Query codes: ", queryCode);

    switch (queryCode)
    {
        //同时查询传感器数据
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG("MIOT Query All");
            BlinkerMIOT.temp(temp_read);
            BlinkerMIOT.humi(humi_read);
            BlinkerMIOT.pm25(20);
            BlinkerMIOT.co2(20);
            BlinkerMIOT.print();
            break;
        //查询pm2.5
        case BLINKER_CMD_QUERY_PM25_NUMBER :
            BLINKER_LOG("MIOT Query PM25");
            BlinkerMIOT.pm25(20);
            BlinkerMIOT.print();
            break;
        //查询湿度
        case BLINKER_CMD_QUERY_HUMI_NUMBER :
            BLINKER_LOG("MIOT Query HUMI");
            BlinkerMIOT.humi(humi_read);
            BlinkerMIOT.print();
            break;
        //查询温度
        case BLINKER_CMD_QUERY_TEMP_NUMBER :
            BLINKER_LOG("MIOT Query TEMP");
            BlinkerMIOT.temp(temp_read);
            BlinkerMIOT.print();
            break;
        //查询CO2
        case BLINKER_CMD_QUERY_TIME_NUMBER :
            BLINKER_LOG("MIOT Query co2");
            BlinkerMIOT.co2(20);
            BlinkerMIOT.print();
            break;
        default :
            BlinkerMIOT.temp(20);
            BlinkerMIOT.humi(20);
            BlinkerMIOT.pm25(20);
            BlinkerMIOT.co2(20);
            BlinkerMIOT.print();
            break;
    }
}


void setup()
{
    Serial.begin(115200);
    BLINKER_DEBUG.stream(Serial);
    BLINKER_DEBUG.debugAll();
    
    pinMode(LED_BUILTIN, OUTPUT);
    digitalWrite(LED_BUILTIN, LOW);
    Blinker.begin(auth, ssid, pswd);
    Blinker.attachHeartbeat(heartbeat);
    BlinkerMIOT.attachQuery(miotQuery); //小爱同学 数据反馈
    dht.begin();
}
 
void loop()
{
    Blinker.run();
 
    float h = dht.readHumidity();
    float t = dht.readTemperature();
 
    if (isnan(h) || isnan(t))
    {
        BLINKER_LOG("Failed to read from DHT sensor!");
    }
    else
    {
        BLINKER_LOG("Humidity: ", h, " %");
        BLINKER_LOG("Temperature: ", t, " *C");
        humi_read = h;
        temp_read = t;
    }
 
    Blinker.delay(2000);
}

2.代码说明

  1. 我们这边是小米的小爱同学来控制传感器

    #define BLINKER_MIOT_SENSOR   //定义为语音控制传感器设备 
    
  2. 设置回调函数

    BlinkerMIOT.attachQuery(miotQuery); //小爱同学 数据反馈
    
  3. 语言控制实现函数

    void miotQuery(int32_t queryCode)
    {
    }
    
  4. 特别注意,小爱同学测试湿度时我们定义的 湿度不能是浮点型(小数),负责语音控制时就会出错

    int32_t humi_read = 0;
    

3. 语音控制

如何通过小爱同学语音来控制,这里需要注意一下

我们可以参考一下:blinker开发文档

小爱支持的语言指令


  • 打开/关闭{门口}的{灯}
    把{卧室}的{灯}调为{红色}
    颜色范围为0-16777215(0xFFFFFF)
    把{卧室}的{灯}的{亮度调高一点}
    亮度范围为1-100
    把{门口}的{灯}的{色温}调到{1400}
    色温范围为1000-10000
    把{卧室}的{灯}调为{月光模式}
    查询{卧室}的{灯}的状态
  • 插座
    打开/关闭{厨房}的{插座}
    {客厅}的{插座}是否打开
  • 传感器
    {设备名}室内{温度}/{湿度}/{PM2.5}/{空气质量}/{二氧化碳含量}

四.总结

这篇说的不是很详细,因为我们前面已经说了arduino环境的搭建已经库的导入,esp8266模块的添加,以及app端的配置,程序的烧写等等,所以在这里就不在浪费大家时间了,具体代码有注释可以查看

  • 11
    点赞
  • 65
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值