Hi guys,
Im recently new to photons and have a slight issue, i have a photon that flashes fine but after 60 seconds shows offline, this is set to subscribe to a topic and react by turning on leds depending on the topic message handled by a handler, i also have another 2 photons publishing their button event, this always works even when the photon shows offline, if i disconnect the 2 publishing photons the subscribing photon comes back online, I’ve flashed tinker to the subscriber and it stays online so nothing wrong with the photons, My problem is if i need to re-flash an update when it’s in situ I’m buggered, Ive narrowed it down to the subscribe command, if i remove that it stays online forever.
Ive even tried flashing the on board LED to try to keep the photon awake if it was sleeping.
Any ideas?
int led0 = D0;
int led1 = D1;
int led2 = D2;
int led3 = D3;
int led4 = D4;
int led5 = D5;
int led6 = D6;
int led7 = A0;
int led8 = A1;
int led9 = D7;
void setup() {
pinMode(led0,OUTPUT);
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
pinMode(led9,OUTPUT);
Particle.subscribe("mtla", myHandler);
digitalWrite(led0,HIGH);
delay(200);
digitalWrite(led1,HIGH);
delay(200);
digitalWrite(led2,HIGH);
delay(200);
digitalWrite(led3,HIGH);
delay(200);
digitalWrite(led4,HIGH);
delay(200);
digitalWrite(led5,HIGH);
delay(200);
digitalWrite(led6,HIGH);
delay(200);
digitalWrite(led7,HIGH);
delay(200);
digitalWrite(led8,HIGH);
delay(200);
digitalWrite(led9,HIGH);
delay(800);
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
digitalWrite(led0,HIGH);
delay(200);
digitalWrite(led1,HIGH);
delay(200);
digitalWrite(led2,HIGH);
delay(200);
digitalWrite(led3,HIGH);
delay(200);
digitalWrite(led4,HIGH);
delay(200);
digitalWrite(led5,HIGH);
delay(200);
digitalWrite(led6,HIGH);
delay(200);
digitalWrite(led7,HIGH);
delay(200);
digitalWrite(led8,HIGH);
delay(200);
digitalWrite(led9,HIGH);
delay(800);
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
delay(800);
digitalWrite(led0,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
digitalWrite(led6,HIGH);
digitalWrite(led7,HIGH);
digitalWrite(led8,HIGH);
digitalWrite(led9,HIGH);
delay(800);
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
delay(800);
digitalWrite(led0,HIGH);
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
digitalWrite(led6,HIGH);
digitalWrite(led7,HIGH);
digitalWrite(led8,HIGH);
digitalWrite(led9,HIGH);
delay(800);
digitalWrite(led0,LOW);
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
}
void loop() {
delay(200);
digitalWrite(led9,HIGH);
delay(200);
digitalWrite(led9,LOW);
}
void myHandler(const char *event, const char *data)
{
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"l1off")==0) {
digitalWrite(led0,LOW);
}
else if (strcmp(data,"l1on")==0) {
digitalWrite(led0,HIGH);
}
else {
}}
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"l2off")==0) {
digitalWrite(led1,LOW);
}
else if (strcmp(data,"l2on")==0) {
digitalWrite(led1,HIGH);
}
else {
}}
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"l3off")==0) {
digitalWrite(led2,LOW);
}
else if (strcmp(data,"l3on")==0) {
digitalWrite(led2,HIGH);
}
else {
}}
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"l4off")==0) {
digitalWrite(led3,LOW);
}
else if (strcmp(data,"l4on")==0) {
digitalWrite(led3,HIGH);
}
else {
}}
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"l5off")==0) {
digitalWrite(led4,LOW);
}
else if (strcmp(data,"l5on")==0) {
digitalWrite(led4,HIGH);
}
else {
}}
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"l6off")==0) {
digitalWrite(led5,LOW);
}
else if (strcmp(data,"l6on")==0) {
digitalWrite(led5,HIGH);
}
else {
}}
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"l7off")==0) {
digitalWrite(led6,LOW);
}
else if (strcmp(data,"l7on")==0) {
digitalWrite(led6,HIGH);
}
else {
}}
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"l8off")==0) {
digitalWrite(led7,LOW);
}
else if (strcmp(data,"l8on")==0) {
digitalWrite(led7,HIGH);
}
else {
}}
if (strcmp(event,"mtla")==0) {
if (strcmp(data,"eoff")==0) {
digitalWrite(led8,LOW);
}
else if (strcmp(data,"eon")==0) {
digitalWrite(led8,HIGH);
}
else {
}}
}