Solar powered node, that should only send occasionally



  • Hello,
    I want to watch the level of a rain tank. I don't need to see this every ten minutes. Some updates a day are sufficient.
    My hardware needs 3 mA in sleep mode and 25 mA when it is transmitting.
    My plan is to power it with solar power. I have a 5 volt solar panel and two 1 Farad supercap.
    When I normally power this setup, it sticks at around 2 volts, because when the arduino has enough voltage it try to connect to the gateway. That drops the voltage.
    So my idea is to load fully the supercap an the switch the sensor on (switching the voltage for the arduino NRF24 and the ultrasonic sensor on). After this the procedure start again or there is enough energy the node goes to standby and transmits later agian.
    My problem is, that I don't know how I could build the switch.
    Idea is to use a thyristor, that get conducting, if the supercap voltage is higher than e.g. 4 volts.
    Has anyone tips for me?


  • Mod

    @rpunkt You can also just sleep the ATMega+radio and wake it every few hours or so.
    Then have the Arduino power the ultrasonic sensor using an output pin (directly, or using a driver, depending on the current required).
    Measure, then switch the ultrasonic sensor off again and send the value.
    Go to sleep again.

    Optionally you could also measure the Vcc when waking up to decide to measure/send or not.

    When Vcc goes below the brownout level of the Arduino it will automatically restart when power rises again.



  • @rpunkt Playing Devils Advocate here, but would it not be better looking for reduced power consumption and better regulation?
    Have 2 setups here running 5v ultrasonics, both use 3.3v high efficiency pro-mini with rfm69 running on 2AA activated by RTC hourly to send in readings, dropping out around the 1.5v mark.
    The original utilises a secondary circuit with a powered 5v promini via relay to interrogate the ultrasonic and send back to the main Node via I2C over level converter, the main is lasting 4-5 months, the 4AA secondary circuit is now 7 months in and over a year is a probability.
    The new version uses an efficient 5v booster off the Node's batteries to power the US via relay, and interrogated direct via level converter, and is now 6 months in and still reading 2.9v. The original will be converted to this version at the next battery change as it is clearly more efficient version and only uses 2 rather than 6 AAs.
    Even were you still to go for a solar arrangement, the voltage would be less an issue with so many cheap and efficient boosters available, improving the sleep consumption of the Node is a winner either way.



  • I am using HC-SR04 for reading water level too.
    My measuring range is 110 cm = empty tank, 2 cm = full tank. ( this is now ).

    Only problem I have got - when it is raining, some water drops condenses on sensor at night and sensor sends zero value.
    Or I need better cover for my sensor ...
    I eliminate by Domoticz code these bad readings.

    I send to Domoticz actual distance and battery voltage every 10 minutes and calculate volume in m3 and percentage and water influx or consumption.

    I am using battery powered Arduino Mini with MySensors network.
    Only power led removed - consumption in sleep 70microA.
    I am cutting off power for SR04 during sleep with small relay too and then it power on again.
    There is a little delay before distance measuring and I read three times distance and use only last reading, because independently on delay time, first readings returns zero value sometimes after power on sr04...

    Another problem is, that I power SR04 directly from battery, which voltage changes a little according ambient temperature.
    Using voltage stabilizer for SR04 will be necessarily.
    It was very quick project ...

    0_1557057629950_IMG_20190501_191554.jpg

    0_1557057657405_Nadrz.png

    0_1557057674836_Distance.png

    0_1557057690245_Volume.png



  • I have been thinking about a water tank project this summer.

    My thoughts are that the water in the tank is fairly constant unless one of two things happen.

    1. Water is removed.
    2. It rains!

    So I thought that I would have t button to press to send new values after pumping water out and a rain sensor to trigger readings while it is raining.

    Not got a lot on this yet but we will see....



  • @kimot said in Solar powered node, that should only send occasionally:

    HC-SR04

    I can heartily recommend using a 5v booster via the relay to power up the ultrasonic, it works a treat on the 2nd version using only one set of batteries.
    The heads used here are the single waterproof type used in parking sensors as my tanks are sealed thereby high humidity. Condensation blinding the head only occurs occasionally when below -10, I suspect down to my choice of steel conduit with the head in a socket on it's end (heatsinking effect).
    My solution to the initial zero, varying readings, and failures was to seek two consecutive readings within expected range and only make 10 attempts before going to sleep.
    Initiating on the RTC hourly fitted initial requirements to verify the borehole pump topped up the tank at 3am, the Node makes the calculations and decides whether to send it in as valid. Toying with tracking the fill more closely, but that is a nice to do if battery life can be reasonable...
    ![alt text](0_1557067789453_568736c3-7f99-478f-9b98-2dd14771e483-image.png image url)



  • Thank you for the inspirations an ideas,
    You are absolutely right that it will be the best to get the setup as energy efficient as possible.
    But how do I program the Nrf24l01 not to start when the board is powered?
    I could not easily disconnect the Nrf24l01 because I am using a tiny board "Atmega328P Arduino Plus Nrf24l01+ Board, Nrf24Duino R1.6". This has everything on board.
    Has someone some "hacking tips"?



  • 3mA sleep current is very high, you should probably set a goal for a few hundred uA maximum.
    I would suggest determining what is causing high sleep current consumption.

    This is theoretically possible with atmega328p as well as nrf24l01, should be able to accomplish this if using proper sleep and/or standby modes for each.
    Another thing to look at is the hardware your boards are using. One notorious culprit for high sleep current is AMS1117 voltage regulator, which has very sad ~4mA quiescent current - not appropriate for power-saving/battery nodes - but far to common on boards you will find (like clone of pro-minis, etc).
    (There are several other 3.3v LDOs with much better Iq - https://ethercalc.org/500ma-ldos)

    This might also have some good ideas as a place to start as well:
    http://www.home-automation-community.com/arduino-low-power-how-to-run-atmega328p-for-a-year-on-coin-cell-battery/


 

185
Online

8.7k
Users

9.5k
Topics

99.9k
Posts