#define BLINKER_WIFI
#include <Arduino.h>
#include <Blinker.h>
char auth[] = "1fac905d4e32";
char ssid[] = "webserver";      //你的wifi
char pswd[] = "www.360xyz.cn";  //你的WIFI密码

#define D5 14                      //人体感应
#define D6 12                      //光敏感应
#define D8 15                       //灯
BlinkerButton Button1("btn-64g");  //遥控灯开关
bool lightStatu = false;           //默认灯是关的状态
bool onOff = false;                //开关状态 默认关
void setup() {
  pinMode(D5, INPUT);
  pinMode(D6, INPUT);
  pinMode(D8, OUTPUT);
  digitalWrite(D8, LOW);
  // put your setup code here, to run once:
  Serial.begin(115200);
  Blinker.begin(auth, ssid, pswd);
  Button1.attach(button1_callback);
  delay(500);
}

void loop() {
  // put your main code here, to run repeatedly:
  Blinker.run();
  //晚上光敏导通  全亮
  if (digitalRead(D6) == HIGH) {
    if (lightStatu == false) {
      lightStatu = true;
      digitalWrite(D8, HIGH);  //点亮灯
      Button1.color("#00FF00");
      Button1.text("开");
      Button1.print();
      Serial.println("晚上光敏导通  全亮");
    }
  } else {
    //白天
    //并且是开灯状态 并且 人体感应 没有人    关灯
    if (lightStatu == true && digitalRead(D5) == LOW && onOff == false) {
      lightStatu = false;
      digitalWrite(D8, LOW);  //关灯
      Button1.color("#000000");
      Button1.text("关");
      Button1.print();
      Serial.println("并且是开灯状态 并且 人体感应 没有人    ->关灯");
    } else {
      //人体感应 有人 并且灯没有点亮
      if (digitalRead(D5) == HIGH && lightStatu == false) {
        lightStatu = true;       //点亮
        digitalWrite(D8, HIGH);  //点亮灯
        Button1.color("#00FF00");
        Button1.text("开");
        Button1.print();
        Serial.println("人体感应 有人 并且灯没有点亮");
      }
      //如果人体感应 没有人 并且 灯的状态是开的 并且没有手动开灯
      if (digitalRead(D5) == LOW && lightStatu == true && onOff == false) {
        lightStatu = false;
        digitalWrite(D8, LOW);  //关灯
        Button1.color("#000000");
        Button1.text("关");
        Button1.print();
        Serial.println("如果人体感应 没有人 并且 灯的状态是开的 并且没有手动开灯");
      }
    }
  }
}
void button1_callback(const String& state) {
  //BLINKER_LOG("get button state: ", state);
  if (lightStatu == false) {
    Button1.color("#00FF00");
    Button1.text("开");
    Button1.print();
    lightStatu = true;
    digitalWrite(D8, HIGH);
    onOff = true;
  } else {
    Button1.color("#000000");
    Button1.text("关");
    Button1.print();
    lightStatu = false;
    digitalWrite(D8, LOW);
    onOff = false;
  }
}
