The ESP32 is a powerful microcontroller.
It integrates Wifi and Bluetooth, many GPIOs, analog input and output capabilities, many device interconnection protocols, a fast dual-core processor.
All that, at a low price.
And best of all: you can use your existing Arduino knowledge and skill to turbo-charge your projects.
Especially if you have already learned how to use the Arduino Uno in your projects, it is likely that you have hit a hardware limitation.
Perhaps your projects needed more memory, more speed, or more pins.
With the ESP32, you can get a lot more capacity to build more interesting projects, almost for free.
However, the ESP32 is not a plug-in replacement for the Arduino.
While it shares much of the Arduino’s programming and GPIO interface, you still need to learn the basics before you can deploy it.
This is the purpose of this course.
In this course you will learn:
- What is the ESP32.
- What are the various modules with that name, and how these modules are available to us in the form of development kits.
- What are the differences and similarities between the ESP32 and the Arduino.
- How can we use what we know from the Arduino to make things based on the ESP32.
- How can we use the ESP32 GPIOs to work with simple components like LEDs and buttons, but also to drive peripherals like displays, sensors (including the integrated ones) and motors.
- How to generate external and time interrupts.
- How can we set up the familiar Arduino IDE so that we can write programs for the ESP32.
- How to store data in non-volatile memory.
- How to communicate with near field devices and the Internet.
In this course, I have also included numerous mini-projects to demonstrate how to use capabilities such as GPIO read and write, classic Bluetooth, Bluetooth Low Energy, Wifi, digital to analog conversion, touch sensors, and more.
Larger projects will also show you how to create simple Internet of Things and Bluetooth applications, to name a few.
If you are ready to learn more, please be sure to watch the lectures in this introductory section to find our more.
Sample videos from the course
Video 1: What is this course about?
Video 2: The ESP32 vs the Arduino
Video 3: GPIO interrupts sketch and demo
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
Know your ESP32
02.10 The ESP32 module
02.20 The ESP32 Dev Kit
02.30 ESP32 vs Arduino
03.10 Setting up ESP32 in the Arduino IDE on Mac OS (to use in this course)
03.20 Setting up ESP32 in the Arduino IDE on Windows 10 (to use in this course)
03.30 Install the drivers CP21012 USB chip
04.10 Digital output LED
04.20 PWM and LED
04.30 RGB LED with PWM
04.40 Digital input with Button
04.50 Analog input with a potentiometer
04.52 Analog input with potentiometer and PWM output
04.60 Sigma-Delta modulated analog output with potentiometer and LED
04.62a An overview of Digital to Analog Conversion in the ESP32
04.62b DAC demo sketch
04.62c DAC analog waveform demo
04.62d Making noise with the DAC
04.70a GPIO interrupts introduction and readings
04.70b GPIO interrupts sketch and demo
05.10 Integrated Hall effect (use a magnet)
05.20 Touch (capacitive) sensor with LED
05.30 Touch (capacitive) sensor with interrupts and LED
05.50 BME280 environment sensor using I2C
05.52a Sensor reading with timer interrupts overview
05.52b Timer interrupt sensor reading sketch walkthrough
05.52c Timer interrupts further readings
05.70 ADXL335 Accelerometer
06.10 LCD I2C screen
06.20 Seven segment display
06.22 Seven segment display with library
06.30 Seven segment clock display with I2C
06.40 8×8 LED matrix display (single)
06.42 8×8 LED matrix display (multiple)
07.10 DC motors with the DRV8871 motor controller
07.20 Servo motor (single)
08.40 How to erase the flash
Time and date
09.10 Time and date with the DS3231
09.20 A clock with an LCD and the DS3231
09.30 How to produce a square wave at 1Hz, 1KHz, 4KHz, 8KHz
09.40 Update LCD time and date with external interrupt and the DS3231
10.10 Wifi connection
10.20 Wifi HTTP client
10.30 Wifi HTTPS client
10.40 Wifi HTTPS client LED control
10.50 Wifi HTTPS dweet.io client
10.60 Wifi web server to control an LED
11.10 Intro to Classic Bluetooth
11.12a Bluetooth Classic project demonstration
11.12b Bluetooth Classic project, display management
11.12c Bluetooth Classic project, sensor updates
11.20a BLE server (part 1)
11.20b BLE server (part 2)
11.30 BLE server with LCD
11.40a BLE heart rate project demonstration and simulation
11.40b BLE heart rate project sketch walkthrough
11.42 BLE heart rate monitor client with LCD