Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

An ESP32 Wi-Fi board can read temperature and humidity—and, with a BME280, barometric pressure—and publish each measurement to an Adafruit IO feed. For a basic monitor, use Adafruit’s DHT22 approach; choose a BME280 if pressure matters. Plan the publish interval around your account’s request limit, keep the sensor away from heat-producing board components, and use secure MQTT when your client supports it.

Choose the sensor and controller

The main choice is whether you need pressure in addition to temperature and humidity. That affects the sensor, wiring, placement, and how often a battery-powered monitor can wake and publish.

Option Measurements Wiring and placement Power considerations
DHT22 with an ESP32 Temperature and humidity Adafruit’s DHT22 tutorial demonstrates sending these readings wirelessly to Adafruit IO. It does not provide pressure. A straightforward starting point. For an outdoor battery build, choose a sampling and sleep schedule that fits the battery and the account’s publish allowance.
BME280 with an ESP32 Temperature, humidity, and barometric pressure The BME280 communicates over I2C. On Adafruit’s ESP32-S2 Feather with BME280, the sensor address is 0x77. Adafruit lists stated ratings of ±3% humidity, ±1 hPa pressure, and ±1.0°C temperature, and warns that heat from the ESP32-S2 can raise readings during long operation. Deep sleep between readings or placing the sensor away from the board can help reduce self-heating. An external sensor also gives more flexibility in placement.

Adafruit offers an Adafruit ESP32-S2 Feather with BME280 Sensor, which integrates the weather sensor, and a plain ESP32-S2 Feather that can be paired with an external sensor. The integrated board is convenient; a separate sensor can be positioned farther from the controller’s heat. Check current stock before choosing a specific board.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Plan the feeds and publish interval

Create one Adafruit IO feed for each measured value—for example, temperature, humidity, and pressure. A DHT22 build needs two feeds; a BME280 build can use three. Give each feed a clear name and unit so the values remain understandable when you inspect them later.

#1 Best Overall
ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA Compatible with Arduino IDE (3PCS)
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Support LWIP protocol, Freertos
  • SupportThree Modes: AP, STA, and AP+STA
  • Ultra-Low power consumption, Compatible with Arduino IDE
  • ESP32 is a safe, reliable, and scalable to a variety of applications

Adafruit IO’s current API reference lists a publish limit of 30 requests per minute for free accounts and 60 requests per minute for IO+ accounts. Treat these as account-wide ceilings: include every device using the account, not just this weather station. The older MQTT guide describes the limit as about one request per second and warns that excess publishes can be rejected.

Count each feed publication as a request when planning a cycle that sends values separately. For example, publishing three values every six seconds uses 30 requests per minute for this device alone; that reaches the stated free-account ceiling and leaves no room for other devices or traffic. Choose a slower interval to leave headroom. With two feeds, a six-second cycle uses 20 requests per minute. Actual usage must also account for other devices on the account.

Rank #2
ELEGOO 3PCS ESP-32 Dev Boards, ESP-WROOM-32, USB-C, WiFi Bluetooth 4.2
  • Dual-Core Performance Up to 240 MHz: Run sensor processing, wireless communication, automation logic and connected-device tasks on a 32-bit dual-core ESP32 platform designed for responsive embedded and IoT projects
  • Built-in Wi-Fi and Bluetooth 4.2: Connect to 2.4 GHz Wi-Fi networks or use Bluetooth Classic and BLE for wireless sensors, smart devices, remote controls, home automation and other connected projects
  • Flexible Power-Saving Modes: ESP32 power-management features support dynamic clock scaling and low-power operating modes, helping developers reduce energy use in compatible sensing, monitoring and connected-device applications, suitable for battery-powered Internet of Things (IoT) devices.
  • USB-C Programming with CP2102: Connect through USB-C for power, sketch uploads and serial monitoring, while GPIO, UART, SPI and I2C interfaces support sensors, displays, motor drivers and other modules (USB-C cable not included)
  • Over-the-Air Update Support: Configure OTA functionality through a compatible ESP-32 software framework to update deployed firmware over Wi-Fi without reconnecting the board by USB for every revision

IO+ is listed by Adafruit as supporting 60 data points per minute and 60 days of data storage, alongside additional service features. The storage and rate figures are from Adafruit Learning System’s 2026 overview; the current IO+ price is not established here.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Build the ESP32-to-Adafruit IO data path

  1. Connect the sensor. Follow the wiring and library guidance for the specific board and sensor. For the BME280 on the ESP32-S2 Feather, use the documented I2C address, 0x77. Do not assume another board or breakout has the same address.
  2. Set up Adafruit IO credentials. Configure the Adafruit username and AIO key in the device firmware. Keep the key out of public source-control repositories.
  3. Connect over MQTT. Use the broker io.adafruit.com and secure MQTT on port 8883 when supported by the client. Adafruit recommends SSL when the MQTT client allows it.
  4. Read and publish each measurement. Have the firmware obtain the sensor values and publish each one to its corresponding feed. Check that the values arrive in the intended feeds before building the dashboard.
  5. Watch for rejected publishes. During development, subscribe to Adafruit IO’s error and throttle topics so the device can reveal failed or rate-limited publishes. Use a unique MQTT client ID for every connected device; reusing an ID disconnects the existing connection.
  6. Recover without reconnect loops. If the connection or publish fails, use exponential backoff rather than retrying continuously. Persistent rapid retries can make the connection less reliable.

