A presentation of open hardware and software that powers the Internet of Things. From hardware like the Raspberry Pi, Beaglebone to open source software like NodeJS, databases like MongoDB and AngularJS.
4. IoT Architecture
We begin by reviewing a few IOT architectures for different use cases. Each of these have sensors that collect data.
This data is then relayed using different protocols to a data collector/ gateway. The gateway also functions as a protocol
translator. The data is now relayed over another set of internet protocols to the cloud data receiver/ gateway.
5. IoT Architecture
The data received at the gateway is first logged, then processed, aggregated and stored. In this use case we have a set
of ATM machines where the devices (push buttons, cash dispenser, display) are integrated with the gateway. The
gateway supports voice, dialup and TCP/IP.
6. IoT Architecture
The data once stored is now available for post-processing. This could include a business application layer, real-time
analytics and batch analytics. The user interface allows viewing real-time, historical and analytics data.
8. IoT Gateway
So an IOT platform has basically three building blocks
1. Things
2. Gateway
3. Network and Cloud
We now focus IOT gateways
9. IoT Gateway
This is what a typical IoT gateway looks like. It has interfaces like RS485, USB, Zigbee etc for things. It also has cloud
interfaces like Ethernet, Wifi, 3G etc. NodeX1 is one such gateway.
11. IoT Gateway Building Blocks
Beaglebone Back Raspberry Pi Intel Galileo
The heart of a cloud platform could use open source boards like the Raspberry Pi, Beaglebone Black,
Intel Galileo etc. These are usual Linux boards that run different flavours of Linux like Raspbian on the
Raspberry Pi, Angstrom on the Beaglebone etc. These boards interface with devices on the one hand
and the cloud platform on the other.
13. Sensor Interfaces
Xbee Mesh network
RS-485 to Serial
Wifly – P-to-P
Raspberry Pi
Let’s take a look at the device interfaces. So for example, devices could interface with the Raspberry Pi over RS-485,
Xbee and Wifly. An RS-485 network allows a multi-dropped serial wired network allowing a host of devices to connect.
The Xbee creates a wireless mesh network allowing large number of wireless devices to connect. The Wifly allows
creating a point to point wifi interface. These are open source interfaces and allows creation of a large sensor network.
We could also use the GPIO on the Raspberry Pi for physical inputs.
15. Network Interfaces
Wi-Fi dongle
GPRS shield
Raspberry Pi
The next interface we look at is the cloud interface. This is achieved using a simple WiFi dongle or a GPRS shield. The
WiFi dongle interfaces over USB and the GPRS shield uses the serial interface. Also available is the ethernet port
which could be used for interface.
17. Cloud Data Acquisition
Now lets take a look at data acquisition on the Cloud platform. I’d recommend use of a very good open-source
implementation called Ponte, developed by Matteo Collina (@matteocollina). It supports three of the most widely
used protocols for gateway interfaces, namely HTTP, MQTT and COAP. It support multiple databases like
MongoDB, Redis and LevelDB. Also has an inbuilt pub-sub mechanism for publishing and subscribing to other
devices over multiple protocols.
19. Cloud View
The Cloud view requires connecting to a datastore, web server/ framework for handling requests and a robust client-side
library. I’d recommend using the open-source MEAN stack (MongoDB, Expressjs, AngularJS and Node.js)