2015-10-16 15:35:58 +00:00
|
|
|
/* Includes ------------------------------------------------------------------*/
|
2015-10-16 15:45:19 +00:00
|
|
|
#include "NCD8Relay/NCD8Relay.h"
|
2015-10-16 15:35:58 +00:00
|
|
|
#include "spark_wiring_print.h"
|
|
|
|
|
|
|
|
|
|
SYSTEM_MODE(AUTOMATIC);
|
|
|
|
|
NCD8Relay relayController;
|
|
|
|
|
int triggerRelay(String command);
|
|
|
|
|
|
|
|
|
|
/* This function is called once at start up ----------------------------------*/
|
|
|
|
|
void setup()
|
|
|
|
|
{
|
|
|
|
|
Serial.begin(115200);
|
|
|
|
|
relayController.setAddress(0,0,0);
|
|
|
|
|
Spark.function("controlRelay", triggerRelay);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* This function loops forever --------------------------------------------*/
|
|
|
|
|
void loop()
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int triggerRelay(String command){
|
|
|
|
|
if(command.equalsIgnoreCase("turnonallrelays")){
|
|
|
|
|
relayController.turnOnAllRelays();
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if(command.equalsIgnoreCase("turnoffallrelays")){
|
|
|
|
|
relayController.turnOffAllRelays();
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if(command.startsWith("setBankStatus:")){
|
|
|
|
|
int status = command.substring(14).toInt();
|
|
|
|
|
if(status < 0 || status > 255){
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
Serial.print("Setting bank status to: ");
|
|
|
|
|
Serial.println(status);
|
|
|
|
|
relayController.setBankStatus(status);
|
|
|
|
|
Serial.println("done");
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
//Relay Specific Command
|
|
|
|
|
int relayNumber = command.substring(0,1).toInt();
|
|
|
|
|
Serial.print("relayNumber: ");
|
|
|
|
|
Serial.println(relayNumber);
|
|
|
|
|
String relayCommand = command.substring(1);
|
|
|
|
|
Serial.print("relayCommand:");
|
|
|
|
|
Serial.print(relayCommand);
|
|
|
|
|
Serial.println(".");
|
|
|
|
|
if(relayCommand.equalsIgnoreCase("on")){
|
|
|
|
|
Serial.println("Turning on relay");
|
|
|
|
|
relayController.turnOnRelay(relayNumber);
|
|
|
|
|
Serial.println("returning");
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if(relayCommand.equalsIgnoreCase("off")){
|
|
|
|
|
relayController.turnOffRelay(relayNumber);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if(relayCommand.equalsIgnoreCase("toggle")){
|
|
|
|
|
relayController.toggleRelay(relayNumber);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
if(relayCommand.equalsIgnoreCase("momentary")){
|
|
|
|
|
relayController.turnOnRelay(relayNumber);
|
|
|
|
|
delay(300);
|
|
|
|
|
relayController.turnOffRelay(relayNumber);
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
return 0;
|
|
|
|
|
}
|