Project#
In this capstone project, you will work in teams of 3 to research, design, prototype, and deliver an end-to-end IoT product.
The IoT solution will use the following tech stack:
3x reTerminal for the IoT computing devices.
Python/Bash for the on-device programming logic.
Microsoft Azure for the cloud infrastructure and IoT gateway.
TypeScript and Expo for the multi-platform control center application.
Cloud infrastructure that will be used for the final project. Pretend that it says “Typscript App” instead of MAUI App!#
With some constraints, the goals and objectives of the IoT system will be up to your team.
Your final product will be a codebase that is inheritable by future students and teachers in this program!
Milestones#
The course project will consist of 5 milestones.
NOTE: the Worth percentage is a percentage of the project portion of your grade.
In connected objects: the project grade is 35% of your overall grade.
In app dev III: the project grade is 50% of your overall grade.
Milestone 1: Setup (Due: 2026-03-21; Worth: 5%)
In the first milestone of the project, your team will assemble, and set up the initial project infrastructure for tracking and delegating work.
Milestone 2: Infrastructure (Due: 2026-04-10; Worth: 20%)
In this milestone, you will set up your github monorepo with appropriate CI/CD and documentation infrastructure.
Milestone 3: Prototype (Due: TBD; Worth: 20%)
In this milestone, you will adapt your course assignment work to create a collective prototype of your reterminal devices and your Typescript application.
Milestone 4: IoT Integration (Due: TBD; Worth: 20%)
In this milestone, you will build on the initial prototype by connecting your devices and your apps to an IoT Central Hub hosted on Azure.
Milestone 5: Final Presentation (Due: TBD; Worth: 35%)
In this milestone, you will give an in-person demonstration of the functionality of your entire project. This milestone will also be an assessment of the quality of the code and documentation of your project.
Hardware#
The following list contains most of the available parts.
Other parts may be purchased or used on request. Ask me if you have any cool ideas or questions!
Component & DocumentationRefer to these for hardware specifications and circuit/pin/bus reference. Software may not be relevant. |
Interface Type |
Relevant Libraries Refer to these for suggested python libraries to use to interface with the device |
Examples Refer to these for similar examples to us in class (python on Raspberry Pi). This is a better starting point than other online sources, since the sensors/actuators we use are used on a wide variety of hardware. |
|---|---|---|---|
Analog |
ADC library for Grove Base Hat (Github) |
See use of ADC in Lab 3 |
|
Analog |
ADC library for Grove Base Hat (Github) |
See use of ADC in Lab 3 |
|
PWM |
grove_ws2813_rgb_led_strip.py module from Grove.py package. |
See module source code.Alternatively, see NeoPixels on Raspberry Pi for using NeoPixel CircuitPython library with the Blinka compatibility layer. |
|
Digital |
Controlled via relay module |
||
I2C |
Grove_temperature_humidity_aht20.py from Grove |
See use of AHT20 Lab 4 |
|
Serial |
Location tracking by Microsoft This is a general summary of how long/lat measurement works, the important/relevant example is in a sublink called “Single-board computer - Raspberry Pi” |
||
N/A |
N/A |
N/A |
|
I2C |
Accelerometer Test and Accelerometer and Buttons Test (async) |
||
I2C (I/O expander) |
|||
Digital |
None needed. grove_mini_pir_motion_sensor.py can be used. |
Play With Arduino from wiki. |
|
Digital |
None needed, behaves like a button. Button class from gpiozero. |
Blog post by electroniclinic.com |
|
PWM |
Servo class from gpiozero |
Example + video by garyexplains |
|
Analog |
ADC library for Grove Base Hat (Github) |
See use of ADC in Lab 3 |
|
(Optional) Alternative device |
There are other sensors/actuators available to us in the lab. Instructions/examples will be available in a future Connected Objects milestone. |
Example Projects#
Winter 2025 projects: orgs/420-6A6-6P3-W25
Here, each team came up with their own subsystem and device capabilities.
This will be a good reference for seeing what different ideas are possible.
Winter 2024 projects: orgs/JAC-Final-Project-W24-6A6-6P3
In this semester, ALL teams had the same subsystems (Plant, Geo, and Security).
Here, you can see polished ideas for subsystems.
I can particularly recommend the
CropCareproject – very high quality.
Note
The first time you click the GitHub links above, you will be prompted to accept an organization invitation. Accepting this gives you permission to view the repositories within.
Click “View invitation” to accept the invitation.#