Stufin
Home Quick Cart Profile

ESP32 (38 Pin) WiFi + Bluetooth NodeMCU-32 Development Board ( Pack of 25)

Buy Now on Stufin

Component Name

ESP32 (38 Pin) WiFi + Bluetooth NodeMCU-32 Development Board

Packaging

Pack of 25

Description

The ESP32 (38 Pin) WiFi + Bluetooth NodeMCU-32 Development Board is a microcontroller-based development board designed for building IoT projects, prototyping, and proof-of-concept development. It is a popular choice among developers, hobbyists, and students due to its versatility, ease of use, and affordability.

Functionality

The ESP32 NodeMCU-32 board is a microcontroller-based development board that integrates the ESP32 system-on-chip (SoC), which provides Wi-Fi and Bluetooth capabilities. It is designed to facilitate the development of IoT projects, allowing users to create devices that can connect to the internet and communicate with other devices wirelessly.

Key Features

### 1. Microcontroller

The onboard microcontroller is the ESP32 WROOM-32, a low-power, 32-bit, LX6 microprocessor with a clock speed of up to 240 MHz.

The ESP32 SoC integrates 520 KB of SRAM, 448 KB of ROM, and 16 MB of flash memory.

### 2. Wi-Fi and Bluetooth Capabilities

The ESP32 NodeMCU-32 board features built-in Wi-Fi (IEEE 802.11 b/g/n) and Bluetooth 4.2 capabilities, allowing for wireless communication and connectivity.

Supports Wi-Fi protocols, including STA/AP/STA+AP/P2P modes.

Bluetooth features include BR/EDR and BLE (Bluetooth Low Energy) modes.

### 3. GPIO and Interfaces
38 GPIO pins, including

+ 15 analog-to-digital converter (ADC) channels

+ 3 SPI interfaces

+ 2 I2C interfaces

+ 2 I2S interfaces

+ 3 UART interfaces

+ 1 USB interface (OTG)

Integrated Hall effect sensor

Integrated temperature sensor

### 4. Power and Connectivity

The board can be powered via USB (5V) or an external power source (3.3V).

Onboard voltage regulator (LDO) provides 3.3V output.

micro-USB connector for programming and power supply.

Reset and Boot buttons for ease of use.

### 5. Development Environment
Supports popular development environments, including

+ Arduino IDE

+ MicroPython

+ Lua

+ C/C++ (using the ESP-IDF framework)

### 6. Operating Temperature and Certifications

Operating temperature

-40C to 85C

Certifications

RoHS, FCC, and CE compliant

### 7. Package Contents

25 pieces of ESP32 NodeMCU-32 Development Boards

Micro-USB cables (not included)

Applications

The ESP32 NodeMCU-32 Development Board is suitable for a wide range of applications, including

IoT projects (home automation, wearable devices, etc.)

Robotics and drones

Wireless sensor networks

Smart home devices

Wearable devices

Prototyping and proof-of-concept development

This development board is ideal for

Hobbyists and enthusiasts

Students and researchers

Professionals and engineers

IoT and robotics developers

