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.
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
- 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
- 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.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Scan for outdated or missing drivers - takes under a minuteDriver Scan →Build the ESP32-to-Adafruit IO data path
- 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.
- 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.
- Connect over MQTT. Use the broker
io.adafruit.comand secure MQTT on port8883when supported by the client. Adafruit recommends SSL when the MQTT client allows it. - 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.
- 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.
- 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
- 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.
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
- 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.
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.
Quick Recap
Best Value
- 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.

