Quick Reference · ESP32 DEVKIT V1 DOIT
View Pinout
ESP32 GPIO Pinout Diagram
Complete pin reference for the ESP32 DEVKIT V1 DOIT board used throughout all modules. Covers GPIO, ADC, DAC, SPI, I2C, UART, and touch pins. Download from GitHub and keep it open while coding.
Table of Contents
10 Modules
🚀
An introduction to the ESP32 board — features, toolchain setup, and how to upload your first sketch. You must complete this module before any other.
📋 UNITS
1.1Introducing the ESP32
1.2Installing ESP32 in Arduino IDE
1.3How to Use Your ESP32 Board — Blink LED
⚡
Deep dive into ESP32 GPIO functions: digital I/O, PWM signals, analog reads, capacitive touch, interrupts, timers, and dual-core task creation.
📋 UNITS
2.1Pinout Reference: ESP32 GPIOs Explained
2.2ESP32-S3 Pinout
2.3Digital Inputs and Outputs
2.4Capacitive Touch Pins
2.5Pulse-Width Modulation (PWM)
2.6Reading Analog Inputs
2.7PIR Motion Sensor: Interrupts and Timers
2.8Dual Core: Create Tasks
💾
Learn to persist data across reboots using Preferences (NVS), the LittleFS filesystem, and write sensor readings to a microSD card.
📋 UNITS
3.1Save Data Permanently — Preferences Library
3.2ESP32 LittleFS Filesystem
3.3LittleFS: Save Variable Values in a File
3.4Saving Data to a microSD Card
😴
Dramatically reduce power consumption in battery-powered projects. Four wake-up sources: timer, touch, external pin, and ULP co-processor.
📋 UNITS
4.1Introduction to Deep Sleep Mode
4.2Deep Sleep — Timer Wake Up
4.3Deep Sleep with Touch Wake Up
4.4Deep Sleep — External Wake Up
📶
Get connected. Learn Wi-Fi concepts, access point vs. station modes, HTTP requests to external APIs (WorldTime, ThingSpeak), and ESP32-to-ESP32 communication.
📋 UNITS
5.1Introducing Wi-Fi
5.2Getting Started with HTTP Requests
5.3Making HTTP Requests (WorldTime API & ThingSpeak)
5.4ESP32 Client-Server Wi-Fi Communication (Two Boards)
🌐
Build web interfaces directly hosted on the ESP32 — control outputs, display sensor readings, add authentication, and serve HTML/CSS files from LittleFS.
📋 UNITS
6.1Web Server Introduction
6.2Web Server: Control Outputs
6.3Web Server: HTML and CSS Basics
6.4Web Server: Authentication
6.5Accessing the Web Server from Anywhere
6.6Web Server: Display Sensor Readings
6.7Async Web Server: Temperature & Humidity
6.8Async Web Server: Control Outputs
6.9Web Server using Files from LittleFS
📡
Explore the ESP32's built-in BLE and classic Bluetooth. Scan nearby devices, set up BLE servers and clients, and exchange data wirelessly between boards and phones.
📋 UNITS
7.1BLE Introduction
7.2BLE Server, Scanner, and Notify
7.3ESP32 BLE Server and Client — Part 1/2
7.4ESP32 BLE Server and Client — Part 2/2
7.5Bluetooth Classic
📻
Extend your IoT range with LoRa — send sensor data over kilometres. Set up LoRa sender and receiver pairs and understand how to integrate with LoRa gateways.
📋 UNITS
8.1ESP32 with LoRa: Introduction
8.2LoRa Sender and Receiver
8.3Further Reading about LoRa Gateways
8.4LoRa: Where to Go Next?
📨
Lightweight pub/sub messaging for IoT. Run a Mosquitto broker on Raspberry Pi, connect two ESP32s via MQTT, and build a Node-RED dashboard to control them visually.
📋 UNITS
9.1Introducing MQTT
9.2Installing Mosquitto Broker on Raspberry Pi
9.3MQTT Client ESP32 #1
9.4MQTT Client ESP32 #2
9.5Installing Node-RED & Node-RED Dashboard on RPi
9.6Connect ESP32 to Node-RED via MQTT
🔗
Connectionless peer-to-peer protocol from Espressif. No router needed. Send short packets between multiple ESP32s — one-to-many, many-to-one, and combine with Wi-Fi for a sensor dashboard.
📋 UNITS
10.1ESP-NOW: Getting Started
10.2Two-Way Communication Between ESP32
10.3Send Data to Multiple Boards (One-to-Many)
10.4Receive Data from Multiple Boards (Many-to-One)
10.5ESP-NOW Web Server Sensor Dashboard (ESP-NOW + Wi-Fi)
// ADVANCED PROJECTS
Hands-On Builds
4 Advanced Projects
🌡️
Build a complete Wi-Fi connected sensor node with DHT22 temperature/humidity, PIR motion, LDR light, a relay, and an RGB status LED. Controlled via a custom web server with multiple operating modes.
📋 UNITS
P1.1Multisensor — Temperature, Humidity, Motion, Light, Relay
P1.2How the Code Works — Deep Dive
🚗
Build and program an ESP32-powered remote-controlled car robot. Assemble the chassis, wire the motors, and control direction from any device on the same Wi-Fi network via a web-based joystick.
📋 UNITS
P2.1Remote Controlled Wi-Fi Car Robot — Part 1/2
P2.2Remote Controlled Wi-Fi Car Robot — Part 2/2
P2.3Assembling the Smart Robot Car Chassis Kit
P2.4Extra — Access Point Mode for Wi-Fi Car Robot
📱
Create a custom Android app using MIT App Inventor 2 that communicates with the ESP32 via Bluetooth Low Energy — control outputs and display live sensor readings wirelessly from your phone.
📋 UNITS
P3.1BLE Android App — Control Outputs & Display Sensor Readings
P3.2Building the App with MIT App Inventor 2
🌱
Deploy a solar-powered off-grid sensor node that transmits soil moisture and temperature over LoRa to an indoor receiver — no Wi-Fi needed. Covers data logging, solar power, and final system analysis.
📋 UNITS
P4.1LoRa Sensor Monitoring and Data Logging
P4.2ESP32 LoRa Sender
P4.3ESP32 LoRa Receiver
P4.4ESP32 LoRa Sender — Solar Powered
P4.5Final Tests, Demonstration, and Data Analysis