代码如下:
#define BLINKER_WIFI
#define BLINKER_MIOT_LIGHT
#define BLINKER_PRINT Serial
#include <Blinker.h>
BlinkerButton Button1("up"); //这里建立了app内3个按键,分别是上下
BlinkerButton Button2("down");
BlinkerButton Button3("stop");
char i;
char auth[] = "43a1409bab9c"; //点灯科技申请到的设备密钥
char ssid[] = "Youngyang";
char pswd[] = "1234567890";
bool oState[5] = { false };
//下面全是树懒控制代码
void forward()
{
digitalWrite(D5, LOW);
digitalWrite(D6, HIGH);
delay(100);
}
void down()
{
digitalWrite(D5, HIGH);
digitalWrite(D6, LOW);
delay(100);
}
void stop_run()
{
digitalWrite(D5, LOW);
digitalWrite(D6, LOW);;
delay(100);
}
//这里是对3个按键函数进行设置
void button1_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
if(state == "tap"){ //判断按键是否被按下
forward();
}
}
void button2_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
if(state == "tap"){
down();
}
}
void button3_callback(const String & state) //点灯app内控制按键触发
{
BLINKER_LOG("get button state: ", state);
if(state == "tap"){
stop_run();
}
}
//小爱电源回调函数
//里面同样设置电机的动作
void miotMode(uint8_t mode)
{
BLINKER_LOG("need set mode: ", mode);
if (mode == BLINKER_CMD_MIOT_DAY) {
forward();
}
else if (mode == BLINKER_CMD_MIOT_NIGHT) {
down();
}
else if (mode == BLINKER_CMD_MIOT_COLOR) {
stop_run();
}
//wsMode = mode;
BlinkerMIOT.mode(mode);
BlinkerMIOT.print();
}
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
Blinker.vibrate();
uint32_t BlinkerTime = millis();
Blinker.print("millis", BlinkerTime);
}
void setup()
{
Serial.begin(115200);
BLINKER_DEBUG.stream(Serial);
//这里分别对应esp8266的2个输出IO口
pinMode(D5, OUTPUT);
digitalWrite(D5, LOW);
pinMode(D6, OUTPUT);
digitalWrite(D6, LOW);
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
BlinkerMIOT.attachMode(miotMode);
Button1.attach(button1_callback);
Button2.attach(button2_callback);
Button3.attach(button3_callback);
}
void loop()
{
Blinker.run();
}
小爱同学的问题,你先定义语音与语言发出的命令
小爱语音没设置好?或者两侧存在时间差?