diff options
author | Federico Fissore <f.fissore@arduino.cc> | 2013-08-07 17:16:13 +0200 |
---|---|---|
committer | Federico Fissore <f.fissore@arduino.cc> | 2013-08-28 10:12:33 +0200 |
commit | aa7d03ba9c6d61597b10d06804bfee7d53b45ce2 (patch) | |
tree | 34e58aeb2d5183c44d8988cb6aef369bfeffa3cf /libraries/Bridge/examples/SpacebrewYun | |
parent | 39d8b74f58ec5b1cb59ad7879ffed9f6bb66795c (diff) |
spacebrew update
Diffstat (limited to 'libraries/Bridge/examples/SpacebrewYun')
-rw-r--r-- | libraries/Bridge/examples/SpacebrewYun/inputOutput/inputOutput.ino (renamed from libraries/Bridge/examples/SpacebrewYun/input_output/input_output.ino) | 64 | ||||
-rw-r--r-- | libraries/Bridge/examples/SpacebrewYun/spacebrewBoolean/spacebrewBoolean.ino | 89 | ||||
-rw-r--r-- | libraries/Bridge/examples/SpacebrewYun/spacebrewRange/spacebrewRange.ino | 86 | ||||
-rw-r--r-- | libraries/Bridge/examples/SpacebrewYun/spacebrewString/spacebrewString.ino | 84 |
4 files changed, 307 insertions, 16 deletions
diff --git a/libraries/Bridge/examples/SpacebrewYun/input_output/input_output.ino b/libraries/Bridge/examples/SpacebrewYun/inputOutput/inputOutput.ino index e95457f..be22850 100644 --- a/libraries/Bridge/examples/SpacebrewYun/input_output/input_output.ino +++ b/libraries/Bridge/examples/SpacebrewYun/inputOutput/inputOutput.ino @@ -1,35 +1,54 @@ +/* + Input Output + + Demonstrates how to create a sketch that sends and receives all standard + spacebrew data types, and a custom data type. Every time data is + received it is output to the Serial monitor. + + Make sure that your Yun is connected to the internet for this example + to function properly. + + The circuit: + - No circuit required + + created 2013 + by Julio Terra + + This example code is in the public domain. + + More information about Spacebrew is available at: + http://spacebrew.cc/ + + */ + #include <Bridge.h> #include <SpacebrewYun.h> -/** - * Arduino Yun Spacebrew Library Example - * - * This example code is in the public domain. - * - * @date July 16, 2013 - * @author Julio Terra - * - */ - +// create a variable of type SpacebrewYun and initialize it with the constructor SpacebrewYun sb = SpacebrewYun("aYun", "Arduino Yun spacebrew test"); -int counter = 0; +// create variables to manage interval between each time we send a string long last = 0; int interval = 2000; +int counter = 0; + void setup() { + // start the serial port Serial.begin(57600); - delay(4000); - while (!Serial) { Serial.println("connecting"); } + // for debugging, wait until a serial console is connected + delay(4000); + while (!Serial) { ; } - //Initialize Console and wait for port to open: + // start-up the bridge Bridge.begin(); - Serial.println("Bridge Started"); - Serial.println("Configuring Spacebrew Client"); + // configure the spacebrew object to print status messages to serial sb.verbose(true); + + // configure the spacebrew publisher and subscriber sb.addPublish("string test", "string"); sb.addPublish("range test", "range"); sb.addPublish("boolean test", "boolean"); @@ -38,18 +57,27 @@ void setup() { sb.addSubscribe("range test", "range"); sb.addSubscribe("boolean test", "boolean"); sb.addSubscribe("custom test", "crazy"); + + // register the string message handler method sb.onRangeMessage(handleRange); sb.onStringMessage(handleString); sb.onBooleanMessage(handleBoolean); sb.onCustomMessage(handleCustom); + + // connect to cloud spacebrew server at "sandbox.spacebrew.cc" sb.connect("sandbox.spacebrew.cc"); } void loop() { + // monitor spacebrew connection for new data sb.monitor(); + + // connected to spacebrew then send a string every 2 seconds if ( sb.connected() ) { + + // check if it is time to send a new message if ( (millis() - last) > interval ) { String test_str_msg = "testing, testing, "; test_str_msg += counter; @@ -66,6 +94,8 @@ void loop() { } } +// define handler methods, all standard data type handlers take two appropriate arguments + void handleRange (String route, int value) { Serial.print("Range msg "); Serial.print(route); @@ -87,6 +117,8 @@ void handleBoolean (String route, boolean value) { Serial.println(value ? "true" : "false"); } +// custom data type handlers takes three String arguments + void handleCustom (String route, String value, String type) { Serial.print("Custom msg "); Serial.print(route); diff --git a/libraries/Bridge/examples/SpacebrewYun/spacebrewBoolean/spacebrewBoolean.ino b/libraries/Bridge/examples/SpacebrewYun/spacebrewBoolean/spacebrewBoolean.ino new file mode 100644 index 0000000..0f068aa --- /dev/null +++ b/libraries/Bridge/examples/SpacebrewYun/spacebrewBoolean/spacebrewBoolean.ino @@ -0,0 +1,89 @@ +/* + Spacebrew Boolean + + Demonstrates how to create a sketch that sends and receives a + boolean value to and from Spacebrew. Every time the buttton is + pressed (or other digital input component) a spacebrew message + is sent. The sketch also accepts analog range messages from + other Spacebrew apps. + + Make sure that your Yun is connected to the internet for this example + to function properly. + + The circuit: + - Button connected to Yun, using the Arduino's internal pullup resistor. + + created 2013 + by Julio Terra + + This example code is in the public domain. + + More information about Spacebrew is available at: + http://spacebrew.cc/ + + */ + +#include <Bridge.h> +#include <SpacebrewYun.h> + +// create a variable of type SpacebrewYun and initialize it with the constructor +SpacebrewYun sb = SpacebrewYun("spacebrewYun Boolean", "Boolean sender and receiver"); + +// variable that holds the last potentiometer value +int last_value = 0; + +// create variables to manage interval between each time we send a string +void setup() { + + // start the serial port + Serial.begin(57600); + + // for debugging, wait until a serial console is connected + delay(4000); + while (!Serial) { ; } + + // start-up the bridge + Bridge.begin(); + + // configure the spacebrew object to print status messages to serial + sb.verbose(true); + + // configure the spacebrew publisher and subscriber + sb.addPublish("physical button", "boolean"); + sb.addSubscribe("virtual button", "boolean"); + + // register the string message handler method + sb.onBooleanMessage(handleBoolean); + + // connect to cloud spacebrew server at "sandbox.spacebrew.cc" + sb.connect("sandbox.spacebrew.cc"); + + pinMode(3, INPUT); + digitalWrite(3, HIGH); +} + + +void loop() { + // monitor spacebrew connection for new data + sb.monitor(); + + // connected to spacebrew then send a new value whenever the pot value changes + if ( sb.connected() ) { + int cur_value = digitalRead(3); + if ( last_value != cur_value ) { + if (cur_value == HIGH) sb.send("physical button", false); + else sb.send("physical button", true); + last_value = cur_value; + } + } +} + +// handler method that is called whenever a new string message is received +void handleBoolean (String route, boolean value) { + // print the message that was received + Serial.print("From "); + Serial.print(route); + Serial.print(", received msg: "); + Serial.println(value ? "true" : "false"); +} + diff --git a/libraries/Bridge/examples/SpacebrewYun/spacebrewRange/spacebrewRange.ino b/libraries/Bridge/examples/SpacebrewYun/spacebrewRange/spacebrewRange.ino new file mode 100644 index 0000000..6dcbff8 --- /dev/null +++ b/libraries/Bridge/examples/SpacebrewYun/spacebrewRange/spacebrewRange.ino @@ -0,0 +1,86 @@ +/* + Spacebrew Range + + Demonstrates how to create a sketch that sends and receives analog + range value to and from Spacebrew. Every time the state of the + potentiometer (or other analog input component) change a spacebrew + message is sent. The sketch also accepts analog range messages from + other Spacebrew apps. + + Make sure that your Yun is connected to the internet for this example + to function properly. + + The circuit: + - Potentiometer connected to Yun. Middle pin connected to analog pin A0, + other pins connected to 5v and GND pins. + + created 2013 + by Julio Terra + + This example code is in the public domain. + + More information about Spacebrew is available at: + http://spacebrew.cc/ + + */ + +#include <Bridge.h> +#include <SpacebrewYun.h> + +// create a variable of type SpacebrewYun and initialize it with the constructor +SpacebrewYun sb = SpacebrewYun("spacebrewYun Range", "Range sender and receiver"); + +// variable that holds the last potentiometer value +int last_value = 0; + +// create variables to manage interval between each time we send a string +void setup() { + + // start the serial port + Serial.begin(57600); + + // for debugging, wait until a serial console is connected + delay(4000); + while (!Serial) { ; } + + // start-up the bridge + Bridge.begin(); + + // configure the spacebrew object to print status messages to serial + sb.verbose(true); + + // configure the spacebrew publisher and subscriber + sb.addPublish("physical pot", "range"); + sb.addSubscribe("virtual pot", "range"); + + // register the string message handler method + sb.onRangeMessage(handleRange); + + // connect to cloud spacebrew server at "sandbox.spacebrew.cc" + sb.connect("sandbox.spacebrew.cc"); +} + + +void loop() { + // monitor spacebrew connection for new data + sb.monitor(); + + // connected to spacebrew then send a new value whenever the pot value changes + if ( sb.connected() ) { + int cur_value = analogRead(A0); + if ( last_value != cur_value ) { + sb.send("physical pot", cur_value); + last_value = cur_value; + } + } +} + +// handler method that is called whenever a new string message is received +void handleRange (String route, int value) { + // print the message that was received + Serial.print("From "); + Serial.print(route); + Serial.print(", received msg: "); + Serial.println(value); +} + diff --git a/libraries/Bridge/examples/SpacebrewYun/spacebrewString/spacebrewString.ino b/libraries/Bridge/examples/SpacebrewYun/spacebrewString/spacebrewString.ino new file mode 100644 index 0000000..8c8f1c7 --- /dev/null +++ b/libraries/Bridge/examples/SpacebrewYun/spacebrewString/spacebrewString.ino @@ -0,0 +1,84 @@ +/* + Spacebrew String + + Demonstrates how to create a sketch that sends and receives strings + to and from Spacebrew. Every time string data is received it + is output to the Serial monitor. + + Make sure that your Yun is connected to the internet for this example + to function properly. + + The circuit: + - No circuit required + + created 2013 + by Julio Terra + + This example code is in the public domain. + + More information about Spacebrew is available at: + http://spacebrew.cc/ + + */ + +#include <Bridge.h> +#include <SpacebrewYun.h> + +// create a variable of type SpacebrewYun and initialize it with the constructor +SpacebrewYun sb = SpacebrewYun("spacebrewYun Strings", "String sender and receiver"); + +// create variables to manage interval between each time we send a string +long last_time = 0; +int interval = 2000; + +void setup() { + + // start the serial port + Serial.begin(57600); + + // for debugging, wait until a serial console is connected + delay(4000); + while (!Serial) { ; } + + // start-up the bridge + Bridge.begin(); + + // configure the spacebrew object to print status messages to serial + sb.verbose(true); + + // configure the spacebrew publisher and subscriber + sb.addPublish("speak", "string"); + sb.addSubscribe("listen", "string"); + + // register the string message handler method + sb.onStringMessage(handleString); + + // connect to cloud spacebrew server at "sandbox.spacebrew.cc" + sb.connect("sandbox.spacebrew.cc"); +} + + +void loop() { + // monitor spacebrew connection for new data + sb.monitor(); + + // connected to spacebrew then send a string every 2 seconds + if ( sb.connected() ) { + + // check if it is time to send a new message + if ( (millis() - last_time) > interval ) { + sb.send("speak", "is anybody out there?"); + last_time = millis(); + } + } +} + +// handler method that is called whenever a new string message is received +void handleString (String route, String value) { + // print the message that was received + Serial.print("From "); + Serial.print(route); + Serial.print(", received msg: "); + Serial.println(value); +} + |