Arduino vs Raspberry Pi vs BeagleBone - IOT's Differences




I am very excited to share my knowledge on IOT through this platform. After all, in sharing and receiving knowledge lies the secret recipe of success in life. IOT is definitely huge and I am just trying to cover it from an IT architect’s perspective. I encourage you to refer my earlier articles to get an understanding of what we are going to discuss in this article.
Let’s take a look at the device layer
In this article, we will take a look at the hardware devices that form the bottom layer of your IOT stack. This can be termed as the “Devices Layer” and this is the one which interacts with the real environment and picks up data.
I would logically break them into the following categories
  1. Sensors and Actuators
  2. Microprocessor chip
  3. The circuit board that houses the microprocessor chip
  4. Communication methodology to the network
How sensors and actuators communicate with internet?
Now let us try to put them in a sequence. Sensors collect data and this data needs to be held in a temporary memory before being transmitted to the cloud or internet. This is one side of the communication that is from Device to the cloud.
On the other side, there can be instructions from the cloud (your application) to the actuator or sensor to perform an action. This is the communication from the Cloud to the device. Your sensor keeps pumping data to your application, which in turn builds intelligence with that data and thereby triggering some actions based on the intuition. This is the essence of IOT.
That’s great. Now, we know that the data from the sensors need to hit the internet and the data or instructions from the internet need to hit the actuators or sensors. I assume that most of us are comfortable with post data collection events.
The need for circuit boards with embedded microprocessor
First of all, we need to have a source to collect data to initiate the entire process and we know that sensors do this job. But, How and where will you house the sensors? and more importantly onboard them into this IOT chain? Where will you plug the sensors and actuators and make them connect to the internet?
You need a circuit board, right? Yes, that is where Arduino, Raspberry Pi and BeagleBone hardware devices come into the picture. These are all single board computers with varying processing power and capabilities. There is no strict rule to use them for specific situations, but there are a few recommendations on how these can be used.
Arduino: This is the most basic yet highly extensible device that you can use for IOT. Simply put, it is a circuit assembly with a microprocess chip embedded onto it. This board has many input and output slots along with a USB slot as well. This utilizes low power and can run only one process at a time. It also has a low processing speed.
This can be connected to a computer and programmed, but lacks a GUI based IDE. You must be ready to code in a MS-DOS or shell type of an environment. The greatest advantage with Arduino is its flexibility to extend, low cost of about 10 USD onwards and more importantly a huge support base that is available over the internet. This is suitable for IOT applications that require data to be collected from a large number of sensors and trigger other actions.
You can create a mesh network with Arduino boards and connect them to a powerful router that will link them to the internet. This would be your go to device if you want to put up more number of sensors in a short range distance.
Note: There are various types of Arduino boards and some come with GUI based IDE for development. They also have various types of modules that can be placed onto the board through sheaths. A module packages a sensor or a group of sensors. You can scan the market for these readymade modules for various use cases.
Raspberry Pi : This is a big brother to Arduino and can be considered as a mini desktop computer tht can be purchased for around 35 USD. This has 4 USB slots, an ethernet port, HDMI port, Camera and LCD interfacing ports. This is pretty dumb on its own, but when you insert the SD card onto it, it receives its intelligence. The SD card has the powerful Linux OS and the memory.
Raspberry Pi has an excellent programming IDE with GUI. It can be connected to a laptop or PC and can be programmed. The disadvantage with Arduino is with its limited support for sensors and actuators as it has very limited interfacing mechanism with external sensors and actuators.
You can use Raspberry Pi for requirements that need high level of direct connectivity with the internet, like your standalone single sensor that needs to update certain readings over the internet to your data collection application.
BeagleBone : This is pretty expensive at around 75 USD but includes the power of Raspberry Pi and the flexibility of Arduino. It comes embedded with Linux OS and a memory. It has a pretty fast processing cycle and comes with lots of input and output pins for connecting external sensors and actuators. Its biggest limitation is that of its single USB port.
BeagleBone can be used for situations where you want a Raspberry Pi but are ready to shell out a few more money! This is extensively used in industrial IOT where huge amount of data need to be read and transmitted at high speed.
Here is a comparison of the three

Choosing a Platform

So why would you choose one platform over the other?
For the beginner, we recommend the Arduino. It has the largest community of users, the most tutorials and sample projects and is simplest to interface to external hardware. There are more ways to learn about Arduino for beginners than you can shake a soldering iron at.
The boards are designed to easily interface with a wide variety of sensors and effectors without and external circuitry, so you don’t need to know much about electronics at all to get started. If you haven’t played with these before, get one (they’re inexpensive) and try it. It can be a really great experience.
For applications minimizing size we recommend the Arduino. All three devices are similar in size, although the Raspberry Pi SD Memory card sticks out a bit making it slightly larger overall.  There are so many different flavors of Arduinos it is ridiculous.  Basically, what makes an Arduino an Arduino is a particular microprocessor and a little bit of software.  It uses a very small, inexpensive, embedded system on a chip microprocessor from a company named Atmel.  For advanced projects that need to be really small, you can buy these chips for a dollar or two and put the Arduino bootloader (a program that makes the Arduino give the Arduino its basic functions) on the chip and viola, you have an Arduino.  We have done this for a few projects and it can make for a very tiny little gadget when you don’t even have a circuit board.
The BeagleBoard has a larger and more powerful big brother, the BeagleBoard, so if you may need to scale up, the BeagleBone is a good choice.
For applications that connect to the internet we recommend the BeagleBone or Raspberry Pi.Both these devices are real linux computers. They both include Ethernet interfaces and USB, so you can connect them to the network relatively painlessly. Via USB, you can connect them to wireless modules that let then connect to the internet without wires. Also, the Linux operating system has many components built-in that provide rather advanced networking capabilities.
The Arduino supports plug-in peripherals called “shields” that include the ability to connect to Ethernet, but the access to the networking functions is fairly limited. Plus by the time you buy the Ethernet shield you might as well just get one of the more advanced boards.
For applications that interface to external sensors we recommend the Arduino and the BeagleBone. The Arduino makes it the easiest of any of the boards to interface to external sensors. There are different versions of the board that operate at different voltages (3.3v vs 5v) to make it easier to connect to external devices. The BeagleBone only operates with 3.3v devices and will require a resistor or other external circuitry to interface to some devices. Both the Arduino and BeagleBone have analog to digital interfaces that let you easily connect components that output varying voltages. The BeagleBone has slightly higher resolution analog to digital converters which can be useful for more demanding applications.
With that said, it is important note that many things that you would want to connect to, including little sensors, have digital interfaces called I2C or SPI. All three boards support these types of devices and can talk to them fairly easily.
For battery powered applications, we recommend the Arduino.  The Arduino uses the least power of the bunch, although, in terms of computer power per watt, the BeagleBone is the clear winner.  However, the Arduino has an edge here since it can work with a wide range of input voltages.  This allows it to run from a variety of different types of batteries and keep working as the battery loses juice. The Arduino uses the least power of the bunch, although, in terms of computer power per watt, the BeagleBone is the clear winner.  However, the Arduino has an edge here since it can work with a wide range of input voltages.  This allows it to run from a variety of different types of batteries and keep working as the battery loses juice.
For applications that use a graphical user interface, we recommend the Raspberry Pi.  The Raspberry Pi is really in a category by itself because it has an HDMI output.   That means you can plug in a mouse and keyboard and connect it directly to your TV.  At that point you have a fully functional computer with graphical user interface.  This makes the Raspberry Pi ideal for use as a low cost web browsing device of for creating kiosk-type projects where you may have a display that people interact with.  In fact, just for fun, we installed the Arduino development tools on the Raspberry Pi and we were able to write a small program and download it to an Arduino from the Raspberry Pi.  It’s not a very fast computer, but it really is a computer.

Now folks, get your hand dirty by buying one or all of these devices, if your wallet supports, try connecting it to your laptop or PC and enjoy the show.
I recommend to start with a basic sensor like temperature sensor. You can connect it with one of these devices, and plug the device to the computer. You need to use a programming language to read and manipulate data from the sensors. Pretty simple, but very powerful!

Post a Comment

Previous Post Next Post