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.2

    Using 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 sensor

    Adding 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



Suggested Topics

51
Online

11.6k
Users

11.2k
Topics

112.9k
Posts