点灯科技示例
#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; // 舵机 D5Servo 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);}