ESP32 Series
An affordable, powerful WiFi+BT microcontroller — the foundation for every IoT project
Reading Sensors
Reading temperature, humidity, light, motion, and other sensor data.

ESP32 + Water Flow Sensor YF-S201: Measuring Water Flow — Ready-to-Run Sample Code
The YF-S201 is a paddle-wheel water flow sensor — water flowing through spins an internal paddle wheel, and a built-in Hall sensor generates an electrical pulse every time the paddle wheel passes a fixed point.

ESP32 + ACS712: Non-Contact Current Measurement (Quick Test Sample Code)
The ACS712 uses the Hall effect to measure current flowing through it without cutting the circuit or directly contacting the high-voltage conductor — current through an internal copper path creates a magnetic field proportional to its strength, read by an internal Hall sensor

ESP32 + Load Cell HX711: Precise Weight Measurement (Quick Test Sample Code)
A load cell is a metal-bar force sensor fitted with strain gauges (deformation resistors) — when a load presses on it, the metal bar deforms by a tiny amount, changing the strain gauges' resistance per a Wheatstone-bridge configuration.

ESP32 + Flame Sensor: Infrared Fire Detection (Quick Test Sample Code)
A flame sensor uses a photodiode sensitive to 760-1100nm infrared wavelengths — the range characteristic of a burning flame (distinct from ordinary light).

ESP32 + Hall Effect KY-003: Magnetic Field Detection (Quick Test Sample Code)
The KY-003 Hall Effect sensor uses a Hall chip (typically an A3144 or equivalent) to detect a magnetic field — when a magnet gets close enough, the Hall chip changes its output state.

ESP32 + Rotary Encoder KY-040: Counting Rotation Direction (Quick Test Sample Code)
The KY-040 is a mechanical (incremental) rotary encoder, completely different from a potentiometer — it has no rotation limit (spins infinitely both ways) and outputs two 90°-out-of-phase square waves (a quadrature signal, on the CLK and DT pins).

ESP32 + Touch Sensor TTP223: Capacitive Touch Sensing (Quick Test Sample Code)
The TTP223 is a capacitive touch sensor module — it detects a touch based on a change in capacitance when a (conductive) finger nears the sensor's surface, unlike a mechanical push button (no moving parts, no wear over time).

ESP32 + MPU6050: 6-Axis IMU Sensor (Quick Test Sample Code)
The MPU6050 combines a 3-axis accelerometer (accelerometer) + a 3-axis gyroscope (gyroscope) in one chip — known as a 6-axis IMU.

ESP32 + Sound Sensor: Sound Detection (Quick Test Sample Code)
The Sound Sensor module uses an electret microphone to pick up sound, amplified through an LM393 comparator, outputting both a digital signal (DO — triggers when sound exceeds a potentiometer-set threshold) and an analog signal (AO — continuous sound-wave amplitude).
Motor Control
Servos, DC motors, steppers, and motor drivers with ESP32.

ESP32 + Stepper 28BYJ-48 + ULN2003: Precise Stepper Motor Control
Control a 28BYJ-48 stepper motor through a ULN2003 driver using an 8-step half-step sequence, rotating precisely by angle or step count — a foundation for turntables and automatic valve control.

ESP32 + DC Motor L298N: Controlling Speed and Direction
Control a DC motor's speed (PWM) and direction using an L298N driver on ESP32 — a foundation for robot cars, conveyor belts, and controllable fans.
Displays
OLED, TFT, LCD, and other types of displays.

ESP32 + E-Paper Display: A Power-Saving Screen for IoT Devices
Connect an ESP32 DevKit to a 2.13" SSD1680 SPI e-paper (e-ink) display and show periodically updated data using the GxEPD2 library, taking advantage of the display's ability to hold an image indefinitely with no continuous power — ideal for battery-powered IoT devices.

ESP32 + ILI9341/ST7789 TFT Display: Real-Time Sensor Graphing
Connect an ESP32 DevKit to a color SPI TFT display to draw a real-time line graph updating from sensor data, using the Adafruit_GFX library.

ESP32 + OLED SSD1306 (I2C): Basic Sensor Data Display
Learn to connect a 0.96" I2C SSD1306 OLED display to an ESP32 DevKit and show real-time sensor data (temperature, humidity) using the Adafruit_SSD1306 library.
Camera & Vision
Camera modules, video streaming, and computer vision with ESP32.

ESP32-CAM: Time-Lapse Camera for Plant Growth Monitoring
ESP32-CAM periodically snaps photos (every 10 minutes by default) and saves them to an SD card as a sequence — frame_00001.jpg, frame_00002.jpg, and so on — ready to be stitched into a time-lapse video of plant growth, with a frame counter that survives resets.

ESP32-CAM + PIR: Send Photo Alerts via Telegram on Motion
An HC-SR501 PIR sensor triggers the ESP32-CAM to take a photo and send it instantly through the Telegram Bot API (binary sendPhoto, no intermediate upload) whenever motion is detected, with a cooldown to prevent spam.

Wake Word Detection with ESP32-S3: A Device That Responds to Voice Commands
This project shows you how to build a device that always listens through a microphone with an ESP32-S3 and an INMP441 I2S microphone — when the user says the programmed wake word, the device automatically wakes up and responds.
MQTT
Connecting, sending, and receiving data over the MQTT protocol.

ESP32 MQTT: Syncing Multiple Devices over a Public Broker
Two ESP32 boards running the same firmware stay in sync (ON/OFF) via a retained MQTT topic on a public broker — press the button on either board and the LED on both updates.

ESP32 MQTT: QoS & Last Will Testament for Safe Disconnect Handling
Learn MQTT's three QoS levels (0/1/2) and the Last Will Testament mechanism through a real ESP32 demo: an LED shows connection status, and a button simulates a sudden disconnect so you can watch the broker automatically publish "offline".
OTA — Remote Firmware Updates
Update, upgrade, and fix firmware remotely without a direct cable connection.
