Shell Commands

This sketch demonstrates running Linux shell commands on an Arduino Yún.

It runs the wifiCheck script (located at /usr/bin/pretty-wifi-info.lua) on the Linux processor, then uses grep to get the signal strength.

On the 32U4, parseInt() is called to read the WiFi signal strength as an integer, and uses that number to fade an LED with analogWrite().

Hardware Required

  • Arduino Yún
  • Yún connected to a wireless network
  • 220 ohm resistor
  • LED
  • hook-up wires
  • breadboard


A red LED connected to digital pin 9 through a 220 ohm resistor on the breadboard.

image developed using Fritzing. For more circuit examples, see the Fritzing project page


image developed using Fritzing. For more circuit examples, see the Fritzing project page


Include the Process class in your sketch. #include <Process.h>

In setup(), you'll want to initialize Bridge and start a serial connection. Before running the rest of the sketch, wait for a serial connection to become active.

void setup() {

  while (!Serial);

Create a named Process with which you'll use to run the WiFi status script and grep.

void loop() {
  Process p;

Pass runShellCommand() the path of the script you wish to run, along with any additional commands. In this case, you'll call "grep Signal" to pull out just the signal strength of the WiFi connection.

p.runShellCommand("/usr/bin/pretty-wifi-info.lua | grep Signal");

Wait until the process finishes so you get the entire output


Once the process has finished running, use parseInt() to look for an integer that represents the signal strength. It should be in the range of 0 - 100. Map the result to a value between 0 and 255 with map() and use that value to adjust the brightness of the LED on pin 9 with analogWrite(). Print the signal strength to the serial monitor and wait for a few seconds before starting again.

while (p.available()) {
    int result = p.parseInt();         
    int signal = map(result, 0, 100, 0, 255);  
    analogWrite(9, signal);    

The LED should change its brightness as the WiFi signal strength fluctuates.

The complete sketch is below:

SORRY, There is an error at our code repository, please inform to

See Also

  • Bridge Library - Your reference to the Bridge Library
  • Bridge – Simple REST style calls to access analog and digital pins
  • Consolle Ascii Table – A complete ASCII table printed to the Console
  • Console Pixel – Turn an LED on and off through the Console
  • Console Read - Read data coming from bridge using the function
  • Data Logger - Log data from three analog sensors to an SD card.
  • File Write - How to write file into the Yún filesystem.
  • Http Client - A basic HTTP client that connects to the internet and downloads content.
  • Mailbox Read Message - How to read the messages queue, called Mailbox, using the Bridge library.
  • Process - How to run linux processes using an Arduino Yún.
  • Temperature Web Panel - How to serve data from an analog input via the Arduino Yún's built-in webserver.
  • Time check - Gets the time from Linux via Bridge then parses out hours, minutes and seconds.
  • WiFi Status - Prints information about the status of your wifi connection.
  • Serial Terminal - Use the Yún's 32U4 processor as a serial terminal for the Linux side on the Yún.

Last revision 2015/08/12 by SM