Skip to content

Hands-on learning experience in IoT, edge computing, and embedded systems using a variety of platforms such as microcontrollers (nRF, STM32, ESP32), FPGAs (Xilinx), and SoCs (Raspberry Pi, Zynq).

License

Notifications You must be signed in to change notification settings

Xilover/IoT-and-Edge-Computing

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

52 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IoT, Edge Computing, and Embedded Systems

This course is designed to provide a hands-on learning experience in IoT, edge computing, and embedded systems using a variety of platforms such as microcontrollers (nRF, STM32, ESP32), FPGAs (Xilinx), and SoCs (Raspberry Pi, Zynq). Each module contains a project that reinforces the theory covered, allowing students to design, build, and deploy real-world IoT solutions.

Table of Contents

  1. Foundations of IoT, Edge Computing, and Embedded Systems
  2. Microcontroller Programming for IoT
  3. Basic Hardware Design for IoT Systems
  4. Real-Time Operating Systems (RTOS)
  5. Introduction to FPGAs for Edge Computing
  6. SoCs for IoT and Edge Computing
  7. IoT Communication Protocols
  8. Power Management and Real-Time Processing
  9. Security and Privacy for IoT
  10. Introduction to Industrial IoT (IIoT)
  11. Capstone Project

1 - Foundations of IoT, Edge Computing, and Embedded Systems

This introductory module covers the basics of IoT, edge computing, and embedded systems, including key hardware platforms like microcontrollers, FPGAs, and SoCs.

Topics Covered:

  • What is IoT?
  • Edge computing overview
  • Introduction to microcontrollers, FPGAs, and SoCs
  • Low-power design basics

Project:

Design a Simple IoT System Architecture
Map out a system showing how a microcontroller (e.g., ESP32) interacts with sensors and communicates with the cloud.


2 - Microcontroller Programming for IoT (nRF, STM32, ESP32)

Learn how to program microcontrollers for IoT applications, focusing on platforms like nRF, STM32, and ESP32.

Topics Covered:

  • Basics of microcontrollers (nRF, STM32, ESP32)
  • Programming in C/C++ (blinking LEDs, sensor data)
  • Bluetooth (BLE) and Wi-Fi communication
  • Low-power modes

Project:

Build a Simple IoT Sensor System
Program an ESP32 or nRF52 to read sensor data and send it over Bluetooth or Wi-Fi.


3 - Basic Hardware Design for IoT Systems

This module focuses on designing circuits and connecting sensors to microcontrollers.

Topics Covered:

  • Circuit design basics
  • Power supply for IoT devices
  • Breadboarding and PCB design (optional)
  • Debugging hardware connections

Project:

Design a Basic IoT Circuit
Build a circuit that connects a sensor to an LED and control it using a microcontroller.


4 - Real-Time Operating Systems (RTOS) for IoT

Understand the basics of Real-Time Operating Systems (RTOS) for handling multitasking applications in IoT systems.

Topics Covered:

  • Introduction to FreeRTOS and Zephyr
  • Task scheduling and interrupts
  • Low-power management with RTOS

Project:

Develop an RTOS-Based IoT System
Use FreeRTOS or Zephyr on an STM32 or ESP32 to manage tasks like sensor data collection and communication.


5 - Introduction to FPGAs for Edge Computing

Learn the basics of FPGA programming and how to use them for accelerating edge computing tasks in IoT.

Topics Covered:

  • What are FPGAs?
  • Simple Verilog/VHDL programming
  • Xilinx FPGA toolchain (Vivado)
  • Basic FPGA applications

Project:

Create a Simple FPGA-Based Project
Program a Xilinx FPGA to control LEDs and read sensor data using Verilog or VHDL.


6 - SoCs for IoT and Edge Computing

Introduction to System-on-Chip (SoC) platforms like Raspberry Pi and Xilinx Zynq, combining CPU and FPGA capabilities for IoT and edge computing.

Topics Covered:

  • What is an SoC? Raspberry Pi and Zynq overview
  • Running Linux on SoCs
  • Interfacing sensors and devices with SoCs
  • Edge computing with SoCs

Project:

Develop a Linux-Based Edge Computing System
Use a Raspberry Pi or Xilinx Zynq SoC to perform local data processing before sending results to the cloud.


7 - IoT Communication Protocols

Learn about the most common IoT communication protocols used for device-to-device and device-to-cloud communication.

Topics Covered:

  • MQTT, CoAP, HTTP protocols
  • Bluetooth, Wi-Fi, and LoRa communication
  • Secure communication (SSL/TLS)
  • Low-power communication techniques

Project:

Implement Wireless Communication for IoT
Use an ESP32 to send sensor data via MQTT to a cloud platform, securing the communication with SSL/TLS.


8 - Power Management and Real-Time Processing

This module focuses on power optimization techniques and real-time data processing for IoT devices.

Topics Covered:

  • Sleep modes and low-power components
  • Real-time clocks (RTC) for scheduling tasks
  • Balancing power and performance in edge computing

Project:

Develop a Low-Power IoT Sensor System
Build a low-power sensor system that logs data periodically using a microcontroller like STM32 or nRF52.


9 - Security and Privacy for IoT Systems

Understand the key security principles for IoT systems, including protecting data and firmware.

Topics Covered:

  • Common IoT security vulnerabilities
  • Secure communication (SSL/TLS)
  • Secure boot and encryption
  • Firmware protection and OTA updates

Project:

Build a Secure IoT System
Implement secure communication and secure boot on an ESP32, ensuring data integrity and encryption.


10 - Introduction to Industrial IoT (IIoT)

This module introduces the Industrial IoT (IIoT) and explains how IoT technology is applied in industrial environments.

Topics Covered:

  • What is IIoT? Applications and differences from consumer IoT
  • Real-time monitoring and data collection for industrial systems
  • Rugged hardware design for harsh environments

Project:

Develop an IIoT Monitoring System
Use a Raspberry Pi or STM32 to monitor industrial equipment and send alerts based on pre-set conditions.


11 - Capstone Project

The capstone project brings together everything you’ve learned throughout the course to create a complete IoT system.

Project:

Capstone Project: Design a Complete IoT System
Design, build, and deploy a complete IoT system using microcontrollers (e.g., nRF, STM32, ESP32), FPGAs (Xilinx), or SoCs (Raspberry Pi, Zynq). This system should include secure communication, power optimization, real-time processing, and cloud integration.


How to Use This Repository

  • Each module has its own directory with the course material, code samples, and project instructions.
  • Follow along with the README files in each module's folder to complete the projects.
  • Share your progress and completed projects via GitHub issues or discussions.

Prerequisites

  • Basic understanding of C/C++ programming
  • Access to development boards (e.g., ESP32, STM32, nRF52, Raspberry Pi, Xilinx FPGA)
  • Familiarity with basic electronics and hardware (optional for beginners)

License

This course material is licensed under the MIT License.

About

Hands-on learning experience in IoT, edge computing, and embedded systems using a variety of platforms such as microcontrollers (nRF, STM32, ESP32), FPGAs (Xilinx), and SoCs (Raspberry Pi, Zynq).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages