#include "Particle.h"
#include "Adafruit_GFX.h"
#include "Adafruit_SSD1306.h"
#include "IotClassroom_CNM.h"
#include "hue.h"
#include "wemo.h"
#include "IoTTimer.h"
#include "Button.h"
#include "Colors.h"
Button bluebutton(D3);
Button pinkbutton(D4);
int color;
int SetHue;
int bri;
int count;
const int MYWEMO=1;
//const int BULB=1;
//const int BULB=2;
const int BULB=2;
bool onoff;
bool blueState;
bool pinkState;
bool puzzelMode;
const float A =180.0/2;
const float B =90.0/2;
float freq =0.2;
Servo myServo;
const int OLED_RESET=-1;
Adafruit_SSD1306 display(OLED_RESET);
SYSTEM_MODE(MANUAL);
void setup() {
Serial.begin(9600);
waitFor(Serial.isConnected,10000);
display.begin(SSD1306_SWITCHCAPVCC, 0x3c);
display.clearDisplay();
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(0,0);
display.printf("Puzzle Pet\n");
display.display();
Serial.begin(9600);
waitFor(Serial.isConnected,15000);
WiFi.on();
WiFi.clearCredentials();
WiFi.setCredentials("IoTNetwork");
WiFi.connect();
wile(WiFi.connecting()) {
Serial.printf(".");
}
Serial.printf("\n\n");
myServo.attach(A2);
}
void loop() {
// myServo.write(180);
//delay(4000);
//myServo.write(0);
blueState= bluebutton.isClicked();
pinkState= pinkbutton.isClicked();
//if((blueState==true) && (pinkState==true)){
if((blueState==true) && (pinkbutton.isPressed())){
Serial.printf("toggle\n");
puzzelMode=!puzzelMode;
count=0;
onoff=true;
setHue(BULB,onoff,HueBlue,125,255);
}
if(puzzelMode==false){
if(bluebutton.isClicked()){
onoff=!onoff;
setHue(BULB,onoff,HueBlue,125,255);
}
}if(puzzelMode==true){
switch (count){
//round one
case 0:
if(blueState==true){
count=1;
Serial.printf("good dog\n");
display.clearDisplay();
display.setCursor(0,0);
display.printf("GOOD DOG\n");
display.display();
setHue(BULB,blueState,HueBlue,125,255);
}
if(pinkState==true){
count=3;
setHue(BULB,true,HueRed,180,255);
Serial.printf("try again\n");
display.clearDisplay();
display.setCursor(0,0);
display.printf("TRY AGAIN\n");
display.display();
}
break;
//round two
case 1:
if(blueState==true){
count=3;
setHue(BULB,true,HueRed,180,255);
Serial.printf("try again\n");
display.clearDisplay();
display.setCursor(0,0);
display.printf("TRY AGAIN\n");
display.display();
}
if(pinkState==true){
count=2;
Serial.printf("good dog\n");
setHue(BULB,pinkState,HueBlue,175,255);
display.clearDisplay();
display.setCursor(0,0);
display.printf("GOOD DOG\n");
display.display();
}
break;
//final round
case 2:
if(blueState==true){
setHue(BULB,blueState,HueGreen,255,255);
Serial.printf("good dog\n");
display.clearDisplay();
display.setCursor(0,0);
display.printf("GOOD DOG\n");
display.display();
myServo.write(180);
Serial.printf("Turning on Wemo# %i\n",MYWEMO);
wemoWrite(MYWEMO,HIGH);
delay(5000);
Serial.printf("Turning off Wemo# %i\n",MYWEMO);
wemoWrite(MYWEMO,LOW);
count=3;
}
if(pinkState==true){
count=3;
setHue(BULB,true,HueRed,255,255);
Serial.printf("try again\n");
display.clearDisplay();
display.setCursor(0,0);
display.printf("TRY AGAIN\n");
display.display();
}
break;
case 3:
delay(5000);
myServo.write(0);
delay(2000);
count=0;
break;
}
}
}
Comments