150+ ESP32 Tutorials and Projects with Arduino IDE

ESP32 tutorials and projects

ESP32 is a very popular IOT board these days. It comes with a lot of features. ESP32 has more advanced features than ESP38266 development boards. It offers onboard WiFi, Bluetooth low-energy module, and a separate hardware accelerator for cryptographic algorithm implementations.  It is being used in many projects related to the internet of things and embedded system projects.  It has limitless applications starting from simple microcontroller projects to machine learning and Artificial intelligence projects.  You can check this complete list of ESP32 tutorials and projects.

ESP32 Getting started tutorials and Projecs

  1. Getting started with the ESP32 development board
  2. Installing ESP32 in step by step guide ( Linux and Mac instructions)
  3. Upload Files to ESP32 SPIFFS FileSystem with VS Code and PlatformIO IDE
  4. How to install ESP32 library in Arduino IDE ( Step by step instructions ) 
  5. How to use digital output pins of ESP32 and How to blink a LED
  6. How to use digital input pins of ESP32 with push button interfacing example
  7. Analog to digital converter channels  of ESP32 and measuring voltage tutorial 
  8. ESP32 External Interrupts using Arduino IDE
  9. ESP32 Interrupts and Timers with PIR Sensor using Arduino IDE
  10. ESP32 touch pins – How to use touch pins as a digital button
  11. Step by step guide on built-in hall effect sensors of ESP32
  12. Pulse width modulation channels of ESP32 with a fix and variable duty cycle PWM generation 
  13. ESP32 Dual Core with FreeRTOS and Arduino IDE
  14. I2C LCD interfacing with ESP32
  15. Set ESP32 Custom Hostname with Arduino IDE
  16. ESP32 Bluetooth Low Energy (BLE) using Arduino IDE
  17. ESP32 Deep Sleep Mode and Wake Up Sources using Arduino IDE
  18. Assigning Fix/Static IP address to ESP32
  19. ESP32 UART Communication Explained with Example
  20. ADS1115 External ADC interfacing with ESP32
  21. ESP32 Bluetooth Low Energy (BLE) using Arduino IDE
  22. ESP32 BLE Server Client Communication using Arduino IDE
  23. ESP32 WiFiMulti Connect to the Strongest WiFi Network
  24. ESP32 Rest API Web Server GET and POST Examples with Postman API
  25. ESP32 Data Logging to Firebase Realtime Database
  26. RS485 Serial Communication between ESP32 and ESP8266
  27. RDM6300 RDM630 RFID Reader interfacing with ESP32
  28. ESP32 BLE Server Client Communication using Arduino IDE
  29. ESP-MESH Getting Started using painlessMesh Library and ESP32/ESP8266
  30. ESP32 Server Client Wi-Fi Communication using Arduino IDE
  31. Connect ESP32 to EMQX Cloud MQTT Broker (Arduino IDE)
  32. ESP32 MQTT Client: Subscribe and Publish BME280 sensor readings on HiveMQ
  33. Connect ESP32 to AWS IoT MQTT and Publish Sensor Readings
  34. Upload Files to ESP32 SPIFFS FileSystem with VS Code and PlatformIO IDE
  35. Reconnect ESP32 to WIFI after Lost Connection (Solved)
  36. Use ESP32 Bluetooth Classic with Arduino IDE
  37. Getting Current Date and Time with ESP32 using NTP Server-Client and Arduino IDE
  38. Save Data to ESP32 Flash Permanently using Preferences Library
  39. HTTP GET using ESP32 and Arduino IDE (OpenWeatherMap.org and ThingSpeak)
  40. ESP32 HTTP POST using Arduino IDE (ThingSpeak and IFTTT)
  41. Install ESP32 Filesystem Uploader in Arduino IDE – SPIFFS
  42. Getting Epoch/Unix time with ESP32 through NTP server using Arduino IDE

