最近突发奇想,找到了用esp8266控制宿舍开门,几番周折终于是好了,由于是非专业,代码只能是网上找,运行了一天,就发现会半夜自动开门,也不知道咋回事,怀疑代码有点问题,请各位帮忙看看
#define BLINKER_WIFI
#define BLINKER_MIOT_OUTLET
#include <Blinker.h>
#include<Servo.h>
Servo myservo;
char auth[] = ""; //手机端的key
char ssid[] = ""; //WiFi名
char pswd[] = ""; //WiFi密码
BlinkerButton Button1("btn-abc"); //开门按钮的数据键名
BlinkerNumber Number1("num-abc");
int counter = 0;
//开门
void button1_callback(const String & state)
{
BLINKER_LOG("get button state: ", state);
myservo.write(180); //控制舵机旋转到180度
delay(4500); //延迟4500毫秒
myservo.write(0); //控制舵机旋转到0度
}
void dataRead(const String & data)
{
BLINKER_LOG("Blinker readString: ", data);
counter++;
Number1.print(counter);
}
void miotPowerState(const String & state)
{
BLINKER_LOG("need set power state: ", state);
if (state == BLINKER_CMD_ON) {
myservo.write(180); //控制舵机旋转到180度
BlinkerMIOT.powerState("on");
BlinkerMIOT.print();
}
else if (state == BLINKER_CMD_OFF) {
myservo.write(0); //控制舵机旋转到0度
BlinkerMIOT.powerState("off");
BlinkerMIOT.print();
}
}
void setup()
{
Serial.begin(9600); //设置波特率为9600
BLINKER_DEBUG.stream(Serial);
myservo.attach(5); //设置舵机信号输出引脚编号为5(D1)
myservo.write(0); //控制舵机旋转到0度
Blinker.begin(auth, ssid, pswd);
Blinker.attachData(dataRead);
Button1.attach(button1_callback);
BlinkerMIOT.attachPowerState(miotPowerState);
}
void loop() {
Blinker.run();
}