Pin Configuration

  • ESP32 (38 Pin) WiFi + Bluetooth NodeMCU-32 Development Board Pinout
  • The ESP32 (38 Pin) WiFi + Bluetooth NodeMCU-32 Development Board is a powerful microcontroller board that combines WiFi and Bluetooth capabilities with a wide range of input/output pins. Here's a detailed breakdown of each pin on the board:
  • Power Pins
  • 1. VIN (Pin 1): Input voltage pin. It can be connected to an external power source (e.g., batteries or a power supply) or the USB port (if using a USB-to-UART bridge). The recommended input voltage is between 2.2V and 3.6V.
  • 2. 3V3 (Pin 2): Regulated 3.3V output pin. It provides a stable power supply for external components.
  • 3. GND (Pin 3): Ground pin. Connects to the ground of the power source or external components.
  • GPIO Pins
  • The following pins are digital input/output pins, which can be used for various applications such as sensors, actuators, and communication protocols.
  • 4. GPIO0 (Pin 4): General-purpose input/output pin.
  • 5. GPIO1 (Pin 5): General-purpose input/output pin.
  • 6. GPIO2 (Pin 6): General-purpose input/output pin.
  • 7. GPIO3 (Pin 7): General-purpose input/output pin.
  • 8. GPIO4 (Pin 8): General-purpose input/output pin.
  • 9. GPIO5 (Pin 9): General-purpose input/output pin.
  • 10. GPIO6 (Pin 10): General-purpose input/output pin.
  • 11. GPIO7 (Pin 11): General-purpose input/output pin.
  • 12. GPIO8 (Pin 12): General-purpose input/output pin.
  • 13. GPIO9 (Pin 13): General-purpose input/output pin.
  • 14. GPIO10 (Pin 14): General-purpose input/output pin.
  • 15. GPIO11 (Pin 15): General-purpose input/output pin.
  • 16. GPIO12 (Pin 16): General-purpose input/output pin.
  • 17. GPIO13 (Pin 17): General-purpose input/output pin.
  • 18. GPIO14 (Pin 18): General-purpose input/output pin.
  • 19. GPIO15 (Pin 19): General-purpose input/output pin.
  • 20. GPIO16 (Pin 20): General-purpose input/output pin.
  • 21. GPIO17 (Pin 21): General-purpose input/output pin.
  • 22. GPIO18 (Pin 22): General-purpose input/output pin.
  • 23. GPIO19 (Pin 23): General-purpose input/output pin.
  • Analog Pins
  • 24. A0 (Pin 24): Analog input pin. Can be used for analog-to-digital conversion (ADC) with a resolution of 12 bits.
  • 25. A1 (Pin 25): Analog input pin. Can be used for analog-to-digital conversion (ADC) with a resolution of 12 bits.
  • 26. A2 (Pin 26): Analog input pin. Can be used for analog-to-digital conversion (ADC) with a resolution of 12 bits.
  • 27. A3 (Pin 27): Analog input pin. Can be used for analog-to-digital conversion (ADC) with a resolution of 12 bits.
  • Communication Pins
  • 28. RXD0 (Pin 28): Receive data pin for UART0.
  • 29. TXD0 (Pin 29): Transmit data pin for UART0.
  • 30. RXD1 (Pin 30): Receive data pin for UART1.
  • 31. TXD1 (Pin 31): Transmit data pin for UART1.
  • 32. RXD2 (Pin 32): Receive data pin for UART2.
  • 33. TXD2 (Pin 33): Transmit data pin for UART2.
  • SPI Pins
  • 34. SPI_CS (Pin 34): Chip select pin for SPI communication.
  • 35. SPI_CLK (Pin 35): Clock pin for SPI communication.
  • 36. SPI_MOSI (Pin 36): Master out slave in pin for SPI communication.
  • 37. SPI_MISO (Pin 37): Master in slave out pin for SPI communication.
  • Other Pins
  • 38. EN (Pin 38): Enable pin for the ESP32 module. Pulling this pin low will reset the module.
  • Connection Structure:
  • Here's a general structure to keep in mind when connecting the pins on the ESP32 NodeMCU-32 Development Board:
  • Power pins (VIN, 3V3, GND): Connect to a power source, such as a battery or a power supply.
  • GPIO pins: Connect to sensors, actuators, or other external components according to your project's requirements.
  • Analog pins (A0-A3): Connect to analog sensors or devices that require analog-to-digital conversion.
  • Communication pins (RXD0-TXD2): Connect to serial communication devices, such as serial monitors, other microcontrollers, or sensors.
  • SPI pins (SPI_CS-SPI_MISO): Connect to SPI devices, such as SD cards, displays, or other peripherals.
  • Remember to always refer to the datasheet and documentation for the specific components you're using to ensure proper connections and pin assignments.

Code Examples

