From 242f4c7e36cb5eccc651533cef0552c6bcfa0c00 Mon Sep 17 00:00:00 2001 From: Jeffrey Yimian Liu Date: Tue, 11 Sep 2018 12:41:56 +0800 Subject: [PATCH] index.c --- index.c | 136 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 136 insertions(+) create mode 100644 index.c diff --git a/index.c b/index.c new file mode 100644 index 0000000..e2233d2 --- /dev/null +++ b/index.c @@ -0,0 +1,136 @@ +/* ***************************************************************** + * this is the code for control unit in hallway + * + * *****************************************************************/ + +//declear the moudle is WIFI +#define BLINKER_PRINT Serial +#define BLINKER_WIFI + +//include function set +#include + +//define overal var +char ssid[] = "TOTOLINK_3be124"; +char pswd[] = "13371035727"; + +//announce keyname +BlinkerButton Button1("btn-abc"); +BlinkerButton Button2("btn-on"); +BlinkerButton Button3("btn-off"); + +//declear var +int swi,swi1 ,i,a,timer,timer1,b,c= 0; + + + + +//button1-function +void button1_callback(const String & state) +{ + BLINKER_LOG2("get button state: ", state); + if(digitalRead(D5)){ Button1.print("灯正亮!");}else{ Button1.print("灯未亮!");} + digitalWrite(D5,LOW); + Button1.print("正在重置!"); + for(i=10;i>0;i--) + { + Blinker.print(i); + digitalWrite(D6,LOW);digitalWrite(D13,LOW); + digitalRead(D6);digitalRead(D13); + delay(1000); + } + a=0; + Button1.print("重置完成!"); + timer1=Blinker.time()-249; + if(digitalRead(D5)){ Button1.print("灯已打开!");}else{ Button1.print("灯已关闭!");} +} + + +//button2-function +void button2_callback(const String & state) +{ + BLINKER_LOG2("get button state: ", state); + a=1; + digitalWrite(D5,HIGH); + if(digitalRead(D5)){ Button1.print("灯已打开!");}else{ Button1.print("灯已关闭!");} + timer=Blinker.time(); +} + + +//button3-function +void button3_callback(const String & state) +{ + BLINKER_LOG2("get button state: ", state); + a=1; + digitalWrite(D5,LOW); + if(digitalRead(D5)){ Button1.print("灯已打开!");}else{ Button1.print("灯已关闭!");} + timer=Blinker.time(); +} + + + +//main setup function +void setup() +{ + Serial.begin(115200); + + pinMode(D5, OUTPUT); //control the light + pinMode(D6, INPUT); //sensor1 + pinMode(D13, INPUT); //sensor2 + //D4&D8 are used for checking the switch state + pinMode(D4, INPUT); + pinMode(D8, OUTPUT); + + //set the light paraperation + digitalWrite(D5, HIGH); + + //connect to WIFI + Blinker.begin(ssid, pswd); + + //set interrupt + Button1.attach(button1_callback); + Button2.attach(button2_callback); + Button3.attach(button3_callback); +} + + + + +//main loop function +void loop() { + Blinker.run(); + + //get time info + + + //judge the switch state + swi1=swi; + swi=0; + for(i=0;i<2;i++) + { + //change D8 state + digitalWrite(D8,!digitalRead(D8)); + if(digitalRead(D4)!=digitalRead(D8)){ swi++;} + } + + BLINKER_LOG2("get slider value: ", swi); + if(swi!=swi1){digitalWrite(D5,!digitalRead(D5));a=1;timer=Blinker.time();Blinker.print("已切换至手动控制!");} + if(timer==(Blinker.time()-300)){a=0;Blinker.print("手动控制结束!");} + BLINKER_LOG2("get slhgggggggggggider value: ",digitalRead(D5) ); + //get sensor info + BLINKER_LOG2("get sensor1: ", digitalRead(D13)); + BLINKER_LOG2("get sensor2: ", digitalRead(D6)); + BLINKER_LOG2("a= ", a); + + //if people light on + if(digitalRead(D6)==1&&digitalRead(D13)==1&&a!=1){ Blinker.print("探测到人"); if(Blinker.hour()<=7||Blinker.hour()>=17){ digitalWrite(D5,HIGH);Blinker.print("灯已打开!");timer1=Blinker.time();}}else{if(a!=1&&timer1==(Blinker.time()-250)){digitalWrite(D5,LOW);Blinker.print("未探测到人,灯已关闭!"); Button1.print("正在重置!"); + for(i=10;i>0;i--) + { + Blinker.print(i); + + digitalRead(D6);digitalRead(D13); + delay(1000); + } + Button1.print("重置完成!");}} + +}