šŸ”¶ NodeMCU ESP32 WROOM-32 USB-C (38-Pin) Development Board – Dual-Core WiFi + Bluetooth – Ideal for IoT & Weather Stations


šŸ“¦ Overview

The NodeMCU ESP32 WROOM-32 (38-pin) development board features a dual-core 32-bit processor, integrated WiFi & Bluetooth, abundant GPIO options, and extremely low power consumption. Perfect for IoT, automation, Home Assistant, robotics, and sensor networks.

This listing includes a complete Weather Station example showing how to read temperature, humidity, and pressure from a BME280 sensor and display it on an OLED screen, using both Arduino and ESPHome.


āœ… Key Benefits


āš™ļø Specifications

Module: ESP32 WROOM-32 (38-pin)
CPU: Dual-core Tensilica LX6 @ up to 240MHz
WiFi: 2.4GHz 802.11 b/g/n
Bluetooth: BLE + Classic
Flash: 4MB (typical)
GPIO: Up to 30 usable pins (varies by function)
Interfaces: I²C, SPI, UART, ADC, DAC, PWM, Touch
Voltage: 5V USB input or 3.3V pin


šŸ”Œ Wiring for Weather Station (ESP32 + BME280 + OLED SSD1306)

   ESP32 WROOM-32 (38-pin)         BME280           SSD1306 OLED
   -------------------------       --------         -------------
     3V3 ------------------------> VCC              VCC
     GND ------------------------> GND              GND
     GPIO21 (SDA) ---------------> SDA              SDA
     GPIO22 (SCL) ---------------> SCL              SCL

   Both modules share the same I2C bus.

Note: Typical BME280 I²C address is 0x76 or 0x77. OLED is usually 0x3C.


🧩 Arduino Weather Station Example (ESP32)

Click to expand Arduino code
// ESP32 Weather Station Example
// Requires:
//  - Adafruit BME280 library
//  - Adafruit SSD1306
//  - Adafruit GFX

#include 
#include 
#include 
#include 

#define OLED_ADDR 0x3C
Adafruit_SSD1306 display(128, 64, &Wire, -1);
Adafruit_BME280 bme;

void setup() {
  Serial.begin(115200);
  Wire.begin(21, 22);

  display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR);
  display.clearDisplay();
  display.setTextColor(SSD1306_WHITE);

  if (!bme.begin(0x76)) {
    Serial.println("BME280 not found!");
  }

  display.setTextSize(1);
  display.setCursor(0,0);
  display.println("ESP32 Weather Station");
  display.display();
  delay(1000);
}

void loop() {
  float t = bme.readTemperature();
  float h = bme.readHumidity();
  float p = bme.readPressure() / 100.0F;

  display.clearDisplay();
  display.setCursor(0,0);
  display.printf("Temp: %.1f C\nHum : %.1f %%\nPres: %.1f hPa", t, h, p);
  display.display();

  delay(2000);
}
  

🧩 ESPHome Weather Station Example

Click to expand ESPHome YAML
esphome:
  name: esp32_weather
  platform: ESP32
  board: esp32dev

wifi:
  ssid: "YOUR_WIFI"
  password: "YOUR_PASS"

i2c:
  sda: GPIO21
  scl: GPIO22
  scan: true

sensor:
  - platform: bme280
    address: 0x76
    temperature:
      name: "Weather Temp"
    humidity:
      name: "Weather Humidity"
    pressure:
      name: "Weather Pressure"

font:
  - file: "fonts/arial.ttf"
    id: font1
    size: 12

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    address: 0x3C
    lambda: |-
      it.printf(0, 0, id(font1), "T: %.1fC", id(weather_temp).state);
      it.printf(0, 16, id(font1), "H: %.1f%%", id(weather_humidity).state);
      it.printf(0, 32, id(font1), "P: %.1f hPa", id(weather_pressure).state);
  

šŸ’” Possible Uses


šŸ“¦ Package Includes


šŸ” Keywords

ESP32 WROOM, ESP32 38 pin, NodeMCU ESP32, ESPHome ESP32, Arduino ESP32, Weather Station, BME280, IoT Dev Board, WiFi Bluetooth MCU.

✨ Fast Shipping • šŸ”’ Secure Checkout