#include "InternetButton/InternetButton.h"
#include <math.h>
InternetButton internetButton = InternetButton();
unsigned
long
lastPublish;
int
hoursPassed;
unsigned
long
tPassed;
int
state;
#define DEBOUNCE_DELAY 20
void
setup() {
internetButton.begin();
lastPublish = millis();
state = 0;
internetButton.allLedsOn(25,25,25);
internetButton.ledOn(11,0,255,0);
}
void
loop() {
if
(buttonPressed())
restart();
tPassed = millis() - lastPublish;
if
(tPassed >= 84375){
state++;
lastPublish = millis();
binaryLedHandler(state);
}
if
(tPassed >= 93600000){
Particle.publish(
"stevie"
,
"I am hungry. Please feed me. :white_frowning_face:"
, 60, PRIVATE);
while
(!buttonPressed()){}
restart();
}
}
bool
buttonPressed(){
if
(internetButton.buttonOn(1) || internetButton.buttonOn(2) || internetButton.buttonOn(3) || internetButton.buttonOn(4)){
delay(DEBOUNCE_DELAY);
if
(internetButton.buttonOn(1) || internetButton.buttonOn(2) || internetButton.buttonOn(3) || internetButton.buttonOn(4)){
return
true
;
}
}
return
false
;
}
void
binaryLedHandler(
int
state){
if
(state >= 1024)
internetButton.allLedsOn(255,0,0);
else
{
double
rem = state;
for
(
int
i = 9 ; i >= 0 ; i--){
if
(rem >=
pow
(2,i)){
internetButton.ledOn(10-i,0,0,255);
rem = rem -
pow
(2,i);
}
else
internetButton.ledOn(10-i,25,25,25);
}
}
}
void
restart(){
timmyTrumpet();
internetButton.allLedsOn(25,25,25);
internetButton.ledOn(11,0,255,0);
Particle.publish(
"stevie"
,
"I have just been fed."
, 60, PRIVATE);
lastPublish = millis();
tPassed = 0;
state = 0;
}
void
timmyTrumpet(){
internetButton.setBPM(120);
switchLed();
internetButton.playSong(
"E4,8\n"
);
switchLed();
internetButton.playSong(
"E4,16\n"
);
switchLed();
internetButton.playSong(
"B4,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"B4,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"C5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"C5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"B4,2\n"
);
switchLed();
internetButton.playSong(
"E4,8\n"
);
switchLed();
internetButton.playSong(
"E4,16\n"
);
switchLed();
internetButton.playSong(
"B4,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"B4,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"C5,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"B4,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"G4,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"F#4,16,REST,16\n"
);
switchLed();
internetButton.playSong(
"E4,2\n"
);
}
void
switchLed(){
internetButton.allLedsOff();
int
ledN;
int
r;
int
g;
int
bl;
for
(
int
i = 1 ; i < (
rand
() % 9) + 2 ; i++){
ledN =
rand
() % (12);
r =
rand
() % (256);
g =
rand
() % (256);
bl =
rand
() % (256);
internetButton.ledOn(ledN,r,g,bl);
}
}
</math.h>