The ESP32 is a powerful, low-cost microcontroller. It has features that make it an ideal choice for Internet of Things applications.
It comes as a development kit, which makes it easy to connect it to a computer for programming, it provides powering options, and exposes its GPIOs so that we can connect peripherals.
Working with the ESP32 development kit is a real pleasure for makers.
In my course, ESP32 For Busy People, you learned how to use the ESP32 development kit with a variety of peripherals.
You learned how to program it using the familiar Arduino IDE.
You also learned how to use its unique features in several small projects.
However, to learn a new technology well, you need a comprehensive, real-world project.
A project that combines as many as possible…
- technical capabilities,
- and higher level design considerations
…to deliver a real, useful, working gadget.
A project like this can stretch your hungry mind and fill it with new delicious knowledge.
Moreover, when you complete it, you’ll be proud of what you’ve made.
In this course, you will learn how to make an IoT gadget.
You’ll use the knowledge you acquired in ESP32 For Busy People.
You’ll learn new knowledge so that you can integrate new components and tools.
This course is action-packed, but here are two highlights:
1. You’ll use PlatformIO, a fully-featured, modern development environment, running inside Microsoft Visual Studio Code, an excellent graphical programming editor, in the place of the Arduino IDE. Both PlatformIO and MS Code are free applications, and with them, you’ll be able to create applications that can take advantage of the capabilities of the ESP32.
2. The gadget that you’ll create in this course will make use of three Cloud-based platforms: AdafruitIO, If This Then That, and Google Assistant, to implement modern IoT capabilities.
You can find the details about the objectives and the curriculum of this course in the free lectures in the first section.
As always, the course follows the familiar Tech Explorations format, which includes all schematic wiring diagrams and demo sketches, a logical course structure, high-quality video and audio, and thoughtful and calm delivery. In this course, you can also download the complete PlatformIO project file, which also includes every single Git commit I have made during the recording of the lectures.
For the list of required hardware, please go to the hardware page (the page will open in a new tab).
Sample videos from the course
Video 1: What is this course about?
Video 2: Software you will need
Video 3: Hardware you will need
Video 4: Why use PlatformIO?
Video 5: A demo of the gadget
01 – Introduction
01.10 What is this course about?
01.20 Software you will need
01.30 Hardware you will need
01.40 How to get the most out of this course
01.50 Why use PlatformIO?
02 – Walkthrough the project
02.07 The ESP32 board breakout
02.10 A demo of the gadget
02.20 Walkthrough the multi-file Arduino project
02.40 The conversion plan
04 – Setup PlatformIO and MS Code
04.10 Install MS Code (Mac OS)
04.12 Install MS Code (Windows 10)
04.60 MS Code essentials
05 – A C++ primer for Arduino makers who want to use Platform IO
05.10 What is this section about
05.20 Pointers, an introduction
05.22 Pointers, demonstration
05.40 Splitting a program into small files, an introduction
05.42 Splitting a program into small files using the Arduino framework
05.44 Splitting a program into small files using normal C++
05.50 Namespaces, an introduction
05.52 Namespaces, demonstration
06 – Prototype 1: Getting started with the project
06.10 Objective: how to setup a new project
06.20 Setup project
07 – Prototype 2: Switch to multiple files, add version control
07.10 Objective: why multiple files and Git
07.20 Create the Git repository
07.30 Split main.cpp into multiple files
07.50 How to use Git version control
08 – Prototype 3: TFT display
08.10 Objective: activate the display
08.20 How to use the TFT display
08.30a Execute part a
08.30b Execute part b
08.50 Merge tft_setup branch to master
09 – Prototype 4: SPIFFS and fonts
09.10 Objective: How to use various fonts
09.20 How to create a custom font
09.30 Upload the fonts to SPIFFS
09.40 Apply the custom fonts in the app
09.60 Merge fonts branch to master
10 – Prototype 5: Images
10.10 Objective: displaying graphics in the TFT
10.20 Upload the image file to SPIFFS
10.30 Edit the application code
10.50 Merge working and master branches
11 – Prototype 6: Task scheduler
11.10 Objective: why use a task scheduler?
11.20 How to use the task scheduler
11.50 Merge working and master branches
12 – Prototype 7: Wifi and Clock
12.10 Objective: showing the time without additional hardware
12.15 Setup Wifi
12.20 The clock library and operation, Internet time
12.30 Wifi and Clock Test
12.40 Merge working and master branches
13 – Prototype 8: AdafruitIO via MQTT
13.20 What is MQTT?
13.30 What is AdafruitIO?
13.50 AdafruitIO and MQTT Test
13.60 Merge working and master branches
14 – Prototype 9: Wifi status display
14.10 Objective: why show the connection status on the display?
14.40 Merge working and master branches
15 – Prototype 10: EEPROM
15.10 Objective: why use EEPROM?
15.20 EEPROM in the ESP32
15.50 Merge working and master branches
16 – Prototype 11: Watchdog
16.10 Objective: what is a watchdog?
16.20 How to implement a watchdog
16.50 Merge working and master branches
17 – Prototype 12: Touch interface
17.10 Objective: create a hotspot on the display
17.20 The TFT capacitive touch interface
17.50 Merge working and master branches
18 – Prototype 13: MQTT response and Google Assistant
18.10 Objective: control the gadget with voice commands
18.20 Setup IFTTT with Google Assistant and AdafruitIO
18.30 Test IFTTT
18.70 Merge working and master branches
19 – Tidying up
19.10 The final version of this project
31 – Library automatic update
31.10 Automatic update of a library