Internet of Things with MicroPython
Internet of Things with MicroPython is a hands-on course in building IoT devices on the ESP32 board with MicroPython, from wiring circuits, reading sensors and driving displays and relays to sending data over Wi-Fi and MQTT. It suits newcomers to IoT, students and teachers, and you leave able to build your own IoT system with a dashboard and alerts.
- Duration18 hours · 3 days
- FormatOnsite / live online
- Next roundOn request
- CertificateIncluded
Course overview
The ESP32 is an affordable microcontroller with built-in Wi-Fi and Bluetooth, which has made it a favourite board for Internet of Things projects, from home temperature monitors and smart farms to machine monitoring. Paired with MicroPython, a version of Python 3 that runs directly on the board, beginners can program hardware and try commands instantly without learning C first.
This new edition of the course is updated for MicroPython 1.29. It takes learners from basic electronics and flashing firmware onto an ESP32 to writing MicroPython that drives GPIO pins, reads DHT sensors, shows values on LCD and OLED displays and switches appliances through a relay. Learners then bring the device online over Wi-Fi, send data through MQTT to a dashboard, push alerts with the LINE Messaging API and log data to Firebase, and finish with a workshop that builds a working automatic fan controller. (3 days, 6 hours per day, 18 hours in total, Beginner level.)
What you’ll gain
- Explain IoT architecture and choose HTTP or MQTT to suit the job
- Wire basic electronic circuits on a breadboard correctly and safely
- Flash MicroPython onto an ESP32 board and program it through Thonny and the REPL
- Control GPIO and PWM outputs and read analogue inputs
- Read DHT sensors and show values on an LCD or OLED display over I2C
- Switch electrical appliances safely through a relay module
- Connect to Wi-Fi, send data over MQTT and display it on a dashboard
- Send alerts through LINE and store data in Firebase
Who this course is for
- Anyone who wants to start learning IoT development with no prior background
- Students and teachers who want to build or teach IoT projects
- People who know some Python and want to start controlling hardware
- Technicians, business owners and makers who want to build small automation systems themselves
Prerequisites
- No electronics or programming background is required; some Python experience helps you move faster
- Able to install software and manage files on a computer
- A Windows or macOS laptop with a USB port and permission to install software and drivers
- A LINE account and a Google account for using LINE Developers and Firebase free plans
Curriculum
Course Details
This course is a 2026 edition that replaces the previous Internet of Things with MicroPython for Beginners course. It has been rewritten and updated for MicroPython 1.29. It runs for 3 days, 6 hours per day (18 hours in total, 09:00-16:00), as lectures with hands-on wiring and coding in every lab. Beginner level, with no prior background needed. Alongside the sensors, displays and relays of the earlier edition, it adds Wi-Fi connectivity, MQTT, a Node-RED dashboard and techniques for keeping devices running reliably, while alerts use the LINE Messaging API together with data logging on Firebase. Learners take home a lab guide, MicroPython code for every lab, wiring diagrams and the Node-RED flow files.
Day 1 IoT Basics, ESP32 and MicroPython
Section 1: Introduction and IoT Architecture
- What IoT means, with examples from homes, farms and factories
- The parts of a system: devices, network, broker or cloud, and the display app
- Common protocols: HTTP, MQTT and Bluetooth Low Energy
- Basic IoT device security: passwords, tokens and firmware updates
Section 2: Lab: Electronics Basics for IoT
- Voltage, current, resistance and Ohm's law in practice
- Read resistor values and use a breadboard with jumper wires
- LEDs, capacitors, diodes, transistors and relays
- The ESP32's 3.3V logic level and how to avoid damaging the board
- Lab: measure voltage with a multimeter and check a circuit before powering it
Section 3: Lab: Installing MicroPython on the ESP32
- Common members of the ESP32 family, such as ESP32, S3, C3 and C6, and choosing one for the job
- Read the pinout and know which pins to avoid when wiring devices
- Install the USB driver and flash MicroPython 1.29 with Thonny or esptool
- Try commands live in the REPL and upload files with Thonny and mpremote
- What boot.py and main.py do on the board
Section 4: Lab: MicroPython Programming Basics
- How MicroPython differs from Python on a computer
- Variables, conditions, loops and functions
- Lists, dictionaries and handling errors with try and except
- Split code into modules and install extra libraries with mip
- Lab: write short programs and test them in the REPL and as files on the board
Section 5: Lab: Controlling the ESP32's GPIO
- Use machine.Pin as an output to switch an LED on and off
- Read a push button as an input with a pull-up and fix switch bounce
- React to events immediately with interrupts (IRQ)
- Run tasks on a schedule with a Timer instead of long sleeps
- Lab: a model traffic light with a pedestrian crossing button
Day 2 Sensors, Displays, Relays and Wi-Fi
Section 6: Lab: Analogue Signals and PWM
- Read analogue values with machine.ADC from a potentiometer and an LDR
- Set the measuring range with attenuation and read voltages with read_uv
- Generate PWM with duty_u16 to dim an LED and sound a buzzer
- Lab: adjust LED brightness to the surrounding light level
Section 7: Lab: Temperature and Humidity with DHT11 and DHT22
- How the DHT11 and DHT22 differ and when to use each
- Wire the sensor to the ESP32 and read it with the dht module
- Space out readings and handle failed reads
- Lab: log temperature and humidity to a file on the board
Section 8: Lab: LCD and OLED Displays over I2C
- How the I2C bus works and finding devices with i2c.scan()
- Connect a 16x2 I2C LCD and show text on several lines
- Connect an SSD1306 OLED and show numbers, simple graphics and icons
- Lab: show live temperature and humidity from the DHT on the display
Section 9: Lab: Switching Appliances with a Relay
- Single-channel relay modules and the COM, NO and NC terminals
- Active-low versus active-high relays and what that means in code
- Safety when working with mains power, and alternatives such as SSRs
- Switch on conditions with hysteresis so the relay does not chatter
- Lab: turn on a model fan when the temperature passes a set point
Section 10: Lab: Wi-Fi and Calling Web APIs
- Connect to Wi-Fi with network.WLAN and reconnect automatically when it drops
- Keep Wi-Fi passwords and tokens in a settings file, not in the main code
- Set the board's clock from the internet with NTP
- Call web APIs with the requests module and read JSON responses
- Lab: fetch weather data from a web API and show it on the display
Day 3 Connecting to the Cloud and a Real IoT Project
Section 11: Lab: Sending and Receiving Data with MQTT
- Brokers, topics, publish, subscribe and QoS
- Install Mosquitto as a broker and test it with desktop tools
- Install umqtt.simple with mip and publish sensor readings as JSON
- Subscribe to commands from outside to switch the relay
- Name topics consistently and protect the broker with a username and password
Section 12: Lab: Building a Dashboard with Node-RED
- Install Node-RED and receive data from the MQTT broker
- Show values with gauges and history charts on a dashboard
- Add buttons and switches to the dashboard to control devices
- Lab: a dashboard that tracks temperature and controls the fan from a phone
Section 13: Lab: LINE Alerts and Data Logging on Firebase
- Create a LINE Official Account and a Messaging API channel in the LINE Developers Console
- Send push messages from the ESP32 over HTTPS with a channel access token
- Create a Firebase Realtime Database and set basic security rules
- Write and read data through the Firebase REST API
- Prevent alert floods with conditions and cool-down periods
Section 14: Making IoT Devices Reliable
- Run several tasks at once with asyncio, such as reading sensors while waiting for commands
- Use the watchdog timer to restart the board when the program hangs
- Save power with deep sleep for battery-powered devices
- Handle Wi-Fi or broker drop-outs, and a routine for troubleshooting common problems
Section 15: Workshop: An Automatic Fan Control System
- Design the system and wire the DHT sensor, display and relay together
- Program fan control by temperature and humidity, with a manual override mode
- Send data to the dashboard over MQTT and log it to Firebase
- Send LINE alerts when readings pass the thresholds you set
- Test, refine and present the finished project
Schedule & training options
For individuals — public rounds
No public rounds are open right now. Join the waiting list and we will contact you first when the next round opens, or ask us on LINE. Or call 02-570-8449 or 088-807-9770
For organisations — in-house / private
- Tailor the content to your team’s tools and projects
- Your dates, at your office or live online
- Quotation with tax ID for procurement
Instructors
Frequently asked questions
What is MicroPython, and how is it different from regular Python?
MicroPython is a compact version of Python 3 that runs directly on microcontrollers such as the ESP32. It uses the same syntax as Python but has a smaller standard library, and adds modules such as machine for GPIO pins, I2C and PWM and network for Wi-Fi. You can test commands instantly in the REPL without compiling and install extra libraries with mip, which makes it easier to learn than writing C for the board.
How do you read temperature and humidity from a DHT11 with an ESP32?
Connect the DHT11's power and ground pins to the ESP32 and its data pin to a GPIO pin of your choice. In MicroPython, import the dht and machine modules, create the sensor with dht.DHT11(machine.Pin(pin_number)), call measure(), then read temperature() and humidity(). Leave a second or two between readings and wrap them in try in case a read fails. For finer readings, a DHT22 works with the same commands.
How do you control an electrical appliance with a relay and an ESP32?
A relay is a switch operated by a low-voltage signal. Connect the relay module's power and ground, then its signal pin to a GPIO pin on the ESP32. In MicroPython, set that pin as an output with machine.Pin and call on or off, after checking whether the module is active low or active high. The load is wired through the relay's COM and NO terminals. The class demonstrates with low-voltage loads, and real mains wiring should be checked by an electrician for safety.
Who is the Internet of Things with MicroPython course for, and what should I know beforehand?
It suits anyone starting out in IoT development, including students, teachers and people who want to build small automation systems themselves. No prior background is needed, as the course starts from what IoT is, basic electronics and the fundamentals of MicroPython, though some Python experience helps you move faster. Bring a laptop on which you can install software, plus LINE and Google accounts for the free services used.
What will I be able to do after the Internet of Things with MicroPython course?
You will be able to flash and program an ESP32 with MicroPython, control GPIO and PWM, read DHT sensors, show values on an LCD or OLED over I2C, switch appliances through a relay, connect to Wi-Fi, send data over MQTT to a Node-RED dashboard, push alerts with the LINE Messaging API, log data to Firebase and build your own automatic fan controller. Participants who complete the training receive a Certificate of Completion with its own number, which can be verified online.
Which board and tools are used on the Internet of Things with MicroPython course?
The course uses an ESP32 DevKit board flashed with the latest MicroPython, together with a breadboard, LEDs, push buttons, a DHT11 or DHT22 sensor, an I2C LCD or OLED display and a relay module, following the list the institute sends before the course. Code is written with Thonny IDE and mpremote, Mosquitto serves as the MQTT broker and Node-RED provides the dashboard. Online services are the LINE Messaging API and Firebase Realtime Database on free plans, using the learner's own accounts.