ESP32 Sensors Tutorials and Projects

  1. ESP32 with BMP180 Atmospheric Pressure and Temperature sensor
  2. MAX30100 Pulse Oximeter and Heart Rate Sensor with ESP32
  3. MAX30102 Pulse Oximeter and Heart Rate Sensor with ESP32
  4. MLX90614 Non-contact Infrared Temperature Sensor with ESP32
  5. K-Type Thermocouple MAX6675 Amplifier with ESP32
  6. HC-SR04 Ultrasonic Sensor with ESP32 – Measure Distance
  7. DHT11 DHT22 with ESP32 – Display Readings on OLED
  8. Monitor Heart Rate using Pulse Sensor and ESP32
  9. BME280 with ESP32 – Display Values on OLED ( Arduino IDE)
  10. Single and Multiple DS18B20 with ESP32: Display Readings on OLED
  11. BME680 with ESP32 using Arduino IDE (Gas, Pressure, Temperature, Humidity)
  12. ESP32 with MPU6050 Accelerometer, Gyroscope, and Temperature Sensor ( Arduino IDE)
  13. MicroSD Card Module with ESP32 using Arduino IDE
  14. ESP32 Data Logging Temperature Sensor Readings to microSD card (Arduino IDE)
  15. IBM Watson Cloud Platform with ESP32: Display sensor Readings
  16. Telegram ESP32/ESP8266: Display BME280 sensor readings using Arduino IDE
  17. ESP32/ESP8266: Publish Sensor Readings to Google Sheets via IFTTT
  18. Send Email Alert Based on Temperature Threshold and Update Threshold value with ESP32 Web Server
  19. ESP32/ESP8266 Control Outputs with Web Server and Push Button Simultaneously

ESP32 Web Server projects

  1. ESP32 based web server in Arduino IDE – How to control LEDs from server 
  2. BME680 Web Server with ESP32 ( Arduino IDE)
  3. ESP32 web server in Arduino IDE – Control a relay
  4. ESP32 soft access point web server in Arduino IDE
  5. ESP32 web server in Arduino IDE –  Servo motor control
  6. ESP32 web server to display sensors data in Arduino IDE
  7. Password protected web server with ESP32 and Arduino IDE
  8. Access ESP32 web server from anywhere in the world
  9. ESP32 Web Server: LM35 sensor value on web page
  10. BMP180 Web Server with ESP32 
  11. Create a Wi-Fi Manager for ESP32 using AsyncWebServer library
  12. IoT Based Fire Detection using ESP32 and Flame Sensor with Email Alert
  13. LM32 temperature sensor based web server with ESP32
  14. Display Sensor Readings in Gauges with ESP32 Web Server
  15. Control ESP32 over Internet using Android App with MIT App Inventor
  16. ESP32 Getting Started with InfluxDB Time Series Database
  17. ESP32 Send BME280 Sensor Readings to InfluxDB
  18. ESP32/ESP8266 Send DHT11/DHT22 Sensor Readings to InfluxDB
  19. ESP32/ESP8266 Send DS18B20 Sensor Readings to InfluxDB
  20. IoT based Contactless Water level Monitoring with ESP32 and HC-SR04
  21. IoT Sound Pollution Monitoring System using ESP32 – Decibel Meter
  22. ESP32 Fall Detection using MPU6050 with Email Alerts
  23. ESP32 RGB LED Controller Web Server – Remote Color Picker
  24. ESP32 MPU6050 Web Server Accelerometer and Gyroscope Dashboard with 3-D animation (SSE Events)
  25. ESP32 DHT11 and DHT22 Web Server using Arduino IDE
  26. IoT Based Analog and Digital Clock using OLED and ESP32/ESP8266
  27. ESP32 Multiple Sliders WebSocket Web Server – PWM Control LEDs Brightness
  28. ESP32 IoT Motion Detection Web Server with Email Alert
  29. ESP32 PWM Slider Web Server – Control LED Brightness
  30. ESP32 DS18B20 Temperature Sensor Web Server with Arduino IDE
  31. IoT based Soil Moisture Monitoring System with ESP32 and Adafruit IO
  32. ESP32 GPS tracker – IoT based Vehicle Tracking System
  33. ESP32 Web Server Hosting Files from Micro SD card (Arduino IDE)
  34. BME280 Web Server with ESP32 (Arduino IDE)
  35. ESP32 Web based Serial Monitor (WebSerial Library)
  36. ESP32/ESP8266 Web Server with Input Data on HTML Form using Arduino IDE
  37. ESP32 OTA Over-The-Air Updates using AsyncElegantOTA Library in VS Code with PlatformIO IDE
  38. Plot Sensor Readings in Real Time Charts with ESP32 and ESP8266 Web Server
  39. Getting Started with Arduino IoT Cloud with ESP32: Send Sensor Readings and Control Outputs
  40. ESP32/ESP8266 Thermostat Web Server – Control Output Based on Temperature Threshold
  41. ESP32 OTA (Over-The-Air) Updates using AsyncElegantOTA Library and Arduino IDE
  42. ESP32 Server-Sent Events (SSE) Web Server (Arduino IDE)
  43. ESP32 Send Sensor Readings to ThingSpeak using Arduino IDE (BME280)
  44. ESP32 Send Emails (Plain text, HTML, and Attachments) through SMTP Server
  45. Control ESP32 Outputs using Google Assistant and Adafruit IO with Arduino IDE
  46. Control ESP32 Outputs using Blynk App and Arduino IDE
  47. ESP32/ESP8266 Momentary Switch Web Server: Control GPIO Outputs
  48. Telegram ESP32 and ESP8266 Control GPIOs and LEDs using Arduino IDE
  49. Displaying Images in ESP32 and ESP8266 Web Server
  50. ESP32/ESP8266 Web Server to Control Outputs with a Timer (Pulse Width)
  51. ESP32 WebSocket Server using Arduino IDE – Control GPIOs and Relays
  52. ESP32/ESP8266 HTTP Authentication Web Server (Username and Password Protected)
  53. ESP32 Asynchronous Web Server using Arduino IDE and ESPAsyncWebServer library
  54. ESP32 Web Server with SPIFFS (SPI Flash File System)

