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. Mailbox/Postbox Alert

Mailbox/Postbox Alert

Scheduled Pinned Locked Moved My Project
31 Posts 8 Posters 17.7k Views 7 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.
  • n3roN Offline
    n3roN Offline
    n3ro
    wrote on last edited by n3ro
    #1

    Just finished my new project.

    I have added two magnetic switches to the front and the back of my postbox. Now i get a Mail if the postman was here :)

    You need:
    1x Arduino Mini Pro 3,3
    1x Battery Holder (2xaaa)
    1x NRF
    2x Reed switches (http://www.reichelt.de/KSK-1A663-2025/3/index.html?&ACTION=3&LA=446&ARTICLE=151700&artnr=KSK+1A663+2025&SEARCH=magnet+schlie�er)
    2x magnets (http://www.reichelt.de/MAGNET-M4/3/index.html?&ACTION=3&LA=446&ARTICLE=12483&artnr=MAGNET+M4&SEARCH=magnet)

    And this or a similar sketch: https://github.com/n3roGit/MySensors_n3ro/tree/master/Mailbox_Alert

    It works great =)

    pimatic + MySensors + Homeduino + z-way
    https://github.com/n3roGit/MySensors_n3ro

    RJ_MakeR DidiD Moshe LivneM 3 Replies Last reply
    1
    • n3roN n3ro

      Just finished my new project.

      I have added two magnetic switches to the front and the back of my postbox. Now i get a Mail if the postman was here :)

      You need:
      1x Arduino Mini Pro 3,3
      1x Battery Holder (2xaaa)
      1x NRF
      2x Reed switches (http://www.reichelt.de/KSK-1A663-2025/3/index.html?&ACTION=3&LA=446&ARTICLE=151700&artnr=KSK+1A663+2025&SEARCH=magnet+schlie�er)
      2x magnets (http://www.reichelt.de/MAGNET-M4/3/index.html?&ACTION=3&LA=446&ARTICLE=12483&artnr=MAGNET+M4&SEARCH=magnet)

      And this or a similar sketch: https://github.com/n3roGit/MySensors_n3ro/tree/master/Mailbox_Alert

      It works great =)

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

      @n3ro No pictures, it didn't happen.. :eyes:

      RJ_Make

      1 Reply Last reply
      0
      • n3roN Offline
        n3roN Offline
        n3ro
        wrote on last edited by
        #3

        Okay :D But at the moment its fixed only freestyle ;)

        DSC_0326.JPG DSC_0325.JPG

        pimatic + MySensors + Homeduino + z-way
        https://github.com/n3roGit/MySensors_n3ro

        1 Reply Last reply
        0
        • n3roN n3ro

          Just finished my new project.

          I have added two magnetic switches to the front and the back of my postbox. Now i get a Mail if the postman was here :)

          You need:
          1x Arduino Mini Pro 3,3
          1x Battery Holder (2xaaa)
          1x NRF
          2x Reed switches (http://www.reichelt.de/KSK-1A663-2025/3/index.html?&ACTION=3&LA=446&ARTICLE=151700&artnr=KSK+1A663+2025&SEARCH=magnet+schlie�er)
          2x magnets (http://www.reichelt.de/MAGNET-M4/3/index.html?&ACTION=3&LA=446&ARTICLE=12483&artnr=MAGNET+M4&SEARCH=magnet)

          And this or a similar sketch: https://github.com/n3roGit/MySensors_n3ro/tree/master/Mailbox_Alert

          It works great =)

          DidiD Offline
          DidiD Offline
          Didi
          wrote on last edited by
          #4

          @n3ro said:

          2x Reedschalter (http://www.reichelt.de/KSK-1A663-2025/3/index.html?&ACTION=3&LA=446&ARTICLE=151700&artnr=KSK+1A663+2025&SEARCH=magnet+schlie�er)

          Hast du gut gemacht mit dem Reedschalter.:stuck_out_tongue_closed_eyes:

          I mean nice denglish :grin:

          if (knowledge == 0) { use BRAIN; use GOOGLE;use SEARCH; } else {make POST;}

          n3roN 1 Reply Last reply
          0
          • DidiD Didi

            @n3ro said:

            2x Reedschalter (http://www.reichelt.de/KSK-1A663-2025/3/index.html?&ACTION=3&LA=446&ARTICLE=151700&artnr=KSK+1A663+2025&SEARCH=magnet+schlie�er)

            Hast du gut gemacht mit dem Reedschalter.:stuck_out_tongue_closed_eyes:

            I mean nice denglish :grin:

            n3roN Offline
            n3roN Offline
            n3ro
            wrote on last edited by
            #5

            @Didi und wie heißt das verdammte teil auf englisch? :D

            pimatic + MySensors + Homeduino + z-way
            https://github.com/n3roGit/MySensors_n3ro

            DidiD 1 Reply Last reply
            0
            • n3roN n3ro

              @Didi und wie heißt das verdammte teil auf englisch? :D

              DidiD Offline
              DidiD Offline
              Didi
              wrote on last edited by
              #6

              @n3ro said:

              @Didi und wie heißt das verdammte teil auf englisch? :D

              Reed switch :heart:

              if (knowledge == 0) { use BRAIN; use GOOGLE;use SEARCH; } else {make POST;}

              n3roN 1 Reply Last reply
              1
              • DidiD Didi

                @n3ro said:

                @Didi und wie heißt das verdammte teil auf englisch? :D

                Reed switch :heart:

                n3roN Offline
                n3roN Offline
                n3ro
                wrote on last edited by n3ro
                #7

                @Didi fixed ;)

                pimatic + MySensors + Homeduino + z-way
                https://github.com/n3roGit/MySensors_n3ro

                DidiD 1 Reply Last reply
                0
                • n3roN n3ro

                  @Didi fixed ;)

                  DidiD Offline
                  DidiD Offline
                  Didi
                  wrote on last edited by
                  #8

                  @n3ro said:

                  @Didi fixed ;)

                  :thumbsup:

                  if (knowledge == 0) { use BRAIN; use GOOGLE;use SEARCH; } else {make POST;}

                  1 Reply Last reply
                  0
                  • n3roN n3ro

                    Just finished my new project.

                    I have added two magnetic switches to the front and the back of my postbox. Now i get a Mail if the postman was here :)

                    You need:
                    1x Arduino Mini Pro 3,3
                    1x Battery Holder (2xaaa)
                    1x NRF
                    2x Reed switches (http://www.reichelt.de/KSK-1A663-2025/3/index.html?&ACTION=3&LA=446&ARTICLE=151700&artnr=KSK+1A663+2025&SEARCH=magnet+schlie�er)
                    2x magnets (http://www.reichelt.de/MAGNET-M4/3/index.html?&ACTION=3&LA=446&ARTICLE=12483&artnr=MAGNET+M4&SEARCH=magnet)

                    And this or a similar sketch: https://github.com/n3roGit/MySensors_n3ro/tree/master/Mailbox_Alert

                    It works great =)

                    Moshe LivneM Offline
                    Moshe LivneM Offline
                    Moshe Livne
                    Hero Member
                    wrote on last edited by
                    #9

                    @n3ro I wish mine had a flap... still trying to figure out a way to do that

                    1 Reply Last reply
                    0
                    • n3roN Offline
                      n3roN Offline
                      n3ro
                      wrote on last edited by
                      #10

                      hmm after some days testing it works very fine, but:

                      the battery drains very fast and in dont know why. The Arduino sleeps the whole time and wakes up when the postman is coming (maybe 2 times a week).

                      The battery drains 11% in 7 Days :(

                      Any Ideas?

                      The power LED and regulator is cutted and the fuses are modified.

                      Regards
                      n3ro

                      pimatic + MySensors + Homeduino + z-way
                      https://github.com/n3roGit/MySensors_n3ro

                      RJ_MakeR 1 Reply Last reply
                      0
                      • n3roN n3ro

                        hmm after some days testing it works very fine, but:

                        the battery drains very fast and in dont know why. The Arduino sleeps the whole time and wakes up when the postman is coming (maybe 2 times a week).

                        The battery drains 11% in 7 Days :(

                        Any Ideas?

                        The power LED and regulator is cutted and the fuses are modified.

                        Regards
                        n3ro

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

                        @n3ro Are you using an interrupt to wake everything up?

                        RJ_Make

                        1 Reply Last reply
                        0
                        • BulldogLowellB Offline
                          BulldogLowellB Offline
                          BulldogLowell
                          Contest Winner
                          wrote on last edited by BulldogLowell
                          #12

                          @n3ro

                          I'm guessing that your repeat() function is wearing out the battery.

                          By the way you can take advantage of the return of sleep( ) here:

                          gw.sleep(MAILBOX_FRONT_PIN - 2, CHANGE, MAILBOX_BACK_PIN - 2, CHANGE, 0);
                          

                          like this (untested):

                          #include <MySensor.h>
                          #include <SPI.h>
                          #include <readVcc.h>
                          
                          
                          #define NODE_ID 21                      // ID of node
                          #define CHILD_ID 1                      // Id of the sensor child
                          
                          #define MAILBOX_FRONT_PIN 2             // Arduino Digital I/O pin for button/reed switch
                          #define MAILBOX_BACK_PIN 3              // Arduino Digital I/O pin for button/reed switch
                          
                          #define MIN_V 1900 // empty voltage (0%)
                          #define MAX_V 3200 // full voltage (100%)
                          
                          
                          MySensor gw;
                          
                          MyMessage msg(CHILD_ID, V_TRIPPED);
                          
                          boolean post = false;
                          boolean lastpost = false;
                          int oldBatteryPcnt;
                          int repeat = 20;
                          
                          int trigger = -1;
                          unsigned long goToSleepTime;
                          
                          void setup()
                          {
                            gw.begin(NULL, NODE_ID, false);
                            pinMode(MAILBOX_FRONT_PIN, INPUT);
                            pinMode(MAILBOX_BACK_PIN, INPUT);
                            digitalWrite(MAILBOX_FRONT_PIN, HIGH);
                            digitalWrite(MAILBOX_BACK_PIN, HIGH);
                            gw.sendSketchInfo("Mailbox Alert", "1.0");
                            gw.present(CHILD_ID, S_MOTION);
                            Serial.println("---------- set Mailbox empty");
                            msg.set(0);
                          }
                          
                          void loop()
                          {
                            if (millis() - goToSleepTime > 10UL) //debounce
                            {
                              switch (trigger) {
                                case 0:
                                  post = true;
                                  Serial.println("---------- New Mail");
                                  break;
                                case 1:
                                  post = false;
                                  Serial.println("---------- Mailbox emptied"); 
                                  break;
                                default:
                                  Serial.println("---------- I just woke up");
                              }
                            }
                            trigger = -1;
                            if (post != lastpost)
                            {
                              Serial.print("---------- Send Mailboxstate ");
                              Serial.println(post ? "full" : "empty");
                              msg.set(post);
                              lastpost = post;
                              sendBattery();
                            }
                            // Sleep until something happens with the sensor
                            goToSleepTime = millis();
                            trigger = gw.sleep(MAILBOX_FRONT_PIN - 2, CHANGE, MAILBOX_BACK_PIN - 2, CHANGE, 0);
                          }
                          
                          void sendBattery() // Measure battery
                          {
                            int batteryPcnt = min(map(readVcc(), MIN_V, MAX_V, 0, 100), 100);
                            if (batteryPcnt != oldBatteryPcnt) 
                            {
                              gw.sendBatteryLevel(batteryPcnt); // Send battery percentage
                              oldBatteryPcnt = batteryPcnt;
                            }
                            Serial.print("---------- Battery: ");
                            Serial.println(batteryPcnt);
                          }
                          
                          n3roN 1 Reply Last reply
                          0
                          • n3roN Offline
                            n3roN Offline
                            n3ro
                            wrote on last edited by n3ro
                            #13

                            Thx for the tips. I will try it.

                            I have just measured the current:

                            32uA in sleep and both opened
                            when one reen switch is closed: 171uA
                            when both closed: 309uA

                            i use a internal pullup and dont know why the current is so high when switch is closed :(

                            pimatic + MySensors + Homeduino + z-way
                            https://github.com/n3roGit/MySensors_n3ro

                            1 Reply Last reply
                            0
                            • n3roN Offline
                              n3roN Offline
                              n3ro
                              wrote on last edited by
                              #14

                              it is fixed :) changed internal pullup to an external with 680k. now its 32uA with both opened and 47uA with both closed :)

                              pimatic + MySensors + Homeduino + z-way
                              https://github.com/n3roGit/MySensors_n3ro

                              Moshe LivneM 1 Reply Last reply
                              2
                              • n3roN n3ro

                                it is fixed :) changed internal pullup to an external with 680k. now its 32uA with both opened and 47uA with both closed :)

                                Moshe LivneM Offline
                                Moshe LivneM Offline
                                Moshe Livne
                                Hero Member
                                wrote on last edited by
                                #15

                                @n3ro how do you do that?

                                n3roN 1 Reply Last reply
                                0
                                • F Offline
                                  F Offline
                                  f1dev
                                  wrote on last edited by
                                  #16

                                  Hi!
                                  I+m trying to do a similar mailbox sensor, but I get different power consumptions hen I ground (pulling down) input pin 2 and 3.

                                  I´m using a pro mini, 3.3v standard boot loader with removed LED and 470k resistors as external pull-ups.

                                  In sleep mode with it draws about 65uA
                                  Roughly the same with input pin 3 -grounded (state 0)
                                  But when I ground pin 2 it draws 7mA

                                  Any ideas whats wrong?

                                  1 Reply Last reply
                                  0
                                  • Moshe LivneM Moshe Livne

                                    @n3ro how do you do that?

                                    n3roN Offline
                                    n3roN Offline
                                    n3ro
                                    wrote on last edited by
                                    #17

                                    @Moshe-Livne just deactivate the this lines:
                                    //digitalWrite(MAILBOX_FRONT_PIN, HIGH);
                                    //digitalWrite(MAILBOX_BACK_PIN, HIGH);

                                    and solder two resistor from 3.3v to pin 2 and 3.

                                    pimatic + MySensors + Homeduino + z-way
                                    https://github.com/n3roGit/MySensors_n3ro

                                    F 1 Reply Last reply
                                    0
                                    • n3roN n3ro

                                      @Moshe-Livne just deactivate the this lines:
                                      //digitalWrite(MAILBOX_FRONT_PIN, HIGH);
                                      //digitalWrite(MAILBOX_BACK_PIN, HIGH);

                                      and solder two resistor from 3.3v to pin 2 and 3.

                                      F Offline
                                      F Offline
                                      f1dev
                                      wrote on last edited by
                                      #18

                                      Ok, so I found that it is the radio that draws about 7mA when I ground input pin 2, it is connected to IRQ-pin on the radio.
                                      @n3ro Have you connected the radio as described on the build-page? [http://www.mysensors.org/build/connect_radio](link url)

                                      n3roN 1 Reply Last reply
                                      0
                                      • F f1dev

                                        Ok, so I found that it is the radio that draws about 7mA when I ground input pin 2, it is connected to IRQ-pin on the radio.
                                        @n3ro Have you connected the radio as described on the build-page? [http://www.mysensors.org/build/connect_radio](link url)

                                        n3roN Offline
                                        n3roN Offline
                                        n3ro
                                        wrote on last edited by
                                        #19

                                        @f1dev yes. But you don't need irq on a node :)

                                        pimatic + MySensors + Homeduino + z-way
                                        https://github.com/n3roGit/MySensors_n3ro

                                        1 Reply Last reply
                                        0
                                        • BulldogLowellB BulldogLowell

                                          @n3ro

                                          I'm guessing that your repeat() function is wearing out the battery.

                                          By the way you can take advantage of the return of sleep( ) here:

                                          gw.sleep(MAILBOX_FRONT_PIN - 2, CHANGE, MAILBOX_BACK_PIN - 2, CHANGE, 0);
                                          

                                          like this (untested):

                                          #include <MySensor.h>
                                          #include <SPI.h>
                                          #include <readVcc.h>
                                          
                                          
                                          #define NODE_ID 21                      // ID of node
                                          #define CHILD_ID 1                      // Id of the sensor child
                                          
                                          #define MAILBOX_FRONT_PIN 2             // Arduino Digital I/O pin for button/reed switch
                                          #define MAILBOX_BACK_PIN 3              // Arduino Digital I/O pin for button/reed switch
                                          
                                          #define MIN_V 1900 // empty voltage (0%)
                                          #define MAX_V 3200 // full voltage (100%)
                                          
                                          
                                          MySensor gw;
                                          
                                          MyMessage msg(CHILD_ID, V_TRIPPED);
                                          
                                          boolean post = false;
                                          boolean lastpost = false;
                                          int oldBatteryPcnt;
                                          int repeat = 20;
                                          
                                          int trigger = -1;
                                          unsigned long goToSleepTime;
                                          
                                          void setup()
                                          {
                                            gw.begin(NULL, NODE_ID, false);
                                            pinMode(MAILBOX_FRONT_PIN, INPUT);
                                            pinMode(MAILBOX_BACK_PIN, INPUT);
                                            digitalWrite(MAILBOX_FRONT_PIN, HIGH);
                                            digitalWrite(MAILBOX_BACK_PIN, HIGH);
                                            gw.sendSketchInfo("Mailbox Alert", "1.0");
                                            gw.present(CHILD_ID, S_MOTION);
                                            Serial.println("---------- set Mailbox empty");
                                            msg.set(0);
                                          }
                                          
                                          void loop()
                                          {
                                            if (millis() - goToSleepTime > 10UL) //debounce
                                            {
                                              switch (trigger) {
                                                case 0:
                                                  post = true;
                                                  Serial.println("---------- New Mail");
                                                  break;
                                                case 1:
                                                  post = false;
                                                  Serial.println("---------- Mailbox emptied"); 
                                                  break;
                                                default:
                                                  Serial.println("---------- I just woke up");
                                              }
                                            }
                                            trigger = -1;
                                            if (post != lastpost)
                                            {
                                              Serial.print("---------- Send Mailboxstate ");
                                              Serial.println(post ? "full" : "empty");
                                              msg.set(post);
                                              lastpost = post;
                                              sendBattery();
                                            }
                                            // Sleep until something happens with the sensor
                                            goToSleepTime = millis();
                                            trigger = gw.sleep(MAILBOX_FRONT_PIN - 2, CHANGE, MAILBOX_BACK_PIN - 2, CHANGE, 0);
                                          }
                                          
                                          void sendBattery() // Measure battery
                                          {
                                            int batteryPcnt = min(map(readVcc(), MIN_V, MAX_V, 0, 100), 100);
                                            if (batteryPcnt != oldBatteryPcnt) 
                                            {
                                              gw.sendBatteryLevel(batteryPcnt); // Send battery percentage
                                              oldBatteryPcnt = batteryPcnt;
                                            }
                                            Serial.print("---------- Battery: ");
                                            Serial.println(batteryPcnt);
                                          }
                                          
                                          n3roN Offline
                                          n3roN Offline
                                          n3ro
                                          wrote on last edited by
                                          #20

                                          @BulldogLowell could you please explain your changes? I don't understand everything of this :sweat:

                                          pimatic + MySensors + Homeduino + z-way
                                          https://github.com/n3roGit/MySensors_n3ro

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


                                          11

                                          Online

                                          11.7k

                                          Users

                                          11.2k

                                          Topics

                                          113.1k

                                          Posts


                                          Copyright 2025 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