Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 5 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).
- Host: GitHub
- URL: https://github.com/xilover/iot-and-edge-computing
- Owner: Xilover
- License: mit
- Created: 2024-09-16T14:15:32.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-09-23T08:26:55.000Z (3 months ago)
- Last Synced: 2024-10-30T21:04:42.977Z (about 2 months ago)
- Topics: 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
- Language: C
- Homepage:
- Size: 410 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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).