点灯科技示例
#define BLINKER_PRINT Serial
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <ESP8266WiFi.h>
#include <Blinker.h>
#include <Arduino.h>
#include <Servo.h>
char auth[] = "b4c7a3943495";//换成自己的key吧
char ssid[] = "路由器11111111";//换成自己的wifi吧
char pswd[] = "12345678";//换成自己的wifi密码吧
// 定义引脚
const int SERVO = 14; // 舵机 D5
Servo myservo;
// 新建组件对象
BlinkerButton btnTurn("btnturn");
BlinkerSlider ranPer("ran");
long counter = 0;
int angle = 0;
const int angle_cen = 100;
const int angle_max = 130;
const int angle_min = 65;
void doServo(int value){
angle = value;
myservo.write(value);
}
// 小爱
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
btnTurn_callback("on");
}
else if (state == BLINKER_CMD_OFF) {
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
btnTurn_callback("off");
}
}
// 按下按键即会执行该函数
void btnTurn_callback(const String & state) {
BLINKER_LOG("get button state: ", state);
if (counter%2){
doServo(angle_max);
}
else{
doServo(angle_min);
}
Blinker.delay(300);
doServo(angle_cen);
counter++;
}
void ranPer_callback(int32_t value){
BLINKER_LOG("get ran state: ", value);
doServo(value);
}
// 如果未绑定的组件被触发,则会执行其中内容
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
}
void setup() {
pinMode(LED_BUILTIN,OUTPUT);
digitalWrite(LED_BUILTIN,HIGH);//熄灭板载LED 对应引脚数字2
// 初始化串口
Serial.begin(115200);
#if defined(BLINKER_PRINT)
BLINKER_DEBUG.stream(BLINKER_PRINT);
#endif
myservo.attach(SERVO);
// 初始化blinker
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
BlinkerMIOT.attachPowerState(miotPowerState);
btnTurn.attach(btnTurn_callback);
ranPer.attach(ranPer_callback);
}
void loop() {
Blinker.run();
delay(100);
}