IoT Session Thomas More

51
1 The future is now! JWorks Competence Center IoT Frederick Bousson Kevin Van den Abeele

Transcript of IoT Session Thomas More

1

The future is now!JWorks Competence Center IoT

Frederick Bousson

Kevin Van den Abeele

2

Who are we?

Bringing you innovative Java/JavaScript based solutions with a topteam.

Tech blog: http://ordina-jworks.github.io/Slideshare: http://slideshare.net/OrdinaORAJ/Youtube: https://youtube.com/channel/UCsebfWdqV7LqNNDMDvCESIA

3

What we will talk about today!

● What is IoT● Technologies● Hardware● What is LoRa● LoRa in depth● In depth: using the Raspberry Pi for IoT● A look into the future● Q&A

4

What is IoT

5

What is IoT

“IoT describes a system where items in the physical world, and sensors within or attached to these items, are connected to the Internet via wireless and wired Internet connections.”

- Cisco

The main IoT concepts are:● Low power devices● Gather data● Process data● Improve business

6

What was old is new again

7

What was old is new again

Gathering data with sensors is not new!

Has been done for ages with older tech (PLCs)→ This older tech is not versatile and very expensive

The new IoT ‘movement’ revives this old concept by using low power devices and sensors which are connected via the internet.

With today’s technologies; big data, analytics it is possible to detect trends and make predictions with the data that is gathered.

8

Technologies

9

Technologies

Some of the technologies that are used:

Hardware:● Wireless (2/3/4g, LoRa, Bluetooth LE, RF, …)

○ Point to point, mesh networks, Internet connected,...● Small low power components

○ ARM CPUs (x86 making a comeback)○ Highly efficient radios○ Lipo batteries

● Uncountable hardware platform, a lot of which are Arduino based

Software:● Big data, store and analyse the data● Machine Learning

10

Hardware

11

Hardware

IoT capable devices come in many forms. Below is a list of some of the most used devices:

● Arduino● Raspberry Pi● Intel Edison● Tessel.io● Particle.io● Pinoccio● And many many others!

Making a custom device is also an option, especially when specific functionality is required.

12

Devices - Arduino

13

Devices - Arduino

The Arduino platform is a well known one, used by a lot of people. It is very versatile and easy to get started with. Can be used for a wide range of project including IoT

● Different models (Uno, Due, Mini, Nano, …)● Languages: Arduino (based on C/C++)● Storage: 32KB flash● https://www.arduino.cc/

14

Devices - Raspberry Pi

15

Devices - Raspberry Pi

The Raspberry Pi is also a well known platform. It features a lot more powerful hardware than the Arduino (it is in fact a fully fledged pc).

● Different models: A(+) / B(+) / 2 / Zero / 3● Multiple use cases, digital signage, media player, electronics,...● Languages: C/C++, Java, Javascript, PHP, Ruby, …● Storage: SD card or external storage via USB● https://www.raspberrypi.org/

16

Devices - Intel Edison

17

Devices - Intel Edison

The Intel Edison is a ‘new’ platform that brings the power of the x86 instruction set to the IoT field. More expert knowledge is required to use this in comparison with the Raspberry Pi.

● X86 based CPU, a lot more powerful● Languages: C/C++, Arduino Sketch, Javascript, Python● Storage: 4GB onboard● Integrated WiFi (802.11 a/b/g/n @ 2.4 & 5GHz)● Integrated BLE● http://www.intel.com/content/www/us/en/do-it-yourself/edison.html

18

Devices - Tessel.io

19

Devices - Tessel.io

Tessel 2 is a modular hardware platform that is meant to get your project prototype up and running very quickly. You however lock yourself into their ecosystem!

● Highly modular hardware platform● Languages: Javascript, Python, Rust● Integrated WiFi (802.11 b/g/n @ 2.4 & 5GHz)● https://tessel.io/

20

Devices - Particle.io

21

Devices - Particle.io

Particle.io is a platform that focusses specifically on the IoT field. It is mostly Arduino compatible and therefore is also easy to get started with.

● Different models: Spark Core, Photon (wifi), Electron (2/3g)● From prototyping to full rollout● Ready-to-go device: hardware & software already supplied● Connects to cloud● Manage and control devices using a REST api● Arduino code compatible (mostly)● https://www.particle.io/

22

Devices - Pinoccio

23

Devices - Pinoccio

The pinoccio platform aims to be fully ready out of the box with the inclusion of wifi/2/3g and a streaming REST api.

● Prototyping - Arduino compatible● Languages: ScoutScript, extendable with custom C/C++● Ready-to-go device● Manage devices using the cloud infrastructure● Program unit through web app or arduino IDE● https://www.crowdsupply.com/pinoccio/mesh-sensor-network

24

What is LoRa

