inflearn logo

ESP32 IoT Development Applications - From Wi-Fi to Bluetooth BLE

This course is designed for learners who have mastered the basic development methods of the ESP32 to progressively study low-power design → Wi-Fi networks → REST APIs → Web Servers → MQTT → OTA → Bluetooth BLE, with the goal of directly implementing the communication functions required for real-world IoT devices. The main goals of this course are as follows: - Understand and utilize low-power features of the ESP32, such as Light Sleep and Deep Sleep - Configure Wi-Fi Station/AP modes and handle network connections and exceptions - Implement communication with external servers using HTTP/HTTPS and REST APIs - Configure a Web Server and WebSocket server within the ESP32 - Host websites and React-based UIs directly on the ESP32 - Implement MQTT-based Publish/Subscribe communication - Perform remote firmware updates and version management using OTA - Understand the GAP/GATT structure of Bluetooth BLE based on NimBLE and implement Server/Client functionality

1 learners are taking this course

Level Intermediate

Course period Unlimited

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

What you will gain after the course

  • IoT Device Design from Battery to Network

  • Communication capabilities connecting the ESP32 to internet services

  • Services and maintenance features required for actual IoT products

  • From Bluetooth BLE Server to Client

ESP32 IoT development,

From Wi-Fi to Bluetooth BLE

Hands-On ESP32 Development: Wi-Fi and Bluetooth Using FreeRTOS

If you have learned how to control the ESP32’s GPIO and use FreeRTOS,
it’s now time to develop the ESP32 into an IoT device that actually connects to the outside world.

ESP32 IoT Development Applications

Experience the process of creating an IoT device you can actually use.

This course is a hands-on application course in which learners who have mastered the basic functions of the ESP32 follow the flow of low power → Wi-Fi → Internet → Web → MQTT → OTA → BLE and progressively implement the functions needed for it to operate as a real IoT device.

ESP32 development,

Completing It with Networking and Wireless Communication

This course does not focus on simply following along with how to use APIs or sample code.
"How should Wi-Fi connections be managed?",
"How should HTTP response data be handled if it is not delivered all at once?",
"When should a web server and WebSocket be used?",
"Why are MQTT Retain and Last Will necessary?",
"How should firmware be managed during the OTA update process?",
"What roles do GAP and GATT each play in BLE? "and
instead places importance on why each technology is necessary and what structure should be used to implement it.

Section 1 - Low-Power Modes and Sleep

Understand the operating principles and differences between ESP32 Light Sleep and Deep Sleep, and practice various wake-up methods using Timer, GPIO, EXT0, and EXT1. We also explore Hibernation to learn low-power design methods for battery-powered IoT devices.

Section 2 - Wi-Fi Network Connection and Management

Understand the basic structure and connection methods of Wi-Fi on the ESP32, and practice Internet communication and network functions using the HTTP Client, NTP Client, and Wi-Fi Scanner. Learn the Wi-Fi communication architecture required for real-world IoT applications by implementing Station/AP mode configuration, connection failure handling, reconnection, and event processing in ESP-IDF.

Section 3 - REST API and HTTP/HTTPS Communication

Understand the basic structure of HTTP and REST APIs on the ESP32, and practice GET and HTTPS communication, as well as handling chunked data and large JSON payloads. Learn the complete workflow for using Web APIs on the ESP32 by directly generating JSON data, sending it to an external server, and implementing an email-sending example.

Section 4 - ESP32 Web Server and WebSocket

Configure an HTTP Server and mDNS on the ESP32, control the device from the web through POST requests, and learn the request-and-response structure between the client and server. Then, implement a WebSocket Server to practice real-time, bidirectional communication, in which the web browser and ESP32 exchange data while maintaining a continuous connection.

Section 5 - Hosting a Website on the ESP32

Implement a Web Server structure that stores and serves web pages and various web resources on the ESP32, and learn how to handle web files using Wildcard URLs and MIME Types. Develop a user interface with React and serve it directly from the ESP32, practicing how to provide a Web UI for device configuration and control without a separate server.

Section 6 - IoT Messaging with MQTT

Understand the structure of MQTT Brokers, Clients, Topics, Publish, and Subscribe, and practice connecting an ESP32 to a Broker to send and receive messages. You will also learn practical IoT messaging structures needed for sensor data transmission and device status management by utilizing Retain Messages and LWT.

Section 7 - Remote Firmware Updates Using OTA

Understand the basic structure of OTA and the firmware update process over a network, and practice downloading and applying new firmware using Google Drive. You will also implement the firmware version management and comparison, along with the download, verification, and application processes step by step, learning how to remotely manage firmware on real IoT devices.

Section 8 - Bluetooth BLE and NimBLE

You will learn the differences between Bluetooth Classic and BLE, understand the BLE Stack, Advertising, GAP, and GATT structures, and directly implement Read, Write, and Notify functions. You will also configure the ESP32 as both a BLE Peripheral and a Client to search for and connect to nearby devices, explore Services and Characteristics, and learn the entire BLE communication process of sending and receiving data.

What you will gain from this course

Point 1. IoT Architecture Design

You will understand the differences between Light Sleep and Deep Sleep and be able to use wake-up sources such as Timer, GPIO, EXT0, and EXT1.

By adding Wi-Fi connectivity and connection status management, you can design an IoT device architecture that considers both power consumption and network status, rather than just a development board that is always powered on.

Point 2. Communication between ESP32 and Internet services

