本帖最后由 caiyq52 于 2021-1-4 20:02 编辑
继续倒腾,今天试试把“点灯”接入家里的天猫精灵。
参考“点灯”官网教程:https://diandeng.tech/doc/tmallgenie
一、准备工作 1.1软件 ·Arduino IDE (必须是1.8.10及以上版本!我这里使用的版本刚下载的1.8.11) Arduino IDE 1.8.11 链接:https://pan.baidu.com/s/1QQ8bjWcLga6hA2vsXdXVow 提取码:b70v 或者在Arduino官网下载新版本:https://www.arduino.cc/
·安装blinker Arduino库(blinker-library-master.zip) blinker-library-master.zip https://github.com/blinker-iot/blinker-library 将下载好的库文件夹(blinker-library-master)解压到 我的电脑>文档>Arduino>libraries 文件夹中。 ·安装esp8266/esp32扩展包(8266_package_2.6.3.exe) 8266_package_2.6.3.exe 链接:https://pan.baidu.com/s/1yM1sDZ4494n8BM4dgPuS0A 提取码:9gl9 直接运行自动安装。
1.2硬件 ·ESP8266模块
·WIFI继电器模块
· 8266烧录器 · 天猫精灵
二、开始
2.1点灯·blinkerAPP
·下载安装APP
https://diandeng.tech/doc/app-download
2.2 点灯APP使用,及获取Key码和设置按钮名称
2.3 Arduino程序
·参考点灯示例程序
Arduino IDE——文件——示例——Blinker——Blinker_AliGenie——AliGenie_OUTLET
·最终程序
#define BLINKER_WIFI #define BLINKER_ALIGENIE_OUTLET //caiyq52-天猫精灵
#include <Blinker.h>
char auth[] = "Your Device Secret Key"; //caiyq52-改成自己在点灯app中生成的key码 char ssid[] = "Your WiFi network SSID or name"; //caiyq52-改成自己的WIFI名称 char pswd[] = "Your WiFi network WPA password or WEP key"; //caiyq52-改成自己的WIFI密码
BlinkerButton Button1("btn-abc"); // 1caiyq52-此组件未点灯app中自己设置的按键,改名"btn-abc"必须与自己APP中设定的名称一致 bool oState = false; int Pin = 0; //caiyq52-定义控制引脚 void AliGeniePowerState(const String & state) { BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) { //caiyq52-天猫精灵控制开命令 digitalWrite(Pin, LOW); BlinkerAliGenie.powerState("on");
BlinkerAliGenie.print();
oState = true; } else if (state == BLINKER_CMD_OFF) { //caiyq52-天猫精灵控制关命令 digitalWrite(Pin, HIGH); BlinkerAliGenie.powerState("off");
BlinkerAliGenie.print();
oState = false; } }
void AliGenieQuery(int32_t queryCode) //caiyq52-天猫精灵控制 { BLINKER_LOG("AliGenie Query codes: ", queryCode);
switch (queryCode) { case BLINKER_CMD_QUERY_ALL_NUMBER : BLINKER_LOG("AliGenie Query All"); BlinkerAliGenie.powerState(oState ? "on" : "off"); BlinkerAliGenie.print(); break; case BLINKER_CMD_QUERY_POWERSTATE_NUMBER : BLINKER_LOG("AliGenie Query Power State"); BlinkerAliGenie.powerState(oState ? "on" : "off"); BlinkerAliGenie.print(); break; default : BlinkerAliGenie.powerState(oState ? "on" : "off"); BlinkerAliGenie.print(); break; } }
void dataRead(const String & data) // 如果未绑定的组件被触发,则会执行其中内容 { BLINKER_LOG("Blinker readString: ", data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print("millis", BlinkerTime); }
void button1_callback(const String & state) //点灯app内控制按键触发 { BLINKER_LOG("get button state: ", state); digitalWrite(Pin, !digitalRead(Pin)); }
void setup() { Serial.begin(115200); BLINKER_DEBUG.stream(Serial);
pinMode(Pin, OUTPUT); //定义io口为输出 digitalWrite(Pin, HIGH); //定义io默认电平
Blinker.begin(auth, ssid, pswd); Blinker.attachData(dataRead);
BlinkerAliGenie.attachPowerState(AliGeniePowerState); BlinkerAliGenie.attachQuery(AliGenieQuery); Button1.attach(button1_callback); }
void loop() { Blinker.run(); }[/mw_shl_code]
·选择工具-开发板-Generic ESP8266 Module
·连接硬件(烧录器+8266)
·选择对应的端口,上传程序!
2.5 控制电路搭建 ·连接硬件(WIFI继电器模块+8266) ·接线下如图
2.5 点灯APP控制测试 ·打开APP,查看设备是否上线,上线后点击开关图标进行测试。 注意!要绑定天猫精灵必须先保证设备成功上线,所以这一步最好不要跳过!
2.6 天猫精灵绑定“点灯” ·打开天猫精灵 APP“+添加设备” ·在搜索栏,搜索blinker,并点击要添加的设备类型(选择插座图标那个) ·点击绑定账号,使用blinker账户登录,完成绑定 ·绑定成功后,在您的智能家居设备列表中,现在可以使用天猫精灵进行语音控制了!
|