ESP32 BY EXAMPLE
An all-inclusive course to learn Arduino development with the ESP32.
I've created this course to help you learn Arduino development using version 2 of the Arduino IDE and the ESP32 family of microprocessors that comes with WiFi and Bluetooth as built-in features.
We focus on the ESP32 as the basic, and sole microprocessor, used in the course. But we don't just pick one ESP32 type and identify at least 5 varieties that will work with most of the examples and mini-projects.
Who is this course for?
This course is for anyone who wants to begin to explore the world of cyber-physical systems where the worlds of software and physical system control meet.
If you have seen a drone in flight and are curious how the drone receives and executes commands, this course is for you. In part 2 of the course the hardware of part 1 is used to control a drone and/or a drone simulator.
If the world of Arduino programming is one you want to learn, but don't want to start at an over-simplified beginning, this course is for you.
If hands-on exploration of simple electronic circuits using LEDs, switches and displays is something you want to try, this course is for you.
If you have used video game controllers (gamepads) and would like to explore how they work and how you can make them interact with your own hardware, this course is also for you.
It is likely that an ESP32 development board that you may already own can be made to work with the course, though some customization may be needed because of pin-numbering differences.
We use the latest Arduino IDE (2.2.1 or newer) and various libraries for the ESP32 that are available through the IDE, so you can leverage any familiarity you may have with Arduino development.
However, we don't assume you have any significant experience with the Arduino IDE or the standard Arduino hardware that is often used in introductory courses teaching combined hardware and software development from a hobbyist or maker perspective.
What are the objectives of the course?
-
1Learn just enough microcontroller basics, starting with the well-regarded family of ESP32 microcontrollers, that you understand how to read Arduino programs for the ESP32 and then modify and extend them to achieve cyber-physical causes and effects.
-
2Starting with simple examples, be able to create your own programs that leverage the wireless capabilities built-in to the ESP32 including WiFi and Bluetooth.
-
3Learn how to create your own basic hardware platform from simple parts that can become something as powerful as a drone controller.
We do assume you want to learn to program real applications based on kit hardware and so are willing to read Arduino code that is simple at first, but evolves to more complex examples quickly.
You can use the kit and course to learn from the ground up -- all you need is a passion to learn and are willing to be guided by an examples-based approach: no fluff, just stuff.
Complete breadboard construction using the kit, or your off-the-shelf parts, is covered and then explored in a series of lessons and mini-projects.
Lessons are focused on LEDs as indicators, push-button switches as actuators, mini OLED display to show status and computed results, and a Multi-Processor Unit (MPU) with gyroscope and accelerometer for sensor-based operations.
What are the knowledge prerequisites?
-
1You have a modest programming background and can read software code. Any kind of secondary school or college intro course is sufficient or you may have taken one of the many online programming introductions. Detailed Arduino programming knowledge is NOT required but some basic Arduino awareness can be helpful.
-
2You are willing to learn basic microcontroller features and use cases by example using the ESP32 as a baseline. You can overcome any initial unfamiliarity with microprocessor elements and not need to dig deeply into basic electronics principles before learning from the many examples included in the course.
We end Part 1 of the course with coverage of ESP32 WiFi and Bluetooth with a final mini-project that integrates with a video system gamepad like an Xbox or PS4 controller. The gamepad adds many more actuators to use in conjunction with the basic kit hardware.
We offer an all-inclusive, inexpensive hardware kit (although a kit is not required if you have parts to start with).
A bargain-priced kit with a less-capable ESP32 is available, as well as a moderately-priced kit using the well-respected Adafruit ESP32 Feather Huzzah and a LiPo battery so your projects can run without a power connection. This is especially useful if you follow the course progression and get to drone control using the completed kit.
For a small added expense you can use your kit parts with a PCB version where the main elements plug into headers on the PCB. Or if you have some soldering experience, a PCB version exists that has holes where all of your kit parts are inserted and soldered: no more loose wires!
There is much more that can be done with the kit hardware including drone control, home automation simulation, fall detection and more.
Hardware & Software
To complete this course, you will need some hardware and tools. Please see a complete list of hardware here, and watch the videos below for more information.
What is this course about?
Please watch this video to learn about the learning outcomes of this course, and how it is structured, so that you know what to expect.
Sample lectures
How to acquire EEK components
Blink and Wi-Fi scan examples
ESP32 Dev board
Here's what you're getting:
Which option is best for you?
You can enroll to our courses in one of two options: Solo or Community. For more information, please see this explainer page.
Solo
Once-off payment, best for self-sufficient learners on a budget.
...
Once-off.
...
Once-off.
Community
Best for the social learner: be a member of the course community.
...
Once-off.
...
Once off.
Consider a subscription
Did you know, you can get a subscription for immediate access to this and 20+ of our courses. All for a low monthly payment, cancel anytime.
Do you prefer to learn on Udemy?
On Udemy you will find all of the Tech Explorations courses at the lowest possible price.
Each course is individually priced by Udemy based on your location. We don't have control of the price on Udemy and so we can't display it on this page.
Click on the button below to open a new window where you can see the price of this course on the Udemy website.
What's in this course?
Introduction
What this course is about
Needed Software
Needed Hardware and Useful Tools
How to acquire EEK components
Setting Up Arduino IDE for EEK
Set Up and Verify ESP32 board support
Run Blink and WiFi scan examples Mac and PC
ESP32 Boards Compatible with EEK
Introduction
AdaFruit Huzzah and DevKit Clone
Arduino Nano ESP32
AdaFruit Feather S3
ESP32 Dev board
Drone Simulator Preview
Assembling EEK Main Board
Placing EEK board components
EEK Assembly Overview
Assembly Guided Videos
Trim and Install LEDs
Trim and install resistors
Install MPU 6050 and OLED
Install switches
Wire and install ESP32 boards - Part A
Wire and install ESP32 boards - Part B
Wire and install ESP32 boards - Part C
Assembly Test Arduino Sketches
PCB Versions of EEK
EEK Basics
Introduction to this section
EEK LEDs - Basic blink
EEK LEDs - ESP32 GPIOs and Pin Number Variations
Adapting sketch to support different ESP32 models
Mini-Project: Blink all EEK LEDs sequentially
Intro to OLED Displays with I2C
LED Status OLED example
Mini-Project: Serial Monitor Echo
EEK and Buttons: Simple Examples
EasyButton Library Exploration: Why a library?
Mini-Project: Button control of EEK LEDs and Display
EEK and PWM
Mini-Project: button actuation of PWM effects
Intro to MPU6050: Simple example
MPU6050 Library Candidates
Mini-Project: Gesture Tester
EEK Basics Capstone Mini-Project
EEK and WiFi
Introduction to ESP32 Basic WiFi
WiFi Examples: Scanner and NTP examples
EEK Web Server Example
Wifi-Manager with EEK
Mini-Project: NTP, WiFi-Manager and OLED
Mini-Project: EEK UDP Server Intro
Mini-Project: EEK OLED Display for UDP Server
Mini-Project: EEK UDP Server Mini-Project
EEK and Bluetooth
EEK Bluetooth Introduction
Bluepad32 Library and Board Support
Bluepad OLED Joystick Support
Bluepad D-Pad PWM Support
Mini-Project: EEK Video Gamepad interaction
The course instructor
The course instructor is Jim Solderitsch, PhD.
Jim has been a university professor, a systems architect and cybersecurity and cyber-physical system researcher over several decades.
This course grew out of a university course, conducted as an online course, on Security in the Internet of Things offered at Villanova University.
Drone control is a classic example of a cyber-physical system and this course is planned to be one in a series of courses exploring this topic.
Copyright 2024, Tech Explorations - Privacy