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
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
- Ethernet and wireless networks
- 40 pin extended GPIO connector with
- SPI and I2C bus interface
|
|
Slide 10: Arduino + WiFi shield
Total cost: ~12-15 US $
Slide 11: The ideal IoT solution?
ESP8266 or ESP32 processor board
ESP8266 specs:
- Can run a Micropython interpreter
- Can be programmed through the Arduino IDE
- 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$ |
|
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
Slide 13: MQTT Demo
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
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. | |
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
Slide 19: Publish to Cayenne
Slide 20: Results on Cayenne
Slide 21: ... or the history plot
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