diff options
author | Tom Igoe <tom.igoe@gmail.com> | 2013-06-25 14:07:53 -0400 |
---|---|---|
committer | Tom Igoe <tom.igoe@gmail.com> | 2013-06-25 14:07:53 -0400 |
commit | 85b4bb185de92325dbd9c76255c040bd32bbbebc (patch) | |
tree | 2e723a3cbb67832a1e0ad669115a46c171f6eb2e | |
parent | 4ceed17d66bbaf20a9e8fbef2b90823b17d17907 (diff) |
Made ShellCommands example more physical
-rw-r--r-- | libraries/Bridge/examples/ShellCommands/ShellCommands.ino | 35 |
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 } + + |