New Setup for Home Environment Monitoring – Using NRF24L01+, Arduino Pro Mini, and BME280
-
Hi everyone!
I just wanted to share my recent MySensors project setup focused on indoor environment monitoring. I’ve been gradually building a home automation system, and MySensors has been a perfect fit for its flexibility and low power requirements.
Here’s a breakdown of my current configuration:
Sensor Node Configuration:
Microcontroller: Arduino Pro Mini 3.3V 8MHz (clone from HiLetgo)Wireless Module: NRF24L01+ with 10µF capacitor for stability
Environmental Sensor: BME280 (https://www.ichome.com/product-detail/bosch-sensortec/bme280#PdfShow) for temperature, humidity, and pressure (connected via I2C)
Power: 2x AA batteries + step-up booster (using an HT7333 LDO for stable voltage)(https://mm.digikey.com/Volume0/opasdata/d220001/medias/docus/5057/HT73xx-A.pdf)
Additional Modules (planned):
BH1750 for ambient light sensing
TSL2561 as a more accurate alternative
Gateway Setup:
Controller: Home Assistant (via MySensors MQTT integration)Gateway Type: MQTT Gateway
Hardware:
Arduino Nano + NRF24L01+
Connected to a Raspberry Pi 4B (4GB RAM) running Mosquitto MQTT Broker
Powering the gateway with USB + filtered 3.3V rail for NRF stability
🧠 Software:
MySensors Library Version: 2.3.2Using the MySensors BME280 example sketch with slight modifications to add battery reporting (sendBatteryLevel()).
MQTT topics structured as: mysensors-out/0/1/1/0/0 etc.
Challenges & Solutions:
Interference: Had to add a 10µF electrolytic cap close to the NRF24L01+ VCC pin to prevent random disconnects.Power Optimization: Removed voltage regulator & power LED from the Pro Mini, sleep cycles set to 10 minutes to save battery.
Signal Range: Improved range with a NRF24L01+ PA/LNA module and external antenna for the gateway.
Next Steps:
Integrating motion detection using HC-SR501(https://www.youtube.com/watch?v=QizfU7Fgmyw) PIR sensorAdding OTA update capability via MYSBootloader (still exploring)
Possibly shifting to RFM69 for better range in multi-room setup
If anyone has experience optimizing BME280 accuracy or recommendations for better battery life, I’d love to hear your thoughts!
-
@lostintheethes Sounds like a nice set up. I have had good luck with bme280's without doing anything special. I usually get about a year out of a coin cell battery. I check the temperature every 3 minutes, but I don't send unless it changes more than .1 I haven't really tested accuracy, but it seems about right.
-
@nagelc said in New Setup for Home Environment Monitoring – Using NRF24L01+, Arduino Pro Mini, and BME280:
bme280
I read somewhere that the temperature sensor on the BME280 is sort of an afterthought. I did a few experiments comparing them to the DHT11/12/22 and found them only a little better. (Take this with a grain of salt, maybe you'll want to do you're own experiments.) I did do a lot of experiments with the DHT's and they really suck. +/-2°C Which turns out to mean +/-2°C offset (component variation) and +/-2°C measurement: +/-4°C from what the temperature actually is. My experience, yours may be better.
Please post your experience with OTA. I haven't tried it on Arduino's but it's awesome on ESP8266. I hesitate with Arduino's because I had some erratic behaviour running Arduino's when pushing the memory limit.
I, too, use the MQTT data transport to Home Assistant (HA) and I find that excellent. Getting data from HA is a bit tricky, but do-able. I have a flow meter and use HA to store the last read; meaning, if there is a power failure, HA sends the last read on Arduino boot. I don't use the EEPROM because that has a spec of 100,000 writes which the meter would do in about a year, thus, necessitating a new Arduino.
I truly appreciate you sharing. Thanks!
-OSD