강의

멘토링

커뮤니티

NEW
Hardware

/

Embedded IoT

ESP32 IoT Development Fundamentals - From Hardware to FreeRTOS

This course aims to help learners new to ESP32 and IoT development progress from environment setup → language basics → hardware control → RTOS utilization. The main objectives of this course are as follows: - Acquire ESP32 development environment and basic tool usage skills - Understand C language and ESP-IDF structure - Understand FreeRTOS tasks and basic synchronization methods - Enable hardware control through GPIO, I2C, SPI, and UART - Understand storage and memory structure and implement simple persistent data storage

1 learners are taking this course

  • yongjunmoon
실습 중심
토이프로젝트
esp32
iot
C
IoT
FreeRTOS

What you will gain after the course

  • You can install and configure ESP-IDF and the development environment, and build and flash projects.

  • You can understand the C language and ESP-IDF structure, and compose code by utilizing components and libraries.

  • You can implement basic multitasking features such as tasks, queues, semaphores, and timers using FreeRTOS.

  • You can control sensors and peripheral devices and exchange data through GPIO, I2C, SPI, and UART.

  • NVS and file systems can be used to store settings and data while efficiently managing memory structures.

ESP32 IoT Development,
Complete Mastery from Hardware to FreeRTOS!

Feeling overwhelmed about where to start with ESP32 and IoT development?
From environment setup to C language, FreeRTOS, and hardware control,
build solid development skills that work in real-world applications.


ESP32 IoT Development Fundamentals
Build practical experience from hardware to FreeRTOS.

This course is a practical introductory lecture designed for learners new to ESP32 and IoT development to master everything from environment setup → C language basics review → hardware control → FreeRTOS-based multitasking in one go.

ESP32 Development,
Complete with Real-World Projects

This course is not simply about following along with example code.
I designed it with the most important focus on explaining "why the code was written this way", "where to start reading the datasheet", and "what to suspect and what logs to check when problems arise".

Section 1 - Course Introduction and Development Environment Setup

This section introduces the ESP32 IoT development process and provides detailed guidance on setting up the ESP-IDF development environment and VS Code configuration required for hands-on practice. Additionally, it compares different types of ESP32 chips and modules while establishing learning objectives.

Section 2 - ESP32 Basic Functions and C Language Utilization

ESP32's basic logging, delay, and random number generation functions are practiced, and hardware is controlled through LED control and keyboard input. Additionally, you will learn how to write code efficiently by utilizing structures, pointers, and function pointers, which are core features of the C language.

Section 3 - ESP-IDF Project Structure and Component Management

Understanding the internal structure of ESP-IDF projects and learning how to reference C and H files. This covers in detail the concept of components for utilizing external libraries, as well as methods for adding and utilizing external components.

Section 4 - In-Depth Learning of FreeRTOS Real-Time Operating System

Learn about the various features of FreeRTOS, a real-time operating system. Master task creation and management, task notifications, mutexes, semaphores, queues, event groups, and timer usage, and learn efficient development methods in a multitasking environment.

Section 5 - ESP32 Debugging and Configuration Management

Learn essential debugging techniques for ESP32 development. Master manual debugging methods and error analysis using stack traces, and learn how to manage project settings and custom configurations using Menuconfig.

Section 6 - ESP32 Memory Structure and Storage Utilization

Learn about ESP32's various memory structures including SRAM, PSRAM, and flash memory, and study dynamic/static memory allocation and stack memory usage. Additionally, practice how to permanently store and manage data using NVS and SPIFFS file systems.

Section 7 - GPIO and Analog/Digital Input/Output Control

Learn GPIO pin-based output, input, interrupt handling, and debouncing techniques. Additionally, cover analog signal processing through DAC and ADC, control using LEDC and PWM, and touch sensor interfaces.

Section 8 - Peripheral Device Communication Protocol Practice

Practice methods for interfacing with various peripheral devices using UART, I2C, and SPI communication protocols. Learn essential communication technologies for IoT projects, including Bluetooth logging, sensor data reception, and SD card and SSD display integration.

What you'll gain from this course

Point 1.Building a Practical ESP32 Development Environment

You will be able to independently install ESP-IDF and the toolchain, and go through the entire process of creating, building, flashing, and monitoring projects. By learning various logging options and serial monitor usage, you can naturally run through the development cycle from code changes → build → debugging.


Point 2. Understanding C Language and ESP-IDF Structure

You can review C language syntax to match the ESP-IDF style and organize a modular project by separating headers, components, and libraries. You'll go beyond simply copying code and develop the ability to judge and design "which module should this functionality be separated into."


