0% found this document useful (0 votes)
132 views6 pages

Mastering Esp32 Development: From Basics To Iot Applications Course Description

Mastering ESP32

Uploaded by

mohan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
132 views6 pages

Mastering Esp32 Development: From Basics To Iot Applications Course Description

Mastering ESP32

Uploaded by

mohan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Mastering ESP32 Development: From Basics to IoT Applications

Course Description
This course offers a deep dive into developing Internet of Things (IoT) applications using the ESP32
microcontroller. From environment setup to advanced IoT protocols like MQTT and ESP-NOW,
participants will gain practical skills through hands-on modules covering various aspects of ESP32
development. Whether you're a novice or an experienced developer, this course provides the knowledge
and tools to create robust IoT solutions

Audience
 Electronics enthusiasts eager to delve into IoT development.
 Embedded system engineers seeking to expand their skill set.
 Software developers interested in building IoT applications.
 Students pursuing degrees in computer science, engineering, or related fields.

Pre-requisite Knowledge/Skills
Basic understanding of programming concepts and familiarity with C programming language

Course Objectives
 Master the setup and configuration of ESP32 development environments.
 Understand different types of ESP32 microcontrollers and their applications.
 Learn essential programming techniques for IoT applications using C and FreeRTOS.
 Gain proficiency in working with various peripherals such as GPIO, I2C, SPI, UART, and more.
 Explore different storage options and memory management techniques for ESP32.
 Establish internet connectivity and develop REST APIs for IoT applications.
 Build and deploy MQTT and ESP-NOW protocols for efficient communication.
 Develop Bluetooth Low Energy (BLE) applications for sensor networks and wearable devices.
 Create and host web servers on ESP32 for remote monitoring and control of IoT devices.

Course Outline
Module 1: Course Introduction

 Course Introduction
 Overview of Development Boards

Module 2: Environment Setup

 Introduction to Environment Setup


 Installing the ESP-IDF on Windows
 Configuring VS Code for ESP32 Development
 Project Walkthrough
 Managing Multiple IDF Versions

Module 3: ESP32 Types

 Introduction to ESP32 Types


 Comparing Different ESP32 Variants
 Configuring ESP32 Targets in VS Code

Module 4: A First Look - Introduction

 Introduction to Basic ESP32 Programming


 Logging and Debugging Techniques
 Utilizing Delays and Random Number Generation
 Blinking LEDs
 Handling Keyboard Input
 Exploring Example Projects

Module 5: Working with C

 Introduction to C Programming for ESP32


 Understanding Structures and Pointers
 Exploring Function Pointers

Module 6: Headers, Components, and Libraries

 Referencing Header and Source Files


 Understanding ESP32 Components
 Integrating External Components
 Registering Libraries in the IDF Component System

Module 7: Fundamentals in FreeRTOS

 Introduction to FreeRTOS
 Exploring FreeRTOS Resources
 Working with FreeRTOS Tasks
 Utilizing the Second Core
 Understanding Task Notifications, Mutexes, Semaphores, Queues, Event Groups,
Timers, and High-Resolution Timers

Module 8: Debugging with OpenOCD

 Introduction to Debugging with OpenOCD


 Manual Debugging Techniques
 Overview of OpenOCD
 Debugging Walkthrough
 Configuring FT2232 for Debugging
 Introduction to QEMU

Module 9: Configuration and Menuconfig

 Introduction to Configuration and Menuconfig


 Basics of Menu Configuration
 Customizing Configuration Options
 Managing Menu Defaults

Module 10: Understanding Memory

 Introduction to Memory Management on ESP32


 Understanding SRAM Allocation
 Working with Dynamic Memory Allocation
 Managing Stack Memory
 Utilizing PSRAM
 Flash Partitioning Techniques

Module 11: Storage

 Introduction to Storage Options on ESP32


 Loading Files Directly into Flash Memory
 Working with Non-Volatile Storage (NVS) for Simple Data
 Customizing NVS Partition and Structured Data
 Introduction to SPIFFS (SPI Flash File System)
 CRUD Operations with SPIFFS
 Implementing Wear Leveling and Read-Only Operations with FAT File System
 Working with SD Cards via SPI and MMC

Module 12: GPIO

 Introduction to General-Purpose Input/Output (GPIO)


 Configuring GPIO Pins for Output
 Reading Input from GPIO Pins
 Handling Interrupts on GPIO Pins
 Implementing Debouncing Techniques
 Configuring GPIO Modes for DAC, ADC, LEDC, PWM, Hall Sensor, and Touch
Inputs

Module 13: I2C, SPI, UART

 Introduction to Bus Systems: I2C, SPI, and UART


 Setting up Bluetooth Logging with JDY-31
 Implementing Basic UART Echo Functionality
 Establishing UART Communication with PC
 Utilizing UART Queue for Buffered Communication
 Working with I2C Devices: LM75A Temperature Sensor
 Introduction to SPI Communication
 Wiring and Communicating with SPI Devices
 Displaying Data on SPI-Compatible Displays

Module 14: Sleeping

 Introduction to Power Management and Sleep Modes on ESP32


 Overview of Sleeping Techniques
 Implementing Light Sleep with Timer and GPIO Wake-Up
 Utilizing Deep Sleep with Timer Wake-Up
 Configuring Deep Sleep with External Wake-Up Sources (EXT0, EXT1)
 Understanding Hibernation Mode

Module 15: Internet Connection


 Introduction to Internet Connectivity on ESP32
 Establishing Wi-Fi Connection: Examples and Techniques
 Implementing NTP Time Synchronization
 Handling Wi-Fi Connection Events
 Configuring ESP32 as a Station (STA) or Access Point (AP)

Module 16: Internet REST Client

 Introduction to RESTful APIs


 Sending Simple HTTP GET Requests
 Handling Chunked Data Transfer
 Implementing HTTPS Communication
 Sending and Receiving Large JSON Data
 Creating JSON Data for Sending Emails

Module 17: Internet Server

 Introduction to Creating Internet Servers on ESP32


 Implementing Multicast DNS (MDNS) for Device Discovery
 Toggling an LED with HTTP POST Requests
 Introduction to Websockets
 Implementing Websockets for Real-Time Communication

Module 18: Website on Chip

 Introduction to Hosting Websites on ESP32


 Creating and Flashing Webpages
 Serving Static and Dynamic Webpages
 Implementing MIME Types for Web Content
 Developing React-Based Web Applications

Module 19: MQTT

 Introduction to MQTT Protocol


 Setting up MQTT Test Client
 Establishing MQTT Connection and Subscription
 Publishing and Receiving Data via MQTT
 Implementing Retained Messages and Last Will Testament

Module 20: ESP-NOW


 Introduction to ESP-NOW Protocol
 Implementing Basic ESP-NOW Communication
 Automating Device Registration with ESP-NOW
 Utilizing ESP-NOW for Push Button Applications
 Implementing Encrypted Messages with ESP-NOW

Module 21: Bluetooth BLE

 Introduction to Bluetooth Low Energy (BLE)


 Understanding BLE Stack and Communication Protocols
 Implementing BLE iBeacon and Eddy Stone
 Exploring BLE Generic Access Profile (GAP) and Generic Attribute Profile (GATT)
 Reading and Writing Characteristics in BLE GATT
 Implementing BLE Battery Service
 Handling BLE Events and Descriptors
 Creating BLE Central and Peripheral Applications

You might also like