Mô tả

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

Bạn sẽ học được gì

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

Yêu cầu

  • ESP32 Development Kit
  • DHT22 Sensor if you want to get temperature and humidity data
  • RGB LED if you want to create LED status colors
  • Jumper wires and a breadboard
  • Familiarity with the C programming language

Nội dung khoá học

19 sections

Introduction

3 lectures
Detailed Course Introduction
06:06
Hardware & Software Requirements
01:48
Course Structure
04:47

Espressif Hardware: ESP32 DevKits

1 lectures
ESP32 DevKits
02:00

Development Environment Setup, and ESP-IDF Build System & CMake Overview

3 lectures
Eclipse (Espressif IDE) Installation
06:25
ESP-IDF Build System & CMake Overview
11:54
Eclipse Project Template Setup
05:41

Supplemental Lessons

4 lectures
ESP-IDF Example Projects
04:07
ESP-IDF FreeRTOS
07:46
ESP-IDF Error Handling
06:54
Embedded C Coding Style
03:31

Components & Sensors Library (Optional)

2 lectures
Components & Sensors Library Overview
05:41
Components & Sensors Library Integration and BME 680 Example
09:04

Course Source Code

1 lectures
Git Repository
00:50

RGB Application Status LED

2 lectures
RGB LED Implementation Overview
04:45
RGB LED Programming
17:00

WiFi Application

5 lectures
WiFi Implementation Overview
07:18
WiFi Application Programming Part I
16:37
WiFi Application Programming Part II
12:55
WiFi Application Programming Part III
18:31
WiFi Application Testing
04:44

HTTP Server

6 lectures
HTTP Server Implementation Overview
04:50
HTTP Server Increasing Partition Sizes (ESP-IDF version 5 & above)
00:54
HTTP Server Programming Part I
10:27
HTTP Server Programming Part II
16:32
HTTP Server Programming Part III
09:29
HTTP Server Programming Part IV
09:25

OTA Firmware Update

4 lectures
OTA Firmware Update Implementation Overview
06:09
OTA Firmware Update Programming Part I
22:04
OTA Firmware Update Programming Part II
10:12
OTA Firmware Update Testing
04:14

DHT22 Sensor

3 lectures
DHT22 Sensor Implementation Overview
02:23
DHT22 Sensor Programming Part I
08:17
DHT22 Sensor Programming Part II
11:05

WiFi Connect Implementation

4 lectures
WiFi Connect Implementation Overview
04:17
WiFi Connect Programming Part I
16:40
WiFi Connect Programming Part II
13:45
WiFi Connect Programming Part III
12:15

Displaying WiFi Connection Information on the Web Page

2 lectures
Displaying WiFi Connection Information: Web Page Programming
09:30
Displaying WiFi Connection Information: HTTP Server Programming
09:50

WiFi Disconnect Button

1 lectures
WiFi Disconnect Button Programming
09:23

Non-Volatile Storage (NVS)

3 lectures
Non-Volatile Storage (NVS) Implementation Overview
04:53
Non-Volatile Storage (NVS) Programming Part I
22:09
Non-Volatile Storage (NVS) Programming Part II
18:16

Button with Interrupt & Semaphore

2 lectures
WiFi Reset Button Overview
05:22
WiFi Reset Button Programming
17:00

SNTP Time Synchronization

4 lectures
SNTP Time Synchronization Overview
04:42
SNTP Time Synchronization Programming Part I
15:17
SNTP Time Synchronization Programming Part II
04:02
SNTP Time Synchronization Programming Part III
12:06

Displaying the ESP32's Access Point SSID on the Web Page

1 lectures
Displaying AP SSID Programming
07:26

AWS IoT

5 lectures
AWS IoT Implementation Overview
08:30
AWS IoT Technical Supplement: MQTT, mTLS, AWS Security & Policies, and JSON
04:41
AWS IoT Configuration & MQTT Subscribe/Publish Example
24:36
AWS IoT MQTT Publish/Subscribe Example Code Review & Update
10:46
AWS IoT Using the Updated SDK MQTT Example
18:53

Đánh giá của học viên

Chưa có đánh giá
Course Rating
5
0%
4
0%
3
0%
2
0%
1
0%

Bình luận khách hàng

Viết Bình Luận

Bạn đánh giá khoá học này thế nào?

image

Đăng ký get khoá học Udemy - Unica - Gitiho giá chỉ 50k!

Get khoá học giá rẻ ngay trước khi bị fix.