420-302-VA · Internet of Things
VANIER COLLEGE · FALL 2026 · MONDAYS 14:30 · D-221

Fall 2026 · Mondays 14:30–17:30 · Room D-221

From a bare board to a distributed IoT system.

Each week of hands-on work has its own hub: short pages that follow exactly what you do in class, with checklists, self-check quizzes and a troubleshoot page. Bookmark this page; new hubs appear here as the semester advances.

1 h theory 2 h lab 2 h homework
Illustration of a smart home in cutaway view, its lights, fan, plants and sensors linked by dotted lines to a Raspberry Pi, an ESP32 board, the Python logo, a phone app and a cloud

New to the course?

Start with the course introduction: the system you will build, the semester in five phases, how classes run, grading, materials and key dates, all on one page.

The weekly hubs

Week 1 · Monday, August 24

Git & GitHub: your project's time machine

Why version control exists, how Git thinks (the four areas, commits, branches), your first repository and Markdown README, pushing to GitHub, and the two-person workflow with a merge conflict resolved on purpose.

Week 2 · Monday, August 31

Raspberry Pi: bare board to booted Linux

Identify every part of a Raspberry Pi, write Raspberry Pi OS to your boot drive with Imager, boot it, prove where it booted from, and learn the terminal commands you will use all semester. Assignment 1 (Git and GitHub) released.

Week 3 · Monday, September 14

Raspberry Pi: update it, key it, lock it

On the same installation: bring the system up to date with apt, replace passwords with SSH keys (for the Pi and for GitHub), raise the UFW firewall, and set up the remote desktop. Assignment 1 demonstrated in class.

Week 4 · Monday, September 21

Python & GPIO: code meets circuit

Your first Python, from the REPL to scripts with loops and functions; a virtual environment done right; the GPIO safety rules with the Ohm's-law math; and an LED and button under program control over SSH. Bring the breadboard kit.

Week 5 · Monday, September 28

Requirements & pseudocode: design before code

Testable requirements, pseudocode you can trace on paper, flowcharts and state diagrams (GRAFCET's cousins), and a lab where the spec is written, committed and verified before the Python exists. Bring the breadboard kit.

Week 6 · Tuesday, October 6 (Monday schedule)

Objects & classes: state and behaviour move in together

Reading the gpiozero objects you already use, writing your first classes, state machines as classes, and a lab that refactors the reaction timer into modules and proves it against last week's spec. Last new material before the midterm. Bring the breadboard kit.

Week 7 · Monday, October 19

Midterm week: six weeks, one toolkit

No new material: three consolidated review pages for Weeks 1 to 6, a full 100-point practice exam with worked answers, the reflection log guide, and a misconception clinic. The midterm (10%) and the reflection log (10%) are both due this day; no class October 12.

Week 8 · Monday, October 26

ESP32 & analog: the world is more than on and off

The second computer: microcontrollers vs computers, MicroPython flashed and blinking, the ADC and the light-divider circuit with the math, PWM output, a LightNode class, and the release of Assignment 2 (PID light harvesting, 15%, due Week 10). Bring the breadboard kit.

Week 9 · Monday, November 2

MQTT & Wi-Fi: the bench becomes a network

The dashed arrow turns solid: the pub/sub pattern and MQTT theory (topics, QoS, retained messages, last wills), a Mosquitto broker configured on the Pi, the ESP32 on Wi-Fi publishing the calibrated light reading, and paho-mqtt subscribing with callbacks on a class. A2 week 2 of 3. Bring the full kit, both boards.

Week 10 · Monday, November 9

Control: closing the loop

The full PID lesson with computed response curves: feedback and the block diagram, the three terms with their math (the P-only offset derived, windup provoked and cured, the derivative's noise tax priced), a controller class on the node, tuning by recipe and by Ziegler-Nichols, and the loop over MQTT. Assignment 2 due at the start of class.

Week 11 · Monday, November 16

Flask & the project: the system gets a face

HTTP theory and the two-patterns argument, Flask serving the bench from the Pi (one familiar wall, a third firewall door), the MQTT-to-HTTP bridge, and a live dashboard whose Set button steers Week 10's loop from a phone. The LIA term project (40 %) opens, with deliverable D1 due this week per the brief. Bring the full kit, both boards.

Week 12 · Monday, November 23

Project studio: the system comes together

The supervised studio: one hour of theory on the three build-week skills (walking skeletons and the interface-count argument, integration order with command-line stubs, half-splitting a fault in ⌈log₂ n⌉ probes, and systemd services that survive reboots), then protected build time with the teacher circulating. D2 due: the skeleton walks end to end.

Week 13 · Monday, November 30

Final examination & D3: one day, two proofs

The half-width day, executed: the final examination (15 %) first, then D3's tiny-but-real rung (5 %). The review hub for the post-midterm arc: the fourteen-hop journey from photon to pixel, the two-loops synthesis, every equation on one card, the retrieval ladder with its practice circuit, misconception clinic part two, and the craft of a day that asks for two kinds of proof.

Week 14 · Monday, December 7

D4 build week: the table turns green

The clear run: six build days, one method. Value-density ranking with the quadrants, the daily loop with one rung in flight, regression re-runs as cheap insurance, debt journaled not chased, the verification table as scoreboard and demo script, D4's breadth demonstration (15 %, the biggest single grade), and the freeze that hands D5 a system nobody is still changing.

Standing reference · Weeks 11–15

The LIA project hub

The project's one place: the brief decoded with the six-slot test and four idea shapes, all five milestones with dates, weights and evaluation focus, the pair method and repo spine, demo-day protocol, risk patterns, and the full reference shelf. The brief on Omnivox governs; this hub is the method.

Weeks 4 and later (Python and GPIO, requirements, OOP, ESP32, MQTT, control, Flask, the term project) are published here as they start. The full plan is in the course outline on Omnivox.

How to use these pages

  • Each hub is a numbered path. Follow the stages left to right; the rail at the top shows where you are.
  • Checklists remember what you tick, on this browser only. Use them during the lab.
  • Every stage ends with a short quiz. If you can answer without looking, move on.
  • Something broken? Every hub has a Troubleshoot page; work through it before asking for help, then ask with your evidence.

Dates to keep in mind

DateWhat
Mon. Sep. 14Week 3 class; Assignment 1 demonstrated in class (10 %)
Fri. Sep. 18Deadline to withdraw from a course without a transcript remark
Mon. Sep. 21Week 4: Python environment and GPIO; bring the breadboard kit
Mon. Sep. 28Week 5: requirements and pseudocode; bring the breadboard kit
Tue. Oct. 6Week 6: objects and classes (Monday schedule; no class Oct. 5); bring the breadboard kit
Mon. Oct. 19Week 7: midterm examination (covers Weeks 1 to 6) and midterm reflection log due; no class Oct. 12
Mon. Oct. 26Week 8: ESP32 and analog signals; Assignment 2 released (due Week 10); bring the breadboard kit
Mon. Nov. 2Week 9: MQTT and Wi-Fi, the bench becomes a network; bring the full kit (both boards)
Tue. Nov. 3Administrative deadline to drop a course (AE)
Mon. Nov. 9Week 10: control, closing the loop; Assignment 2 due at the start of class; bring the full kit (both boards)
Mon. Nov. 16Week 11: Flask dashboard; the LIA project (40 %) opens, deliverable D1 due this week (see the brief on Omnivox); bring the full kit (both boards)

Complete dates, grading and policies are in the course outline on Omnivox. This site is a lab companion, not the official record.