Cirkit Designer Logo
Cirkit Designer
Your all-in-one circuit design IDE
Home / 
Component Documentation

How to Use NODEMCU-32S : Examples, Pinouts, and Specs

Image of NODEMCU-32S
Cirkit Designer LogoDesign with NODEMCU-32S in Cirkit Designer

Introduction

The NODEMCU-32S is a low-cost, open-source IoT platform built around the powerful ESP32 microcontroller. It is designed for developing connected devices and features integrated Wi-Fi and Bluetooth capabilities, making it an excellent choice for IoT applications. The board includes a USB interface for programming and power, a variety of GPIO pins for interfacing with sensors and actuators, and supports programming in both Lua script and the Arduino IDE.

Explore Projects Built with NODEMCU-32S

Use Cirkit Designer to design, explore, and prototype these projects online. Some projects support real-time simulation. Click "Open Project" to start designing instantly!
ESP8266 and SIM800L Based GPS Tracker with I2C LCD Display and Battery Power
Image of Little Innovator Competition: A project utilizing NODEMCU-32S  in a practical application
This circuit integrates an ESP8266 NodeMCU microcontroller with a SIM800L GSM module, a GPS NEO 6M module, and a 16x2 I2C LCD display for communication and location tracking. It also includes a pushbutton for user input, a piezo buzzer for audio alerts, and is powered by a 2x 18650 battery pack through an LM2596 step-down module.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP8266 NodeMCU RFID Access Control System with Feedback Indicators
Image of emos project: A project utilizing NODEMCU-32S  in a practical application
This circuit features an ESP8266 NodeMCU microcontroller as the central processing unit, interfaced with a variety of peripherals. It includes an RFID-RC522 module for RFID communication, a buzzer and LED for audio-visual feedback, a 16x2 LCD screen with I2C for display purposes, and a Servomotor SG90 for actuation. The NodeMCU controls these components, likely for an access control system where the RFID reader validates credentials, the LCD provides user feedback, and the servo acts as a lock mechanism.
Cirkit Designer LogoOpen Project in Cirkit Designer
ESP8266 NodeMCU Controlled Environmental Monitoring System with OLED Display and Relay Switching
Image of soil moisture: A project utilizing NODEMCU-32S  in a practical application
This circuit features an ESP8266 NodeMCU microcontroller connected to various peripherals. It includes a DHT11 sensor for temperature and humidity readings, a YL-83 module with YL-69 probe for soil moisture detection, a 0.96" OLED display for data output, a common cathode RGB LED for status indication, a piezo speaker for audio alerts, and a KY-019 relay module for controlling external loads. The NodeMCU facilitates data acquisition from sensors, drives the display and LED, and can trigger the relay and speaker based on sensor inputs or programmed conditions.
Cirkit Designer LogoOpen Project in Cirkit Designer
NodeMCU ESP8266 Based Smart Relay with LCD Interface and RTC Support
Image of IoT based bell system: A project utilizing NODEMCU-32S  in a practical application
This circuit features a NodeMCU V3 ESP8266 microcontroller connected to a KY-019 Relay module for controlling power to a device, a DS3231 Real Time Clock (RTC) for timekeeping, and an LCM1602 IIC module interfaced with an LCD Display for user interface. The circuit is powered by a Mini AC-DC converter module that steps down AC mains to 5V, and the NodeMCU facilitates communication between the RTC, the relay, and the display, likely for scheduling and displaying the status of the connected device.
Cirkit Designer LogoOpen Project in Cirkit Designer

Explore Projects Built with NODEMCU-32S

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 Little Innovator Competition: A project utilizing NODEMCU-32S  in a practical application
ESP8266 and SIM800L Based GPS Tracker with I2C LCD Display and Battery Power
This circuit integrates an ESP8266 NodeMCU microcontroller with a SIM800L GSM module, a GPS NEO 6M module, and a 16x2 I2C LCD display for communication and location tracking. It also includes a pushbutton for user input, a piezo buzzer for audio alerts, and is powered by a 2x 18650 battery pack through an LM2596 step-down module.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of emos project: A project utilizing NODEMCU-32S  in a practical application
ESP8266 NodeMCU RFID Access Control System with Feedback Indicators
This circuit features an ESP8266 NodeMCU microcontroller as the central processing unit, interfaced with a variety of peripherals. It includes an RFID-RC522 module for RFID communication, a buzzer and LED for audio-visual feedback, a 16x2 LCD screen with I2C for display purposes, and a Servomotor SG90 for actuation. The NodeMCU controls these components, likely for an access control system where the RFID reader validates credentials, the LCD provides user feedback, and the servo acts as a lock mechanism.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of soil moisture: A project utilizing NODEMCU-32S  in a practical application
ESP8266 NodeMCU Controlled Environmental Monitoring System with OLED Display and Relay Switching
This circuit features an ESP8266 NodeMCU microcontroller connected to various peripherals. It includes a DHT11 sensor for temperature and humidity readings, a YL-83 module with YL-69 probe for soil moisture detection, a 0.96" OLED display for data output, a common cathode RGB LED for status indication, a piezo speaker for audio alerts, and a KY-019 relay module for controlling external loads. The NodeMCU facilitates data acquisition from sensors, drives the display and LED, and can trigger the relay and speaker based on sensor inputs or programmed conditions.
Cirkit Designer LogoOpen Project in Cirkit Designer
Image of IoT based bell system: A project utilizing NODEMCU-32S  in a practical application
NodeMCU ESP8266 Based Smart Relay with LCD Interface and RTC Support
This circuit features a NodeMCU V3 ESP8266 microcontroller connected to a KY-019 Relay module for controlling power to a device, a DS3231 Real Time Clock (RTC) for timekeeping, and an LCM1602 IIC module interfaced with an LCD Display for user interface. The circuit is powered by a Mini AC-DC converter module that steps down AC mains to 5V, and the NodeMCU facilitates communication between the RTC, the relay, and the display, likely for scheduling and displaying the status of the connected device.
Cirkit Designer LogoOpen Project in Cirkit Designer