ESP32 (38 Pin) WiFi + Bluetooth NodeMCU-32 Development Board Documentation
Overview
The ESP32 (38 Pin) WiFi + Bluetooth NodeMCU-32 Development Board is a compact, low-cost, and highly integrated Wi-Fi and Bluetooth system-on-chip (SoC) microcontroller board. This development board is based on the ESP32 chip, which is a powerful and popular IoT device. It features 38 GPIO pins, Wi-Fi, Bluetooth 4.2, and a range of peripherals, making it an ideal choice for IoT projects, robotics, and automation.
Key Features
ESP32 Wi-Fi and Bluetooth SoC microcontroller
 38 GPIO pins
 Wi-Fi 802.11 b/g/n
 Bluetooth 4.2
 Supports UART, SPI, I2C, I2S, and CAN interfaces
 520 KB of SRAM and 4 MB of Flash memory
 Operating voltage: 3.3V
 Dual-core 32-bit LX6 microprocessor, up to 240 MHz
Code Examples
### Example 1: Wi-Fi Connectivity and HTTP GET Request
This example demonstrates how to connect the ESP32 board to a Wi-Fi network and send an HTTP GET request to a web server.
```c
#include <WiFi.h>
#include <HTTPClient.h>
const char ssid = "your_wifi_ssid"; // Replace with your Wi-Fi SSID
const char password = "your_wifi_password"; // Replace with your Wi-Fi password
const char serverUrl = "http://example.com"; // Replace with the URL you want to access
WiFiClient wifiClient;
HTTPClient http;
void setup() {
  Serial.begin(115200);
// Connect to Wi-Fi
  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("IP Address: ");
  Serial.println(WiFi.localIP());
// Send HTTP GET request
  http.begin(wifiClient, serverUrl);
  int responseCode = http.GET();
  if (responseCode > 0) {
    Serial.println("HTTP GET response code: " + String(responseCode));
    String response = http.getString();
    Serial.println("Response: " + response);
  } else {
    Serial.println("Error sending HTTP GET request");
  }
  http.end();
}
void loop() {
  // Do nothing
}
```
### Example 2: Bluetooth Low Energy (BLE) Peripheral
This example demonstrates how to use the ESP32 board as a BLE peripheral device, advertising a custom service and characteristic.
```c
#include <BLE.h>
const char deviceName = "ESP32 BLE Peripheral";
const char serviceName = "esp32_service";
const char characteristicName = "esp32_characteristic";
BLEService service(serviceName);
BLECharacteristic characteristic(characteristicName, BLECharacteristic::PROPERTY_READ | BLECharacteristic::PROPERTY_NOTIFY);
void setup() {
  Serial.begin(115200);
// Initialize BLE
  BLE.begin(deviceName);
// Create BLE service and characteristic
  service.addCharacteristic(characteristic);
  BLE.addService(service);
// Start advertising
  BLE.advertise();
  Serial.println("ESP32 BLE peripheral started");
}
void loop() {
  // Do nothing
}
```
### Example 3: GPIO Input/Output (Digital Read and Write)
This example demonstrates how to use the ESP32 board's GPIO pins for digital input and output.
```c
const int ledPin = 2;  // LED connected to GPIO 2
const int buttonPin = 0;  // Button connected to GPIO 0
void setup() {
  Serial.begin(115200);
// Initialize GPIO pins
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}
void loop() {
  int buttonState = digitalRead(buttonPin);
  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
    Serial.println("Button pressed, LED on");
  } else {
    digitalWrite(ledPin, LOW);
    Serial.println("Button released, LED off");
  }
  delay(50);
}
```
Additional Resources
ESP32 datasheet: [https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf](https://www.espressif.com/sites/default/files/documentation/esp32_technical_reference_manual_en.pdf)
 NodeMCU-32 documentation: [https://www.nodemcu.com/docs/en/boards/nodemcu-32/](https://www.nodemcu.com/docs/en/boards/nodemcu-32/)
 Arduino core for ESP32: [https://github.com/espressif/arduino-esp32](https://github.com/espressif/arduino-esp32)