25

What is LoRa

26

LoRa in depth

27

LoRa in depth

28

LoRa in depth

Base station

CO2, PIR, Humidity, Luminance, Temperature, Pressure, …

The sky’s the limit when it comes to sensors!

Sensor Types

29

LoRa Alliance

https://www.lora-alliance.org

30

LoRa in Belgium

31

LoRa in Belgium

Proximus has launched its LoRa Beta program in Belgium● Limited coverage (10 cities)● Preview access to SEaaS (Sensor as a Service) API● 6 months free access to the network● http://www.proximus.be/nl/id_cl_iot/grote-bedrijven-en-

overheden/oplossingen/internet-en-netwerken/internet-of-things.html

Wireless Things network in Belgium● Wider coverage than Proximus● Wide support for LoRaWan devices● http://wirelessthings.be/nl/index.php

32

LoRa Devkit (Proximus)

33

LoRa Devkit (Proximus)

The devkit: http://www.allthingstalk.com/lora-rapid-development-kit

● IoT Computer - SODAQ Arduino● Grove modular connectors ● Bee socket (Radio module)● Micro SD slot● RTC

The included LoRa radio is pre-configured for the ProximusIoT network and has a range of up to 15 km.

34

Java on the Raspberry Pi

35

Java on the Raspberry Pi

Java runs pretty well on the Raspberry Pi, especially on model 2.The Raspbian OS has Java 1.8 installed by default.

Capabilities:● Most normal jars will run just fine (slower and memory limited)● Can run complex user interfaces when using JavaFx

○ Has full hardware acceleration for UI rendering○ Forget Swing and AWT!○ The Devoxx screens were running on a Pi with JavaFx

Info & download: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

36

Java and IO pins

37

Java and IO pins

Model A and B:● 26 pins● https://www.raspberrypi.org/documentation/usage/gpio/● 17 of 26 pins are for GPIO

Model A+, B+, Zero and 2:● 40 pins● https://www.raspberrypi.org/documentation/usage/gpio-plus-and-raspi2/● 26 of 40 pins are for GPIO

These GPIO pins can be used to collect data from sensors, to drive servos, LEDs and other peripherals: http://wiringpi.com/pins/

38

Java and IO pins… Continued

39

Java and IO pins… Continued

To use the GPIO pins from within Java an extra library is needed, as there is no native support within Java.

This is where PI4J comes in. It is a easy to use library to control the GPIO pins.

Installation is easy and is documented on http://pi4j.com/install.htmlUsage is also not that difficult: http://pi4j.com/usage.html

40

Alternatives?

41

Running Node.js

Node.js is built on Chrome's V8 JavaScript engine and uses an event-driven, non-blocking I/O model.

● Easy to setup and use● Uses ‘plain’ javascript● Requires no compilation● Code is portable (like java)● Can also make use of the Raspberry Pi’s I/O

○ https://www.npmjs.com/package/pi-gpio

More information: https://nodejs.org/en/

42

Example WeatherGenie

WeatherGenie is a node.js application that runs on the Raspberry Pi 2.

Website: https://www.weathergenie.be/Sources: https://www.github.com/beele/WeatherGenie

43

Example WeatherGenie

44

Example WeatherGenie

The data processing is done on a separate node worker instance. This way the application remains responsive while it is working on the new data.

Weather data comes from:● openweathermap.com

○ current and predicted weather conditions● buienradar.be

○ Rain data is extracted from animated gifs○ lat/lon can be converted to rain intensity

● blitzortung.org○ Lightning data is obtained through

a websocket connection

45

Suit and tie

46

Big business

People think there is no business incentive for IoT.

“Toys, fun and giggles”- Random business type person

They are wrong! IoT can have a significant impact for businesses.● Status and product tracking● Acquire and analyze data● Adapt to changing conditions➔ Reducing costs – optimizing workflow – greater control

47

Big business… Continued

There are a lot of viable business cases, a few examples:● Enhanced tracking of packets/parcels● Workforce tracking (cars/route optimizations)● Early warning systems● Parking lot detection systems● Medical tracking (with internal or external sensors)● …

IoT and big data go hand in hand. But an often overlooked aspect is security. If we start tracking everything we must also be certain that all this data is secure. Privacy is another concern that must be kept in mind when tracking objects/people.

48

A look into the future

49

The IoT world is currently experiencing a surge of new and improved technologies. The future will bring new and exciting opportunities to explore previously unexplored areas.

● Better battery technology/lower power consumption● A better IoT network (improved WiFi/LoRa/Bluetooth/gsm/cdma/…)● Better and more sensors● Better data analyzing techniques● Smart -everything-

○ Watches○ Homes○ Cars○ ...

A look into the future

50

Questions?!

51

Thank you for attending!