GOAL
This short course on the Internet of Things is designed to give a first understanding of the main issues in developing IoT solutions. We do believe the most efficient way to learn this subject is experimenting, this is way the course encourage attendants to hands-on. No specific background is needed, even if a basic knowledge of electronics and computer science might help.
SESSION 1 (4 hours)
GOAL: Quick intro to the Internet of Things.
- Introduction to the IoT
- IoT and Big Data: we can quantitatively measure phenomena that up to yesterday we were only able to guess
- A network of Resource Constrained Devices: if computational power, memory, energy, bandwidth and costs are not constrained, it is likely Internet, not Internet of Things.
SESSION 2 (4 hours)
GOAL: Small experiment (a single sensor). Prove you can integrate sensors suitable for you monitoring purpose. Focus on effectiveness, namely doing the right things, i.e., the Maker approach.
- The reference hardware: ESP32
- Hands on with the Arduino Ide and Wokwi
- A simple integration of sensor/actuator
- Communicating over WiFi
SESSION 3 (4 hours)
GOAL: Small experiment (a single sensor). Focus on efficiency, namely doing the things right, i.e., the Engineers approach. Use metrics to measure to what extent your solution satisfies the user requirements.
- The need of an Operating System
- Hands on FREERTOS
- A simple integration of sensor/actuator
- Communicating over WiFi
SESSION 4 (4 hours)
GOAL: Scale-up in a realistic environment.
- The Very Large Scale IoT Testbed IoT-LAB
- FreeRTOS on IoT-lab
- A simple Project
Tools and Materials
I like vscode with the Remote-SSH extension to interact with the virtual machine for FreeRTOS development. However, during the class there might be many issues due to different version of the OS and vscode. To further simplify the process I use micro a modern and intuitive terminal-based text editor. Give it a try, it is very convenient. I also suggest to install the file manager plugin. The only annoying issue I'm currently facing with micro is that copy/past does not work smoothly over SSH, you have to use ctr + shift + V
Material
The list of material for each group: 1 ESP32-DevKit, a breadboard, some wires and resistors, one led, one button, one potentiometer and one 3 Axis Accelerometer Gyroscope
-
ESP32-DevKit e.g. Available on Amazon
-
A breadboard e.g. Available on Amazon
-
Wires e.g. Available on Amazon
-
Resistors e.g. Available on Amazon
-
Minimal actuator, namely a led and resistors - resistor 330 Ohm e.g. Available on Amazon
-
Minimal analog sensor, namely a potentiometer 10 KOhm e.g. Available on Amazon
-
Minimal digital sensor, namely a button - resistor 1 KOhm e.g. Available on Amazon
-
A more interesting digital vibration sensor SW-420 e.g. Available on Amazon -
3 Axis Accelerometer Gyroscope Sensor Module GY-521 MPU6050 Modulee.g. Available on Amazon
Useful links
- Code and Slides
- The Espressif software development environment
- Arduino Ide
- Wokwi
- FREERTOS
- IoT-LAB
- Thingsboard
- Adafruit Io
- A short paper on this course
- Getting Started with ESP32
- Andreas Spiess Youtube channel
Editions
First edition of the course 19th (Session 1 and 2) and 21st (Session 3 and 4) of July 2023 in the University of Stellenbosch (South Africa) during an Erasmus+ staff mobility for teaching visit. About 40 participants selected among more the 100 candidates.
Second edition of the course 25th, 29th and 31st Of October and 4th of November 2024 in the Business and Technology University (Tbilisi, Georgia) during an Erasmus+ staff mobility for teaching visit. Two groups of 10 students each.