Arduino vs Raspberry Pi: which platform is the best for home automation ?

In today’s article I will compare the two platforms I use the most for home automation projects: the Arduino platform, and the Raspberry Pi platform. Of course, asking which one is the best would be a much too simple question. They both have their advantages and disadvantages. Instead, I will compare the two platforms on some key points and show you in which case you should use one or the other. As in most of my articles, I included affiliate links to help you find the products I am talking about. It is also a good way to support this website, so thanks in advance if you purchase products by clicking on these links!

Setup. I will start with the most basic question of all: how easy to use are these platforms when you just received the package from your favorite supplier ? Well, for the Arduino, the setup is really easy: put the board out the box, plug a USB cable, download the software from the Arduino website, and you are good to go. The only thing you have to buy extra is a USB cable. It’s quite different for the Raspberry Pi. Even before starting it, you need a USB cable for power, an SD card for the OS, a mouse, a keyboard, an HDMI screen and cable, and finally an Ethernet cable or a Wifi dongle to connect it to the web. Of course, there are kits that you can buy that solve most of these problems. And when all of this is done, you still need to install the right operating system on the SD card so you can actually use the board. And although there are lots of tutorials around, this is not an easy operation for a novice. So the winner of this first section is clear: the Arduino platform !

Connectivity. On this website, I am talking about home automation, and this often requires your boards to be connected to a central computer that acts as the coordinator of your home automation system. Or you want a given board to be this coordinator and therefore it has to be connected to the web. In all cases, you need to build connected projects, so it is necessary that the platform you are using can be easily connected to the web. Well, the Raspberry Pi seems to have an advantage here: it has a built-in Ethernet connection, at least for the most common boards. And you can easily add Wifi connectivity by plugin in a Wifi dongle on one of the USB port. But the Arduino can also be easily connected to the web by using shields: you have an official Ethernet shield which is very well documented on the web, and you can also buy the official Wifi shield which I already presented in a previous article and used for a simple home automation project. Also, recently a GSM shield was released, which opens the door to even more exciting applications with the Arduino platforms. So for the connectivity, I declare a draw between the two platforms.

Computing power. In terms of computing power, the situation seems to be clear as well. Most of the Arduino boards are equipped with an 8-bit microcontroller from ATMEL, usually the ATmega328 which runs at 16 MHz. Of course, it cannot compete with the 700 MHz BCM2835 chip which powers the Raspberry Pi. Even one the latest board from Arduino, the Arduino Due, can’t compete with the Pi with its 84 MHz SAM3X8E chip. So if it is computing power you are looking for, there is one clear winner: the Raspberry Pi platform.

Inputs/Outputs. This is nearly an easy one. The Raspberry Pi has some decent inputs and outputs of course, via the GPIO connector, and supports the I2C and SPI interfaces, but these are all digital connectors. On the other hand, the Arduino Uno board for example has digital inputs/outputs, but also PWM outputs, analog inputs, and I2C and SPI interfaces. Plus, some recents boards like the Arduino Due also have analog outputs, which allows you the play sounds directly from the Arduino board. Of course, you can easily get analog inputs on the Raspberry Pi by using Analog-to-Digital Converters, but that’s external components. So in this section, the clear winner is the Arduino.

Programming. In this section, I want to discuss how easy it is to program the two different platforms. At first, it would seem that the Arduino is the clear winner: the processing language is really easy to use, you can write directly the code on your computer in the Arduino IDE, and there are thousands of tutorials out there about how to program your Arduino. On the Raspberry Pi, it is not that easy: you have to log on the device either with the board itself or via SSH from your computer, then write your code, and run it. But … the Raspberry Pi already supports many languages, like Python. Not only the Python language is really easy to use, but this also opens to door to the use of so many Python libraries that are available on the web, thus extending the range of application of the Raspberry Pi board. For this last reason, I declare a draw again between the two platforms.

Price. Finally, there is the question of the price. The Raspberry Pi board is usually sold at $43, whereas the Arduino Uno board is at $15. If you count all the different accessories you need to make the Raspberry Pi usable, and you compare it to the price of the single USB cable needed to use the Arduino board, the winner is clear: the Arduino platform is much cheaper than the Raspberry Pi.

As predicted, it is impossible to define a winner for all domains. You need to find the right board for your applications. If you have small home automation projects, and you want a cheap and easy solution, you can probably go with all Arduino. But if you want to build a larger project and don’t want any typical computer to be involved, I would suggest to take a Raspberry Pi board to act as the “brain” of your project, as it can be programmed as your own computer and can easily be connected to the web.

