MakerLab
ESP32NodeMCU-32S

NodeMCU-32S: Your Gateway to ESP32 Wi-Fi and Bluetooth Projects

Explore the versatile NodeMCU-32S, a popular and affordable development board featuring the powerful Espressif ESP32 chip, ideal for IoT and embedded projects.

NodeMCU-32S

The NodeMCU-32S is a compact, Wi-Fi and Bluetooth enabled development board based on the Espressif ESP32 System-on-Chip (SoC). It's designed to be a user-friendly platform for hobbyists, students, and engineers looking to prototype Internet of Things (IoT) devices, wireless sensor networks, and other connected embedded systems. Its integrated Wi-Fi and Bluetooth capabilities, combined with a rich set of peripherals, make it a powerful choice for a wide range of applications.

At the heart of the NodeMCU-32S is the ESP32, a highly integrated chip featuring a dual-core Tensilica LX6 microprocessor. This powerful SoC offers a significant upgrade over its predecessor, the ESP8266, providing more processing power, more GPIO pins, and enhanced features like Bluetooth 4.2 (BR/EDR and BLE) and Wi-Fi 802.11 b/g/n. The ESP32 also includes hardware accelerators for cryptographic operations, making it suitable for secure applications.

Released around 2017, the NodeMCU-32S quickly became a popular choice due to its low cost, accessibility, and robust feature set. It bridges the gap between simpler microcontrollers and more complex single-board computers, offering a compelling balance of performance, connectivity, and ease of use. This board is particularly well-suited for makers who want to build internet-connected devices without the complexity of traditional embedded development environments, thanks to its compatibility with popular programming frameworks like the Arduino IDE.

This board is ideal for anyone interested in learning about microcontrollers, wireless communication, and IoT development. Its extensive GPIO capabilities allow for interaction with a vast array of sensors and actuators, while its built-in Wi-Fi and Bluetooth make it perfect for projects requiring remote control, data logging, or smart home integration. Whether you're building a weather station, a smart light switch, or a custom wireless sensor, the NodeMCU-32S provides the foundation for your next connected creation.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCEspressif ESP32-D0WDQ6
ArchitectureDual-core Tensilica LX6 microprocessor
Clock speedUp to 240 MHz
Flash / Storage4MB (typically) onboard SPI flash
RAM / SRAM520 KB SRAM
Operating voltage3.3V
Digital I/O pins36 (though not all are broken out on this specific board)
Analog / ADC12-bit SAR ADCs (up to 18 channels, typically 12 broken out)
PWMYes, on most GPIO pins
ConnectivityWi-Fi 802.11 b/g/n, Bluetooth 4.2 BR/EDR and BLE
USBMicro-USB for power and programming (via CP2102 or CH340 USB-to-Serial converter)
Power input5V via Micro-USB or VIN pin, 3.3V via 3.3V pin
DimensionsApprox. 25.5mm x 48mm

Pinout & pin functions

PinFunction
3V33.3V Power Output
GNDGround
ENEnable (Reset)
VP / GPIO34ADC1_CH6, Input only
VN / GPIO35ADC1_CH7, Input only
GPIO32ADC1_CH4
GPIO33ADC1_CH2
GPIO25ADC1_CH8, DAC1
GPIO26ADC1_CH9, DAC2
GPIO27ADC1_CH10
GPIO14ADC1_CH4, HSPI_MISO
GPIO12ADC1_CH5, HSPI_MOSI
GPIO13ADC1_CH6, HSPI_SCK
GPIO4HSPI_CS, Touch2
GPIO2Touch3, U0RXD
GPIO15Touch4, U0TXD, HSPI_CS
GPIO5Touch0, HSPI_CS
GPIO18ADC1_CH0, HSPI_SCK
GPIO19ADC1_CH1, HSPI_MISO
GPIO21I2C_SDA
GPIO22I2C_SCL
GPIO23ADC1_CH11, HSPI_MOSI
GPIO17SPI2_CS
GPIO16SPI2_MOSI
GPIO0Touch1, Boot Button
GPIO1U0RXD, Touch6
GPIO3U0TXD, Touch7
GPIO6SPI2_SCK
GPIO7SPI2_MISO
GPIO8SPI2_MOSI
GPIO9SPI2_CS
GPIO10SPI2_CS
GPIO11SPI2_CS
VIN5V Power Input
GNDGround

Wiring & circuit basics

