Arduino is one a well known open source microcontroller systems, software platform and community of people that are interested in developing their own (DIY) projects. A lot of people think that this platform is used only by hobbyists and amateurs when starting their electronics journey, to blink LEDs or control motors, but actually Arduino is nowadays used to build a lot more professional projects, build 3D printers, build drones and especially it is used more and more in IoT while it’s gaining such a momentum.
Regarding IoT the biggest benefit is rapid prototyping of projects from the initial idea to the fully functional MVP (Minimum Viable Project) or PoC (Proof of Concept) that can be presented to potential customers or investors. Someone beginning its IoT journey can always buy some off the shelf sensor or device that does exactly what someone needs, but in most other cases a specificly tailored solution needs to be developed with a development board like Arduino.
When developing IoT projects apart from boards and connectivity options a major part of IoT stack is an IoT platform that should be used. Widely used open source IoT platforms are Kaa, Carriots, Thingsboard etc. Widely used enterprise level platforms are Amazon AWS IoT, Microsoft Azure IoT, Goole Cloud IoT Core and IBM Watson IoT. One of the very cool IoT products for rapid mobile application prototyping is Blynk which supports Arduino and by using it you can control your Arduino boards with your phone quite easily.
One of the biggest benefits of using Arduino platform is its huge community, a lot of ready to be used solutions and good support, platforms simplicity and low cost. Good thing about the Arduino IDE is the fact that more serious IDEs like Atmel Studio can import Arduino code so project can start small or medium and then migrate to ASICs or some other more professional solution where a better optimization and PIN control is needed.
It’s worth noting that there have been two major events that reduced Arduino popularity, one is the rift between the Arduino founders that has fortunately been settled in 2016. Other major event is discontinuation of Arduino x86 platforms from Intel which decreased the processing power for Arduino boards. However, a lot of new boards aimed directly at IoT projects has been developed recently bearing in mind that for these low powered and low cost devices, 8-bit AVR or 32-bit ARM microcontrollers are more than powerful enough.
Hardware specification and options
Arduino is open source so anyone can manufacture Arduino compatible boards or software. This is one of the reasons why there are so many variations and Arduino HW or SW types. This is an extensive list of Arduino compatible boards and systems.
There are several Arduino boards designs each using different microprocessors, having different number of digital or analog input/output (I/O) pins and different embedded connectivity options. Most of the boards feature serial communications interface including USB and some feature also the Ethernet interface. Arduino Integrated Development Environment (IDE) is used to write, build and debug code and regarding code writing, programming language dialect of features from C and C++ is used. Basically if you know C or C++ you can write code or the “sketch” in Arduino IDE. Since there are many already written projects and extensive code libraries it’s always possible to do something with little code change/tweaking or even no code writing.
Many Arduino boards consist of Atmel 8-bit AVR microcontroller, 5V power supply and run at 8 MHz, although some use more powerful 32-bit ARM microcontrollers. Majority of boards (like the widely used UNO) provide 14 digital I/O pins and all of them can be further expanded with the so called “shields” which are little boards that give additional functionality (connectivity etc.).
Arduino boards that are aimed specifically at IoT are mostly YUN, MKR, Industrial 101, and Mini variatns. The full list is shown on this picture taken from Arduino site
There is also one Arduino compatible board that is used a lot due to its very low price but still very solid quality, and that is ESP8266 from Espressif . Biggest advantages of ESP8266 are small form factor, low price, support of Arduino IDE and built-in WiFi chip.
Other development boards
Apart from the Arduino, similar but more powerful and also very famous and widely used development board is Raspberry pi . Raspberry Pi, especially its latest 3rd iteration is much more powerful than Arduino since it uses a real microprocessor rated at 1,4 GHz, it has 1 GB of RAM, supports Gigabit Ethernet and 2.4/5GHz WiFi, it has HDMI, 2x USB 2.0 ports and 40 GPIO pins for development and sensing/control.
One popular boards is also Beaglebone with several options. It uses Linux as an operating system and it also includes a real microprocessor with lots of RAM so quite similar to Raspberry pi2/3. Another popular boards are UDOO boards, out of which, some are compatible with Arduino. One very small development board aimed at IoT projects is also Particle photon that has 32 bit 120 MHz ARM Cortex chip, 18 GPIO, support FreeRTOS is low power and has a built in WiFi module. There are also many other IoT prototyping boards so I would just name a few like Edison and Galileo from Intel and also Samsung Artik boards.
Arduino is a great idea and a great platform that is very useful for rapid IoT prototyping, it’s very simple and intuitive to be used and the components are now very cheap to buy. Since Arduino company has invested in new and quite powerful IoT boards not only small but also medium scale projects can now be developed using Arduino hardware and software.
For any suggestions, comments and questions please contact me via nikola@simpleIoT.eu.