/*Blinker Arduino支持函数参考:https://diandeng.tech/doc/arduino-support#blinkerlog
Blinker小爱同学接口函数:https://www.diandeng.tech/doc/xiaoai*/
#define BLINKER_PRINT Serial
#define BLINKER_MIOT_LIGHT
#define BLINKER_WIFI
#include <Blinker.h>
#include <Servo.h>
char auth[] = "你的key";//电灯科技的key
char ssid[] = "你家wifi名称";//wifi名称 必须2.4ghz频段
char pswd[] = "你家wifi密码";//wifi密码
// 新建组件对象
BlinkerButton Button1("btn-max");//输入开关组键名
BlinkerButton Button2("btn-min");//输入开关组键名
BlinkerSlider Slider3("hk-1"); //引号内填滑块组件键名
//BlinkerNumber Number1("num-abc");
Servo myservo;//定义舵机对象
//int counter = 0;
int servo_max,servo_min,ser_num,time_num;
void button1_callback(const String & state) { //最大值按钮功能
BLINKER_LOG("get button state: ", servo_max);
myservo.write(servo_max);
Blinker.vibrate();//发送手机振动指令
delay(1000);//延迟1秒
myservo.write(0);//把舵机设置为0度
}
void button2_callback(const String & state) { //最小值按钮功能
BLINKER_LOG("get button state: ", servo_min);
myservo.write(servo_min);
Blinker.vibrate();
delay(1000);//延迟1秒
myservo.write(0);//把舵机设置为0度
}
void slider3_callback(int32_t value) //滑块功能
{
ser_num = value;
myservo.write(ser_num);
Blinker.delay(100);
BLINKER_LOG("get slider value: ", value);
}
//小爱同学功能实现
void miotPowerState(const String & state){
BLINKER_LOG("need set power state: ",state);
if(state==BLINKER_CMD_ON){//语音接收到的是开灯就执行的动作
BLINKER_LOG("get button state: ", servo_max);//反馈状态
myservo.write(servo_max);//舵机执行servo_max按钮操作
Blinker.vibrate();//发送手机振动指令
delay(2000);//延迟2秒
myservo.write(0);//把舵机设置为0度
}
else if(state==BLINKER_CMD_OFF){//语音接收到的是关灯就执行的动作
BLINKER_LOG("get button state: ", servo_min);//反馈状态
myservo.write(servo_min);//舵机执行servo_min按钮操作
Blinker.vibrate();//发送手机振动指令
delay(2000);//延迟2秒
myservo.write(0);//把舵机设置为0度*/
}
}
// 如果未绑定的组件被触发,则会执行其中内容
//void dataRead(const String & data)
//{
// BLINKER_LOG("Blinker readString: ", data);
// counter++;
// Number1.print(counter);
//}
/*串口蓝牙模块:
Blinker.begin() 将使用默认设置配置 Serial(默认使用软串口)
Blinker.begin();// 默认设置: 数字IO 2(RX) 3(TX), 波特率 9600 bps
Blinker.begin(4, 5);// 设置数字IO 4(RX) 5(TX), 默认波特率 9600 bps
Blinker.begin(4, 5, 115200);// 设置数字IO 4(RX) 5(TX) 及波特率 115200 bps
若配置时Blinker.begin(0, 1);
0 1对应硬串口的RX TX, 库会默认使用硬串口与BLE模块进行通信
Blinker.begin(15, 14);//Arduino MEGA中如15, 14对应硬串口Serial3
注意使用软串口时:
使用Arduino MEGA时以下IO可以设置为RX: 10, 11, 12, 13, 50, 51, 52, 53, 62, 63, 64, 65, 66, 67, 68, 69
使用Arduino Leonardo时以下IO可以设置为RX: 8, 9, 10, 11, 14, 15, 16
*/
void setup() {
Serial.begin(115200);// 初始化串口
BLINKER_DEBUG.stream(Serial);
Blinker.begin(auth, ssid, pswd);//连接wifi以及电灯科技
Button1.attach(button1_callback);// 当收到指令时会调用该回调函数 舵机信号线接口
Button2.attach(button2_callback);
Slider3.attach(slider3_callback);
BlinkerMIOT.attachPowerState(miotPowerState);//注册回调函数
myservo.attach(2); //注册按键的回调函数, 当收到指令时会调用该回调函数
myservo.write(10);//把舵机初始角度设为10度
servo_max=180;//旋转的度数
servo_min=0;
time_num=500;
}
void loop() {
Blinker.run();
}
esp8266+blinker+sg90实现接入米家物联关灯的Arduino代码
于 2023-11-25 23:18:29 首次发布