天猫精灵接入ESP8266+DHT11(blink)

自制温湿度计

1.设备准备:
天猫精灵智能音箱(什么款式都行)、手机端下载点灯科技、DHT11温湿度传感器、esp8266、杜邦线若干;

2.在点灯科技端添加设备获取设备key

3.编写代码如下:
#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_ALIGENIE_OUTLET            //天猫精灵接入

#include <Blinker.h>
#include <DHT.h>

char auth[] = "*******";    //点灯科技获取的设备key
char ssid[] = "*******";         //wifi ssid
char pswd[] = "*******";     //wifi 密码

BlinkerNumber HUMI("humi");    //定义湿度数据键名
BlinkerNumber TEMP("temp");    //定义温度数据键名

#define DHTPIN D4      //定义DHT11模块连接管D4

#define DHTTYPE DHT11   // 使用DHT 11温度湿度模块

DHT dht(DHTPIN, DHTTYPE);    //定义dht

float humi_read = 0, temp_read = 0;

void heartbeat()
{
    HUMI.print(humi_read);        //给app回传湿度数据
    TEMP.print(temp_read);        //给app回传温度数据
}

void aligenieQuery(int32_t queryCode)
{
  BLINKER_LOG("AliGenie Query codes: ", queryCode);
   /* switch (queryCode)
    {
        case BLINKER_CMD_QUERY_TEMP_NUMBER :
         BLINKER_LOG("AliGenie Query Brightness");
          BlinkerAliGenie.temp(temp_read);
          BlinkerAliGenie.print();
          break;
        case BLINKER_CMD_QUERY_HUMI_NUMBER :
         BLINKER_LOG("AliGenie Query ok");
          BlinkerAliGenie.humi(humi_read);
          BlinkerAliGenie.print();
          break;
        default :
        BlinkerAliGenie.temp(100);
        
        BlinkerAliGenie.humi(100);
          BlinkerAliGenie.print();
            break;
    }*/
    //上段代码执行结果温度100度,湿度100%
    //千万别用上面这种写法虽然BLINKER_CMD_QUERY_HUMI_NUMBER和BLINKER_CMD_QUERY_TEMP_NUMBER
    //是点灯科技官方给出的定义但这两个并不
    //能在对应的语音指令下调用对应内容
    //不知道是自己写的问题还是官方定义出现问题//(可能是我太笨)
 			BlinkerAliGenie.humi((int)humi_read);     //天猫接收湿度
            BlinkerAliGenie.temp((int)temp_read);      //天猫接收温度
            BlinkerAliGenie.print();//直接把温湿度一起发给天猫,他会自己识别告诉你对应内容
}


void setup()
{
    Serial.begin(115200);
   // BLINKER_DEBUG.stream(Serial);
    //BLINKER_DEBUG.debugAll();单纯做温湿度计这个没用

    Blinker.begin(auth, ssid, pswd);   
    Blinker.attachHeartbeat(heartbeat);
    dht.begin();
    BlinkerAliGenie.attachQuery(aligenieQuery);//回调函数
}

void loop()
{
    Blinker.run();

    float h = dht.readHumidity();
    float t = dht.readTemperature();

    if (isnan(h) || isnan(t))
    {
        BLINKER_LOG("Failed to read from DHT OUTLET!");
    }
    else
    {
        BLINKER_LOG("Humidity: ", h, " %");
        BLINKER_LOG("Temperature: ", t, " *C");
        humi_read = h;
        temp_read = t;
    }


    Blinker.delay(2000);
}
  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值