Skip to main content

ESP32

The ESP32 is a powerful, low-cost microcontroller with integrated Wi-Fi and Bluetooth, making it ideal for IoT, automation, and sensor projects. It supports a wide range of sensors and actuators, and can be programmed with Arduino, MicroPython, ESP-IDF, and more.

Features and Possibilities

  • Dual-core processor: Fast performance for complex tasks.
  • Wireless Connectivity: Built-in Wi-Fi and Bluetooth (Classic & BLE).
  • Multiple GPIOs: Control LEDs, relays, motors, and read sensors.
  • Low Power Modes: Suitable for battery-powered applications.
  • OTA Updates: Update firmware wirelessly.
  • Integration: Works with Home Assistant, MQTT, ESPHome, Node-RED, and cloud platforms.
  • Rich Peripheral Support: I2C, SPI, UART, ADC, DAC, PWM, touch sensors, and more.

Example: ESPHome YAML for ESP32 Temperature Sensor

esphome:
name: esp32_livingroom
platform: ESP32
board: esp32dev

wifi:
ssid: "your_wifi_ssid"
password: "your_wifi_password"

sensor:
- platform: dht
pin: GPIO4
temperature:
name: "Living Room Temperature"
humidity:
name: "Living Room Humidity"
model: DHT22

Example: MicroPython Blinking LED

from machine import Pin
import time

led = Pin(2, Pin.OUT)

while True:
led.value(not led.value())
time.sleep(1)

Example: MQTT Publish with ESP32 (MicroPython)

import network
from umqtt.simple import MQTTClient
import time

ssid = 'your_wifi_ssid'
password = 'your_wifi_password'
mqtt_server = 'mqtt.local'

station = network.WLAN(network.STA_IF)
station.active(True)
station.connect(ssid, password)
while not station.isconnected():
time.sleep(1)

client = MQTTClient("esp32", mqtt_server)
client.connect()
client.publish(b"home/livingroom/temperature", b"23.5")
client.disconnect()

The ESP32 is a versatile platform for building smart sensors, controllers, and connected devices. Its wireless capabilities and rich feature set make it a favorite for DIY and professional IoT projects.