420-302-VA · Internet of Things · Fall 2026
Code that senses, decides and acts in the real world.
This course takes you from your first Python program to a small distributed system: microcontrollers reading the world, a Raspberry Pi making decisions, and a dashboard in your browser showing it all live. This page is the map of the whole semester.
What this course is
420-302-VA Internet of Things – Introduction to Python Programming is the programming course of the Automation & Control profile. You arrive knowing electronics and industrial control from Robotics II; you leave able to program the connected side of such systems: reading sensors in Python, moving measurements across a network, applying control logic, and presenting live data on the web. No prior programming is assumed; the course builds Python from zero, on real hardware, in the service of one growing system.
| Fact | Value |
|---|---|
| Course | 420-302-VA · Internet of Things – Introduction to Python Programming |
| Program | 243.D0 Electrical Engineering Technology, Automation & Control profile |
| Session | Fall 2026 · Mondays 14:30–17:30 · Room D-221 · 15 meetings, Aug 24 to Dec 10 |
| Ponderation | 1-2-2: one hour of theory and two hours of lab per week in class, plus about two hours of personal work |
| Prerequisite | 243-207-VA Robotics II |
| Teacher | Pravish Sainath · contact and office hours on Omnivox |
The system you will build
The semester converges on one architecture, assembled piece by piece and reused in the term project:
- An ESP32 microcontroller reads the physical world, including analog signals like a photocell's voltage that the Raspberry Pi cannot read by itself.
- It publishes measurements over Wi-Fi with MQTT, the lightweight messaging protocol of the IoT world.
- A Raspberry Pi, a full Linux computer you install and secure yourself, receives the data, runs your Python control logic, and stores what matters.
- A Flask web dashboard on the Pi shows live values and controls in any browser on the network.
By Week 11 every layer exists and works; the project weeks are about making your version of it reliable, documented and yours.
What you build along the way
- Weeks 1–3, foundations: a shared Git/GitHub workflow, a Raspberry Pi you installed, secured and can reach remotely.
- Weeks 4–7, Python on hardware: LEDs, buttons and sensors on the GPIO header, programs that grow from scripts to structured, object-oriented code, requirements and pseudocode as working habits. Midterm in Week 7.
- Weeks 8–10, the distributed part: the ESP32 joins, analog sensing arrives, MQTT connects the boards, and Assignment 2 closes a real control loop (a PID that harvests light).
- Weeks 11–15, the term project (LIA): in pairs, a complete sensing-deciding-acting-showing system on a theme you choose, delivered in five graded milestones with a public demonstration; the LIA project hub is its standing reference in Week 15.
The semester in five phases
| Phase | Weeks | What happens | Hub |
|---|---|---|---|
| 1 · Foundations | 1–3 | Git and GitHub; the Raspberry Pi from bare board to secured, remotely reachable Linux machine; Assignment 1 | W1 · W2 · W3 |
| 2 · Python & GPIO | 4–7 | Python environments, gpiozero, digital sensing and acting; requirements, pseudocode, OOP; midterm and reflection log | W4 · W5 · W6 · W7 · more as published |
| 3 · Sensors & network | 8–10 | ESP32 and analog inputs; MQTT telemetry between boards; control logic and Assignment 2 (PID light harvesting) | W8 · W9 · W10 |
| 4 · Interfaces | 11–12 | Flask web dashboard on the Pi; the project starts and runs under supervision | W11 · W12 |
| 5 · Project & final | 13–15 | Final examination (W13); project milestones D3–D5 ending with the live demonstration | W13 · W14 · more as published |
How each class runs
1 h · Theory
The idea of the week, with the vocabulary named and the diagrams drawn: how Git thinks, what a port is, why a PID loop settles. Each hub's early pages carry this material, so a missed hour can be recovered.
2 h · Lab
Hands on, in pairs, at a two-computer station. Every lab ends with evidence: command outputs, screenshots and pushed commits handed in on Omnivox. The hubs are written to be followed live at the bench.
2 h · Homework
Finishing the lab, the assigned reading or practice tool, and your journal notes. The midterm reflection log (Week 7) and the project's documentation both grow out of these two weekly hours.
Grading at a glance
| Component | Weight | When |
|---|---|---|
| Assignment 1 · Git and GitHub | 10 % | Released W2 · demonstrated in class W3 |
| Assignment 2 · PID light harvesting | 15 % | Released W8 · due W10 |
| Midterm examination | 10 % | Week 7 (Oct 19) |
| Midterm reflection log | 10 % | Week 7 |
| Final examination | 15 % | Week 13 (Nov 30) |
| Term project (LIA), five deliverables | 40 % | D1 5 % (W11) · D2 5 % (W12) · D3 5 % (W13) · D4 15 % (W14) · D5 10 % (W15) |
The authoritative version, with policies on late work, absence at a demonstration and academic integrity, is the course outline on Omnivox. Two calendar notes worth flagging early: Friday, September 18 is the deadline to withdraw without a transcript remark, and Tuesday, November 3 opens the AE drop period.
Materials and accounts
- Lent by the lab, weekly: the Raspberry Pi (4, 400 or 5), a labelled boot drive (microSD card or USB SSD) that carries your installation between classes, and from Week 8 the ESP32 boards. Drives are collected at the end of every class; anything not pushed to GitHub exists in exactly one place.
- You bring, from Week 4: the breadboard kit listed on Omnivox: breadboard, LEDs, resistors, jumper wires, and the sensors named in the list.
- Accounts and software, all free: a GitHub account (created in Week 1), Git on any machine you work on, and later Thonny and Python, which come with Raspberry Pi OS. Nothing to purchase.
- Optional, for home: your own microSD card or USB SSD to replicate the class installation, and any computer that can run Raspberry Pi Imager. Every hub has a "working at home" section.
Working method, and where AI fits
The course grades working systems you can explain. Three habits are treated as part of the craft from Week 1, because the evaluations check them directly:
- Version everything. Small commits with honest messages, pushed. Contribution traceability in the shared repositories is part of the project grade, and demos include a live change.
- Evidence over claims. Every lab produces command outputs and screenshots; "it worked" is a sentence,
findmntoutput is a fact. - Document for a stranger. The project's README must let a third party rebuild your system. That standard starts with the Week 1 README and never relaxes.
Generative AI tools may help you learn: explaining an error message, clarifying a concept, suggesting an approach. What you submit must be understood, tested and documented by you, and any AI use is acknowledged in your reflection logs. The in-class demonstrations, where you change code live and explain any line, are where that understanding is checked; the full policy is in the outline.
Key dates
| Date | What |
|---|---|
| Mon. Aug. 24 | Week 1: first class · Git and GitHub |
| Mon. Aug. 31 | Week 2: Raspberry Pi · Assignment 1 released |
| Mon. Sep. 7 | No class (Labour Day) |
| Mon. Sep. 14 | Week 3 · Assignment 1 demonstrated in class |
| Fri. Sep. 18 | Withdrawal deadline (no transcript remark) |
| Mon. Oct. 5 & Mon. Oct. 12 | No Monday class (mid-semester break week and Thanksgiving) |
| Tue. Oct. 6 | Class meets: Tuesday follows a Monday schedule |
| Mon. Oct. 19 | Week 7: midterm examination + reflection log |
| Tue. Nov. 3 | AE drop period opens |
| Mon. Nov. 30 | Week 13: final examination · project D3 |
| Thu. Dec. 10 | Week 15, last class: Thursday follows a Monday schedule · project demonstrations · D5 |
Where things live
Omnivox · the official record
The course outline, assignment instructions, the equipment list, grades and announcements. When this site and Omnivox ever disagree, Omnivox wins.