Common Applications and Use Cases

  • Home automation systems
  • Smart sensors and IoT devices
  • Wireless data logging
  • Remote monitoring and control
  • Prototyping connected devices

Technical Specifications

Key Technical Details

  • Microcontroller: ESP32 (dual-core, 32-bit LX6 processor)
  • Clock Speed: Up to 240 MHz
  • Flash Memory: 4 MB
  • SRAM: 520 KB
  • Wi-Fi: 802.11 b/g/n
  • Bluetooth: v4.2 BR/EDR and BLE
  • Operating Voltage: 3.3V
  • Input Voltage (via USB): 5V
  • GPIO Pins: 30 (including ADC, DAC, PWM, I2C, SPI, UART)
  • ADC Channels: 18 (12-bit resolution)
  • DAC Channels: 2 (8-bit resolution)
  • USB Interface: Micro-USB
  • Dimensions: 58mm x 31mm

Pin Configuration and Descriptions

The NODEMCU-32S has a total of 30 GPIO pins, each with multiple functions. Below is a summary of the pin configuration:

Pin Function Description
VIN Power Input Input voltage (5V) when powering the board externally.
GND Ground Ground connection.
3V3 Power Output 3.3V output for powering external components.
EN Enable Enables or disables the board (active high).
IO0 GPIO0, Boot Mode General-purpose I/O, also used for boot mode selection.
IO2 GPIO2, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO4 GPIO4, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO5 GPIO5, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO12 GPIO12, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO13 GPIO13, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO14 GPIO14, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO15 GPIO15, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO16 GPIO16, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO17 GPIO17, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO18 GPIO18, SPI, PWM General-purpose I/O, SPI interface, or PWM output.
IO19 GPIO19, SPI, PWM General-purpose I/O, SPI interface, or PWM output.
IO21 GPIO21, I2C SDA General-purpose I/O or I2C data line.
IO22 GPIO22, I2C SCL General-purpose I/O or I2C clock line.
IO23 GPIO23, SPI, PWM General-purpose I/O, SPI interface, or PWM output.
IO25 GPIO25, DAC1, PWM General-purpose I/O, DAC output, or PWM output.
IO26 GPIO26, DAC2, PWM General-purpose I/O, DAC output, or PWM output.
IO27 GPIO27, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO32 GPIO32, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO33 GPIO33, ADC, PWM General-purpose I/O, analog input, or PWM output.
IO34 GPIO34, ADC General-purpose I/O or analog input (input-only pin).
IO35 GPIO35, ADC General-purpose I/O or analog input (input-only pin).
IO36 GPIO36, ADC General-purpose I/O or analog input (input-only pin).
IO39 GPIO39, ADC General-purpose I/O or analog input (input-only pin).

Usage Instructions

How to Use the NODEMCU-32S in a Circuit

  1. Powering the Board:

    • Connect the board to your computer or a USB power source using a Micro-USB cable.
    • Alternatively, supply 5V to the VIN pin and connect GND to ground.
  2. Programming the Board:

    • Install the Arduino IDE and add the ESP32 board support package.
    • Select "NodeMCU-32S" as the board in the Arduino IDE.
    • Write your code and upload it to the board via the USB connection.
  3. Connecting Peripherals:

    • Use the GPIO pins to connect sensors, actuators, or other peripherals.
    • Ensure that the voltage levels of connected devices are compatible with the 3.3V logic of the NODEMCU-32S.

Example Code: Blinking an LED

The following example demonstrates how to blink an LED connected to GPIO2:

// Define the GPIO pin where the LED is connected
const int ledPin = 2;

void setup() {
  // Set the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // Turn the LED on
  digitalWrite(ledPin, HIGH);
  delay(1000); // Wait for 1 second

  // Turn the LED off
  digitalWrite(ledPin, LOW);
  delay(1000); // Wait for 1 second
}

Important Considerations and Best Practices

  • Avoid applying voltages higher than 3.3V to the GPIO pins to prevent damage.
  • Use level shifters if interfacing with 5V devices.
  • Ensure proper grounding when connecting external components.
  • Use pull-up or pull-down resistors as needed for input pins.
  • Avoid powering high-current devices directly from the GPIO pins.

Troubleshooting and FAQs

Common Issues and Solutions

  1. The board is not detected by the computer:

    • Ensure the USB cable is functional and supports data transfer.
    • Install the correct USB-to-serial driver for the NODEMCU-32S.
  2. Code upload fails:

    • Check that the correct board and COM port are selected in the Arduino IDE.
    • Press and hold the "BOOT" button on the board while uploading the code.
  3. Wi-Fi connection issues:

    • Verify the SSID and password in your code.
    • Ensure the Wi-Fi network is within range and operational.
  4. GPIO pins not working as expected:

    • Double-check the pin configuration in your code.
    • Ensure no conflicting peripherals are using the same pins.

FAQs

  • Can I power the NODEMCU-32S with a battery?
    Yes, you can use a 3.7V LiPo battery connected to the VIN and GND pins.

  • What is the maximum current the GPIO pins can source/sink?
    Each GPIO pin can source/sink up to 12mA safely.

  • Can I use the NODEMCU-32S with MicroPython?
    Yes, the NODEMCU-32S supports MicroPython, but you need to flash the MicroPython firmware first.