The IoT concepts imply a creation of network of various devices interacting with each other and with their environment. Interoperability and connectivity wouldn’t be possible without hardware platforms that help developers solve issues such as building autonomous interactive objects or completing common infrastructure related tasks.
Let’s go through the most popular IoT platforms and see how they work and benefit IoT software developers.
Arduino
The Arduino platform was created back in 2005 by the Arduino company and allows for open source prototyping and flexible software development and back-end deployment while providing significant ease of use to developers, even those with very little experience building IoT solutions.
Arduino is sensible to literally every environment by receiving source data from different external sensors and is capable to interact with other control elements over various devices, engines and drives. Arduino has a built-in micro controller that operates on the Arduino software.
Projects based on this platform can be both standalone and collaborative, i.e. realized with use of external tools and plugins. The integrated development environment (IDE) is composed of the open source code and works equally good with Мac, Linux and Windows OS. Based on a processing programming language, the Arduino platform seems to be created for new users and for experiments. The processing language is dedicated to visualizing and building interactive apps using animation and Java Virtual Machine (JVM) platform.
Let's note that this programming language was developed for the purpose of learning basic computer programming in a visual context. It is an absolutely free project available to every interested person. Normally, all the apps are programmed in C/C++, and are wrapped with avr-gcc (WinAVR in OS Windows).
Arduino offers analogue-to-digital input with a possibility of connecting light, temperature or sound sensor modules. Such sensors as SPI or I2C may also be used to cover up to 99% of these apps’ market.
Arduino is a microcontroller (generally it is the 8-bit ATmega microcontroller), but not a mini-computer, which makes Arduino somehow limited in its features for advanced users. Arduino provides an excellent interactivity with external devices and offers a wide range of user manuals, project samples as well as a large community of users to learn from / share knowledge with.
Raspberry Pi
Raspberry Pi is a mono-board computing platform that's as tiny as a credit card. Initially it was developed for computer science education with later on progress to wider functions.
Since the inception of Raspberry, the company sold out more than 8 million items. Raspberry Pi 3 is the latest version and it is the first 64-bit computing board that also comes with built-in Wi-Fi and Bluetooth functions. According to Raspberry Pi Foundation CEO Eben Upton, "it's been a year in the making". The Pi3 version is replaced with a quad-core 64-bit 1.2 GHz ARM Cortex A53 chip, 1GB of RAM, VideoCore IV graphics, Bluetooth 4.1 and 802.11n Wi-Fi. The developers claim the new architecture delivers an average 50% performance improvement over the Pi 2.
Another peculiarity of Raspberry Pi is the GPIO (General Purpose Input-Output), which is a low-level interface of self-operated control by input-output ports. Raspberry has it as a 40-pin connector.
Raspberry Pi uses Linux as its default operating system (OS). It’s also fully Android compatible. Using the system on Windows OS is enabled through any virtualization system like XenDesktop. If you want to develop an application for Raspberry Pi on your computer, it is necessary to download a specific toolset comprised of ARM-compiler and some libraries complied down to ARM-target platform like glibc.
Intel Galileo
Frequently referred to as a "reliable ally" of Arduino, Intel Galileo is a highly integrated board that's just a little larger than a credit card. The microcomputer is equipped with Intel® Quark™ SoC X1000, operating at speeds of up to 400 MHz, a motherboard with up to 8 Mb of flash memory and 256 RAM. The device also has a VLAN port available with the 100Mb capacity, a microSD card and mini PCI express slots, RS 232, USB 2.0 ports with a possibility to connect up to 128 devices. This platform works with a very light distribution of Linux and a standard environment of Arduino. Intel Galileo has such features as its own USB controller and data exchange without SPI components. Another cool feature is that there is an expansion slot for PCI Express for Wi-Fi, Bluetooth and 3G installation. Intel Galileo supports the Arduino IDE.
It’s worth mentioning that such a microprocessor as Galileo can be used for a wide variety of functions; among them are robotic engineering and IoT technologies. Intel has released two versions of Galileo - Intel Galileo and Galileo Gen 2 - in order to expand its own solutions.
Any software engineer working on complex and robust software development projects has to get acquainted with this platform. Galileo gives an excellent opportunity to develop your own IoT applications (DIY IoT).
Tibbo Project System
The Taiwan company Tibbo Technology Inc. first announced its Tibbo Project System (ТРS) in 2014. This platform refers to a new product lineup aimed at designing applications for processes automation. The core parts of the platform are Tibbo Project PCB (TPP), input/output plugs (Tibbits) and Tibbo Project Box (TPB).
The Tibbo Project PCB (TPP) is a programmable and highly configurable automation platform with all necessary elements for quick start, a microchip for reset button, a programming chip, processor controlled strapping, programming MD button, LED and audio indicator. An additional slot for external input/output modules is available. Tibbo applications are coded in unique Tibbo IDE software (TIDE) that's based on two programming languages - Tibbo Basic and Tibbo C. Both programming languages are strongly typed and object-oriented.
Input/output plugs called Tibbits (or Tibbo Bits) are the compact modules with preset functions that include DAC, input, ADC, PWM, relay, RS232 port, Wiegand, GPRS modem, PIC processor, etc. These modules were initially created for the TPS system and later on appeared to be appropriate in any system. TPP-board installation is easy and requires no soldering and other difficulties. The assembled TPP-board is easy to install into the TPB.
It's obvious that such kind of commercial projects need to be boxed, however not every company is able to afford that, especially when speaking about a small-size production. Tibbo engineers invented a very stylish TPB box, which is another advantage besides robust functions.
Tibbo Project System is a rapidly growing project resulting in new additional accessories like anti-vibration plates, Wi-Fi expansion modules, power supply units, different plugs, etc.
Cloud-based IoT Platforms
In addition to standard IoT platforms, Cloud-based platforms are taking their way, which provides a convenient “on demand” network access to a set of configurable computing resources available to a specific group of users for data storage, servers, applications and/or services, and networks.
There are various platform models for work with clients through Cloud; the most commonly used ones are Cloud Software as a Service (SaaS), Cloud Platform as a Service (PaaS), Cloud Infrastructure as a Service (IaaS) and others. A user can choose any of these models with respect to demands of his business.
The most popular cloud services available for IoT development include, but aren't limited to: Amazon S3, Microsoft Azure, Google App Engine, Salesforce1 Platform, Heroku, etc.
Public Cloud-based platform AWS IoT (Amazon Web Service) is fully automatic. The strong point of the AWS is a safe and reliable work with a huge amount of messages by directing them to the end points of AWS and other devices. AWS provides a complex automation of connected devices, monitoring and data processing due to the embedded services like Amazon S3, Amazon Machine Learning, AWS Lambda, and Amazon DynamoDB.
Amazon S3 (Amazon Simple Storage Service) stands out as a safe and useful tool for data storage. It can be used to store and retrieve any amount of data without paying for the related tools but only for those you really used. It uses the standard programming interface and consists of different models of Cloud storages for solving particular issues. Amazon S3 can be used and managed both independently and in combination with other services such as AWS and Amazon Elastic Compute Cloud (Amazon EC2).
The Microsoft (Windows) Azure Cloud-based platform is worth a special focus. This platform implements data storage and data processing services just like Amazon S3 does. PaaS and IaaS are the two basic cloud models used in Windows Azure that ensures the global network of Microsoft data-centers.
Microsoft IoT Pack for Raspberry Pi 2
Microsoft has just announced a new release of Starter Kit called Internet of Things Pack for Raspberry Pi 2.
It is designed specifically for IoT developers and uses hardware manufactured by Adafruit.
Developers can find the following in the Kit: Adafruit Raspberry Pi box, a breadboard, set of wires, Wi-Fi module, a switching power supply unit, temperature and humidity sensors, a color sensor, and a serial port. And all of those are integrated with Windows 10 IoT Core.
And what other hardware platforms do you use for your IoT application development?