How Doable is this?

I will be seeking help from skilled people, but I'd like to know if the following is feasible. A controller using the Arduino to control a home brewery, via a web browser interface, wirelessly. Essentially, I want to be able to turn on outputs via relays for 2 pumps and a heating element. I know the Arduino can control these, it's more the web browser and wireless aspects I would like to know about. Regarding these: I want to be able to specify a process based on the concept of a 'state machine'. The various settings such as temperature and duration at certain steps in the process need to be user adjustable, and able to be saved to the device the browser is running on - let's say a PC. There need to be 'buttons' on the web page to allow for input into the process. The solution will be in an enclosure attached to equipment - embedded, with the only interface being the browser. (This approach is currently available - but not quite suitable for me - with the BCS460:

So is an Arduino a good choice for this, or should I be looking at a Raspberry PI or something else? What 'sheilds' or other boards would be necessary to use with an Arduino based system?


you can try an Ethernet Shield or a Wifi Shield, try simple examples for both and see which works better for you.

If are prepared to keep the web interface simple, you can probably do it on an Arduino. I suggest you write the html code for that web page, using a cookie to save the data on the PC. When you've done that, you will know how big the web page code is. Then compare the size of that file with the amount of program memory you have on the Arduino you are thinking of using, to see how much will be available for the program.

If you want a more complicated user interface, or several different web pages, or you want to include image in the page, then a Raspberry Pi would be more suitable.

The screenshots you linked to show quite a comprehensive web interface. As a result I think you should do the browser based human interface on a PC.

The Arduino could be used to autonomously run a control sequence for the brewery i.e. when the PC is off the Arduino continues to run the control sequence last downloaded to it from the PC.

One thing you have not mentioned is whether or not you wish to record what happens during the brewing sequence. If you do then you need to consider where the data will be stored e.g. if the PC is not 'on' all the time then you would need to store data on the Arduino and upload it to the PC when a connection is established.

So it is all possible but a good deal of thought needs to go into what information is communicated between the PC and the Arduino and when.

You mentioned that the existing system is "not quite suitable" for you. It would probably be a good idea to say why, to see if the Arduino eliminates those issues.

I would implement something like this on a laptop and use something like an Arduino as an "IO expander". If you want a fancy UI go for a real computer.

Either I am misunderstanding what he is trying to ask or everyone else is.

If I understand correctly, you would develop a webpage/site using Visual Studio, Dreamweaver or whatever you know how to use. This would be published either to your local PC (limiting the funcitonality and not letting you control the system from work for example) or uploaded to a web server which would allow you to control from work. There are lots of different options on this works. You could use gotomypc for that matter.

In the case that your web app is installed locally only, your PC would then transmit required data to the Arduino controlling whatever you need to control. Personnaly for a local only install, I would avoid browser based and go to a Windows Forms based app for simplicity. In the case that your web app truly exists on the interweb, then your arduino would need to wirelessly access the site to obtain the needed info.

In either case it doesn't matter how complex or complicated the web app is. He could have 500 different tweaks and twists to adjust. Since the PC would transmit or the arduino would access the data it needs to run its program. It isn't hosting the webpage. That would just be silly.

This is perfectly feasible and a great project to learn on because it's something you want to work for you. However, if you have never done any browser based programming that is a fairly steep learning curve depending on where you start. If you are planning to host the site on the interweb, then look at some examples people have posted that grab data like facebook likes and twitter feed posts using the arduino. This will help you in developing the browser side so you know how to expose the info to the arduino. I think Arduino uses JSON requests but I am not entirely sure. The browser aspect adds a layer of complication to this that I would avoid early on by maybe getting it to work using a Forms based app and a hardwired (USB) connection to the Arduino first. Once you know that functions correctly, you can move to the next phase. The added advantage to this is that if you develop in Visual Studio, a lot of the codeing will translate easily to the Web App.

Good Luck!

try simple examples for both and see which works better for you.