An ESP32 course, from first light to WiFi and BLE
Pins at 3.3 V, interrupts, a screen and NeoPixels on the ESP32-C3, then WiFi, a web server, MQTT, ESP-NOW and Bluetooth on the ESP32.
How you will learn it
The ESP32 is the board most connected projects use: cheap, fast and with WiFi and Bluetooth built in. It also has its own rules, from 3.3 V pins to a different PWM peripheral, which is why it gets a course of its own.
Embedded on the ESP32-C3 covers the board itself: pins, interrupts, Serial, an OLED and NeoPixels, ending in a memory game and a console. Connected devices then takes it online, one protocol per lesson.
What you will learn
- Wire inputs and outputs for 3.3 V logic and use interrupts well.
- Drive an I2C OLED and a strip of addressable LEDs.
- Join WiFi, call an API and serve a web page from the board.
- Write MQTT publish code, send data peer to peer with ESP-NOW and make a BLE device a phone can find.
The courses and lessons to take
Every lesson opens in the editor right away, signed in or not, and the simulator checks each step.
- Step 1 路 13 lessons 路 11 h
Embedded on the ESP32-C3
The board itself, from first light to a console.
- First light on the C3One pin, one lamp, one program on a RISC-V board. Why 3.3 V changes the resistor you pick, and what the board does while it waits.
- Interrupts, and what they costA handler that runs the moment a pin falls, a counter shared with the main loop, and the bounce that makes one press count as four.
- A screen on two wiresA 128x64 OLED over I2C, bit-banged on two pins. Addresses, acknowledgments, a frame buffer in RAM, and what a redraw costs.
- Color on one wireSixteen addressable LEDs on a single pin, and a protocol where the length of a pulse is the bit. The timing is the whole problem.
- Step 2 路 7 lessons 路 4 h
Connected devices
WiFi and radio, one protocol per lesson.
- Joining WiFiThe connect loop every connected device starts with: WiFi.begin, the states a station walks through, the address DHCP hands out, and what a wrong password and a wrong network name look like.
- A web serverThe board serves a page: a WiFiServer on port 80 reads the browser鈥檚 request a line at a time, switches two LEDs from the path, and prints the page back.
- MQTT with PubSubClientPublish and subscribe through a broker: topics, payloads, QoS and retained messages, the PubSubClient connect loop with its error codes, and the same reading sent over HTTP where the simulator has no broker.
- BLE: a lamp your phone can findBluetooth Low Energy the way phones see it: a GATT server with the Nordic UART service, a characteristic to write, notifications back, and advertising again after a phone leaves.
- Step 3 路 7 lessons 路 6 h
Build a handheld game console
A build to finish with: a handheld game console on the C3.
Wire a color screen, buttons and sound to an ESP32-C3, one working step at a time, and finish with three games you can play.
Every lesson in the course
Guides and tools on the same subject
ESP32 projects for beginners
Open itESP32-C3 SuperMini pinout
Open itEmbedded track
Arduino, ESP32, Raspberry Pi Pico and STM32: pins, timing, buses, motors, WiFi, registers and debugging, every lesson checked on a simulated board.
See the whole trackQuestions people ask
Should I learn Arduino before the ESP32?
It helps but is not required. The ESP32-C3 course starts at first light. If you have never written a sketch, Embedded on the Arduino Uno is the gentler start.
Can a simulator really do WiFi?
Yes. Connected devices runs the WiFi, web server, ESP-NOW and BLE code on a simulated ESP32, so you can see each request and reply. MQTT is the one exception: the simulator has no broker, so that lesson sends the same reading over HTTP.
Which ESP32 does the course use?
The ESP32-C3, a RISC-V chip, for the board course, and the classic ESP32 for Connected devices. The code carries over to other ESP32 boards with small pin changes.