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. My Project
  3. My 2AA battery sensor

My 2AA battery sensor

Scheduled Pinned Locked Moved My Project
90 Posts 27 Posters 106.7k Views 36 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.
  • m26872M Offline
    m26872M Offline
    m26872
    Hardware Contributor
    wrote on last edited by
    #17

    Thanks.

    I thought someone would ask why I expect a 3000mAh battery to supply 1mA for 6 months ?

    RJ_MakeR Z 2 Replies Last reply
    0
    • m26872M m26872

      Thanks.

      I thought someone would ask why I expect a 3000mAh battery to supply 1mA for 6 months ?

      RJ_MakeR Offline
      RJ_MakeR Offline
      RJ_Make
      Hero Member
      wrote on last edited by RJ_Make
      #18

      @m26872 said:

      Thanks.

      I thought someone would ask why I expect a 3000mAh battery to supply 1mA for 6 months ?

      Nice Work!! Oh and with the mods you have in place, I don't think you should have much problem getting to 6 months.. :-)

      RJ_Make

      1 Reply Last reply
      0
      • m26872M m26872

        Thanks.

        I thought someone would ask why I expect a 3000mAh battery to supply 1mA for 6 months ?

        Z Offline
        Z Offline
        Zeph
        Hero Member
        wrote on last edited by
        #19

        @m26872 said:

        I thought someone would ask why I expect a 3000mAh battery to supply 1mA for 6 months ?

        Ok, I'll be the straight man here: why do you expect a 3000mAh battery to supply 1mA for around 4400 hours?

        m26872M 1 Reply Last reply
        0
        • Z Zeph

          @m26872 said:

          I thought someone would ask why I expect a 3000mAh battery to supply 1mA for 6 months ?

          Ok, I'll be the straight man here: why do you expect a 3000mAh battery to supply 1mA for around 4400 hours?

          m26872M Offline
          m26872M Offline
          m26872
          Hardware Contributor
          wrote on last edited by
          #20

          @Zeph Thank you.
          Because it's 90% mAac (from dc source) and I think the china step-up isn't really that crappy after all. Energizing-deenergizing a a coil with no load will look like this without any real power produced. Of course there are loss power and wear on battery etc, but not compareable to 1mAdc. Deeper investigation to this should be the subject of a new thread.

          1 Reply Last reply
          0
          • RJ_MakeR Offline
            RJ_MakeR Offline
            RJ_Make
            Hero Member
            wrote on last edited by
            #21

            I'm getting about 3-4 months from my less active sensors, and the only hardware mod I'm using is the Arduino LED removal. So I can image removing the regulator and step LED would save a fair amount of energy.

            I really need to get around to removing those....

            RJ_Make

            1 Reply Last reply
            0
            • EasyIoTE Offline
              EasyIoTE Offline
              EasyIoT
              wrote on last edited by EasyIoT
              #22

              This are my results, with low power arduino powerd on 2 AA alkaline batteries.

              Door/window sensor (front door - opens frequently). On ocrober 4 battery status 64%, december 18 62% (still at 62%). 100% spike is when I reprogram my sensor. In 75 days battery drops for 2 % -> 100% in more than 10 years.
              Code is available on GitHub.

              EasyIoT server battery status
              18-12-2014 22-14-47.png

              Temperature and humidity sensor with DHT22 and step up regulator. Arduino and NFR24L is powered directly on 2 AA batteries, DHT22 is powered on step up regulator but only when measure is taken. Battery drops for 14% in 75 days. Actually this design is not so good. I'm testing new design without step up regulator and better temperature/humidity sensor. 2AA alkaline batteries could last 10 years.
              18-12-2014 22-25-57.png

              This is my water leak sensor. I'm using 2 wasted AA batteries for testing, and voltage actually rise. Current consumption is about 6uA (self discharge is about 10 times bigger) practically all the time.
              upload-2b52408a-f0bd-43b0-a997-047e6dfa1995

              --
              EasyIoT framework http://iot-playground.com

              m26872M 1 Reply Last reply
              0
              • EasyIoTE EasyIoT

                This are my results, with low power arduino powerd on 2 AA alkaline batteries.

                Door/window sensor (front door - opens frequently). On ocrober 4 battery status 64%, december 18 62% (still at 62%). 100% spike is when I reprogram my sensor. In 75 days battery drops for 2 % -> 100% in more than 10 years.
                Code is available on GitHub.

                EasyIoT server battery status
                18-12-2014 22-14-47.png

                Temperature and humidity sensor with DHT22 and step up regulator. Arduino and NFR24L is powered directly on 2 AA batteries, DHT22 is powered on step up regulator but only when measure is taken. Battery drops for 14% in 75 days. Actually this design is not so good. I'm testing new design without step up regulator and better temperature/humidity sensor. 2AA alkaline batteries could last 10 years.
                18-12-2014 22-25-57.png

                This is my water leak sensor. I'm using 2 wasted AA batteries for testing, and voltage actually rise. Current consumption is about 6uA (self discharge is about 10 times bigger) practically all the time.
                upload-2b52408a-f0bd-43b0-a997-047e6dfa1995

                m26872M Offline
                m26872M Offline
                m26872
                Hardware Contributor
                wrote on last edited by
                #23

                @dopustko Looks nice. Can you please share a more detailed description of your hardware?
                Edit: I searched and saw that you're running at 1MHz and soon with HTU21T. Very elegant!

                EasyIoTE 1 Reply Last reply
                0
                • m26872M m26872

                  @dopustko Looks nice. Can you please share a more detailed description of your hardware?
                  Edit: I searched and saw that you're running at 1MHz and soon with HTU21T. Very elegant!

                  EasyIoTE Offline
                  EasyIoTE Offline
                  EasyIoT
                  wrote on last edited by EasyIoT
                  #24

                  @m26872 here is my complete description for MySensors door/window sensor. For other sensors I will add descriptions in the future...

                  --
                  EasyIoT framework http://iot-playground.com

                  m26872M funky81F 2 Replies Last reply
                  1
                  • EasyIoTE EasyIoT

                    @m26872 here is my complete description for MySensors door/window sensor. For other sensors I will add descriptions in the future...

                    m26872M Offline
                    m26872M Offline
                    m26872
                    Hardware Contributor
                    wrote on last edited by m26872
                    #25

                    @dopustko Great! I love your low-power guide. Wow! That should be mandatory for all sensors that work below 3.3V like e.g. a door switch. And you're able to use the internal battery monitoring method and all.
                    Also, when I looked at your diagram I realized that I probably did a mistake with my door switch connection to arduino and have a substantial current draw through the switch. If true it means that the step-up is innocent.

                    EasyIoTE 1 Reply Last reply
                    0
                    • m26872M m26872

                      @dopustko Great! I love your low-power guide. Wow! That should be mandatory for all sensors that work below 3.3V like e.g. a door switch. And you're able to use the internal battery monitoring method and all.
                      Also, when I looked at your diagram I realized that I probably did a mistake with my door switch connection to arduino and have a substantial current draw through the switch. If true it means that the step-up is innocent.

                      EasyIoTE Offline
                      EasyIoTE Offline
                      EasyIoT
                      wrote on last edited by
                      #26

                      @m26872 In fact most of sensors can work on 2 AA batteries without step up regulator if sensor is selected carefully. That also minimize number of components and battery consumption.
                      I'm using 1M pull up resistor instead of internal resistor (50-60K) - this lower power consumption. 1M is quite big but wires are short, so it's working ok.

                      --
                      EasyIoT framework http://iot-playground.com

                      1 Reply Last reply
                      0
                      • EasyIoTE EasyIoT

                        @m26872 here is my complete description for MySensors door/window sensor. For other sensors I will add descriptions in the future...

                        funky81F Offline
                        funky81F Offline
                        funky81
                        wrote on last edited by
                        #27

                        Hi @dopustko , i've checked your cool website. can I ask few question regarding your setup?
                        I saw this page, in order to get low power consumption, you did burn fuse and disable brown-out? Possible to use it without usbtinyisp?

                        EasyIoTE 1 Reply Last reply
                        0
                        • funky81F funky81

                          Hi @dopustko , i've checked your cool website. can I ask few question regarding your setup?
                          I saw this page, in order to get low power consumption, you did burn fuse and disable brown-out? Possible to use it without usbtinyisp?

                          EasyIoTE Offline
                          EasyIoTE Offline
                          EasyIoT
                          wrote on last edited by EasyIoT
                          #28

                          @funky81 Thx. You can burn fuses with other Arduino - that's how I do it. Just google ArduinoISP.

                          --
                          EasyIoT framework http://iot-playground.com

                          1 Reply Last reply
                          1
                          • P Offline
                            P Offline
                            Patrick Mcgillan
                            wrote on last edited by
                            #29

                            Good info here. Thought comes to mind about using a small solar cell off a defectivet walkway light to add a little charge back in to the system, when there is any kind of light around.

                            1 Reply Last reply
                            0
                            • m26872M Offline
                              m26872M Offline
                              m26872
                              Hardware Contributor
                              wrote on last edited by
                              #30

                              Just an update on my battery levels. My VeraLite Datamine-plugin won't longer plot for me. I suspect I'm out of VeraLite memory to handle all the data. This is it. (Look above for last graphs.)
                              Node 16: BatteryLevel 51
                              Node 101: Dead 03 Feb
                              Node 110; BatteryLevel 57
                              Node 105: BatteryLevel 80
                              Node 106: BatteryLevel 53
                              As I hoped, the decrease rate for 105 and 106 is now less than 5% per month and 6-month target is already passed by half.
                              The revenge of the Chinese step-up ?!

                              1 Reply Last reply
                              0
                              • m26872M Offline
                                m26872M Offline
                                m26872
                                Hardware Contributor
                                wrote on last edited by
                                #31

                                Someone else noticed that one of the two batteries drained by the step-up always has negative(!) charge? Due to the AC-load? Could it be possible to extend battery life by adding some kind of capacitor?

                                1 Reply Last reply
                                0
                                • m26872M Offline
                                  m26872M Offline
                                  m26872
                                  Hardware Contributor
                                  wrote on last edited by
                                  #32

                                  Node 105 and 106 down just 1% since last post (22 days ago). Not bad. Relatively stable readings and low activity, but it doesn't matter since we're all expected the sleep mode consumption to be the worst.

                                  1 Reply Last reply
                                  0
                                  • ? Offline
                                    ? Offline
                                    A Former User
                                    wrote on last edited by
                                    #33

                                    @EasyIoT: Thank you for your nice descriptions of the low power sensors.
                                    I have some questions regarding the temperature sensor:
                                    Did you use a "Low power modified" Arduino for that as well?
                                    How are you able to power the sensor via the step-up only when needed? Do you power the step-up via an digital pin or something?

                                    @m26872: Also thanks for your design. I am thinking of building something similar. So you got now about 5% battery drop per month using the china stepup with desoldered LED?

                                    m26872M 1 Reply Last reply
                                    0
                                    • ? A Former User

                                      @EasyIoT: Thank you for your nice descriptions of the low power sensors.
                                      I have some questions regarding the temperature sensor:
                                      Did you use a "Low power modified" Arduino for that as well?
                                      How are you able to power the sensor via the step-up only when needed? Do you power the step-up via an digital pin or something?

                                      @m26872: Also thanks for your design. I am thinking of building something similar. So you got now about 5% battery drop per month using the china stepup with desoldered LED?

                                      m26872M Offline
                                      m26872M Offline
                                      m26872
                                      Hardware Contributor
                                      wrote on last edited by m26872
                                      #34

                                      @daenny said:

                                      So you got now about 5% battery drop per month using the china stepup with desoldered LED?

                                      Today I read Node 105: 78% and Node 106: 51%. That's only 2% in the last 38 days.

                                      nod105_20150331.PNG

                                      Edit: Perhaps using the "%" here is a little careless, but I think everyone knows that we're talking battery level.

                                      EasyIoTE funky81F 2 Replies Last reply
                                      0
                                      • m26872M m26872

                                        @daenny said:

                                        So you got now about 5% battery drop per month using the china stepup with desoldered LED?

                                        Today I read Node 105: 78% and Node 106: 51%. That's only 2% in the last 38 days.

                                        nod105_20150331.PNG

                                        Edit: Perhaps using the "%" here is a little careless, but I think everyone knows that we're talking battery level.

                                        EasyIoTE Offline
                                        EasyIoTE Offline
                                        EasyIoT
                                        wrote on last edited by
                                        #35

                                        @daenny yes, I'm using DO pin and MOSFET connected to step up regulator. But this is complicated solution. I'ts better to use different temperature sensor which can operate down to 1.8V. Right now I'm testing custom board with NRF24L and HTU21D (it's not cheap, but it can work down to 1,8V). Results are pretty good. Temperature and humidity sensor can operate more than 5 years on 2 AA batteries. For example door window sensor and water leak sensor can work more than 10 years on 2 AA batteries. It's seems that for those sensors AA batteries are overkill.

                                        --
                                        EasyIoT framework http://iot-playground.com

                                        1 Reply Last reply
                                        0
                                        • m26872M m26872

                                          @daenny said:

                                          So you got now about 5% battery drop per month using the china stepup with desoldered LED?

                                          Today I read Node 105: 78% and Node 106: 51%. That's only 2% in the last 38 days.

                                          nod105_20150331.PNG

                                          Edit: Perhaps using the "%" here is a little careless, but I think everyone knows that we're talking battery level.

                                          funky81F Offline
                                          funky81F Offline
                                          funky81
                                          wrote on last edited by funky81
                                          #36

                                          @m26872 I still dont get it. Why I cant get the same efficient power like you.
                                          I already follow all of your requirement in the first thread - difference only I use breadboard.
                                          The minimum consumption (sleep) that I've got still 2.4mA, compare to you, it still huge differences. I dont know what's wrong with my setup.

                                          My sketch wake up every 10s (consumption up to 3.5mA), while sleep the lowest is 2.4mA.

                                          #include <avr/sleep.h>    // Sleep Modes
                                          #include <MySensor.h>
                                          #include <SPI.h>
                                          
                                          MySensor gw;
                                          #define BATTERY_SENSE_PIN 
                                          #define SLEEP_IN_MS 86400000 // 1 day
                                          #define PROD false
                                          
                                          int oldBatLevel;
                                          
                                          void setup()
                                          {
                                            gw.begin(NULL,1);
                                            gw.sendSketchInfo("Basic-Sketch-MySensor", "1.0");
                                          
                                          
                                            pinMode(2,INPUT);
                                            digitalWrite (2, LOW);
                                          
                                            pinMode(3,INPUT);
                                            digitalWrite (3, LOW);
                                          
                                            pinMode(4,OUTPUT);
                                            digitalWrite (4, LOW);
                                          
                                            pinMode(5,INPUT);
                                            digitalWrite (5, LOW);
                                          
                                            pinMode(6,INPUT);
                                            digitalWrite (6, LOW);
                                          
                                            pinMode(7,INPUT);
                                            digitalWrite (7, LOW);
                                          
                                            pinMode(8,INPUT);
                                            digitalWrite (8, LOW);
                                            
                                            oldBatLevel = -1; 
                                          
                                            sendValue();
                                            Serial.println("Startup Finished");
                                            TurnOnLed();
                                          }
                                          
                                          void TurnOnLed(){
                                          
                                              digitalWrite(4,HIGH);
                                           gw.sleep(1000);
                                                  digitalWrite(4,LOW);
                                            
                                            gw.sleep(100);
                                          }
                                          
                                          void loop ()
                                          {  
                                            sendValue();
                                            gw.sleep(1000*10);
                                          }  // end of loop
                                          
                                          void sendValue()
                                          {
                                            gw.powerUp(); 
                                          
                                            int batLevel = getBatteryLevel();
                                            if (!PROD){
                                              gw.sendBatteryLevel(batLevel);  
                                              TurnOnLed();
                                            }
                                            else{
                                              if (oldBatLevel != batLevel)
                                              {
                                                gw.sendBatteryLevel(batLevel);   
                                                oldBatLevel = batLevel;
                                                TurnOnLed();
                                              }
                                            }
                                          
                                            gw.powerDown(); 
                                          }
                                          
                                          // Battery measure
                                          int getBatteryLevel ()
                                          {
                                            int results = (readVcc() - 2000)  / 10;  
                                          
                                            if (results > 100)
                                              results = 100;
                                            if (results < 0)
                                              results = 0;
                                            return results;
                                          } // end of getBandgap
                                          
                                          // when ADC completed, take an interrupt
                                          EMPTY_INTERRUPT (ADC_vect);
                                          
                                          long readVcc() {
                                            long result;
                                            // Read 1.1V reference against AVcc
                                            ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
                                            delay(2); // Wait for Vref to settle
                                            noInterrupts ();
                                            // start the conversion
                                            ADCSRA |= _BV (ADSC) | _BV (ADIE);
                                            set_sleep_mode (SLEEP_MODE_ADC);    // sleep during sample
                                            interrupts ();
                                            sleep_mode ();
                                            // reading should be done, but better make sure
                                            // maybe the timer interrupt fired
                                            while (bit_is_set(ADCSRA,ADSC));
                                            result = ADCL;
                                            result |= ADCH<<8;
                                            result = 1126400L / result; // Back-calculate AVcc in mV
                                          
                                            return result;
                                          }```
                                          m26872M 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          15

                                          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