Adafruit documents QoS 0 and QoS 1 support. The appropriate choice depends on the client and the delivery behavior you want; the key operational check is to verify feed updates and handle errors rather than assuming every publish succeeded.

Rank #3
ELEGOO ESP-32 Super Starter Kit with Tutorial Compatible with Arduino IDE
  • Powerful ESP-32 Board: Unlock the world of Internet of Things (IoT) and advanced electronics with the heart of this kit: the ESP-32 board. It features a powerful dual-core processor, integrated Wi-Fi and Bluetooth 4.2, making it perfect for building connected, smart devices that communicate with your phone or the cloud. It's fully compatible with the Arduino IDE for easy programming.
  • Super Starter Kit: This kit contains over 35 different modules and electronic components, including sensors, displays, motors, and input devices. From LEDs and buttons to an OLED screen, servo motor, and keypad, you have everything needed to explore a vast range of projects in one box.
  • Step by Step Online Tutorial: Jump right in with our detailed, beginner-friendly tutorial. Access 30+ projects with complete code, clear circuit diagrams, and step-by-step instructions. Learn the fundamentals of electronics, coding, and how to utilize the ESP-32's unique capabilities without any prior experience.
  • Hands-on Learning for All Skill Levels: Perfect for students, makers, engineers, and hobbyists. Start with basic circuits and coding, then progress to intermediate and advanced IoT applications. Build practical projects like weather stations, smart home controllers, remote-controlled devices, and interactive gadgets. The skills you learn are the foundation for real-world innovation.
  • Quality & Great Support: Elegoo is committed to quality. We provide a clear, detailed tutorial guide, refined code, and a well-organized component kit. All modules are carefully selected for reliability and ease of use. Our dedicated technical support team and active online community are ready to help you succeed in your learning journey.

Make a dashboard for the readings

Adafruit IO dashboards visualize feeds in a browser. Dashboard creation and block creation are separate operations, so create the dashboard first and then add blocks connected to the feeds.

  • Use a gauge for a current reading, such as temperature or humidity.
  • Use a chart to see how a reading changes over time.
  • For a BME280 station, add pressure as its own feed and give it a separate block rather than combining unrelated values into one feed.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Improve outdoor readings and reliability

Reduce sensor heat bias

For the BME280, avoid mounting the sensing element next to the ESP32 regulator or charging circuitry. Adafruit warns that ESP32-S2 heat can raise readings during long operation; deep sleep between samples or an externally mounted sensor can reduce that influence. The stated BME280 accuracy figures are ratings, not a guarantee that a completed enclosure will achieve them.

Rank #4
ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA Compatible with Arduino IDE (1 PCS)
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Support LWIP protocol, Freertos;ESP32 is a safe, reliable, and scalable to a variety of applications
  • SupportThree Modes: AP, STA, and AP+STA
  • Ultra-Low power consumption, Compatible with Arduino IDE
  • 1PCS 30Pin ESP32 Development Board 2.4GHz WiFi Dual Cores Microcontroller Integrated with Antenna RF Low Noise Amplifiers Filters

Protect the installation

An outdoor enclosure needs to protect the electronics while allowing the sensor to measure the surrounding air. Use a weatherproof enclosure and a sheltered radiation shield as design considerations; the exact mechanical design depends on the site and is not specified by Adafruit’s cited guides. Avoid placing the sensor where direct sun, trapped enclosure heat, or nearby electronics will dominate its readings.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Use an appropriate power strategy

The ESP32-S2 Feather product information describes Wi-Fi, USB-C power, LiPo support, and STEMMA QT expansion. For a remote battery monitor, frequent Wi-Fi connections and publications compete with battery life. Decide the measurement and sleep schedule together, then validate the chosen setup in its intended enclosure and location.

Best Value
HiLetgo ESP-WROOM-32 ESP32 ESP-32S Development Board 2.4GHz Dual-Mode WiFi + Bluetooth Dual Cores Microcontroller Processor Integrated with Antenna RF AMP Filter AP STA for Arduino IDE
  • 2.4GHz Dual Mode WiFi + Bluetooth Development Board
  • Ultra-Low power consumption, works perfectly with the Arduino IDE
  • Support LWIP protocol, Freertos
  • SupportThree Modes: AP, STA, and AP+STA
  • ESP32 is a safe, reliable, and scalable to a variety of applications

Common problems to check

  • No feed updates: Confirm Wi-Fi connectivity, the Adafruit username and AIO key, broker address, port, and destination feed names.
  • Repeated disconnections: Check that each device uses a unique MQTT client ID. A duplicate ID can disconnect the earlier connection.
  • Throttled or rejected updates: Reduce the publication rate, count all feeds and account devices, and inspect the error and throttle topics.
  • Temperature seems too high: Move the sensor away from the ESP32 and charging or regulator components, or use deep sleep between readings.
  • Unexpected BME280 connection failure: Verify I2C wiring and the sensor’s actual address. The documented 0x77 address applies to Adafruit’s ESP32-S2 Feather with BME280 and should not be generalized to every breakout.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.