Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xilover/iot-and-edge-computing

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).
https://github.com/xilover/iot-and-edge-computing

aws-iot azure-iot ble circuit-design edge-computing esp32 fpga iot mqtt nrf pynq-z2 raspberry-pi rtos stm32 system-on-chip verilog vhdl vivado xilinx xilinx-zynq

Last synced: 25 days ago
JSON representation

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).

Awesome Lists containing this project

README

        

# 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](#1---foundations-of-iot-edge-computing-and-embedded-systems)
2. [Microcontroller Programming for IoT](#2---microcontroller-programming-for-iot-nrf-stm32-esp32)
3. [Basic Hardware Design for IoT Systems](#3---basic-hardware-design-for-iot-systems)
4. [Real-Time Operating Systems (RTOS)](#4---real-time-operating-systems-rtos-for-iot)
5. [Introduction to FPGAs for Edge Computing](#5---introduction-to-fpgas-for-edge-computing)
6. [SoCs for IoT and Edge Computing](#6---socs-for-iot-and-edge-computing)
7. [IoT Communication Protocols](#7---iot-communication-protocols)
8. [Power Management and Real-Time Processing](#8---power-management-and-real-time-processing)
9. [Security and Privacy for IoT](#9---security-and-privacy-for-iot-systems)
10. [Introduction to Industrial IoT (IIoT)](#10---introduction-to-industrial-iot-iiot)
11. [Capstone Project](#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](LICENSE).