Tags:
create new tag
view all tags
Start Presentation

Slide 1: What is IoT?

An Introduction

Uli Raich (uli.raich@gmail.com)

Formally CERN, Geneva, Switzerland

Slide 2: What is IoT?

Answer: IoT is the Internet of Things
But… what is the Internet of Things?

I hate buzz-words!

Everybody talks about IoT but who does deeply know,

what is hidden behind the acronym.

Who is able to set up an IoT by himself?

Slide 3: The child and the elephant

Child: “What is an elephant”

Me: An elephant is a grey animal!

Result:

  • The child has got an answers and does not disturb me any longer

  • The child thinks that I am clever, because he thinks

    I know what an elephant is (which is not true!)

  • The child does not know much more than before asking
child.png elephant.png

Slide 4: What should I have done?

  • Learned about elephants myself

  • Told him everything about elephants I know myself:

    • Where and how they live

    • What they eat

    • How they behave …

  • Gone to the zoo (in Europe) or a nature reserve (here in East Africa)

    to show him a live elephant.

Slide 5: What is the “I” in IoT ?

The “I” stands for Internet. This means:

We need a processor (IoT node) that can connect to the Internet.

It must be powerful enough to run Internet protocols and

it needs an interface to the Internet.

  • Ethernet interface

  • WiFi interface

  • GSM
  • … connection to a gateway with access to the internet

Slide 6: Standard way to access the Internet

Usually the Internet is used by humans

Typical applications are

  • WEB browsing

  • Email

  • Social media

  • Telephone and chats
Human to machine or human to human communication.

!IoT: “Things” communicate also without human intervention.

Slide 7: Things, Sensors, Actuators

  • Coffee machines, dish washer, washing machine, …
  • Burglar alarm system
  • Intelligent farming
  • Weather station
  • Scientific measurements
  • Industrial factory control
  • Car electronics, ignition system, ABS,…
  • You name it!
The processor reads the state of “things” though sensors and controls them through actuators.

Our processor needs interfaces to these sensors and actuators.

Slide 8: The IoT system

We need a system with a number of processors

that read out sensors and/or control actuators

These processors communicate with each other

over the Internet with or without human intervention.

Design decisions:

  • Which processors?
  • Which communication protocol
  • Which GUI to be able to see what is going on?
  • Which programming language?

Slide 9: The Raspberry Pi

The Raspberry Pi is a small computer powerful enough to run a full blown Linux operating system:

A quad core 1.2 GHz Broadcom 64 bit ARM CPU

  • 1 Gbytes of Ram
  • Ethernet and wireless networks
  • 4 USB2 ports
  • Micro SD connector
  • 40 pin extended GPIO connector with
  • GPIO pins
  • SPI and I2C bus interface
  • Cost ~ 80-100 US $
  • No ADC
rpiBoard.png

Slide 10: Arduino + WiFi shield

arduinoSpecs.png

mega.png wifishield.png
Total cost: ~12-15 US $

Slide 11: The ideal IoT solution?

ESP8266 or ESP32 processor board

ESP8266 specs:

  • WiFi on chip
  • 10 bit ADC on chip
  • 80 kByte RAM
  • 4 Mbyte flash
  • Can run a Micropython interpreter
  • Can be programmed through the Arduino IDE
  • SPI, I2C interfaces
  • 11 GPIO pins
  • Many sensor and actuator boards
  • Can be plugged together without bread board or soldering
  • Cost of processor board: ~ 2.5 US$

ESP32 is even more powerful
Cost: ~ 4.5 US$
shields.png

Slide 12: Communication

MQTT (Message Queuing Telemetry Transport: a publish-subscribe based

Message protocol running of top of TCP.

A processor can subscribe to messages of a certain “topic” and/or it can push its

results on a certain topic

mqttPostOfffice.png

Slide 13: MQTT Demo

mqttDemo.png

Slide 14: Programming language

  • Only the data recovered from the communication protocol is seen
  • Any programming language will do
  • Cayenne/MQTT libraries are available for

    • C, C++

    • Python

    • Java

    • Java Script

Slide 15: Prototype Board Hardware: Photo-Resistor and LED

The photo resistor and the 1 kΩ resistor form a voltage divider

The LED can be switched on by program and changes the light
Intensity seen by the photo resistor

proto.png photoresistorSchema.png

Slide 16: Sensor Readout example: Photo-Resistor and LED

The ADC and GPIO driver classes

are already available in micropython.

This makes readout a child’s game.

protoDriver.png
ESP8266 and ESP32 are powerful enough to run a Micropython interpreter -> Let’s use Python

Slide 17: Cayenne

  • Cayenne supplies the MQTT broker
  • It uses a dedicated format for “topic” and “payload”
  • We hide these details in a “Cayenne” Python class
  • Cayenne supplies widgets for display and control

Slide 18: Cayenne definitions

cayenneDefs.png

Slide 19: Publish to Cayenne

cayennePublish.png

Slide 20: Results on Cayenne

cayenneProtoResult.png

Slide 21: ... or the history plot

cayenneProtoHistory.png

Slide 22: Do you want to know more?

Unfortunately you missed the workshop on IoT at this conference

But you may have a look at its Twiki server

http://afnog.iotworkshop.africa

… or have a beer with me at the bar!

-- Uli Raich - 2019-05-27

Comments

Topic attachments
I Attachment History Action SizeSorted ascending Date Who Comment
PNGpng photoresistorSchema.png r1 manage 18.2 K 2019-06-06 - 08:29 UliRaich  
PNGpng post-office.png r1 manage 19.7 K 2019-05-27 - 13:35 UliRaich  
PNGpng arduinoSpecs.png r1 manage 27.2 K 2019-05-27 - 13:22 UliRaich  
PNGpng protoDriver.png r1 manage 31.4 K 2019-05-27 - 13:45 UliRaich  
PNGpng cayennePublish.png r1 manage 36.8 K 2019-05-27 - 14:03 UliRaich  
PNGpng mqttPostOfffice.png r1 manage 50.2 K 2019-05-27 - 13:39 UliRaich  
PNGpng cayenneDefs.png r1 manage 60.1 K 2019-05-27 - 14:03 UliRaich  
PNGpng proto.png r1 manage 114.2 K 2019-05-27 - 13:43 UliRaich  
PNGpng cayenneProtoHistory.png r1 manage 114.5 K 2019-05-27 - 14:08 UliRaich  
PNGpng cayenneProtoResult.png r1 manage 115.8 K 2019-05-27 - 14:08 UliRaich  
PNGpng cayenneStart.png r1 manage 146.3 K 2019-05-27 - 13:17 UliRaich  
PNGpng rpiBoard.png r1 manage 148.6 K 2019-05-27 - 13:17 UliRaich  
PNGpng mqttDemo.png r1 manage 191.3 K 2019-05-27 - 13:36 UliRaich  
PNGpng wifishield.png r1 manage 200.8 K 2019-05-27 - 13:17 UliRaich  
PNGpng cayenne.png r1 manage 221.2 K 2019-05-27 - 13:17 UliRaich  
PNGpng mega.png r1 manage 258.9 K 2019-05-27 - 13:17 UliRaich  
PNGpng shields.png r1 manage 388.3 K 2019-05-27 - 13:36 UliRaich  
PNGpng elephant.png r1 manage 453.3 K 2019-05-27 - 12:42 UliRaich  
PNGpng child.png r1 manage 772.4 K 2019-05-27 - 12:42 UliRaich  
PNGpng protoBoard.png r1 manage 882.8 K 2019-05-27 - 13:36 UliRaich  
Edit | Attach | Watch | Print version | History: r2 < r1 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r2 - 2019-06-06 - UliRaich
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback