Arduino Web Interface

I'm looking at trying to get started with an arduino, but I'm curious to know what's out there.

Is there anything developed already to give a user a web interface for the arduino? Something where I could pull it up in a browser and see what voltages are on the analog pins and turn the digital pins on / off etc.

The standard ethernet shield and the examples in the IDE library will do just that.

Heres one you can look at : http://majestic81.plus.com/

The light levels are straight from the ADC analog pins, the temperatures are from digital thermometrs.

Or take a look at Webduino : http://code.google.com/p/webduino/

That looks promising, but I don't see anything that says that it will work over wifi.

Where is the html / php stored? It would be awesome if we could store the files on a thumb drive, then plug that into the USB port and have those files served up to the user when they connect to the ip.

I have breadboards / leds wires etc, but what hardware do i need to purchase to do something like this?

The WiShield from Asynclabs works over wifi. http://www.asynclabs.com/

any thought on the thumb drive storing the files? basically i'd love to have apache or something running on the arduino serving pages from the usb thumb drive, maybe even an ftp server type thing, then I could have pictures and everything on the thumb drive

the wishield isn't going to be an option. At $55 for the wishield, plus another what 40 for the arduino, that's $90. That's already the top of my budget for this project, plus the three relays, temp sensors, and heating elements, and i'm going to be way over budget.

Did you look at Asynclabs Yellowjacket or Black Widow? These include an Arduino in them. No need to buy an Arduino.

That's much closer to budget thank you!

Now, how about an 'ftp' server and storing the pages on the thumb drive?

This would let you tweak / update the html at will!

The arduino is very limited alongside a real server/pc you can't do much with 2k (not Gigabytes or even Megabytes, honest to goodness early 1980's Kilobytes) of ram and a slow 8 bit processor. If you want real internet capabilities, I'd be looking elswhere. The libraries for communication and SD card storage are going to be eating almost all the resources before you get to any coding to do intersting stuff. You could do what I do here :

http://pluggy.is-a-geek.com/index.html

and hook an arduino via USB to a real computer. The arduino does the interfacing to the real world, the computer does the web bit.

I'd echo pluggy and suggest you look at something with a lot more resources. For example, apache httpd is 1,988,032 bytes on disk, and an Arduino has 32,768 bytes of program memory (about 60x too small).

Something with a http server is an mbed: http://mbed.org/ it has on-board Ethernet. They have on-board USB too. Some models have on-board flash storage so you can have a small (few mbytes) file system.

HTH GB-)

It's generally better to think of the arduino as a data source for JSON like streams and web services rather than a full fledged server. Take a free/cheap webhost (google app engine seems like a good fit) and just AJAX data to/from the arduino. Problem solved, and you've got a modular solution and a way to incorporate multiple webstreams.

well if i have to have a computer plugged into the USB port anyway then I don't need to do any wifi or web serving at all, i'd just have to build a program to talk over the serial connection. This wouldn't be too big of a deal, I have a few atom processor laden mini computers (nokia n770 and an always innovating touch book). Both have decent touch screens and would make a good control surface for the stuff i'm doing, and I was planning on using them anyway, just wanted them to be wireless.

The first task i'm trying to do is to accomplish the job of three love controllers for temperature. This is going to be for my beer brewing stuff (yes I've seen some arduino setups already but most are not all there).

my goal is to have a gui type thing where I can see at a glance a picture of my tanks, the temp inside them (eventually maybe liquid level too), kick on / off heating elements, and turn a pump on/off, and sound a buzzer when attention is required. Basically I'm going for a DCS system.

Actually to be honest my first impulse was to purchase an ABB sample block and eth module. They give the control builder software and a 500 IO block for like $200. But that's about a billion times more overkill than I need. Actually the arduino itself is overkill too, but it would be nice to have all the features. Gonna look into that mbed thing though too that looks pretty neat.

hmm i like the idea of google app engine. Any examples of using arduino with it? I'll go google it now but if you know of any specifically awesome ones i'd be much obliged.

The shitty part is, I program (mostly bash scripts and c++) all day long, so I don't really want to program when I get home even for a fun project, so I may just go the solder electrical controller route. Probably be fastest way to do it.

Controlling stuff over the internet is fairly simple if you have a pc connected to the internet and use apache as a cgi inerface with the gizmo you are interested in using (assuming you are using a serial/parallel port for communication between the pc and gizmo).

lol, the whole reason why the Ethernet and WiFi shields were invented in the first place, is because there wasn’t an easy way of moving data from Arduino to the internet without using a pc with shell executables and scripts to pull data from the pc and move it to a mySql or other file on the internet.

It all sounds easy in theory, but if you do decide to use Arduino then depending on the application, you’ll probably end up back at one of those 2 shields, once you’ve done your dash trying every other conceivable method.

Using a pc means you’ll have a machine tied up, with wires from it to the Arduino, and from the Arduino to sensors. The Wifi shield liberates all the wiring and the pc, and you can park your Arduino right on top of the sensors up to 100 meters from your wireless router / access point, and then data can be posted in real time from the Arduino directly to a mySql on the web, and then using Flash or Ajax, you can view the data updating in real time without needing to worry about checking if scripts or executables are running on your pc.

Wifi is an elegant solution to a nagging problem, but it does cost money, about 55 bucks for an Arduino with WiFi built in.

well 55 opposed to 30 isn’t that big of a jump. I was thinking it would be 55 plus 30. That’s more than i want to spend. But if there is a way to not only send data to sql server but to control the arduino through a sql server, that would be amazing… gonna need to google for a tutorial on that (do you have any especially good ones?)

You can control the Arduino with Wifi using php off a remote server script, so the script can either take input directly from a web based U.I, or it can pull data from a mySql and send it back to the Arduino over WiFi. Unlike the Ethernet shield, no other wires or special attachments are required, you just need a power source, and be in range of your wireless access point or router. The WiFi handles GET and POST requests which is all you need to send and receive data to and from the web.

Asynclabs.com has a Wiki and forum with plenty of active members so most of what you need to read you can find there, then if you hit any technical hurdles, there'll be people at the forum that can help .. so long as you've made every reasonable effort to search the forums first for answers = )

BTW, I don't have a financial interest in Asynclabs but I do steer people over there because I spent years and hundreds of hours trying to find easier ways of moving data to and from the web to Arduino. The problem was I could never get true real time results and a computer always needed to be part of the solution so there was limited scope for creating standalone applications. I think web based physical computing offers new and exciting possibilities, and it just so happens the WiFi Arduino's from Asynclabs makes "tinkering" a lot easier, frees up wires, space, and doesn't need a computer medium, and they are remarkably inexpensive for such an elegant solution.

The community / forums are what is really drawing me here, that kind of support is invaluable when working on a project of just about any kind.

My goal would be to use GET to retrieve values in a sql table hosted on a remote domain name, and use POST to store the data in a sql table. I have a couple websites I could host it on then, and just develope the control interface on the website. Only problem is that I hate the 'polling' communication. It'd be real time enough for my home use, but def not my preferred method of control.

Any particular reason you would want to use an external web site instead of running it behind your home router (assuming you use a home router)?

Mostly because I don't want to have a PC on to run the DB. I plan on accessing the site / ui with one of these: http://www.alwaysinnovating.com/home/index.htm

which isn't powerful enough to run a DB