Workshop: Rapid Prototyping for IoT
An NGO needed to detect when their remote water tanks were running low, so that they could provide more reliable access to drinking water. We designed a sensor system that sends alerts via SMS when the water level drops. Two evenings later, a working prototype was built and on its way to Sierra Leone for testing. It cost less than a Norwegian beer, and the code spans less than 100 lines.
Sensors, displays and input devices have become cheap and readily available through mainstream retailers, and drivers for these devices are easy to come by, owing to a vibrant open source community. It’s now easy to make your own weather station, garage door opener, mp3 player or a toy for the kids.
In this workshop, participants are given a custom made controller packed with hardware components such as displays, buttons, joysticks and sensors. Drivers and example code for each component will be provided. We will use MicroPython, an easy-to-learn language for developers of all backgrounds. Interactive workshop exercises may include:
- gathering sensor data and pushing it to the cloud
- coding an autonomous robot car
- Writing a multiplayer game using the controllers
MicroPython is a lean and efficient version of Python, rewritten in C and specifically designed for constrained systems. It comes with a complete parser, compiler, virtual machine, runtime system and garbage collector. Uploaded source code is compiled dynamically on the chip itself. MicroPython is quickly gaining popularity in parts of the industry and is already being run on commercial products.
We will cover
- The powerful ESP32 microcontroller
- Embedded vs normal systems
- Getting started
- Initial, one-time flashing of the MicroPython firmware
- Uploading your code to the microcontroller
- Connecting to the interactive shell
- Using built-in python modules
- Interfacing with your hardware components
- Writing your first program
- Task scheduling (preemptive, cooperative)
- Internet connectivity and messaging
- Strategies for code optimization
Attendees should have basic programming skills. Beginners will find this workshop an excellent entry point to electronics programming. Embedded software developers will find MicroPython to be a valuable addition to their toolbox. Attendees at all levels will receive guidance from workshop instructors.
Participants should bring their own laptop and a micro USB cable. Consider bringing a personal laptop if your work machine have restricted network policies or USB hosts.
A pre-assembled controller is provided for each participant to take home and is included in the course fee.