ESP32 CAM Projects and Tutorials

  1. ESP32-CAM Take Photo and Display in Web Server
  2. ESP32-CAM Capture Photo and Save to MicroSD Card
  3. ESP32-CAM Capture and Save Photo to Firebase Storage
  4. ESP32-CAM Take and Send Photos via Email using an SMTP Server
  5. ESP32-CAM Image Classification using Machine Learning
  6. IoT CCTV Camera using ESP32 CAM & Blynk App – Live Streaming
  7. ESP32 CAM Video Streaming and Face Recognition with Arduino IDE

ESP32 Motors Tutorials and Projects

  1. Control Stepper Motor with A4988 Driver Module and ESP32
  2. Stepper Motor Control with L298N Motor Driver and ESP32
  3. Control Stepper Motor with DRV8825 Driver Module and ESP32
  4. Interface L298N DC Motor Driver Module with ESP32
  5. ESP32 Web Server Control DC Motor Speed using L298N Driver
  6. ESP32 Stepper Motor WebSocket Web Server using Arduino IDE
  7. ESP32 Interface with Stepper Motor (28BYJ-48 and ULN2003 Motor Driver)

ESP32 Displays Interfacing Tutorials

  1. LED Dot Matrix Display with ESP32 and MAX7219
  2. Interface ESP32 with 74HC595 and 4-Digit 7 Segment Display
  3. Internet Based Digital Clock using ESP32 and MAX7219 Dot Matrix Display
  4. Nokia 5110 LCD Display with ESP32 using Arduino IDE
  5. OLED Display Interfacing with ESP32 – Display Text, Draw shapes and Images

ESP32 Google Firebase Projects

  1. ESP32 Receive Data from Google Firebase with Example to Control Outputs
  2. ESP32/ESP8266: Google Firebase Authentication (Email and Password)
  3. ESP32 Send Sensor Readings to Google Firebase and Display on Android app

ESP-NOW Tutorials and Projects

  1. ESP32 ESP-NOW Getting Started Tutorial with Arduino IDE
  2. ESP32 ESP-NOW Two way Communication (Arduino IDE)
  3. ESP32 ESP-NOW Send Data to Multiple boards (One to Many Communication)
  4. ESP32 ESP-NOW Receive Data from Multiple boards (Many to One Communication)
  5. ESP32 ESP-NOW and Wi-Fi Web Server using Arduino IDE

We will be updating this page with more tutorials and projects