Stufin
Home Quick Cart Profile

Arduino NANO ESP32 with Headers

Buy Now

Bluetooth

Supports Bluetooth 4.2 protocol for wireless communication.

UART

On-board UART interface for serial communication.

### Peripherals

Digital I/O22 digital I/O pins, including 8 PWM pins.

Analog In

18 analog input channels.

SPI

On-board SPI interface for connecting external devices.

I2COn-board I2C interface for connecting external devices.
I2SOn-board I2S interface for audio applications.

### Power Management

USB-CConvenient USB-C interface for programming and power supply.
Li-Po BatteryCan be powered using a Li-Po battery (not included).

Voltage Regulator

On-board voltage regulator for stable power supply.

### Other Features

Reset Button

Convenient reset button for easy rebooting.

Boot-loaderPre-installed boot-loader for easy programming.

Arduino Compatibility

Compatible with the Arduino IDE and a wide range of Arduino libraries and resources.

Physical Characteristics

---------------------------

Dimensions

43.2 mm x 18.4 mm (1.7 inches x 0.72 inches)

Weight

Approximately 10 grams (0.35 oz)

Headers

Pre-soldered headers for easy connection to breadboards and other devices.

Operative Conditions

----------------------

Operating Temperature

-20C to 85C (-4F to 185F)

Storage Temperature

-40C to 125C (-40F to 257F)

Humidity

5% to 95% non-condensing

Certifications and Compliance

-------------------------------

FCC

Compliant with FCC regulations for wireless devices.

CE

Compliant with CE regulations for electrical safety and EMC.

RoHS

Compliant with RoHS regulations for hazardous substances.

Warranty and Support

---------------------

Warranty

1-year limited warranty against manufacturing defects.

Support

Extensive documentation, community support, and dedicated technical support through the manufacturer's website.

Pin Configuration

  • Arduino NANO ESP32 with Headers Pinout Guide
  • The Arduino NANO ESP32 with Headers is a compact and powerful microcontroller board that combines the benefits of the ESP32 Wi-Fi module with the ease of use of the Arduino platform. This guide provides a detailed explanation of each pin on the board, along with examples of how to connect them.
  • Digital Pins (D0-D23)
  • 1. D0 (GPIO0): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 0).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 2. D1 (GPIO1): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 1).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 3. D2 (GPIO2): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 2).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 4. D3 (GPIO3): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 3).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 5. D4 (GPIO4): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 4).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 6. D5 (GPIO5): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 5).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 7. D6 (GPIO6): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 6).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 8. D7 (GPIO7): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 7).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 9. D8 (GPIO8): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 8).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 10. D9 (GPIO9): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 9).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 11. D10 (GPIO10): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 10).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 12. D11 (GPIO11): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 11).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 13. D12 (GPIO12): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 12).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 14. D13 (GPIO13): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 13).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 15. D14 (GPIO14): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 14).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 16. D15 (GPIO15): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 15).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 17. D16 (GPIO16): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 16).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 18. D17 (GPIO17): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 17).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 19. D18 (GPIO18): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 18).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 20. D19 (GPIO19): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 19).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 21. D20 (GPIO20): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 20).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 22. D21 (GPIO21): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 21).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 23. D22 (GPIO22): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 22).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • 24. D23 (GPIO23): Digital input/output pin. Can be used as a digital input or output, or as an analog input (ADC channel 23).
  • Connection: Digital devices, sensors, or modules (e.g., buttons, LEDs, LCD displays).
  • Analog Pins (A0-A15)
  • 1. A0 (ADC0): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 2. A1 (ADC1): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 3. A2 (ADC2): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 4. A3 (ADC3): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 5. A4 (ADC4): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 6. A5 (ADC5): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 7. A6 (ADC6): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 8. A7 (ADC7): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 9. A8 (ADC8): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 10. A9 (ADC9): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 11. A10 (ADC10): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 12. A11 (ADC11): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 13. A12 (ADC12): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 14. A13 (ADC13): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 15. A14 (ADC14): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • 16. A15 (ADC15): Analog input pin. Can be used to read analog values from sensors or modules.
  • Connection: Analog sensors or modules (e.g., potentiometers, temperature sensors, light sensors).
  • Power Pins
  • 1. VIN: External power supply input pin (7-12V).
  • Connection: External power source (e.g., battery, wall adapter).
  • 2. 3V3: 3.3V output pin from the onboard voltage regulator.
  • Connection: Devices requiring 3.3V power (e.g., sensors, modules).
  • 3. GND: Ground pin.
  • Connection: Ground connection for devices and sensors.
  • Communication Pins
  • 1. TX (UART1_TX): Serial transmission pin for UART communication.
  • Connection: Serial communication modules (e.g., serial LCD displays, GPS modules).
  • 2. RX (UART1_RX): Serial reception pin for UART communication.
  • Connection: Serial communication modules (e.g., serial LCD displays, GPS modules).
  • 3. SCL (I2C_CLK): Clock pin for I2C communication.
  • Connection: I2C devices (e.g., I2C LCD displays, I2C sensors).
  • 4. SDA (I2C_SDA): Data pin for I2C communication.
  • Connection: I2C devices (e.g., I2C LCD displays, I2C sensors).
  • 5. SCK (SPI_CLK): Clock pin for SPI communication.
  • Connection: SPI devices (e.g., SPI flash memory, SPI sensors).
  • 6. MISO (SPI_MISO): Master In Slave Out pin for SPI communication.
  • Connection: SPI devices (e.g., SPI flash memory, SPI sensors).
  • 7. MOSI (SPI_MOSI): Master Out Slave In pin for SPI communication.
  • Connection: SPI devices (e.g., SPI flash memory, SPI sensors).
  • 8. SS (SPI_SS): Slave Select pin for SPI communication.
  • Connection: SPI devices (e.g., SPI flash memory, SPI sensors).
  • Special Pins
  • 1. EN: Enable pin for the ESP32 module.
  • Connection: Not connected by default (used for flashing the ESP32 module).
  • 2. BOOT: Boot mode selection pin for the ESP32 module.
  • Connection: Not connected by default (used for flashing the ESP32 module).
  • 3. RST: Reset pin for the ESP32 module.
  • Connection: Not connected by default (used for resetting the ESP32 module).
  • Header Pins
  • The Arduino NANO ESP32 with Headers board has two 15-pin headers, one on each side, which provide access to all the digital and analog pins, as well as the power and communication pins. These headers can be used to connect shields, modules, or breadboards to the board.
  • Remember to always check the datasheet and documentation for any component or module you connect to the Arduino NANO ESP32 with Headers board to ensure compatibility and proper usage.