The NodeMCU-32S operates at a logic level of 3.3V. This means that any components you connect to its GPIO pins should also be 3.3V compatible. Connecting 5V devices directly to a 3.3V pin can damage the ESP32. If you need to interface with 5V devices, use a logic level shifter. Powering the board is typically done via the Micro-USB port, which supplies 5V. Alternatively, you can use the VIN pin, which also accepts 5V. The onboard voltage regulator will step this down to the 3.3V required by the ESP32 and its peripherals.

When powering the board, ensure your power source can provide sufficient current, especially if you are using Wi-Fi or Bluetooth, which can draw significant current spikes. A standard USB power adapter (5V, 1A or 2A) is usually adequate for most projects. Avoid powering the board directly from a computer's USB port if your project has high current demands, as these ports may have current limitations. The 3.3V pin is an output and should not be used for input unless you are powering the board directly with a regulated 3.3V source, which is generally not recommended for beginners.

For a simple LED project, connect an LED's anode (longer leg) to a GPIO pin (e.g., GPIO2) and its cathode (shorter leg) through a current-limiting resistor (typically 220-330 ohms for a standard LED) to a GND pin. For an I2C sensor, connect the sensor's VCC to the board's 3V3 pin, GND to a GND pin, SDA to GPIO21, and SCL to GPIO22. Always consult the datasheets for your specific sensors and components to ensure correct wiring and voltage compatibility.

Programming & getting started

The NodeMCU-32S is highly versatile in its programming options. The most popular method for beginners is using the Arduino IDE. After installing the ESP32 board support package, you can write and upload code using familiar Arduino syntax. For more advanced users, MicroPython and CircuitPython offer Python-based programming environments, allowing for rapid prototyping. Espressif's official ESP-IDF (Espressif IoT Development Framework) provides the most control and access to the ESP32's full capabilities, though it has a steeper learning curve. PlatformIO is another excellent choice for managing projects and dependencies across different environments.

To upload your first program using the Arduino IDE: 1. Install the Arduino IDE. 2. Go to File > Preferences and add 'https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json' to the Additional Board Manager URLs. 3. Go to Tools > Board > Boards Manager, search for 'esp32', and install it. 4. Select your NodeMCU-32S board from Tools > Board > ESP32 Arduino. 5. Connect the NodeMCU-32S to your computer via Micro-USB. 6. Select the correct COM port from Tools > Port. 7. Upload a simple sketch, like the 'Blink' example, to verify your setup.

Project ideas

Wi-Fi Connected Weather StationBuild a device that fetches real-time weather data from an online API and displays it on an LCD screen or sends it to a web server. This project utilizes the ESP32's Wi-Fi capabilities and GPIO pins for sensor/display interfacing, teaching API integration and data handling.
Bluetooth Low Energy (BLE) Sensor HubCreate a sensor node that broadcasts environmental data (temperature, humidity) via BLE. This project leverages the ESP32's BLE functionality, allowing other devices like smartphones to read the sensor data, demonstrating wireless communication protocols.
Smart Home Light ControllerDevelop a system to control an LED or a relay connected to a lamp via a web interface hosted on the NodeMCU-32S. This project combines Wi-Fi connectivity with basic web server principles and GPIO control for smart home automation.
MQTT Data LoggerSend sensor readings (e.g., soil moisture, room temperature) to an MQTT broker for remote monitoring and logging. This project teaches the MQTT protocol, essential for many IoT platforms, and demonstrates asynchronous data transmission.
ESP32-to-ESP32 CommunicationSet up two NodeMCU-32S boards to communicate directly with each other using Wi-Fi (e.g., ESP-NOW) or Bluetooth. This project explores peer-to-peer wireless communication, useful for distributed sensor networks or remote control applications.
Voice-Controlled AssistantIntegrate with cloud-based voice services (like Google Assistant or Alexa via a bridge) to control devices connected to the NodeMCU-32S. This advanced project combines Wi-Fi, cloud integration, and potentially some local processing for a hands-free interface.

Buying tips & gotchas

When purchasing a NodeMCU-32S, be aware that many inexpensive variants exist, and quality can vary. Look for boards with clearly labeled pins and a reputable USB-to-Serial chip (like the CP2102 or CH340). Some older or cheaper boards might have issues with certain GPIO pins or power regulation. Always double-check the pinout diagram for your specific board, as slight variations can occur. Ensure you have a reliable 3.3V-compatible breadboard and jumper wires for prototyping. For more demanding applications, consider a dedicated power supply capable of delivering at least 500mA to 1A, especially when Wi-Fi is active.