Cirkit Designer LogoCirkit DesignerYour all-in-one circuit design IDE Launch Cirkit Designer App

How to Use ESP32 UWD: Examples, Pinouts, and Specs

Image of ESP32 UWDDesign with ESP32 UWD in Cirkit Designer

Introduction

The ESP32 UWD, manufactured by MakerFabs (Part ID: DW1000), is a powerful and versatile microcontroller designed for Internet of Things (IoT) applications. It combines integrated Wi-Fi and Bluetooth capabilities with a robust set of features, including multiple GPIO pins, ADCs, and support for various communication protocols. This makes it an excellent choice for smart devices, home automation, industrial control systems, and other connected projects.

Explore Projects Built with ESP32 UWD

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
Image of ESP32-Based GPS Tracker with SD Card Logging and Barometric Sensor: A project utilizing ESP32 UWD in a practical application
ESP32-Based GPS Tracker with SD Card Logging and Barometric Sensor

This circuit features an ESP32 Wroom Dev Kit as the main microcontroller, interfaced with an MPL3115A2 sensor for pressure and temperature readings, and a Neo 6M GPS module for location tracking. The ESP32 is also connected to an SD card reader for data logging purposes. A voltage regulator is used to step down the USB power supply to 3.3V, which powers the ESP32, the sensor, and the SD card reader.

Open Project in Cirkit Designer
Image of ESP32-Based Smart Access Control System with RFID, Ultrasonic Sensor, and LCD Display: A project utilizing ESP32 UWD in a practical application
ESP32-Based Smart Access Control System with RFID, Ultrasonic Sensor, and LCD Display

This circuit is an access control system using an ESP32 microcontroller, which integrates an RFID reader, an ultrasonic distance sensor, a DHT11 temperature and humidity sensor, a potentiometer, a pushbutton, an LED, and a 16x2 I2C LCD display. The system reads RFID tags to grant access, displays information on the LCD, and uses the potentiometer to adjust settings, while the ultrasonic sensor measures distance and the DHT11 monitors environmental conditions.

Open Project in Cirkit Designer
Image of ESP32-Based Environmental Data Logger with GPS and RF Communication: A project utilizing ESP32 UWD in a practical application
ESP32-Based Environmental Data Logger with GPS and RF Communication

This circuit features an ESP32-WROOM-32UE microcontroller as its central processing unit, interfaced with a variety of sensors including a BMP280 barometric pressure sensor, an Adafruit VEML6075 UV sensor, an ENS160+AHT21 air quality sensor, and a GPS NEO 6M module for location tracking. The ESP32 logs data from these sensors to an SD card using a SparkFun OpenLog and also communicates with an RFM95 LoRa transceiver for wireless data transmission. A step-up boost converter raises the voltage from a 3.7V battery to 5V to power the ESP32-CAM, and a buzzer is included for audio signaling, all controlled by the ESP32 which runs a sketch to read sensor data and log it periodically.

Open Project in Cirkit Designer

Common Applications

Technical Specifications

Key Technical Details

Parameter Specification
Microcontroller ESP32 Dual-Core Processor
Clock Speed Up to 240 MHz
Flash Memory 4 MB (expandable)
SRAM 520 KB
Wi-Fi 802.11 b/g/n
Bluetooth Bluetooth 4.2 (Classic + BLE)
GPIO Pins 34
ADC Channels 18 (12-bit resolution)
Communication Protocols UART, SPI, I2C, I2S, CAN, PWM
Operating Voltage 3.3V
Input Voltage Range 3.0V - 3.6V
Power Consumption Ultra-low power (varies by mode)
Dimensions 25.5 mm x 18 mm
Operating Temperature -40°C to +85°C

Pin Configuration and Descriptions

The ESP32 UWD features a total of 38 pins, with 34 GPIO pins that can be configured for various functions. Below is a summary of the pin configuration:

Pin Number Pin Name Functionality
1 EN Enable pin (active high)
2 IO0 GPIO0, boot mode selection
3 IO1 GPIO1, UART TX
4 IO2 GPIO2, ADC2 channel
5 IO3 GPIO3, UART RX
6 IO4 GPIO4, PWM, ADC2 channel
7 IO5 GPIO5, SPI CS
8 IO12 GPIO12, ADC2 channel, touch sensor
9 IO13 GPIO13, ADC2 channel, touch sensor
10 IO14 GPIO14, PWM, ADC2 channel
... ... ... (Refer to the full datasheet)
37 GND Ground
38 3V3 3.3V power supply

Note: Some GPIO pins have dual or specialized functions. Refer to the ESP32 UWD datasheet for detailed pin multiplexing information.

Usage Instructions

How to Use the ESP32 UWD in a Circuit

  1. Power Supply: Ensure the ESP32 UWD is powered with a stable 3.3V supply. Avoid exceeding the input voltage range (3.0V - 3.6V) to prevent damage.
  2. GPIO Configuration: Configure the GPIO pins as input, output, or alternate functions (e.g., ADC, PWM) based on your application.
  3. Programming: Use the Arduino IDE, PlatformIO, or ESP-IDF to program the ESP32 UWD. Install the necessary board support package (BSP) for ESP32.
  4. Communication: Utilize the built-in Wi-Fi and Bluetooth capabilities for wireless communication. Libraries such as WiFi.h and BluetoothSerial.h can simplify development.
  5. Peripherals: Connect sensors, actuators, or other peripherals to the GPIO pins. Use appropriate pull-up or pull-down resistors if required.

Important Considerations

Example Code for Arduino UNO Integration

Below is an example of using the ESP32 UWD to connect to a Wi-Fi network and send data to a server:

#include <WiFi.h> // Include the Wi-Fi library

// Replace with your network credentials
const char* ssid = "Your_SSID";
const char* password = "Your_PASSWORD";

void setup() {
  Serial.begin(115200); // Initialize serial communication
  delay(1000);

  // Connect to Wi-Fi
  Serial.print("Connecting to Wi-Fi");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("\nWi-Fi connected!");
  Serial.print("IP Address: ");
  Serial.println(WiFi.localIP()); // Print the device's IP address
}

void loop() {
  // Example: Send data to a server (replace with your server details)
  WiFiClient client;
  const char* server = "example.com";
  if (client.connect(server, 80)) {
    client.println("GET / HTTP/1.1");
    client.println("Host: example.com");
    client.println("Connection: close");
    client.println();
  }
  delay(10000); // Wait 10 seconds before sending the next request
}

Tip: Replace Your_SSID and Your_PASSWORD with your Wi-Fi network credentials. Modify the server details as needed for your application.

Troubleshooting and FAQs

Common Issues

  1. Wi-Fi Connection Fails

    • Cause: Incorrect SSID or password.
    • Solution: Double-check your network credentials and ensure the router is powered on.
  2. ESP32 UWD Not Detected by Computer

    • Cause: Missing USB driver or faulty USB cable.
    • Solution: Install the correct USB-to-serial driver (e.g., CP210x or CH340) and try a different cable.
  3. GPIO Pins Not Functioning as Expected

    • Cause: Incorrect pin configuration or conflicting functions.
    • Solution: Verify the pin mode in your code and check for pin conflicts in the datasheet.
  4. High Power Consumption

    • Cause: Device not in low-power mode.
    • Solution: Use deep sleep mode when the device is idle to conserve power.

FAQs

For additional support, refer to the MakerFabs documentation or community forums.