Skip to content
Go back

ESP32: what it is, what it's for and how to start

Updated:  at  03:00 PM

What an ESP32 is

ESP32 is a family of microcontrollers from Espressif designed for projects with wireless connectivity. Depending on the model, it includes WiFi, Bluetooth or Bluetooth Low Energy, plus digital inputs and outputs, analog inputs, timers and buses such as I2C, SPI and UART.

An ESP32 development board adds to the chip everything needed to work with it: a USB connector, a voltage regulator, reset and programming buttons, and a row of accessible pins. That board is normally what you buy for a prototype; the bare chip is reserved for product designs or your own boards.

The ESP32 is not a full computer. It does not replace a server such as Home Assistant, but it can read sensors, control actuators and send data to a dashboard or to another platform.

Which ESP32 board to choose

There is no single best board. Choose according to the project and always check the exact model printed on the board and the manufacturer’s documentation.

FamilyWhen it makes senseCaution
Classic ESP32First sensors, relays and general projectsThere are many revisions and compatible boards with different pinouts
ESP32-C3Small sensors and projects with contained consumptionCheck which peripherals and pins your firmware needs
ESP32-S3Projects that need more memory, USB or processingNot all modules have the same memory or the same connector
ESP32-C6Projects that require its supported connectivity featuresCheck support for the ESPHome version and the framework you picked

For learning, a well-documented development board with USB usually matters more than buying the newest model. Avoid choosing only on GPIO count: some pins have boot functions, are connected to the flash memory or should not be used as a normal input.

What you need besides the board

To run a first test you will need:

The ESP32 normally works with 3.3 V logic. Do not connect a 5 V signal to a GPIO without first checking that the board and the circuit include the necessary adaptation. A development board’s power input and the logic level of its pins are not the same thing.

First steps with ESPHome

ESPHome lets you describe the device in YAML and generate the firmware without starting to write C++. The basic workflow is as follows:

  1. Identify the board. Note the family, the module and the model name that appears in the manufacturer’s documentation.
  2. Install ESPHome. You can use its configuration dashboard alongside Home Assistant or the command line tool. Use a version compatible with your board and check the documentation before copying an old example.
  3. Create a minimal configuration. Include the board block, the network and the components you are actually going to use. Credentials must live in local secrets, never in a public repository.
  4. Connect the board over USB. The first upload is usually done by cable. If the device does not appear, try another cable and check the USB-serial driver.
  5. Check the log. Before connecting sensors, confirm that it boots, joins the network and exposes the API or the component you need.
  6. Add hardware one at a time. That way you know which change introduced an error and you can revert it without rebuilding the whole setup.

A minimal configuration can have this form, but you must adapt the board name and the components to your model:

esphome:
  name: sensor-prueba

esp32:
  board: esp32dev

logger:

api:
  encryption:
    key: !secret api_encryption_key

ota:
  - platform: esphome

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

This snippet is a starting point for orientation, not a universal configuration. Some boards or versions require selecting a different board, framework or OTA component. Always check the build result before installing it.

Common problems with the ESP32

External sources

Next step

With the board working, go back to the home automation for beginners guide to choose a first sensor and plan the automation. The choice of communication protocol deserves a separate comparison in Fundamentals.

You can also compare the family with other platforms in ESP32 vs ESP8266 vs Arduino or continue with the ESPHome complete guide.

The homeiotguide editorial team

Editorial lead: Néstor Espuch


Suggest changes
Share this article on:

Previous article
Home Automatic Irrigation: A Complete Starter Guide
Next article
Home automation for beginners: a complete starter guide