inflearn logo

ESP32 IoT Development Basics - From Hardware to FreeRTOS

This course aims to help learners who are new to ESP32 and IoT development master everything from environment setup and language basics to hardware control and RTOS utilization. The main objectives of this course are as follows: - Acquire the ability to use the ESP32 development environment and basic tools - Understand the 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 structures and implement simple persistent data storage

(5.0) 1 reviews

12 learners

Level Beginner

Course period Unlimited

C
C
IoT
IoT
FreeRTOS
FreeRTOS
esp32
esp32
C
C
IoT
IoT
FreeRTOS
FreeRTOS
esp32
esp32

What you will gain after the course

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

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

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

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

  • You can store settings and data and efficiently manage memory structures using NVS and file systems.

ESP32 IoT Development,
Master everything from hardware to FreeRTOS!

Are you 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 can be applied directly in the field.


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

This course is a practical introductory lecture aimed at helping learners new to ESP32 and IoT development master everything from environment setup → C language basics review → hardware control → FreeRTOS-based multitasking all at once.

ESP32 Development,
Mastering through Real-World Projects

This course is not just about simply following and typing example code.
I have designed it with the highest priority on explaining “why the code was written this way,” “where to start looking in the datasheet,” and “what to suspect and which logs to check when a problem occurs.”

Section 1 - Course Introduction and Development Environment Setup

In this section, we introduce the ESP32 IoT development process and provide detailed guidance on setting up the ESP-IDF development environment and VS Code required for the hands-on exercises. Additionally, we compare different types of ESP32 chips and modules and establish learning objectives.

Section 2 - ESP32 Basic Functions and C Language Application

We will practice the basic logging, delay, and random number generation functions of the ESP32 and handle hardware through LED control and keyboard input. Additionally, we will learn how to write code efficiently by utilizing structures, pointers, and function pointers, which are the core of the C language.

Section 3 - ESP-IDF Project Structure and Component Management

Understand the internal structure of ESP-IDF projects and learn how to reference C and H files. This section covers the concept of components for utilizing external libraries, as well as detailed methods for adding and utilizing external components.

Section 4 - In-depth Study of FreeRTOS Real-Time Operating System

Learn various features of FreeRTOS, a real-time operating system. You will learn how to create and manage tasks, and use task notifications, mutexes, semaphores, queues, event groups, and timers to master efficient development methods in a multitasking environment.

Section 5 - ESP32 Debugging and Configuration Management

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

Section 6 - ESP32 Memory Structure and Storage Utilization

Understand the various memory structures of the ESP32, such as SRAM, PSRAM, and Flash memory, and learn how to use dynamic/static memory allocation and stack memory. Additionally, practice how to permanently store and manage data using NVS and the SPIFFS file system.

Section 7 - GPIO and Analog/Digital I/O Control

Learn how to handle outputs, inputs, interrupts, and debouncing techniques using GPIO pins. Additionally, cover analog signal processing via DAC and ADC, control using LEDC and PWM, and touch sensor interfaces.

Section 8 - Peripheral Communication Protocol Practice

You will practice how to interface with various peripheral devices using UART, I2C, and SPI communication protocols. You will master essential communication technologies for IoT projects, such as Bluetooth logging, receiving sensor data, and interfacing with SD cards and SSD displays.

What you will gain from this course

Point 1. Setting up a practical ESP32 development environment

You will be able to personally handle the entire process of installing the ESP-IDF and toolchain, as well as creating, building, flashing, and monitoring projects. By mastering various log options and serial monitor usage, you will be able to naturally navigate the development cycle from code changes to building and debugging.


Point 2. Understanding C Language and ESP-IDF Structure

You will review C language syntax in the ESP-IDF style and learn how to organize modular projects by dividing headers, components, and libraries. Beyond simply typing along with the code, you will develop the intuition to judge and design "which module this function should be separated into."


Point 3. FreeRTOS Multitasking

You can design and implement structures where multiple tasks operate simultaneously using FreeRTOS Tasks, Queues, Semaphores, and Timers. You will 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 directly write code to control various sensors and peripherals and transmit/receive data through GPIO, I2C, SPI, and UART. Additionally, you can utilize NVS and file systems to store configuration values and measurement data in flash memory, and design and implement the entire operational flow of a small IoT device by understanding the memory and storage structure of the ESP32.


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


✔️ Beginners in ESP32 and embedded development

  • Those who want to learn step-by-step, starting from C language and ESP-IDF environment configuration

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

  • Beginners who dream of creating their own IoT devices

✔️ Developers who want to gain experience in C-based embedded development

  • Those who want to learn by linking 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 their skills in utilizing various hardware interfaces (GPIO, I2C, SPI, UART)

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

  • Those who want to create working prototypes by connecting sensors and modules to the ESP32

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

  • Those who want to develop firmware development experience and problem-solving skills required for the pre-production 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


Hands-on Environment

  • Windows operating system is required.

  • Installation of ESP-IDF development tools and VS Code is required.


Prerequisites and Important Notes

  • It is helpful to have an understanding of basic C programming syntax.

  • It is okay even if you have no prior experience in embedded development.

  • At least one ESP32 board is required.

Learning Materials

  • Source code for the practice project is provided.

  • The official ESP-IDF documentation is used for reference.


Recommended for
these people

Who is this course right for?

  • Beginners starting out with ESP32 and embedded development

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

  • An embedded developer who wants to learn the ESP-IDF environment and FreeRTOS-based development.

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

  • An engineer who wants to gain experience in firmware development during the pre-production stage.

Need to know before starting?

  • Basic C language syntax

  • Basic programming experience

  • Basic Hardware Knowledge

  • MCU development experience

  • Basic Network Concepts

Hello
This is yongjunmoon

Hello, I'm Yongjun Moon.
I am currently working as a Technical Support Engineer at Microsoft, where I am responsible for technical support in the Modern Work field, including Microsoft 365, OneDrive, SharePoint, Copilot, and Office. Since joining in 2022, I have built experience in resolving engineering issues across IIS web applications, the Edge browser, and Azure Bot cloud services.

Prior to Microsoft, I worked as an Embedded/IoT Engineer, gaining experience in various device firmware, BLE communication, GUI development, and technical project management. I also served as an IoT Track Project Coach at Elice, where I guided students through device programming and embedded C projects.

In particular, based on a broad technical spectrum ranging from firmware design (nRF52, ESP32, etc.) to IoT project management and M365 technical support, I aim to deliver a balance of theory and practical application through my lectures.

My lectures focus on providing practical knowledge to solve real-world problems encountered in tasks and projects, going beyond simple functional explanations.

I want to grow together with all of you and share the joy of learning and applying new technologies.

Yong Jun Moon | LinkedIn

More

Curriculum

All

79 lectures ∙ (12hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

1 reviews

5.0

1 reviews

  • fain9301님의 프로필 이미지
    fain9301

    Reviews 100

    Average Rating 4.8

    5

    100% enrolled

    I think this is a great lecture for gaining a foundation and sparking interest in ESP. While it's a bit disappointing that there aren't many detailed practical applications, I liked that it was a good, interest-oriented course that condensed a lot of content regarding the basics and project structure. One downside is the access period; it would be even better if you could provide unlimited access in the future.

    • yongjunmoon
      Instructor

      Thank you for completing 100% of the course and leaving a review! I am currently producing application lectures including WiFi, web servers, and Bluetooth. After those are finished, I will also proceed with content utilizing actual projects! I have updated your enrollment period to unlimited!

Similar courses

Explore other courses in the same field!

$254.10