MachinePulse at the November Open Hardware Meetup, Mumbai 2014

20
November 23, 2014 Open Source Hardware and Software for the Internet of Things November Open Hardware Meetup IIT-Bombay

description

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.

Transcript of MachinePulse at the November Open Hardware Meetup, Mumbai 2014

Page 1: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

November 23, 2014

Open Source Hardware and Software for the Internet of Things November Open Hardware MeetupIIT-Bombay

Page 2: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

• IOT Architecture

• IOT Gateway

• Gateway Building Blocks

• Sensor Interfaces

• Network Interfaces

• Cloud Data Acquisition

• User Interfaces

Content

Page 3: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

IoT Architecture

Page 4: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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.

IoT Architecture

Page 5: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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.

IoT Architecture

Page 6: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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.

IoT Architecture

Page 7: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

IoT Gateway

Page 8: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

So an IOT platform has basically three building blocks

1. Things

2. Gateway

3. Network and Cloud

We now focus IOT gateways

IoT Gateway

Page 9: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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.

IoT Gateway

Page 10: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

IoT Gateway Building Blocks

Page 11: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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.

IoT Gateway Building Blocks

Beaglebone Back Raspberry Pi Intel Galileo

Page 12: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

IoT Sensor Interfaces

Page 13: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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.

Sensor Interfaces

Xbee Mesh network

Wifly – P-to-P

Raspberry Pi

RS-485 to Serial

Page 14: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

IoT Network Interfaces

Page 15: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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.

Network Interfaces

GPRS shield

Wi-Fi dongle

Raspberry Pi

Page 16: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

Cloud Data Acquisition

Page 17: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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.

Page 18: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

User Interfaces

Page 19: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

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)

Page 20: MachinePulse at the November Open Hardware Meetup, Mumbai 2014

Thank You.

Anand George

Software Developer, MachinePulseMumbai

@anandgeor @machine_pulse