Using HTTP, HTTPS, REST APIs, and JSON, you can implement the ESP32 to exchange data with external servers.

In addition to accessing external services as a client, you will configure the ESP32 to operate as an HTTP server and WebSocket server, gaining an understanding of the communication structure between Device ↔ Server ↔ Web Browser.

Point 3. Services and features required for IoT products

You can implement a structure in which the ESP32 directly serves a website and uses MQTT to publish/subscribe to data.

Additionally, you will learn how to update the firmware of an ESP32 deployed via OTA over a network and manage its Version.

Beyond the development stages of writing programs and uploading them via USB, you will gain experience creating IoT devices that can be managed even after installation.

Point 4. From Bluetooth BLE Server to Client

You will understand the BLE Advertising, GAP, and GATT structures and be able to implement Beacon, GATT Read/Write, Battery Service, and Notify features yourself.

By configuring the ESP32 not only as a BLE Peripheral but also as a Client, you will experience the entire communication flow of discovering and connecting to nearby devices and exploring their Services and Characteristics.

Through this, you can directly design communication functions between the ESP32 and a smartphone or other BLE devices.

Although you’ve learned the basic functions of the ESP32,

Are you unsure how to build a real-world IoT service?

✔️ Those who have completed the basics of ESP32 and want to move on to the application stage

  • Those who can create and upload projects in ESP-IDF but are unsure what to study next

  • Those who want to go beyond GPIO and FreeRTOS and utilize Wi-Fi and Bluetooth

  • Those looking for what to learn after completing a beginner ESP32 IoT development course

✔️ Developers who want to build their network-based embedded development skills

  • Those who want to implement HTTP, REST API, WebSocket, and MQTT directly on the ESP32

  • Those who want to understand how Embedded Devices and Servers exchange data

  • Those who want to learn not only Wi-Fi connections but also error handling and connection management

✔️ Makers and engineers who want to build real-world IoT prototypes and products

  • Those who want to provide a web-based configuration or control interface on the ESP32

  • Those who want to transmit sensor and device data using MQTT

  • Those who want to update the firmware of devices installed in the field using OTA

  • Those who want to develop products that communicate with smartphones or other BLE devices

Expand from an ESP32 that only controls sensors into an IoT device connected to the internet and your smartphone.

Implement ESP32 IoT development techniques firsthand, from Wi-Fi to Bluetooth BLE.

Notes Before Enrollment

Practice Environment

  • The course is conducted based on the Windows operating system.

  • You will need the ESP-IDF development environment and VS Code.

  • At least one ESP32 development board is required.

  • An internet environment with Wi-Fi connectivity is required.

  • A smartphone or PC that supports Bluetooth BLE is required for the BLE exercises.

  • For the Web and React exercises, you will use a web browser and the relevant development environment.

  • For the OTA exercise, Google Drive is used to store and download the firmware.

Prerequisite Knowledge and Notes

  • You should understand the basic syntax of the C language.

  • It would be helpful to know how to create, build, and flash an ESP-IDF project.

  • Understanding the basic program structure of the ESP32, such as FreeRTOS Tasks, will be helpful.

  • It would be helpful to have a basic understanding of networking concepts such as HTTP, IP, and client/server, but


    The concepts you need for the course will be explained along the way.

  • You will have the smoothest learning experience if you have first taken “ESP32 IoT Development Basics - From Hardware to FreeRTOS” or
    have equivalent experience developing with ESP32.

Learning Materials

  • We provide the source code for the ESP-IDF hands-on projects used in the course.

  • We use the documentation and relevant protocol specifications together to understand each technology.

Recommended for
these people

Who is this course right for?

  • Those who have completed the basics of ESP32 and want to move on to the application stage

  • Developers who want to enhance their network-based embedded development skills

  • A developer who works on projects involving the ESP-IDF environment and FreeRTOS-based development

  • Makers and engineers who want to build real IoT prototypes and products

Need to know before starting?

  • C language syntax

  • ESP-IDF experience

  • FreeRTOS Concepts

  • Network Concepts

  • You will be able to learn most smoothly if you have first taken “ESP32 IoT Development Basics - From Hardware to FreeRTOS” or have equivalent ESP32 development experience.

Hello
This is yongjunmoon

Career Verified

26

Learners

3

Reviews

4

Answers

5.0

Rating

2

Courses

Hello, I’m Moon Yong-jun.
I currently work at Microsoft as a Technical Support Engineer, providing technical support in the Modern Work field for Microsoft 365, OneDrive, SharePoint, Copilot, Office, and more. Since joining the company in 2022, I have gained experience troubleshooting engineering issues across IIS web applications, the Edge browser, and Azure Bot cloud services.

Before joining Microsoft, I worked as an embedded and IoT engineer, gaining experience in various device firmware, BLE communication, GUI development, and technical project management. I also worked as an IoT track project coach at Elice, where I mentored students on device programming and embedded C projects.

In particular, based on a broad technical spectrum spanning firmware design (nRF52, ESP32, etc.), IoT project management, and M365 technical support, my goal is to strike a balance between theory and hands-on practice through my courses.

My lectures go beyond simply explaining features and focus on providing practical knowledge that can help you solve problems encountered in real-world work and projects.

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

Yong Jun Moon | LinkedIn

More

Curriculum

All

80 lectures ∙ (13hr 34min)

Published: 
Last updated: 

Reviews

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

Similar courses

Explore other courses in the same field!

Limited time deal

$278,850.00

35%

$330.00