|
思路是这样的就是控制一个IO口PWM的占空比,这样可以用在调光,也可以用在直流小风扇调速,现在是APP操作已经调试可以了(代码没写完),在添加小爱语音的时候遇到问题,米家里已经同步了设备,语言操作小爱提示"先帮你操作了,看看设备状态吧",串口监视看不到小爱操作函数有进入,大家看看什么问题,谢谢
#define BLINKER_WIFI //官方wifi协议库
#define BLINKER_ESP_SMARTCONFIG // 进行配网
#define BLINKER_MIOT_LIGHT
#define BLINKER_PRINT Serial //串口协议库
#include <Blinker.h> //官方库
char auth[] = "**********"; //设备key号
char ssid[] = "**********"; //wifi名称
char pswd[] = "*********"; //wifi密码
//*******新建组件对象 设置app按键的键名
BlinkerButton Button1("btn-1");
BlinkerButton Button2("btn-2");
BlinkerSlider Slider1("le-1");
//*******app上按下按键即会执行该函数app里按键有2种模式3钟不同样式,下面写出所有的开关状态。
////////////////////////////////////////////////////////////////////////////1
void button1_callback(const String & state) //用state来存储组键的值按键 : "tap"(点按); "pre"(长按); "pup"(释放)开关 : "on"(打开); "off"(关闭)
{
BLINKER_LOG("app操作 按键1 : ", state); //串口打印
analogWrite(0, 500);
}
///////////////////////////////////////////////////////////////////////////////2
void button2_callback(const String & state) //用state来存储组键的值按键 : "tap"(点按); "pre"(长按); "pup"(释放)开关 : "on"(打开); "off"(关闭)
{
BLINKER_LOG("app操作了 按键2 : ", state); //串口打印
analogWrite(0, 100);
Slider1.print(50);
}
void Slider1_callback(int32_t value) //滑动条操作
{
BLINKER_LOG("app操作",value ); //串口打印
}
//*******app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态30s~60s一次
void heartbeat()
{
BLINKER_LOG("状态同步!");
}
void miotBright(const String & bright) //小爱操作函数
{
BLINKER_LOG("need set brightness: ", bright);
//待添加
BLINKER_LOG("now set brightness: ", value);
BlinkerMIOT.brightness(value);
BlinkerMIOT.print();
}
void setup()
{
// 初始化串口
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
// 初始化有LED的IO
analogWrite(0, 50); //端口0,占空比50;
// 初始化blinker
Blinker.begin(auth);//, ssid, pswd
Button1.attach(button1_callback); //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback"
Button2.attach(button2_callback); //app上操作必须的注册回调函数关联按键名“Button1”和判断程序“button1_callback"
Slider1.attach(Slider1_callback); //app滑动条
BlinkerMIOT.attachBrightness(miotBright);//小爱语音操作注册函数
Blinker.attachHeartbeat(heartbeat); //app定时向设备发送心跳包, 设备收到心跳包后会返回设备当前状态进行语音操作和app操作同步。
}
void loop() {
Blinker.run();
}
|
|