This commit is contained in:
commit
06548b2114
1 changed files with 117 additions and 0 deletions
117
RelayStatusControl.ino
Normal file
117
RelayStatusControl.ino
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
// -----------------------------------
|
||||
// Controlling LEDs over the Internet
|
||||
// -----------------------------------
|
||||
|
||||
// First, let's create our "shorthand" for the pins
|
||||
// Same as in the Blink an LED example:
|
||||
// led1 is D0, led2 is D7
|
||||
|
||||
int Relay1 = D4;
|
||||
int Relay2 = D5;
|
||||
int StatusLED = D7;
|
||||
// Last time, we only needed to declare pins in the setup function.
|
||||
// This time, we are also going to register our Particle function
|
||||
|
||||
void setup()
|
||||
{
|
||||
|
||||
// Here's the pin configuration, same as last time
|
||||
pinMode(Relay1, OUTPUT);
|
||||
pinMode(Relay2, OUTPUT);
|
||||
pinMode(StatusLED, OUTPUT);
|
||||
|
||||
// We are also going to declare a Particle.function so that we can turn the LED on and off from the cloud.
|
||||
Particle.function("Relay1",Relay1Toggle);
|
||||
Particle.function("Relay2",Relay2Toggle);
|
||||
Particle.function("StatusLED",StatusLEDToggle);
|
||||
// This is saying that when we ask the cloud for the function "led", it will employ the function ledToggle() from this app.
|
||||
|
||||
// For good measure, let's also make sure both LEDs are off when we start:
|
||||
digitalWrite(Relay1, LOW);
|
||||
digitalWrite(Relay2, LOW);
|
||||
digitalWrite(StatusLED, LOW);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Last time, we wanted to continously blink the LED on and off
|
||||
// Since we're waiting for input through the cloud this time,
|
||||
// we don't actually need to put anything in the loop
|
||||
|
||||
void loop()
|
||||
{
|
||||
// Nothing to do here
|
||||
}
|
||||
|
||||
// We're going to have a super cool function now that gets called when a matching API request is sent
|
||||
// This is the ledToggle function we registered to the "led" Particle.function earlier.
|
||||
|
||||
|
||||
int Relay1Toggle(String command) {
|
||||
/* Particle.functions always take a string as an argument and return an integer.
|
||||
Since we can pass a string, it means that we can give the program commands on how the function should be used.
|
||||
In this case, telling the function "on" will turn the LED on and telling it "off" will turn the LED off.
|
||||
Then, the function returns a value to us to let us know what happened.
|
||||
In this case, it will return 1 for the LEDs turning on, 0 for the LEDs turning off,
|
||||
and -1 if we received a totally bogus command that didn't do anything to the LEDs.
|
||||
*/
|
||||
|
||||
if (command=="on") {
|
||||
digitalWrite(Relay1,HIGH);
|
||||
return 1;
|
||||
}
|
||||
else if (command=="off") {
|
||||
digitalWrite(Relay1,LOW);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int Relay2Toggle(String command) {
|
||||
/* Particle.functions always take a string as an argument and return an integer.
|
||||
Since we can pass a string, it means that we can give the program commands on how the function should be used.
|
||||
In this case, telling the function "on" will turn the LED on and telling it "off" will turn the LED off.
|
||||
Then, the function returns a value to us to let us know what happened.
|
||||
In this case, it will return 1 for the LEDs turning on, 0 for the LEDs turning off,
|
||||
and -1 if we received a totally bogus command that didn't do anything to the LEDs.
|
||||
*/
|
||||
|
||||
if (command=="on") {
|
||||
digitalWrite(Relay2,HIGH);
|
||||
return 1;
|
||||
}
|
||||
else if (command=="off") {
|
||||
digitalWrite(Relay2,LOW);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int StatusLEDToggle(String command) {
|
||||
/* Particle.functions always take a string as an argument and return an integer.
|
||||
Since we can pass a string, it means that we can give the program commands on how the function should be used.
|
||||
In this case, telling the function "on" will turn the LED on and telling it "off" will turn the LED off.
|
||||
Then, the function returns a value to us to let us know what happened.
|
||||
In this case, it will return 1 for the LEDs turning on, 0 for the LEDs turning off,
|
||||
and -1 if we received a totally bogus command that didn't do anything to the LEDs.
|
||||
*/
|
||||
|
||||
if (command=="on") {
|
||||
digitalWrite(StatusLED,HIGH);
|
||||
return 1;
|
||||
}
|
||||
else if (command=="off") {
|
||||
digitalWrite(StatusLED,LOW);
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue