- April 27, 2017
- Posted by: Mahesh Kulkarni
- Categories: Blogs, IoT
Choosing an IoT platform is a pre-requisite for beginning the development of an end-to-end IoT solution. Let us take a look at Raspberry Pi and Arduino – the most popular open firmware and hardware platforms.
Arduino is a microcontroller board that is used for dedicated applications; for example, actuating small devices like motors, sensors, and lights. On the other hand, Raspberry Pi has a microcontroller, HDMI ports, and RAM. Which means that; with basic coding knowledge, you can configure an OS on Raspberry Pi and use it as a media streaming device, running a web server, or VPNs. So, if you are looking for an M2M interface, Arduino is what you need. But, if your end use involves a human interface then Raspberry Pi would serve the purpose.
Which other crucial metrics should you consider before choosing between Arduino and Raspberry Pi?
- Power Requirement
A typical Arduino uses an ATmega328 chip with 2KB RAM, 32 KB flash memory, and 1 KB EEPROM. The power consumption is thus fractional – you can use a 9V battery or just plug it into your computer. The power drawn can be further reduced by decreasing the Vcc voltage, reducing a clock source, turning off clocks to peripherals, or only triggering when an interrupt fires. Also, it does not require a shut-down process, while the code runs immediately when Arduino is plugged-in.
Raspberry Pi, as explained earlier, has a full-fledged computing system. It usually has a Linux OS, more than 512 RAM, 32 GB SD Card, USB and HDMI ports. It also requires a proper shut down process. As you can see, Raspberry Pi is like a low performance PC hardware system running on Linux; but comparatively lower power consumption.
- Network connectivity
Raspberry Pi has a built-in Ethernet port as well as USB ports for connecting WiFi dongles. On the other hand, Arduino has no built-in network connectivity and requires additional hardware.
- Sensor connectivity
Arduino has 14 digital and 6 analog I/O pins. It can thus be interfaced with sensors that measure pulse-width modulation, temperature, and similar Vcc to analog changes. Also, it has a scalable hardware design.
Raspeberry Pi has 8 I/O pins which are all digital. Chips like MCP3008 can be used for interfacing a Raspberry Pi with an analog input.
- Development Languages
Arduino does not have an OS. So, coding and prototyping is done in C/C++ with the Arduino IDE. Raspberry Pi runs on an OS called Raspbian based on Debian Linux which lets you code in C/C++, Java, Python, .NET, PHP, NodeJS etc.