So which platform are you using the most ? And why ? I would love to hear about it in the comments section !

  • Pretty fair treatment — but the prices might be off a bit. The Pi can be bought for $25 (Model A) to $35 (Model B). Arduino boards start lower ($15) and can run higher ($58) than the Pi depending on the particular board.

    • Marco Schwartz

      Hi Chris,

      Thanks for the comment ! Indeed there are variations depending on what you want, especially if you want to add some shields on your Arduino to have Ethernet or WiFi. I was just indicating the price for the most sold products like the Arduino Uno and the Pi Model B.

      • Kevin Diffily

        I think the real weakness with the arduino price wise is once you figure in the cost of any wireless board it is pretty expensive. Almost better off using a Pi RevA with a $10 bluetooth or wifi adaptor.

  • Paul

    Your comparison seems to leave out anything to do with home automation itself. What sorts of things might you automate? How many in total?

    If your home automation project is going to last for years then the setup time is mostly irrelevant.

    Let’s see:
    * lighting control
    * HVAC control
    * home security – such as digitally controlled access or alarm circuits (a camera system would probably be separate)
    * motors such as window blinds or garage door

    I’d say the obvious choice is the Raspberry PI, simply because it becomes much much easier to slap a web control interface onto your controller. It would also let you run much more complicated software – for example a learning type algorithm if you want to make your own “NEST” thermostat clone.

    But once you start growing the system beyond the number of pins on your RPI, then why not add some (much cheaper) arduinos? The RPI delegate work to the arduinos by pushing code updates to them, and they in turn can feed data back to the RPI.

    • Marco Schwartz

      Hi Paul,

      Thanks a lot for this interesting comment. I totally agree that for a home automation project that will cover a large home and will last for years, the setup time doesn’t matter, and for this reason the Pi + Arduinos connected to it is an obvious choice. However, many of my readers are also using home automation on a much smaller scale to learn about Arduino & basic electronics, so I wanted to consider all sorts of home automation projects in this article.

      • I’m designing system which will use Pi equivalent as a brain and Arduino for controlling devices and monitoring data. I treat those devices differently, Pi on higher level as Arduino.

        • Gage

          Would anyone happen to know how to use the SiriProxy, Pi, and Arduino working together to open a garage door? The idea would be telling Siri to open the garage door and after the command, the Pi would send a signal to the Arduino which would open the garage. I have the ethernet shield to connect my Arduino to the internet, I just need to know how to connect the signal from my Pi and Arduino in the basement, to the garage door upstairs.

          • Hi Gage, I didn’t know about the SiriProxy, that sounds like a great project ! If I understood correctly, your problem is to make the Arduino and the Raspberry Pi talk together ?

          • Sandy

            This sounds like a great idea! You should post about how to do this if you are able to get it to work.

  • Pingback: Arduino Uno vs Raspberry Pi | Hello World!()

  • Bill R

    Enjoyed your eval – Especially liked that you looked at the base systems but still included a few clues on how to make them both a bit better – the communication piece.
    I for one wanted a basic system so I could slowly gather the bits – hardware and code to complete my project – so I picked the Arduino but I will in the future try to marry the two systems together to complete user interfaces.
    Check out this link http://www.youtube.com/watch?v=0KDCkU73iNE to get the Arduino’s founders pont of view.
    BTW thanks for you efforts

    • Hey Bill, thanks for the comment ! The movie seems really interesting, I will watch it and tweet it to all my readers !

  • Ritesh

    can someone suggest me which board i should use for a quadrotor in which i wanna use Image processing using openCV, gprs connectivity, four brushless motors, some sensors, an IMU etc.
    Plz reply i want i urgently

    • Hi Ritesh,

      I am not an expert with openCV but I guess the Raspberry Pi would be your best option as you would need some processing power for the image processing. An Arduino DUE would also work, but I don’t know if there is a port of OpenCV for this platform.

      • Ritesh

        thanx Marco
        can i work with C++ in Raspberry Pi
        Also do i need some extra converters and connectors to use Gprs, GPS module, brushless motors, IMU or they can be connected directly.

        • Hi,

          Sure you can code in C/C++ on the Raspberry Pi. For your extra modules, you always have to be sure that they are working with the 3.3V output of the Pi. Otherwise you will need some logic converter circuits.

          • Ritesh

            Someone at TI suggested me BeagleBone. He told me that to work on all these requirements Raspberry Pi wouldn’t be able to do it properly and i can’t use these much devices with it.
            How about the Arduino Duo

          • The Arduino Due should give you the power and connectivity you need, but you have to check if you can run OpenCV on it.

  • I prefer the Arduino, made an Android App that controls X10, RF and Infrared using a single Arduino.
    It is called X10Domuino on google play , all device status are kept by the Arduino no matter where you control it from.
    Using a Raspberry PI it would take a lot more time to develop.


  • Sid

    I prefer Arduino board rather than Pi. I am also working on home automation using arduino. Although its pretty basic but this blog is helping a lot. But I dont seem to find tutorial like creating graphs for data obtained from temperature sensor and controlling arduino from Windows Phone 8. Perhaps, Mark will post tutorials regarding this?

    • Hello Sid, thanks for the comment. Using mobile devices along with home automation systems is definitely something I want to write about in the future, stay tuned!

  • Muhammad Omer

    Dear Marcus. i have review comparison of both, but still unconfirm what to do? Please suggest me
    * lighting control
    * home security – such as digitally controlled access or alarm circuits
    * Motion sensor
    Also i want to monitor them on mobile application.