Over the past two years, I’ve delivered several training sessions and workshops about IoT Programming. Depending on the audience and their background, those sessions have been either one-day or two-day long.
As you probably know, IoT is really broad, and one needs to be familiar with all the pieces involved in an IoT solution to be able to design and build an efficient IoT solution. For example, I strongly believe that every software developer building an IoT solution today needs to care about the hardware, which is why the workshop starts with a pretty extensive overview of the hardware landscape, and goes through things like the different classes of IoT devices that may exist (from micro-controllers to powerful system-on-chips, when should you use one or the other?), to the different kinds of sensors, before moving on to the communication protocols suited for IoT (like MQTT or CoAP).
The training includes many hands-on sessions, and the participants get a chance to learn first-hand how to master the MQTT protocol (using Eclipse Paho), how to program IoT gateways, or how to build IoT visualizations.
The overall outline is the following, and can be adapted on a case-by-case basis, depending on the trainees’ expectations:
- Introduction to the Internet of Things
- Sensing and acting on the physical world: micro-controllers or powerful gateways?
- What can be sensed and acted upon?
- Overview of sensors and actuators technologies
- Making an intelligent object
- Different classes of devices for different needs
- Interacting with sensors and actuators
- Overview of IoT operating systems and frameworks.
- Connecting things, or how to build efficient and scalable sensor networks
- Constraints of IoT Communications
- Overview of different topologies for IoT networks
- IoT Communication protocols
- MQTT – Eclipse Paho, Eclipse Mosquitto
- CoAP – Eclipse Californium
- Managing IoT solutions
- IoT Gateways – Eclipse Kura
- Device Management & Software Provisioning – Eclipse Leshan, Eclipse hawkBit
If you are interested in participating to similar workshops in the future, either for yourself or for your company, please get in touch!