Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. How to get longest battery life

How to get longest battery life

Scheduled Pinned Locked Moved Troubleshooting
44 Posts 8 Posters 13.3k Views 9 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • dbemowskD Offline
    dbemowskD Offline
    dbemowsk
    wrote on last edited by dbemowsk
    #1

    I have created myself a motion sensor node using one of these:
    motion sensor
    Here is the sketch I have currently uploaded to it. This is basically the example sketch from the MySensors site.

    /**
     * The MySensors Arduino library handles the wireless radio link and protocol
     * between your home built sensors/actuators and HA controller of choice.
     * The sensors forms a self healing radio network with optional repeaters. Each
     * repeater and gateway builds a routing tables in EEPROM which keeps track of the
     * network topology allowing messages to be routed to nodes.
     *
     * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
     * Copyright (C) 2013-2015 Sensnology AB
     * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
     *
     * Documentation: http://www.mysensors.org
     * Support Forum: http://forum.mysensors.org
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License
     * version 2 as published by the Free Software Foundation.
     *
     *******************************
     *
     * REVISION HISTORY
     * Version 1.0 - Henrik Ekblad
     * 
     * DESCRIPTION
     * Motion Sensor example using HC-SR501 
     * http://www.mysensors.org/build/motion
     *
     */
    
    // Enable debug prints
    // #define MY_DEBUG
    
    // Enable and select radio type attached
    #define MY_RADIO_NRF24
    //#define MY_RADIO_RFM69
    
    #include <MySensors.h>
    #include <SPI.h>
    
    unsigned long SLEEP_TIME = 60000 * 15; // Sleep time between reports (in milliseconds) 60000 is 1 minute x number of minutes
    #define DIGITAL_INPUT_SENSOR 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
    #define CHILD_ID 1   // Id of the sensor child
    
    // Initialize motion message
    MyMessage msg(CHILD_ID, V_TRIPPED);
    
    void setup()  
    {  
      pinMode(DIGITAL_INPUT_SENSOR, INPUT);      // sets the motion sensor digital pin as input
    }
    
    void presentation()  {
      // Send the sketch version information to the gateway and Controller
      sendSketchInfo("Motion Sensor", "1.0");
    
      // Register all sensors to gw (they will be created as child devices)
      present(CHILD_ID, S_MOTION);
    }
    
    void loop()     
    {     
      // Read digital motion value
      bool tripped = digitalRead(DIGITAL_INPUT_SENSOR) == HIGH;
    
      //Serial.println(tripped);
      send(msg.set(tripped?"1":"0"));  // Send tripped value to gw 
    
      // Sleep until interrupt comes in on motion sensor. Send update defined by SLEEP_TIME.
      sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), CHANGE, SLEEP_TIME);
    }
    

    Previously I had the SLEEP_TIME to the standard 120000 which was 2 minutes, and the battery only lasted a few days. I have changed the SLEEP_TIME to 15 minutes in hopes to increase battery life. I have had the sensor running for 2 days now and it is still running strong.

    The hardware I am running is a 5 volt pro mini on an easy newbie PCB. One thing I haven't done yet which I will do on the next test is to remove the red power LED from the nano. I am guessing that that will improve the battery life quite a bit too. My question though is, would I get significantly better battery life switching to a 3.3 volt pro mini? Currently I only have 5 volt versions in my arsenal of parts, so I would have to order some. I will not order them though unless I can confirm that they will significantly prolong battery life on sensors such as these. Can anyone tell me approximately how long a 9 volt should last under ideal conditions?

    EDIT:
    One other thing, Can anyone recommend a good project case for this type of sensor? I am thinking of putting a few of these around the house for occupancy sensing if I can get the battery to last long enough.

    Vera Plus running UI7 with MySensors, Sonoffs and 1-Wire devices
    Visit my website for more Bits, Bytes and Ramblings from me: http://dan.bemowski.info/

    1 Reply Last reply
    0
    • korttomaK Offline
      korttomaK Offline
      korttoma
      Hero Member
      wrote on last edited by
      #2

      Why do you need SLEEP_TIME to wake up your node at all? Is not the interrupt from motion enough to get you what you need from this node?

      My understanding is that you get the most significant improvement in battery life if you remove the on-board voltage regulator and LED from the Pro Mini.

      • Tomas
      dbemowskD 1 Reply Last reply
      0
      • sundberg84S Offline
        sundberg84S Offline
        sundberg84
        Hardware Contributor
        wrote on last edited by
        #3

        There is also several posts about how to use the motion detector with low power as well.
        No links, but search and you will find!

        Controller: Proxmox VM - Home Assistant
        MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
        MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
        RFLink GW - Arduino Mega + RFLink Shield, 433mhz

        1 Reply Last reply
        0
        • korttomaK korttoma

          Why do you need SLEEP_TIME to wake up your node at all? Is not the interrupt from motion enough to get you what you need from this node?

          My understanding is that you get the most significant improvement in battery life if you remove the on-board voltage regulator and LED from the Pro Mini.

          dbemowskD Offline
          dbemowskD Offline
          dbemowsk
          wrote on last edited by
          #4

          @korttoma I suppose I don't need the SLEEP_TIME, but whoever built the sample sketch had included it. If I am not going to use SLEEP_TIME then I need to research how to use an interrupt to call a function. I see they use one in the sleep() call in the sample sketch. I would have thought too that having the send call in the main loop, that it would constantly sen.

          send(msg.set(tripped?"1":"0"));  // Send tripped value to gw
          

          But when I tested with the Serial.println(tripped); it only seemed to do the print when the motion sensor changed state. I would have thought that you would put the send in the interrupt method call.

          @sundberg84 will running it at 3.3 volts give significant battery life improvement?

          Vera Plus running UI7 with MySensors, Sonoffs and 1-Wire devices
          Visit my website for more Bits, Bytes and Ramblings from me: http://dan.bemowski.info/

          sundberg84S 1 Reply Last reply
          0
          • dbemowskD dbemowsk

            @korttoma I suppose I don't need the SLEEP_TIME, but whoever built the sample sketch had included it. If I am not going to use SLEEP_TIME then I need to research how to use an interrupt to call a function. I see they use one in the sleep() call in the sample sketch. I would have thought too that having the send call in the main loop, that it would constantly sen.

            send(msg.set(tripped?"1":"0"));  // Send tripped value to gw
            

            But when I tested with the Serial.println(tripped); it only seemed to do the print when the motion sensor changed state. I would have thought that you would put the send in the interrupt method call.

            @sundberg84 will running it at 3.3 volts give significant battery life improvement?

            sundberg84S Offline
            sundberg84S Offline
            sundberg84
            Hardware Contributor
            wrote on last edited by
            #5

            @dbemowsk - Yes.
            Running pro mini + motion at 5v is doing it harder than necessary.

            Controller: Proxmox VM - Home Assistant
            MySensors GW: Arduino Uno - W5100 Ethernet, Gw Shield Nrf24l01+ 2,4Ghz
            MySensors GW: Arduino Uno - Gw Shield RFM69, 433mhz
            RFLink GW - Arduino Mega + RFLink Shield, 433mhz

            1 Reply Last reply
            0
            • tbowmoT Offline
              tbowmoT Offline
              tbowmo
              Admin
              wrote on last edited by
              #6

              @dbemowsk

              running at lower voltages, and using a lower oscillator frequency, causes the cpu to use less power.

              So yes, running without regulators (the PIR sensor can also run at 3V, if I remember right), and run it at 3v3 instead of 5V. and set the oscillator in your atmega to 8Mhz (or 1Mhz), it will require reprogramming of the fuses though, to switch operating frequency.

              Also use a battery closer to the operating frequency, so you don't have to waste energy in lowering the voltage to the operating voltage of your circuitry.

              Another thing, 9V batteries doesn't have that high a capacity, ordinary alkaline have only 500mAh, while 1.5V AA alkaline batteries have 1800-2600mAh. (according to this and this)

              1 Reply Last reply
              1
              • NeverDieN Offline
                NeverDieN Offline
                NeverDie
                Hero Member
                wrote on last edited by
                #7

                @dbemowsk

                Rather than re-invent the wheel, why don't you just build a PIR project that has already been optimized for battery life? Example: https://www.openhardware.io/view/75/MyMultisensors

                H dbemowskD 2 Replies Last reply
                1
                • NeverDieN NeverDie

                  @dbemowsk

                  Rather than re-invent the wheel, why don't you just build a PIR project that has already been optimized for battery life? Example: https://www.openhardware.io/view/75/MyMultisensors

                  H Offline
                  H Offline
                  Heizelmann
                  wrote on last edited by Heizelmann
                  #8

                  Here you find a sketch including battery report which I found best. Works also with your PIR I think. For a advanced sketch you can ckeck this.

                  I use an arduino pro mini 3.3V with 2 AA batteries at 8 MHZ CPU speed.

                  Most important is to remove the voltage regulator on the PIR and supply it directly with 3V. My battery lasts over month with this combination.

                  There are different solutions for this. Most powersaving is to remove the regulator.
                  The solution n the picture above has the advantage that the electrolytic capacitor downright is still in use. The additional blue capacitor 100nF is optional, should serve as noise filter.
                  PIR modification

                  1 Reply Last reply
                  1
                  • NeverDieN NeverDie

                    @dbemowsk

                    Rather than re-invent the wheel, why don't you just build a PIR project that has already been optimized for battery life? Example: https://www.openhardware.io/view/75/MyMultisensors

                    dbemowskD Offline
                    dbemowskD Offline
                    dbemowsk
                    wrote on last edited by
                    #9

                    @sundberg84 and @tbowmo, What you are saying makes sense. If I remove the regulators though, how do I get to a stable 3.3v for the nano and the radio. Do I need to get some of the battery boosters? I heard those are prone to a lot of noise that can interfere with the radio. If I need them, what are the best capacitors to filter the noise?

                    Are you saying that I can remove the regulator from a 5V pro mini to run it at 3.3v? How do I reprogram the fuses to switch the operating frequency? Might just be easier to get some 3.3v pro minis that are already set up to run at that freq.

                    Standard 1.5v alkaline batteries are 1.5v which when 2 are used only brings the voltage to 3v, not the 3.3 needed for the nano. Can the nano run at lower than 3.3v? I know the nRF24 radios can run down to I think 1.9v.

                    @NeverDie That looks like a nice project, but it mentions that it runs with a RFM69CW radio. My setup uses nRF24L01 radios. It does say that an nRF24 version is coming soon, but not there yet apparently.

                    @heizelmann The first project you linked to uses a different PIR motion sensor than the ones that I have. You mention that the PIRs that I have are equipped with a regulator that I did not know about. I am assuming that you are talking about the diode circled on the right in your pic. I am guessing that that is a zener diode doing the regulation. Also, what type of capacitor is that?

                    Vera Plus running UI7 with MySensors, Sonoffs and 1-Wire devices
                    Visit my website for more Bits, Bytes and Ramblings from me: http://dan.bemowski.info/

                    H 1 Reply Last reply
                    0
                    • scalzS Offline
                      scalzS Offline
                      scalz
                      Hardware Contributor
                      wrote on last edited by scalz
                      #10

                      @dbemowsk
                      yes nrf24 version of my board is not released yet. Release-able..soon ;)

                      I'm not really expert with this PIR module, I have some though, but it uses a bit too much power for goals i had.
                      You could for instance run your 328P mcu with Internal RC 8Mhz through a 3V vcc.

                      That said, about :

                      • why 3.3v use less power than 5v. regarding frequency etc..
                      • why Nano is 5V 16Mhz whereas mini pro is 3V 8Mhz
                      • the interruptions mechanism
                      • some tips etc...

                      You'll find lots of infos here https://www.gammon.com.au/forum/?id=11497 .
                      with the well known curve 328P Speed vs Voltage.
                      0_1481115728938_Atmega_Speed_Vs_Voltage_11497.png

                      I hope this helps ;)

                      1 Reply Last reply
                      1
                      • dbemowskD dbemowsk

                        @sundberg84 and @tbowmo, What you are saying makes sense. If I remove the regulators though, how do I get to a stable 3.3v for the nano and the radio. Do I need to get some of the battery boosters? I heard those are prone to a lot of noise that can interfere with the radio. If I need them, what are the best capacitors to filter the noise?

                        Are you saying that I can remove the regulator from a 5V pro mini to run it at 3.3v? How do I reprogram the fuses to switch the operating frequency? Might just be easier to get some 3.3v pro minis that are already set up to run at that freq.

                        Standard 1.5v alkaline batteries are 1.5v which when 2 are used only brings the voltage to 3v, not the 3.3 needed for the nano. Can the nano run at lower than 3.3v? I know the nRF24 radios can run down to I think 1.9v.

                        @NeverDie That looks like a nice project, but it mentions that it runs with a RFM69CW radio. My setup uses nRF24L01 radios. It does say that an nRF24 version is coming soon, but not there yet apparently.

                        @heizelmann The first project you linked to uses a different PIR motion sensor than the ones that I have. You mention that the PIRs that I have are equipped with a regulator that I did not know about. I am assuming that you are talking about the diode circled on the right in your pic. I am guessing that that is a zener diode doing the regulation. Also, what type of capacitor is that?

                        H Offline
                        H Offline
                        Heizelmann
                        wrote on last edited by
                        #11

                        @dbemowsk The picture shows the modified PIR. The right circle shows the place where the diode was. It is also removed and the contacts are bridged by soldering. The regulator was on position marked with the left circle. it is removed and the two upper contacts are bridged. The adde blue capacitor is contected from this point ( now 3.3V) input to the lower pad which is Ground. It is a 100nF ceramic capacitor.

                        H 1 Reply Last reply
                        1
                        • H Heizelmann

                          @dbemowsk The picture shows the modified PIR. The right circle shows the place where the diode was. It is also removed and the contacts are bridged by soldering. The regulator was on position marked with the left circle. it is removed and the two upper contacts are bridged. The adde blue capacitor is contected from this point ( now 3.3V) input to the lower pad which is Ground. It is a 100nF ceramic capacitor.

                          H Offline
                          H Offline
                          Heizelmann
                          wrote on last edited by
                          #12

                          @dbemosk
                          Look for a datasheet for the PIR e.g.here.
                          In the diagram you can find the regulator IC1 on the topright as well as the diode D1 below of it.

                          NeverDieN 1 Reply Last reply
                          1
                          • H Heizelmann

                            @dbemosk
                            Look for a datasheet for the PIR e.g.here.
                            In the diagram you can find the regulator IC1 on the topright as well as the diode D1 below of it.

                            NeverDieN Offline
                            NeverDieN Offline
                            NeverDie
                            Hero Member
                            wrote on last edited by
                            #13

                            @Heizelmann
                            How much current does it draw after your suggested modifications are made?

                            H 1 Reply Last reply
                            0
                            • NeverDieN NeverDie

                              @Heizelmann
                              How much current does it draw after your suggested modifications are made?

                              H Offline
                              H Offline
                              Heizelmann
                              wrote on last edited by Heizelmann
                              #14

                              @NeverDie My Multimeter is not very good, but I tried to measure the total current. I got 3 values: 0.03mA when sleeping, 0.16mA when PIR triggered and about 18mA when RF is sending. Last is very short an cannot measured with my digital multimeter directly. I measured this value on startup the node when the registration process is longer and I guess it is a similar value when sending.

                              NeverDieN 1 Reply Last reply
                              1
                              • H Heizelmann

                                @NeverDie My Multimeter is not very good, but I tried to measure the total current. I got 3 values: 0.03mA when sleeping, 0.16mA when PIR triggered and about 18mA when RF is sending. Last is very short an cannot measured with my digital multimeter directly. I measured this value on startup the node when the registration process is longer and I guess it is a similar value when sending.

                                NeverDieN Offline
                                NeverDieN Offline
                                NeverDie
                                Hero Member
                                wrote on last edited by NeverDie
                                #15

                                Here's some additional background that explains some of the "why" behind Heizelmann's approach: http://techgurka.blogspot.com/2013/05/cheap-pyroelectric-infrared-pir-motion.html

                                In practice, how beneficial is the 100nf capacitor? Have you noticed whether it makes any difference, or is it there just for good measure?

                                H 1 Reply Last reply
                                0
                                • NeverDieN NeverDie

                                  Here's some additional background that explains some of the "why" behind Heizelmann's approach: http://techgurka.blogspot.com/2013/05/cheap-pyroelectric-infrared-pir-motion.html

                                  In practice, how beneficial is the 100nf capacitor? Have you noticed whether it makes any difference, or is it there just for good measure?

                                  H Offline
                                  H Offline
                                  Heizelmann
                                  wrote on last edited by
                                  #16

                                  @Never Thanks for this additional link.
                                  The solution described there is very common, I saw it on some places. The advantage is that no modification of the board is necessary but the disadvantage is that the regulator is still in place and might draw some current back from the 3.3V supply. I prefer to remove unused parts.

                                  I had no problems without the 100nf capacitor. It was only a preventive measure.

                                  1 Reply Last reply
                                  0
                                  • tbowmoT Offline
                                    tbowmoT Offline
                                    tbowmo
                                    Admin
                                    wrote on last edited by
                                    #17

                                    @dbemowsk

                                    with propper fuses set, the atmega328p can run down to 1.8V, so you do not need 3v3 to run either radio, or the atmega on your arduino board. The PIR might be another story, I haven't looked at the datasheets for that one..

                                    As an example of boards without regulators, you could take a look at the sensebender micro, which is designed to run without regulators at all. I have had 4 sensors running of 2xAA batteries for more than 18 months, they report 66% battery left now..

                                    1 Reply Last reply
                                    0
                                    • NeverDieN Offline
                                      NeverDieN Offline
                                      NeverDie
                                      Hero Member
                                      wrote on last edited by NeverDie
                                      #18

                                      If it could be done cheaply enough, maybe this would be a good use-case for energy harvesting. If the energy harvesting were expensive, though, then it would be cheaper to just use a more energy efficient PIR. So far I've been quite surprised at just how expensive the best energy harvesting chips seem to be.

                                      1 Reply Last reply
                                      0
                                      • dbemowskD Offline
                                        dbemowskD Offline
                                        dbemowsk
                                        wrote on last edited by
                                        #19

                                        Thanks everyone for the great input. It helps a lot in understanding all of this.

                                        @Heizelmann , Is is really necessary to remove the diode when removing the regulator? Seems like it would give some protection from reverse voltage/current. Does removing it save that much power? I see now that the spot for the regulator is right under the blue cap in your pic.

                                        @tbowmo , I see you mentioned reprogramming the arduino's fuses to switch the operating frequency. Does this require flashing a new reconfigured bootloader or something? I just ordered some 3.3v pro mini boards and some 2 x AA battery holders, so I will try some of this when those arrive.

                                        Vera Plus running UI7 with MySensors, Sonoffs and 1-Wire devices
                                        Visit my website for more Bits, Bytes and Ramblings from me: http://dan.bemowski.info/

                                        1 Reply Last reply
                                        0
                                        • tbowmoT Offline
                                          tbowmoT Offline
                                          tbowmo
                                          Admin
                                          wrote on last edited by
                                          #20

                                          @dbemowsk

                                          Reprogramming, of fuses is probably needed for low voltage operation, if they have set BOD fuses for 2.5V, then the atmega will not operate under that voltage. Also clock selection is set by programming the fuses. This can be done with another arduino acting as an ISP device.

                                          A diode has a voltage drop across it, so if a diode has 0.5V, and the atmega / radio can work at 1.8V, then the battery voltage needs to be above 2.3V (1.8V operating voltage + diode drop voltage). This means that you can not utilize the full battery life, if you have the diode in the circuit for reverse polarization protection. That is probably why the diode have been removed from the PIR sensor.

                                          dbemowskD 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          10

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.0k

                                          Posts


                                          Copyright 2019 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • MySensors
                                          • OpenHardware.io
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular