#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT //支持小爱同学
#define BLINKER_WITHOUT_SSL //非SSL加密通信接入,省堆栈
#include <Blinker.h>
#define LED 2 // 板子上的灯
#define GPIO 0 // 继电器输入引脚为GPIO/0
char auth[] = "abcdefghijkl"; //上一步中在app中获取到的Secret Key
char ssid[] = "abcdefg"; //您的WiFi热点名称
char pswd[] = "123456789"; //您的WiFi密码
bool wsState;
// 新建组件对象
BlinkerButton Button1("btn-abc");
//注意:要和APP组件’数据键名’一致
// 按下BlinkerAPP按键即会执行该函数
void button1_callback(const String& state) {
BLINKER_LOG("get button state: ", state);
digitalWrite(LED, !digitalRead(LED));
digitalWrite(GPIO, !digitalRead(GPIO));
Blinker.vibrate();
}
//小爱电源类操作的回调函数:
//当小爱同学向设备发起控制, 设备端需要有对应控制处理函数
void miotPowerState(const String& state) {
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
digitalWrite(LED, LOW);
//低电平点灯
digitalWrite(GPIO, LOW);
//低电平点灯
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
wsState = true;
} else if (state == BLINKER_CMD_OFF) {
digitalWrite(LED, HIGH);
//高电平开灯
digitalWrite(GPIO, HIGH);
//高电平开灯
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
wsState = false;
}
}
//小爱同学 的回调查询函数,照抄即可。主要是查询 当前灯的状态
void miotQuery(int32_t queryCode) {
BLINKER_LOG("MIOT Query codes: ", queryCode);
switch (queryCode) {
case BLINKER_CMD_QUERY_POWERSTATE_NUMBER:
BlinkerMIOT.powerState(wsState ? "on" : "off");
BlinkerMIOT.print();
break;
default:
BlinkerMIOT.powerState(wsState ? "on" : "off");
BlinkerMIOT.print();
break;
}
}
void setup() {
// 初始化串口,并开启调试信息,调试用可以删除
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
// 初始化IO
pinMode(LED, OUTPUT);
digitalWrite(LED, HIGH); // 初始化 led 高电平 ,则灯熄灭状态
// 初始化IO
pinMode(GPIO, OUTPUT);
digitalWrite(GPIO, HIGH); // 初始化继电器高电平
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Button1.attach(button1_callback);
//小爱同学务必在回调函数中反馈该控制状态
BlinkerMIOT.attachPowerState(miotPowerState); //注册回调函数
BlinkerMIOT.attachQuery(miotQuery);
}
void loop() {
Blinker.run();
}
esp01s_relay接入小爱
于 2023-03-17 08:35:17 首次发布