UMPSA STEM Lab has engineered a comprehensive, self-paced Internet of Things (IoT) curriculum centered around the Raspberry Pi Pico and MicroPython. Designed to transition beginners into capable hardware developers, this 11-activity framework bridges fundamental programming concepts with real-world wireless cloud telemetry and long-range hardware interaction.
Core Pedagogy: Self-Paced Mastery & True Digital Literacy
The UMPSA STEM Lab curriculum operates on two foundational principles: individual pacing and absolute code ownership.
The learning pathway systematically introduces hardware control, bus protocols, analog processing, and wireless telemetry.

Students begin by interacting with basic General Purpose Input/Output (GPIO) pins.
-
-
- GPIO Control Defining output pins to control red, yellow, and green LEDs using MicroPython’s
machine.Pinlibrary. - Timing & Iteration Implementing
time.sleep(),forloops, andwhile Trueinfinite execution loops to construct traffic light state machines.
- GPIO Control Defining output pins to control red, yellow, and green LEDs using MicroPython’s
-

2. Actuation & Input Logic
Moving beyond static outputs, the curriculum introduces dynamic control and user interaction.
-
-
- Pulse Width Modulation (PWM) Driving SG90 servo motors at 50 Hz, translating duty cycles (
duty_u16) into precise physical horn positions and smooth sweep animations. - Digital Inputs Configuring tactile push buttons and slide switches with internal pull-up resistors (
Pin.PULL_UP). - Conditional Logic Utilizing
if/elsestructures to make real-time operational decisions based on pin states.
- Pulse Width Modulation (PWM) Driving SG90 servo motors at 50 Hz, translating duty cycles (
-

3. Display Integration & Shared Bus Architecture
As output demands grow beyond simple LEDs, multi-device communication channels are introduced.
-
-
- I2C Protocol Interfacing 0.96-inch OLED displays using the
ssd1306library over shared SDA (GP2) and SCL (GP3) bus lines. - Sensory Data & Motion Connecting MPU6050 motion sensors on the same I2C bus using custom libraries (
imu.py), formatting floating-point readings withround()andabs()to create tilt alert systems.
- I2C Protocol Interfacing 0.96-inch OLED displays using the
-

4. Analog Processing & Sensor Calibration
To measure continuous physical phenomena, students transition from binary digital signals to analog processing.
-
-
- Analog-to-Digital Conversion (ADC) Reading soil moisture levels using 16-bit resolution (
read_u16()) on ADC-capable pins (GP26). - Empirical Calibration Testing probes in dry air and saturated soil to establish customized numerical thresholds, converting raw voltages into accurate 0–100% moisture percentages.
- Analog-to-Digital Conversion (ADC) Reading soil moisture levels using 16-bit resolution (
-
5. Cloud Telemetry & Peer-to-Peer Wireless Protocols
The advanced modules transform standalone microcontrollers into connected IoT endpoints.
-
-
- Wi-Fi & Cloud Telemetry (Pico W) Connecting to 2.4 GHz Wi-Fi networks and establishing lightweight MQTT messaging with Adafruit IO. Students construct cloud dashboards with interactive toggle blocks to control physical board LEDs globally via sub/pub callbacks (
set_callback,check_msg). - Hardware UART & Long-Range Radio Configuring physical radio transceiver modules (Ebyte E70) via UART at 9600 baud. Students set mode pins (M0, M1, M2), reconfigure operating frequencies/channels across 410–441 MHz, and send encoded byte payloads over airwaves without requiring cloud infrastructure.
- Wi-Fi & Cloud Telemetry (Pico W) Connecting to 2.4 GHz Wi-Fi networks and establishing lightweight MQTT messaging with Adafruit IO. Students construct cloud dashboards with interactive toggle blocks to control physical board LEDs globally via sub/pub callbacks (
-





























































