Created
February 26, 2016 12:39
-
-
Save danbee/820a17d0aa75f8900250 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This #include statement was automatically added by the Particle IDE. | |
#include "HttpClient/HttpClient.h" | |
int button_blue = D0; | |
int button_red = D1; | |
int button_reset = D2; | |
int led = D7; | |
bool latch_blue = false; | |
bool latch_red = false; | |
bool latch_reset = false; | |
unsigned long button_time_blue, pressed_time_blue; | |
unsigned long button_time_red, pressed_time_red; | |
unsigned long button_time_reset, pressed_time_reset; | |
HttpClient http; | |
// Headers currently need to be set at init, useful for API keys etc. | |
http_header_t headers[] = { | |
// { "Content-Type", "application/json" }, | |
// { "Accept" , "application/json" }, | |
{ "Accept" , "*/*"}, | |
{ NULL, NULL } // NOTE: Always terminate headers will NULL | |
}; | |
http_request_t request; | |
http_response_t response; | |
void setup() { | |
pinMode(button_red, INPUT_PULLDOWN); | |
pinMode(button_blue, INPUT_PULLDOWN); | |
pinMode(button_reset, INPUT_PULLDOWN); | |
pinMode(led, OUTPUT); | |
} | |
void loop() { | |
int val_red = digitalRead(button_red); | |
int val_blue = digitalRead(button_blue); | |
int val_reset = digitalRead(button_reset); | |
request.hostname = "appname.herokuapp.com"; | |
request.port = 80; | |
if (val_blue == HIGH && !latch_blue) { | |
digitalWrite(led, HIGH); | |
latch_blue = true; | |
button_time_blue = millis(); | |
} | |
else if (val_blue == LOW && latch_blue) { | |
digitalWrite(led, LOW); | |
latch_blue = false; | |
pressed_time_blue = millis() - button_time_blue; | |
if (pressed_time_blue > 1000) { | |
// button was pressed for more than a second so we undo | |
Serial.println("Blue undo"); | |
request.path = "/blue_undo"; | |
http.put(request, response, headers); | |
} | |
else { | |
Serial.println("Blue scores!"); | |
request.path = "/blue_scores"; | |
http.put(request, response, headers); | |
} | |
} | |
if (val_red == HIGH && !latch_red) { | |
digitalWrite(led, HIGH); | |
latch_red = true; | |
button_time_red = millis(); | |
} | |
else if (val_red == LOW && latch_red) { | |
digitalWrite(led, LOW); | |
latch_red = false; | |
pressed_time_red = millis() - button_time_red; | |
if (pressed_time_red > 1000) { | |
// button was pressed for more than a second so we undo | |
Serial.println("Red undo"); | |
request.path = "/red_undo"; | |
http.put(request, response, headers); | |
} | |
else { | |
Serial.println("Red scores!"); | |
request.path = "/red_scores"; | |
http.put(request, response, headers); | |
} | |
} | |
if (val_reset == HIGH && !latch_reset) { | |
digitalWrite(led, HIGH); | |
latch_reset = true; | |
button_time_reset = millis(); | |
} | |
else if (val_reset == LOW && latch_reset) { | |
digitalWrite(led, LOW); | |
latch_reset = false; | |
pressed_time_reset = millis() - button_time_reset; | |
if (pressed_time_reset > 1000) { | |
// button was pressed for more than a second so we reset | |
Serial.println("Reset scores"); | |
request.path = "/reset_scores"; | |
http.put(request, response, headers); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment