aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Igoe <tom.igoe@gmail.com>2013-06-25 14:07:53 -0400
committerTom Igoe <tom.igoe@gmail.com>2013-06-25 14:07:53 -0400
commit85b4bb185de92325dbd9c76255c040bd32bbbebc (patch)
tree2e723a3cbb67832a1e0ad669115a46c171f6eb2e
parent4ceed17d66bbaf20a9e8fbef2b90823b17d17907 (diff)
Made ShellCommands example more physical
-rw-r--r--libraries/Bridge/examples/ShellCommands/ShellCommands.ino35
1 files changed, 23 insertions, 12 deletions
diff --git a/libraries/Bridge/examples/ShellCommands/ShellCommands.ino b/libraries/Bridge/examples/ShellCommands/ShellCommands.ino
index 47579f8..d2f9b7a 100644
--- a/libraries/Bridge/examples/ShellCommands/ShellCommands.ino
+++ b/libraries/Bridge/examples/ShellCommands/ShellCommands.ino
@@ -3,18 +3,21 @@
Running shell coommands using Process class.
This sketch demonstrate how to run linux shell commands
- using an Arduino Yún.
-
+ using an Arduino Yún. It runs the wifiCheck script on the linino side
+ of the Yun, then uses grep to get just the signal strength line.
+ Then it uses parseInt() to read the wifi signal strength as an integer,
+ and finally uses that number to fade an LED using analogWrite().
+
The circuit:
- * Arduino Yun
+ * Arduino Yun with LED connected to pin 9
created 12 Jun 2013
by Cristian Maglie
- modified 21 June 2013
+ modified 25 June 2013
by Tom Igoe
This example code is in the public domain.
-
+
*/
#include <Process.h>
@@ -27,15 +30,23 @@ void setup() {
void loop() {
Process p;
- // This command line prints the name of the wireless network
- // that the board is connected to, or the network which the board has created:
- p.runShellCommand(F("lua /usr/lib/lua/pretty_wifi_info.lua | grep SSID"));
+ // This command line runs the wifiCheck script, (lua /arduino/pretty...), then
+ // sends the result to the grep command to look for a line containing the word
+ // "Signal:" the result is passed to this sketch:
+ p.runShellCommand("lua /arduino/pretty_wifi_info.lua | grep Signal");
- // Read command output
+ // do nothing until the process finishes, so you get the whole output:
+ while(p.running());
+
+ // Read command output. runShellCommand() should have passed "Signal: xx&":
while (p.available()) {
- char c = p.read();
- Serial.print(c);
+ int result = p.parseInt(); // look for an integer
+ int signal = map(result, 0, 100, 0, 255); // map result from 0-100 range to 0-255
+ analogWrite(9, signal); // set the brightness of LED on pin 9
+ Serial.println(result); // print the number as well
}
- while (true); // do nothing more
+ delay(5000); // wait 5 seconds before you do it again
}
+
+