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.
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
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.
// 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:
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);
ESP32 WROOM, ESP32 38 pin, NodeMCU ESP32, ESPHome ESP32, Arduino ESP32, Weather Station, BME280, IoT Dev Board, WiFi Bluetooth MCU.
⨠Fast Shipping ⢠š Secure Checkout