Need Advice/Help for Starting Project

The project in itself is simplistic in hardware, but in terms of programming it, online tutorials have my head twisting this way and that just to wrap around how I need to go about it. I feel as though as soon as I start it and finally understand how it works, it will be smooth sailing from there. However, I'm having a bit of ...well ...robotics block.

The Project:
The project is an array of RGB LED lights set up in a hand crafted display that can be activated by push button to display weather forecast predictions (Hopefully I can set it up with 3 buttons, one to display today's weather, tonight's, and tomorrow's respectfully). From the tutorials and research I have done, I am hoping to have the arduino parse html to recognize a weather website's variables and the lights will light up/change according to the variables. For example, the central RGB LED's concept is to have it react to the temperature and change color according to the numeric value being display. I live in New England, so up here I would like to have it so if the variable (let's go with the classic n for now) so make it so 70<n will display red for hot, 50>n<69 will display orange or yellow for warm, 30>n<49 will display white for mild and so on. An arrangement of the LED's in a box display with 3 rows and columns of smaller boxes. Each box will have a hole cut with tissue paper that has a hand drawn design on it indicating a weather pattern with the LED resting behind it. I would like the Arduino to recognize recurring words on the line of text from the website such as Cloudy, Sunny, and Rain and each light corresponding to the displayed weather pattern for the time will light up. Ideally, I'd like to also have it so an audio file will play through a speaker in accordance to the variables. So, as another example, let's say that the weather for tomorrow is supposed to be 52 degrees and Partly Cloudy. The central LED (It will be in an ambient orb) will glow orange/yellow, the display will light up behind both the sun and cloud, and a series of either 3 separate audio files (each playing the respectful announcement of the weather conditions) or a single file in which I just have to put in the time to put in the input for each and every scenario possibility. Either way, in the end I would like for the speaker to be able to say something like 'Tomorrow, the weather is supposed to be nice and warm. Overall, the weather shouldn't be bad, just expect a few clouds in the sky.' Something like that. Important note: I CANNOT USE AN ETHERNET SHIELD.

So here's the basic flow:
Press button (Input) --> USB ---> Grab Website Information ---> USB ---> LED Display (Output) ---> (Ideal but unnecessary) Speaker (Output)

Does anyone know the appropriate programs I want to use? Does anyone have any idea where I might get good advice or tutorials that are easy to understand that I can use to figure out how to get started programming it? Does anyone know the basic code I will need to use in order to get Arduino to interface with the internet on command and pull information off of it to be converted into information it can use for the output? If you can, please explain it to me as though I work in the peanut business. My class has done well in teaching me new things in robotics and programming, but sadly a lot of the tech speak still goes right over my head sometimes.

Seriously I'm stuck.

Well for starters you need to handle the fact that the Arduino can't see the internet over USB. You'll need to write a program to run on the PC to do that: handle communications between the Arduino and the internet.

So you will need to choose a PC programming environment. There are as many opinions about those as there are religions. Do you have a favorite PC programming environment to start with? A language where you can find someone locally to help you would be ideal.

The rest of what you have in your wish list is doable, and should make for good fun. Along the way you should be prepared to learn a bit of web technology (to fetch the weather data) as well as arduino coding and hardware interfacing.

Good luck with your project,

-br

billroy:
Well for starters you need to handle the fact that the Arduino can't see the internet over USB. You'll need to write a program to run on the PC to do that: handle communications between the Arduino and the internet.

So you will need to choose a PC programming environment. There are as many opinions about those as there are religions. Do you have a favorite PC programming environment to start with? A language where you can find someone locally to help you would be ideal.

The rest of what you have in your wish list is doable, and should make for good fun. Along the way you should be prepared to learn a bit of web technology (to fetch the weather data) as well as arduino coding and hardware interfacing.

Good luck with your project,

-br

That I am aware of. From what I have gathered from research I think my best bet would be either from using Processing, Gobetwino with a mix of Perl or PHP Scripting (Perl being the one I'm more experienced with) to parse the html from the site, using Processing, Gobetwino, or w/e program I need to interface with the software and report back the information through the serial port. Unfortunately, I'm not entirely sure what program would be best to use. By chance would you have any suggestions?

As for the rest, thank you very much. At the very least, I'm sure once I get started and wade through the waters of figuring out how to properly interface with the software that it'll be a lot of fun and I'll be able to learn a lot along the way. It's like getting stuck in a mudhole in your driveway before you can even get to the main road, when I think about it.

Thank You Very Much,
K

I would have the PC do as much of the work as possible. And then just send commands to the Arduino like "Turn LED1 Blue", or "Play sound6". Heck, maybe, even have the PC play the sounds. That would be almost trivial.

Any of the technologies you mentioned could get the job done with varying degrees of work and performance.

I personally find myself following a different route based on pieces I have built. First you must know that I wrote Bitlash, an interpreter for Arduino, and so I think in terms of sending Bitlash commands from the PC to control things on the Arduino side. The idea is similar to what TanHadron suggests. So I usually start with Bitlash on the Arduino side, at least for prototyping. (More at http://bitlash.net)

Then I wrote an app called Bitlash Commander to control the Arduino from the PC by sending commands from a web browser. This is kind of like the program you will need, to fetch weather data and send it over the serial link. (More at GitHub - billroy/bitlash-commander: Web-based dashboard builder for Arduino.)

Commander is a "node.js" app, written in javascript. There is a big ecosystem of node.js modules (not unlike perl modules or arduino libraries) that make it easy to drop in big chunks of functionality like reading and parsing web pages.

If I had to start on your problem today I'd probably work up a little node.js script similar to Commander to do the weather API fetching, parsing, and serial transmission. Plus a web control panel for the display...

Whatever you're comfortable with, right?

-br