When you enroll through our links, we may earn a small commission—at no extra cost to you. This helps keep our platform free and inspires us to add more value.

Udemy logo

IoT Application Development with the ESP32 Using the ESP-IDF

Develop a WiFi based application on the ESP32 and Subscribe/Publish MQTT Messages to AWS IoT using ESP-IDF & FreeRTOS

     
  • 5
  •  |
  • Reviews ( 1.3K )
₹529

This Course Includes

  • iconudemy
  • icon5 (1.3K reviews )
  • icon8h 48m
  • iconenglish
  • iconOnline - Self Paced
  • iconprofessional certificate
  • iconUdemy

About IoT Application Development with the ESP32 Using the ESP-IDF

General Description & Background Information:

In this course, we'll develop a feature rich WiFi based application using the ESP-IDF (Espressif IoT Development Framework),

Integrate an ESP-IDF Components & Sensors Library

and configure the ESP32 to

_connect to AWS IoT_

and

_Publish_

/

_Subscribe messages via AWS IoT_

_Core using the MQTT protocol_

. WiFi is commonly incorporated into many IoT and Industrial IoT solutions and is the basis of the application developed in this course which enables AWS IoT cloud connectivity (or any compatible cloud framework that you choose). The ESP32 is a series of low-cost, low-power, SoC (system on a chip) series of microcontrollers with integrated WiFi and dual-mode Bluetooth. The ESP-IDF is Espressif's official IoT Development Framework for the ESP32. It provides a self-sufficient SDK (software development kit) for any generic application development, using programming languages such as C and C++. ESP-IDF currently powers millions of devices in the field, and enables building a variety of network-connected products, ranging from simple light bulbs and toys, to big appliances and industrial devices. The ESP-IDF runs FreeRTOS, which is widely used in embedded systems, so the techniques and knowledge you gain while developing IDF-based applications for the ESP32 will translate well should you use other MCUs running FreeRTOS. Additionally, the FreeRTOS kernel of the ESP-IDF is modified for multicore support and we will utilize both cores of the ESP32 in this course. If you are interested in working with the ESP32 and are serious about improving your embedded software development skills while getting to know this incredible SoC, then harnessing the capabilities of the ESP-IDF directly, is an excellent way to go. The IDF is well designed, and once you get going, implementing new features becomes a breeze. Further, any new updates, bugfixes, or changes to the ESP-IDF can be immediately available to you in a flexible way without having to wait for the Arduino port to be written.

About the Course:

For many, the best way to learn is to start with a project, which is why in this course, I have created a robust WiFi based application that is able to connect to a cloud framework (AWS IoT in this case), as a learning tool - _as opposed to demonstrating tiny examples that you could easily find online_. The intended outcome of this course, is that you become comfortable developing applications using the ESP-IDF, gain insight from the application code, inspiration for your own projects and ultimately, save you time in learning to use various components of the ESP-IDF. By working through this project, programming step-by-step through each lesson, I'm confident that you will feel comfortable developing an extensible WiFi based application and integrating a cloud framework using the ESP-IDF, or any application using the ESP-IDF, as it will become apparent how to create a plan of action when using Espressif's IoT Development Framework -> utilizing the Espressif documentation, looking up the API reference and relevant functions, and applying what makes sense to accomplish your goals. Furthermore, in this course we will not focus on theory as this is a practical application programming course where you learn by doing. However, I will briefly present background information about the ESP-IDF application programming interface that applies to each section and a brief overview of the application requirements for each section. These overviews will describe what will be accomplished and how we are going to accomplish it using the ESP-IDF. Lastly, I have chosen to develop this project utilizing the ESP-IDF Eclipse Plugin (or Espressif IDE), which is available for Windows, MacOS, and Linux, and provides an all-in-one installation that includes the Eclipse IDE, and all prerequisites required for ESP32 development; enabling us to get started with programming, flashing and monitoring the ESP32 directly after installing. The setup process is quite easy and efficient, especially for Windows users...

Other Noteworthy Highlights:

_Modular programming style_

used.

_Utilize both cores of the ESP32_

and create tasks using _xTaskCreatePinnedToCore_. Use

_FreeRTOS message queues_

for inter-task communication. And,

_FreeRTOS binary semaphore_

for signalization from an interrupt service routine (ISR).

_State machine in WiFi application_

allows for

_future growth_

and

_customization_

. Use

_Non-Volatile storage_

for saving and loading WiFi credentials for

_connecting the ESP32_

. Learn an

_efficient workflow_

for

_developing an HTTP server_

and

_web page_

. Learn how to implement an

_OTA (over the air) firmware update_

over the WLAN by sending the update file

_via a web page_

to the ESP32. Learn how to integrate a cloud framework - we will

_integrate the ESP AWS IoT framework_

to enable communication with

_AWS IoT Core_

. Learn how to

_publish data_

(e.g.,

_temperature_

,

_humidity_

and

_WiFi RSSI_

) from the

_ESP32 to AWS IoT using the MQTT protocol_

. Learn how to

_subscribe &_

_publish data_

to and from the

_AWS Dashboard_

. Learn how to

integrate an ESP-IDF Components & Sensors Library

.

Hardware:

- ESP32 DevKit - RGB LED and Resistors - DHT22 Sensor or any sensor(s) from the ESP-IDF Components & Sensors Library - Jumper Wires - Breadboard

Software:

- ESP-IDF Eclipse (Espressif IDE) _We'll use_

_Google Chrome_

_for testing the web page functionality_

What You Will Learn?

  • How to develop WiFi based applications on the ESP32 using the ESP-IDF .
  • Integrate a Components & Sensors Library, allowing for easy integration of sensors and other components to your projects .
  • Configure ESP AWS IoT on the ESP32 to enable AWS IoT cloud connectivity .
  • Publish/subscribe AWS IoT Core MQTT messages and test using the MQTT test client .
  • Quickly and easily set up ESP-IDF (Espressif IoT Development Framework) projects using the Eclipse-based Espressif IDE .
  • Develop extensible, modular applications on the ESP32 using the ESP-IDF .
  • Develop an application with WiFi, HTTP server, Web Page, Non-Volatile Storage, OTA Firmware Updates, SNTP Time Synchronization, RGB LED, Button with Interrupt .
  • Utilize FreeRTOS for task management and intertask communication .
  • How to build, flash and monitor the application all within the IDF version of Eclipse .
  • How to develop a simple web page for displaying data, connecting the ESP32 to an access point, disconnect the ESP32, upload new firmware (OTA update) and more .
  • You will learn how to utilize FreeRTOS primitives, such as message queues, event groups, and semaphores .
  • Learn how to develop and extend a web page using .HTML, JavaScript and CSS and develop an HTTP server to support web page functionality .
  • By the end of the course, you will feel confident in developing an extensible WiFi based application using the ESP-IDF Show moreShow less.