ESP32 + Python: From Microcontroller to IoT
Artical 01: ESP32
We've discussed about ESP32 in our previous artical on introduction. In this artical, we're focusing on ESP32 features to help our IoT projects
If you have used an Arduino board, you've probebly know that the need of extra modules when it comes to wireless communications. The especiallty of these ESP32 boards are the inbuilt WiFi and Bluethooth features.
These allows the boards to connect to networks and communicate with computers, smartphones, servers, and other devices without requiring additional wireless hardware.
The ESP32 chip itself is quite small and isn't designed to be connected directly to sensors and other components by beginners. A development board usually places the ESP32 module on a larger PCB and provides GPIO pins, power connections, USB connectivity, buttons, and other useful features.
Much like Arduino Uno, Nano in Arduino family, the most popular ESP32 boards are:
ESP32 DevKit V1
Probably one of the most popular ESP32 boards for beginners. It usually uses the ESP32-WROOM-32 module and provides easy access to many GPIO pins.ESP32-WROOM-32 DevKit
A very common development-board design based on Espressif's ESP32-WROOM-32 module. It's widely used for learning, prototyping, sensors, and IoT projects.ESP32-C3 SuperMini
A very small and inexpensive board based on the ESP32-C3. It's useful when you want a compact project while still having Wi-Fi and Bluetooth Low Energy.ESP32-S3 DevKitC
A development board based on the ESP32-S3, which provides more modern features and is particularly interesting for applications involving USB and AI/edge-processing workloads.NodeMCU-32S / ESP32 NodeMCU
Another popular development-board style used in many tutorials and hobby projects.
| Board | Best for |
|---|---|
| ESP32 DevKit V1 | Beginners & general projects |
| ESP32-C3 SuperMini | Small/compact projects |
| ESP32-S3 DevKitC | More advanced projects |
Here is a detailed table with the basics to know:
| Feature | ESP32 DevKit V1 | ESP32-WROOM-32 DevKit | ESP32-C3 SuperMini | ESP32-S3 DevKitC | NodeMCU-32S |
|---|---|---|---|---|---|
| Main chip | ESP32 | ESP32 | ESP32-C3 | ESP32-S3 | ESP32 |
| CPU | Dual-core Xtensa LX6 | Dual-core Xtensa LX6 | Single-core RISC-V | Dual-core Xtensa LX7 | Dual-core Xtensa LX6 |
| Max clock | 240 MHz | 240 MHz | 160 MHz | 240 MHz | 240 MHz |
| GPIOs on chip | Up to 34 | Up to 34 | Up to 22 | Up to 45 | Up to 34 |
| Typical exposed GPIOs | ~30–32 | ~30–32 | ~11–13 | Depends on variant | ~30 |
| PWM | 16 channels | 16 channels | 6 channels | 8 channels | 16 channels |
| Wi-Fi | 2.4 GHz 802.11 b/g/n | 2.4 GHz 802.11 b/g/n | 2.4 GHz 802.11 b/g/n | 2.4 GHz 802.11 b/g/n | 2.4 GHz 802.11 b/g/n |
| Bluetooth | Classic + BLE | Classic + BLE | Bluetooth 5 LE | Bluetooth 5 LE | Classic + BLE |
| ADC | 12-bit | 12-bit | 12-bit | 12-bit | 12-bit |
| DAC | 2 channels | 2 channels | ❌ No | ❌ No | 2 channels |
| Capacitive touch | ✅ Yes | ✅ Yes | ❌ No | ✅ Yes | ✅ Yes |
| Native USB | ❌ No | ❌ No | ✅ Yes | ✅ Yes | ❌ No |
| USB connection | Usually USB-to-UART | Usually USB-to-UART | USB | USB | Usually USB-to-UART |
| Flash | Usually 4 MB | Usually 4 MB | Usually 4 MB | Typically 4–8 MB* | Usually 4 MB |
| PSRAM | ❌ Usually no | ❌ Usually no | ❌ No | Available on some variants | ❌ Usually no |
| Approx. board size | ~55 × 28 mm | ~55 × 28 mm | ~22 × 18 mm | ~50 × 25 mm* | ~55 × 25 mm |
| Main advantage | Beginner-friendly & versatile | Mature ESP32 platform | Tiny & low-cost | Advanced processing & USB | Popular alternative ESP32 board |
| Best for | General IoT projects | General-purpose projects | Compact IoT projects | Advanced/AI/USB projects | General electronics & IoT |
With these knowlegde, now you can choose an ESP32 board according to your project.
Usually a dev board(development board) contain these things
| Part | Provived feature |
|---|---|
| ESP32 microcontroller/module | the main processing unit |
| GPIO pins | to connect sensors, LEDs, motors, displays, etc. |
| USB port | to programme the board and to often providing power |
| USB-to-Serial chip | allows your computer to communicate with boards that don't have native USB |
| Boot/EN buttons | useful for programming and resetting the board |
| Voltage regulator | converts the input voltage to the voltage required by the ESP32 |
| Power pins | provide connections such as 3.3 V and GND |
Why are development boards useful?
Development boards make experimenting with the ESP32 much easier. Instead of designing a circuit around the bare ESP32 chip, you can connect components directly to the board using jumper wires or a breadboard.
This makes development boards particularly useful for learning,
prototyping, IoT projects, robotics, and hardware-software experiments.
ESP32 communication Interfaces
Wired
ESP32 board supports 5 types of communication interfaces.
| Interface | Type | Main purpose | Common uses | Key feature |
|---|---|---|---|---|
| UART | Wired / Serial | Point-to-point serial communication | GPS modules, computers, other microcontrollers, Python | Simple and doesn't require a clock line |
| I²C | Wired / Serial | Communication with multiple peripherals | OLEDs, LCDs, sensors, RTC modules | Uses only 2 signal lines (SDA & SCL) |
| SPI | Wired / Serial | High-speed peripheral communication | SD cards, TFT displays, memory, sensors | Faster than I²C in many applications |
| I²S | Wired / Serial | Digital audio communication | Digital microphones, speakers, audio codecs | Designed specifically for digital audio |
| CAN/TWAI | Wired / Bus | Reliable communication between multiple devices | Automotive systems, robotics, industrial control | Reliable and resistant to electrical noise |
Wireless
ESP32 has 3 main wireless communication methods. ESP32 consists of a unique special wireless technology called ESP-NOW, granting you the ability to send data between ESP32 boards.
| Technology | Type | Main purpose | Common uses | Key feature |
|---|---|---|---|---|
| Wi-Fi 📶 | Wireless / Network | Network and internet communication | IoT, web servers, APIs, MQTT, Python | Can connect the ESP32 to networks and the internet |
| Bluetooth Classic 🔵 | Wireless | Continuous device-to-device communication | Computers, phones, peripherals, audio | Available on some ESP32 variants |
| Bluetooth Low Energy (BLE) 🔵 | Wireless | Low-power wireless communication | Sensors, wearables, beacons, smart devices | Designed for low power consumption |
| ESP-NOW 📡 | Wireless | Direct ESP-to-ESP communication | Remote controls, wireless sensors, IoT | Doesn't require a traditional Wi-Fi router |
These are just a little bit of inf about ESP32 dev boards. I hope this artical was useful with the given information. I hope to discuss about wireless communications in my next article.
Seeee you with wireless communication!
- Written By Janada Pelahara
Top comments (0)