Code Examples

Arduino NANO ESP32 with Headers Documentation
Overview
The Arduino NANO ESP32 with Headers is a compact and versatile microcontroller board that combines the power of ESP32 with the popularity of Arduino's Nano form factor. This board is ideal for IoT projects requiring Wi-Fi and Bluetooth connectivity, as well as flexible digital and analog I/O capabilities.
Technical Specifications
Microcontroller: ESP32-D0WDQ6 (Dual Core, 32-bit LX6)
 Operating Frequency: 160 MHz
 Flash Memory: 4 MB
 SRAM: 520 KB
 Wi-Fi: 802.11 b/g/n
 Bluetooth: 4.2
 Digital I/O: 22 (GPIOs)
 Analog I/O: 16 (ADC Channels), 2 (DAC Channels)
 Communication Interfaces: USB, UART, SPI, I2C, I2S, CAN, IR, and more
 Operating Voltage: 3.3V (recommended), 2.5V to 3.6V (allowed)
 Dimensions: 45mm x 18mm
Code Examples
Here are three code examples that demonstrate the capabilities of the Arduino NANO ESP32 with Headers:
Example 1: Connecting to Wi-Fi and Sending Data to a Server
This example shows how to connect to a Wi-Fi network and send data to a server using the ESP32's built-in Wi-Fi capabilities.
```c
#include <WiFi.h>
const char ssid = "your_wifi_ssid";
const char password = "your_wifi_password";
const char serverUrl = "http://example.com/data";
WiFiClient client;
void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(1000);
    Serial.println("Connecting to Wi-Fi...");
  }
  Serial.println("Connected to Wi-Fi");
  Serial.println("Initializing connection to server...");
}
void loop() {
  if (WiFi.status() == WL_CONNECTED) {
    HTTPClient http;
    http.begin(client, serverUrl);
    http.addHeader("Content-Type", "application/x-www-form-urlencoded");
    int httpResponseCode = http.POST("data=hello+world");
    if (httpResponseCode > 0) {
      Serial.println("Data sent successfully!");
    } else {
      Serial.println("Error sending data:");
      Serial.println(http.errorString(httpResponseCode));
    }
    http.end();
  } else {
    Serial.println("Error: Not connected to Wi-Fi");
  }
  delay(10000);
}
```
Example 2: Reading Analog Input and Sending Data to a Serial Terminal
This example demonstrates how to read analog input from a connected sensor and send the data to a serial terminal using the Arduino Serial library.
```c
const int analogInputPin = A0;  // Pin connected to sensor
void setup() {
  Serial.begin(115200);
}
void loop() {
  int sensorValue = analogRead(analogInputPin);
  float voltage = (sensorValue  3.3) / 1024.0;
  Serial.print("Sensor Value: ");
  Serial.print(sensorValue);
  Serial.print("  Voltage: ");
  Serial.println(voltage);
  delay(500);
}
```
Example 3: Controlling a Digital Output using Bluetooth Low Energy (BLE)
This example shows how to use the ESP32's built-in BLE capabilities to control a digital output (e.g., an LED) from a mobile device using a BLE app.
```c
#include <BLE.h>
const char deviceName = "ESP32_LED_Controller";
const char uuid_Service = "49535343-FE7D-4AE5-8FA9-9FAFD205E455";
const char uuid_Characteristic = "49535343-1E7D-4AE5-8FA9-9FAFD205E455";
BLEServer server;
BLEService service;
BLECharacteristic characteristic;
const int ledPin = 2;  // Pin connected to LED
void setup() {
  Serial.begin(115200);
  pinMode(ledPin, OUTPUT);
  BLEDevice::init(deviceName);
  server = BLEDevice::createServer();
  service = server->createService(uuid_Service);
  characteristic = service->createCharacteristic(uuid_Characteristic, BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_WRITE);
  server->start();
  Serial.println("BLE server started");
}
void loop() {
  BLEClient client = server->available();
  if (client) {
    if (client->isConnected()) {
      String value = characteristic->getValue();
      if (value == "1") {
        digitalWrite(ledPin, HIGH);
      } else {
        digitalWrite(ledPin, LOW);
      }
    }
  }
  delay(50);
}
```
These examples demonstrate the Arduino NANO ESP32 with Headers' capabilities in various contexts, including Wi-Fi connectivity, analog input, and BLE communication.