diff options
Diffstat (limited to 'libraries/Bridge/examples/YahooWeather')
-rw-r--r-- | libraries/Bridge/examples/YahooWeather/YahooWeather.ino | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/libraries/Bridge/examples/YahooWeather/YahooWeather.ino b/libraries/Bridge/examples/YahooWeather/YahooWeather.ino deleted file mode 100644 index b751e1d..0000000 --- a/libraries/Bridge/examples/YahooWeather/YahooWeather.ino +++ /dev/null @@ -1,94 +0,0 @@ -/* - Yahoo Weather Forecast parser - - http://developer.yahoo.com/weather/ - This sketch demonstrate how to use the Linux command line tools - to parse a simple XML file on the Arduino Yún. - - First thing download the XML file from the Yahoo Weather service - than use "grep" and "cut" to extract the data you want. - - To find the location ID of your location, browse or search for your - city from the Weather home page. The location ID is in the URL for - the forecast page for that city. - - created 21 Jun 2013 - by Federico Vanzati - - */ - -#include <Bridge.h> - -String locationID = "725003"; // Turin, Italy - -// table with keywords to search in the XML file -// the third column is the tag to the field -String forecast[10][3] = { - "location", "2", "city", - "condition", "6", "temperature", - "condition", "2", "condition", - "astronomy", "2", "sunrise", - "astronomy", "4", "sunset", - "atmosphere", "2", "humidity", - "atmosphere", "6", "pressure", - "wind", "6", "wind speed", - "wind", "4", "wind direction", - "wind", "2", "chill temperature" -}; - - -void setup() { - Bridge.begin(); - Serial.begin(9600); - while(!Serial); - - Serial.println("Weather Forecast for your location: \n"); -} - -void loop() { - - for(int i=0; i<10; i++) { - - // Compose the request - - // curl is a program that connect to an URL an download the content - // is used to get the weather forecast from yahoo in XML format - String command = "curl -s "; // -s is the silent option - command += "http://weather.yahooapis.com/forecastrss"; // yahoo weather RSS service - command += "?w="; // query for the location - command += locationID; - //command += "\\&u=c"; // ask for celsius degrees - - // add a new process - // grep is used to extract a single line of content containig a search keyword form the XML - command += " | "; // pipe a new process - command += "grep "; - command += forecast[i][0]; // word to search in the XML file - - // add a new process - // cut is a program that split a text in different fields - // when encouter the passed character delimiter - command += " | "; // pipe a new process - command += "cut "; - command += "-d \\\" "; // -d parameter split the string every " char - command += "-f "; // -f parameter is to return the 6th splitted element - command += forecast[i][1]; // the field are already manually calculated and inserted in the forecast table - - - Serial.print(forecast[i][2]); - Serial.print("= "); - - // run the command - Process wf; - wf.runShellCommand(command); - - while(wf.available()>0) - { - Serial.print( (char)wf.read() ); - } - } - - //do nothing forevermore - while(1); -} - |