Hi. A couple of years ago I did an Arduino project for home automation, where I can read room temperatures, room illumination, read data from my electricity meter and control devices using 5V 433 MHz receiver and transmitter. All collected data is uploaded to a webserver and represented on my web page.
Everything has been working fine, but now I would like to try something new.
I was thinking of upgrading the Arduino to something bigger like for example the Raspberry Pi, where the webserver can run from the controller and data can be stored on the controller also.
However, the problem with Raspberry Pi is that it doesn't have any analog I/O and also that the digital I/O is 3.3V and not 5V, which I need if I don't want to change the rest of my hardware.
So the question is if it is possible to buy a cheap Raspberry Pi similar controller with the I/O capabilities like the Arduino. Do you have some suggestions?
If everything is running as you say, what is the limitation you're trying to address with this upgrade? Or is it just to give you a new challenge? If the 2nd, the RPi is as good a place as any to start. If you've got something specific to fix that might help narrow the choice.
jokkemokke:
I think the I/O options on the Raspberry Pi are a bit limited, since there are no analog inputs or outputs.
I guess what I am looking for is a Raspberry Pi with the same I/O options as the Arduino, but I don't know if something like this exists.
Hi,
Since you mention the RPi, even if they don't have analog I/O, that's functionality you can add in the same way as adding extra analog inputs to the Arduino. Chips like the MCP3008 or similar will do that for you - and as you identified you might need some logic level shifting. Alternatively, moving to digital sensors would eliminate the need for your analog inputs too. Adding a Gertboard to the RPi provides the additional IO from an ATmega MCU onboard (if that fits the budget) or of course you've already got an ATmega on your Arduino...so you could utilise your Arduino to interface your sensors to your RPi.
Since your design brief is quite open, anything will do - I only stuck with the RPi since you mentioned it.
jokkemokke,
To give you a better recommendation for your new design approach, it could be good to know more about your home automation project. Is it a dedicated Arduino system? I could infer you are using radio controls, an Ethernet shield, sensors, etc. Remember also that you can program your Arduino using Mac or Linux.
tuxduino,
Due could work but still the issue of 3V3 to 5V conversion that would mean extra money.
Finally, I found an interesting book on internet (I haven't read it yet) entitled "Programming Your Home" by Mike Riley that could enlighten you a bit more.
jokkemokke:
I was thinking of upgrading the Arduino to something bigger like for example the Raspberry Pi, where the webserver can run from the controller and data can be stored on the controller also.
My current project consists of an Arduino with ethernet shield. Data is collected on the Arduino using RF sensors and analog sensors. These data are then transfered to a MySQL database on a server outside my house using the ethernet shield. On this server I can then view the data on a web page.
I was thinking of maybe saving the data locally on a SD card and represent it on a local webserver like for example on an Raspberry Pi.
Maybe I could connect a Raspberry Pi directly to the existing Arduino using the USB connection, and then install a MySQL database and a webserver on the Raspberry Pi.
In this way I could use the Arduino as an I/O extension for the Raspberry Pi.
Maybe I could connect a Raspberry Pi directly to the existing Arduino
That's more or less how I'd tackle it.
I would keep the existing system and add more goodies with a Pi (or whatever).
That way you're building on top of what you have and while things aren't working (as you learn the new board/language/whatever) you still have a viable control system.
I say have a look at using firmata from the Pi.
And to make it really easy, use a Teensy board.
You can load firmata on a Teensy board and then you use the Pi for all the high level stuff
and the Teensy can handle the i/o.
The Teensy can plug into the USB port or an external USB hub and give you the i/o you need
including 5v compatibility.
There are python firmata libraries so you can easily access the i/o pins from the linux world
without having to write any device drivers.
The great thing about using something like firmata, is you can write and debug all you code on your linux
desktop then once it works, simply move it over to the Pi.