Instructor: Dr. Li


Course URL:

Weekly Schedule

Topics Notes on Course Project

Week 1:

Intro to the course, course project, project videos, and project ideas.

Ch 1: Intro and Architecture of IoT: history, applications, examples

Team-up; Research/brainstorm project ideas; Order Photon

Week 2:

Ch 1: Intro and Architecture of IoT (Contd): Architecture and layered models, ecosystems

Team-up finishes; Research/ brainstorm project ideas. Start to order parts/components

Week 3:

Ch 2: Physical computing platforms for IoT: MCU, MPU/SBC, PLC and FPGA; and comparison of all platforms

Lab 1: Get started with Particle

Get project approved by instructor; Search & order parts & supplies

Week 4:

Ch 3: Review/Primer of C++ OOP Programming

Ch 4: I/O for IoT

Lab 2: Input with Photon (digital/analog): temperature or IR sensor

Lab 3: Output with Photon (digital/analog), Dimmer light, DC brushed motor, DC servo motor or text LCD display

Discuss project design; Divide the jobs; Continue ordering parts

Week 5:

Ch 5: Connectivity Technologies: From FieldBus and WSN, to WiFi/Celluar/ZigBee/BLE/Z-Wave/RuBee, and the latest Thread, LoRa, Sigfox and NB-IoT

Continue with project design; Continue ordering parts

Week 6:

 Ch 6 ReST

 Lab 4: IoTing via IFTTT

Midterm project proposal due in two weeks

Continue with project design; Continue ordering parts; Start to develop project proposal

Note: Due to the discontinuation of IBM Cloud IoT services in 2023, the following Archived Lab5~8 are retired.

Lab 5: Intro to IBM Watson IoT Platform (Quickstart)

Handout: Get Started with IBM Watson IoT Platform

Handout: Dr. Li’s example code of sending data to IBM Watson IoT Platform Quickstart

Lab 6: Using MQTT to send data to IBM Watson IoT Platform & Data visualization

Handout: Visualize real-time data by IBM Watson IoT Platform

Handout: Dr. Li’s example code of sending data for visualization on IBM Watson IoT Platform

Link: MQTT library for Photon:

Lab 7: Node-RED app to tweet an alert message according to remote sensor readings

Handout:  Dr. Li’s Example Node-RED flow for generating Twitter alert messages

Week 7:

Ch 7: IoT Cloud — MQTT and Intro to AWS IoT

Lab 9A: IoTing via AWS — Set up AWS IoT Core & MQTT client software

Handout:   Dr. Li’s example code — Photon sends sensor data to and receives commands from AWS IoT Core over MQTT TLS

Handout: A Brief instruction on using Particle CLI to create a project, compile and flash the code to Photon

MQTT.fx: a MQTT client software (very handy! Highly recommended for testing MQTT connection!)

How to use MQTT.fx: an example connection profile (screenshot); and an simple guide (link here)

Continue with project design; Finish ordering parts; Start to build the project — the physical platform.

Midterm project proposal due next week


Week 8:

Ch 7: IoT Cloud (contd) — AWS IoT

Lab 9B: IoTing via AWS — Integrate AWS SES (or SNS) with IoT Core

Continue building the hardware components/subsystems of the project;

Project proposal Due! See Blackboard for the exact due date.

Week 9:

Lab 9C: IoTing via AWS — Send Senor Data from Particle to AWS IoT Core

Continue building the project: system physical platform is  in shape; program and test sensors

Week 10:

Ch 7: IoT Cloud (contd) — Data Analytics and Cloud Computing for IoT

Lab 9D: IoTing via AWS — AWS Lambda Functions for IoTing

Continue building the project: program and test actuators

Week 11:

Lab 9E: IoTing via AWS — Developing IoT Applications on Raspberry Pi by using AWS IoT Device SDK Python v2

Lab 9F: IoTing via AWS —  AWS Greengrass (optional)

Lab 9G: IoTing via AWS — Develop Node-RED IoT Application with AWS EC2 (Optional)

Finish setting up IoT Cloud, and start the programming with the Cloud


Week 12:

Ch 7: IoT Cloud (contd) — Microsoft Azure IoT

Lab 10A: Connect IoT Device with Microsoft Azure IoT Hub

Final each component (both hardware and programming), and start to integrate the system

Week 13:

Ch 7 IoT Cloud  — Microsoft Azure IoT (contd)

Lab 10B: Intro to Microsoft Azure IoT Central

Integrate everything, preliminary system testing.

Bring in everything and work on the project next class.

Week 14:

Project hours

Test and refine the entire system

Week 15:

Final project demonstration

Final project report due next week.

Last update in Spring 2023.