Point 3.FreeRTOS Multitasking

You can design and implement a structure where multiple tasks operate simultaneously using FreeRTOS's Task, Queue, Semaphore, and Timer. You'll understand the concepts of priority and scheduling, and learn how to debug by analyzing "which Task is doing what right now" through logs.


Point 4.Hardware and Storage Demo

You can write code to control various sensors and peripheral devices and transmit/receive data through GPIO, I2C, SPI, and UART. Additionally, you can store configuration values and measurement data in flash using NVS and file systems, and understand ESP32's memory and storage structure to design and implement the complete operational flow of small IoT devices.


Are you feeling overwhelmed about where to start with ESP32 and IoT development?


✔️ Beginners in ESP32 and Embedded Development

  • For those who want to learn step by step from C language and ESP-IDF environment setup

  • Those who want to understand the basic principles of hardware control through hands-on practice

  • I want to create my own IoT device, a beginner with a dream

✔️ Developers who want to gain embedded development experience based on C language

  • Those who want to learn by connecting the ESP-IDF framework with C language syntax

  • Those who want to learn the basic concepts of FreeRTOS and task management methods

  • Those who want to develop skills in utilizing various hardware interfaces (GPIO, I2C, SPI, UART)

✔️ Makers and engineers who want to strengthen their IoT prototype development and firmware development capabilities

  • You want to connect sensors and modules to an ESP32 to create a working prototype

  • Those who want to learn how to efficiently store and manage data using NVS, SPIFFS, and other methods

  • Those who want to develop firmware development experience and problem-solving skills needed in the pre-productization stage


No more complex theories! With ESP32, anyone can become an IoT developer.
From hardware to FreeRTOS, turn your IoT projects into reality.

Notes Before Taking the Course


Practice Environment

  • Windows operating system is required.

  • ESP-IDF development tools and VS Code installation are required.


Prerequisites and Important Notes

  • It's helpful to understand the basic syntax of the C language.

  • It's okay if you don't have embedded development experience.

  • You need to prepare at least one ESP32 board.

Learning Materials

  • I provide the source code for the practice project.

  • I'll use the official ESP-IDF documentation as a reference.


Recommended for
these people

Who is this course right for?

  • Beginners starting with ESP32 and embedded development

  • Students and developers who want to learn hardware control while studying C language

  • Embedded developers who want to learn ESP-IDF environment and FreeRTOS-based development

  • Makers who want to create IoT prototypes by connecting sensors and modules to ESP32

  • Engineers who want to gain experience in pre-production firmware development

Need to know before starting?

  • Basic C Language Syntax

  • Basic Programming Experience

  • Hardware Fundamentals

  • MCU Development Experience

  • Basic Network Concepts

Hello
This is

안녕하세요, 문용준입니다.
저는 현재 마이크로소프트에서 Technical Support Engineer로 근무하며, Microsoft 365, OneDrive, SharePoint, Copilot, Office 등 Modern Work 분야의 기술 지원을 담당하고 있습니다. 2022년 입사 이후 IIS 웹 애플리케이션, Edge 브라우저, Azure Bot 클라우드 서비스 전반의 엔지니어링 문제 해결 경험을 쌓아왔습니다.

마이크로소프트 이전에는 임베디드·IoT 엔지니어로 활동하며 다양한 디바이스 펌웨어, BLE 통신, GUI 개발 및 프로젝트 기술 관리 경험을 보유하고 있습니다. 또한 엘리스(Elice)에서 IoT 트랙 프로젝트 코치로 활동하며, 수강생들의 디바이스 프로그래밍 및 임베디드 C 프로젝트를 지도한 경험도 있습니다.

특히, 펌웨어 설계(nRF52, ESP32 등), IoT 프로젝트 관리, M365 기술 지원에 이르는 넓은 기술 스펙트럼을 바탕으로 강의를 통해 이론과 실무를 균형 있게 전달하는 것을 목표로 하고 있습니다.

저의 강의는 단순한 기능 설명을 넘어 실제 업무와 프로젝트에서 부딪히는 문제를 해결할 수 있는 실질적 지식을 드리는 데 중점을 두고 있습니다.

여러분과 함께 성장하며, 새로운 기술을 배우고 활용하는 즐거움을 나누고 싶습니다.

Yong Jun Moon | LinkedIn

Curriculum

All

79 lectures ∙ (12hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

Not enough reviews.
Please write a valuable review that helps everyone!

Limited time deal ends in 5 days

$231,000.00

30%

$254.10

Similar courses

Explore other courses in the same field!