使用Blinker+ESP8266接入天猫精灵

背景:入手天猫精灵后,一直觉得不能白白浪费这个“智慧大脑”,想把家里的电器变为智能家居(直接买智能家具的略过)。
思路:控制电器的开关其实就是控制家里220V电路火线的通断一样。
硬件:继电器(某宝:¥5上下)、ESP8266(某宝:¥5上下)、USB转TTL(调试工具¥10上下)、天猫精灵(双11,¥69上下)、排线若干
软件:Arduino、Blinker物联网

开始工作:
1、首先注册Blinker账户,下载APP,并在APP上添加设备,使用MQTT接入(天猫精灵只能使用此方法)。
2、在APP中查看设备密钥(12位)
3、打开Arduino,去该地址blinker库文件地址下载库文件,并放到Arduino的安装目录下的library目录下。
4、如果不想麻烦,直接在Arduino中打开示例Blinker-Aligenie,然后烧写进ESP8266中。
5、在Blinker的APP中,刷新设备,查看设备是否正在在线。
6、在天猫精灵的APP中,添加”智能家居“中找到Blinker,并登录blinker的账户,由此,在blinker中登录的设备也就在天猫精灵中可以看到了。
7、至此,可以用天猫精灵控制设备了。
附上我的测试代码:

#define BLINKER_PRINT Serial
#define BLINKER_MQTT
#define BLINKER_ALIGENIE_OUTLET

#include <Blinker.h>

char auth[] = "在blinker的APP中的设备密钥";
char ssid[] = "自己家的wifi";
char pswd[] = "wifi密钥";

bool oState = false;

void aligeniePowerState(const String & state)
{
    BLINKER_LOG2("need set power state: ", state);

    if (state == BLINKER_CMD_ON) {
        digitalWrite(2, HIGH);

        BlinkerAliGenie.powerState("on");
        BlinkerAliGenie.print();

        oState = true;
    }
    else if (state == BLINKER_CMD_OFF) {
        digitalWrite(2, LOW);

        BlinkerAliGenie.powerState("off");
        BlinkerAliGenie.print();

        oState = false;
    }
}

void aligenieQuery(int32_t queryCode)
{
    BLINKER_LOG2("AliGenie Query codes: ", queryCode);

    switch (queryCode)
    {
        case BLINKER_CMD_QUERY_ALL_NUMBER :
            BLINKER_LOG1("AliGenie Query All");
            BlinkerAliGenie.powerState(oState ? "on" : "off");
            BlinkerAliGenie.print();
            break;
        case BLINKER_CMD_QUERY_POWERSTATE_NUMBER :
            BLINKER_LOG1("AliGenie Query Power State");
            BlinkerAliGenie.powerState(oState ? "on" : "off");
            BlinkerAliGenie.print();
            break;
        default :
            BlinkerAliGenie.powerState(oState ? "on" : "off");
            BlinkerAliGenie.print();
            break;
    }
}

void setup()
{
    Serial.begin(115200);

    pinMode(2, OUTPUT);
    digitalWrite(2, LOW);

    Blinker.begin(auth, ssid, pswd);

    BlinkerAliGenie.attachPowerState(aligeniePowerState);
    BlinkerAliGenie.attachQuery(aligenieQuery);
}

void loop()
{
    Blinker.run();

//    if (Blinker.available()) {
//        BLINKER_LOG2("Blinker.readString(): ", Blinker.readString());
//
//        uint32_t BlinkerTime = millis();
//
//        Blinker.vibrate();
//        Blinker.print("millis", BlinkerTime);
//    }
}

https://doc.blinker.app/?file=004-特有功能/00-智能音箱接入

  • 6
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值