Skip to content

Term Project

Project Statement: Learning Integration Assessment - Raspberry Pi/Arduino/MQTT-based IoT System

Section titled “Project Statement: Learning Integration Assessment - Raspberry Pi/Arduino/MQTT-based IoT System”

Schematic

In this term project, students will work in teams of two to design, configure, and program a Raspberry Pi Single Board Computer (SBC) integrated with Arduino-based devices. The objective is to create an IoT system capable of monitoring and controlling a physical process with at least one analog measurement, which will be proposed by the students and approved by the teacher. The project will utilize an ESP32 microcontroller configured as a distributed IoT system. The system will feature a supervisory web interface served from the Raspberry Pi (SBC) device.

Throughout this project, students will undertake a series of tasks including:

  1. Operating System Setup: Installing a Linux operating system distribution on the Raspberry Pi.

  2. System Configuration: Configuring the operating system and setting up the programming and running environment for both the Raspberry Pi and Arduino devices.

  3. System Analysis: Analyzing the system requirements to ensure a comprehensive understanding of the project scope.

  4. System Schematic: Creating a schematic illustrating the interconnection of components within the system.

  5. Algorithm Development: Writing algorithms using pseudocode to guide the system’s operation.

  6. Coding: Implementing the algorithms using object-oriented Python for the Raspberry Pi and Arduino C++ for the Arduino devices.

  7. Web Interface Development: Creating a supervisory web interface that allows manipulation of process setpoints and provides a time-domain process representation.

  8. System Validation: Ensuring that the system functions correctly, and applying corrective measures if necessary to maintain autonomous operation without human intervention.

  9. Reflection: Students reflect on their experiences and insights gained during the implementation of their IoT system.

  10. Documentation: Students use GitHub to create an appealing series of documents showcasing their accomplishment, complete with all configuration information and code, such that a third party has all the information necessary to replicate their system.

To ensure the success of this project, it is essential that students adhere to the following key requirements:

  • Autonomous Operation: The system must be fully functional after powering up the devices, without the need for human intervention.

  • Communication Protocol: All inter-device communications are to be handled using the MQTT protocol. Communications between applications optionally can use different means.

  • Project Proposal: Each team is responsible for defining their project, which must be approved by the teacher before proceeding.

  • Team Composition: One team consisting of three students will be approved if and only if the total number of students in the class is odd. All other teams will comprise two students. The team of three students will be scrutinized for equity in contributions and responsibilities to ensure fairness. Experience shows that teams of 3 often result in lessened learning for at least one team member.

  • Documentation: The project must be thoroughly documented on GitHub, with equal contributions from all team members, providing transparency and accountability. Make sure that you are using your GitHub account to add your contribution as the history of your project will be inspected. Think of your GitHub repository as a portfolio item that can help you toward getting that great career opportunity.

This project offers an exciting opportunity for students to gain hands-on experience in configuring and programming IoT systems while emphasizing collaboration, documentation, and reflection. It is a challenging and rewarding endeavor that prepares students for real-world applications of IoT technology.

  • Monday, September 29: Assignment to read this document and complete first team brainstorming on the topic of what you will accomplish as a project for your term project.

  • Monday, October 6: Project Kickoff - Introduction to the project and discussion of project guidelines; start coding the Python IoT Controller framework.

  • Friday, October 10: Deliverable 1: Project Proposal and Basic System Schematic - Students should complete their project proposal, including a schematic representation of the system’s interconnections, and obtain teacher approval.

  • Monday, October 27: Deliverable 2: System Analysis - Teams should provide a detailed analysis of the system’s requirements, stating:

    • which applications will handle which tasks
    • which conditions will lead to which results
    • etc.
  • Monday, November 10: Deliverable 3: Algorithm Development - Present pseudocode outlining the system’s operation.

  • Monday, November 24: Deliverable 4: 50% Implementation Checkpoint - Teams should demonstrate 50% completion of the project.

  • Monday, December 8: Deliverable 5: 100% Implementation Demonstration - Teams should demonstrate the completed project. This will be the final project presentation.

Note: Your reflection log must be kept up-to-date and will be evaluated throughout the process.