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. Announcements
  3. 💬 Door, Window and Push-button Sensor

💬 Door, Window and Push-button Sensor

Scheduled Pinned Locked Moved Announcements
110 Posts 36 Posters 22.5k Views 32 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.
  • hekH Offline
    hekH Offline
    hek
    Admin
    wrote on last edited by hek
    #1

    This thread contains comments for the article "Door, Window and Push-button Sensor" posted on MySensors.org.

    1 Reply Last reply
    0
    • TmasterT Offline
      TmasterT Offline
      Tmaster
      wrote on last edited by Tmaster
      #2

      Hello. I used that example for open gate and doorbell and i think the 1 / 0 values are reversed.
      I mean . Switch button it's connected between , by example PIN 2 ... and ground ,so PIN 2 its always ** 1** (),when i press the switch button it goes to 0. That cause my Vera have trigger values reversed... it's always triggered if i not change advance option trigger. should i change : send(msg2.set(value==HIGHT ? 1 : 0)); TO send(msg2.set(value==LOW ? 1 : 0)); ????

      i'm a arduino fan .Even sometimes don't undestanding how to use it :P

      mfalkviddM 1 Reply Last reply
      0
      • TmasterT Tmaster

        Hello. I used that example for open gate and doorbell and i think the 1 / 0 values are reversed.
        I mean . Switch button it's connected between , by example PIN 2 ... and ground ,so PIN 2 its always ** 1** (),when i press the switch button it goes to 0. That cause my Vera have trigger values reversed... it's always triggered if i not change advance option trigger. should i change : send(msg2.set(value==HIGHT ? 1 : 0)); TO send(msg2.set(value==LOW ? 1 : 0)); ????

        mfalkviddM Offline
        mfalkviddM Offline
        mfalkvidd
        Mod
        wrote on last edited by
        #3

        @Tmaster yes that will work.

        You can also apply the techinque used in https://www.mysensors.org/build/relay where RELAY_ON/OFF are set by defines.

        1 Reply Last reply
        0
        • breimannB Offline
          breimannB Offline
          breimann
          wrote on last edited by
          #4

          Is it possible to add multiple reed sensors to the one node? If so, can you just copy the basic code provided and paste it below that in the same sketch and change the arduino pins appropriately??

          mfalkviddM 1 Reply Last reply
          0
          • breimannB breimann

            Is it possible to add multiple reed sensors to the one node? If so, can you just copy the basic code provided and paste it below that in the same sketch and change the arduino pins appropriately??

            mfalkviddM Offline
            mfalkviddM Offline
            mfalkvidd
            Mod
            wrote on last edited by
            #5

            @breimann yes

            1 Reply Last reply
            0
            • TmasterT Offline
              TmasterT Offline
              Tmaster
              wrote on last edited by Tmaster
              #6

              My sketch have 2 binary switches. Working very good.

              i'm a arduino fan .Even sometimes don't undestanding how to use it :P

              1 Reply Last reply
              0
              • siodS Offline
                siodS Offline
                siod
                wrote on last edited by
                #7

                what is "debouncer" for? I removed it from my sketch and it still works...

                still learning...

                mfalkviddM 1 Reply Last reply
                0
                • siodS siod

                  what is "debouncer" for? I removed it from my sketch and it still works...

                  mfalkviddM Offline
                  mfalkviddM Offline
                  mfalkvidd
                  Mod
                  wrote on last edited by mfalkvidd
                  #8

                  @siod when a switch is pressed it can bounce, which can look like several presses to the mcu. More information is available at http://www.allaboutcircuits.com/textbook/digital/chpt-4/contact-bounce/

                  1 Reply Last reply
                  0
                  • L Offline
                    L Offline
                    LastSamurai
                    Hardware Contributor
                    wrote on last edited by LastSamurai
                    #9

                    I did just build a similar sensor based on my small sensor node. I think the example code here isn't really perfect though (although its very basic, perhaps that was the only goal).

                    As I wanted to use this with batteries I used an interrupt and sleep(). The deboucing library isn't really need, a short gw.wait(50); did it for me too.
                    Here is my code (not yet updated to mysensors 2). Any comments? Perhaps we could update the example code too.

                    1 Reply Last reply
                    0
                    • janvier123J Offline
                      janvier123J Offline
                      janvier123
                      wrote on last edited by
                      #10

                      Dont forget to add a 10K resistor between GND and your PIN (in this example pin3)

                      L 1 Reply Last reply
                      0
                      • janvier123J janvier123

                        Dont forget to add a 10K resistor between GND and your PIN (in this example pin3)

                        L Offline
                        L Offline
                        LastSamurai
                        Hardware Contributor
                        wrote on last edited by
                        #11

                        @janvier123 Do you really need that? Shouldn't the internal pullups be enough?

                        pinMode(BUTTON_PIN,INPUT);
                        // Activate internal pull-up
                        digitalWrite(BUTTON_PIN,HIGH);
                        
                        1 Reply Last reply
                        0
                        • janvier123J Offline
                          janvier123J Offline
                          janvier123
                          wrote on last edited by
                          #12

                          for some reason the value was always "1" untill i "pushed the button" => then i got "0"
                          however ive added an 10K resistors between the pin and gnd, and now it works fine :)

                          maybe because its not an official UNO board?

                          1 Reply Last reply
                          0
                          • Meshx86M Offline
                            Meshx86M Offline
                            Meshx86
                            wrote on last edited by
                            #13

                            i don't why, but debouncer.read(); always return 1, i was never able to send the status of the door, however, digitalRead(BUTTON_PIN) returns the actual value.

                            since i am using this for reed switch, i believe i don't need the debouncing functionality do i ?

                            Nca78N 1 Reply Last reply
                            0
                            • Meshx86M Meshx86

                              i don't why, but debouncer.read(); always return 1, i was never able to send the status of the door, however, digitalRead(BUTTON_PIN) returns the actual value.

                              since i am using this for reed switch, i believe i don't need the debouncing functionality do i ?

                              Nca78N Offline
                              Nca78N Offline
                              Nca78
                              Hardware Contributor
                              wrote on last edited by
                              #14

                              @Meshx86 said:

                              i don't why, but debouncer.read(); always return 1, i was never able to send the status of the door, however, digitalRead(BUTTON_PIN) returns the actual value.

                              since i am using this for reed switch, i believe i don't need the debouncing functionality do i ?

                              Hello,

                              yes you can get rid of the debouncing stuff for your reed switch (or any physical switch) if you are sleeping and waking up on interrupt, just add a little wait before you read the value to let the switch settle.
                              If you are running at 1MHz then the time to wake up from sleep is longer (45ms if I remember well) and you don't even need the sleep.

                              1 Reply Last reply
                              0
                              • T Offline
                                T Offline
                                thomas schneider
                                wrote on last edited by
                                #15

                                What is the way to put the sketch on a sensebender with battery powered ?

                                1 Reply Last reply
                                0
                                • T Offline
                                  T Offline
                                  thomas schneider
                                  wrote on last edited by
                                  #16

                                  Is the BinarySwitchSleepSensor a good answer ?

                                  1 Reply Last reply
                                  0
                                  • JicJ Offline
                                    JicJ Offline
                                    Jic
                                    wrote on last edited by
                                    #17

                                    @Meshx86

                                    I have the same problem, when I use the bounce library to read my reed switch I always read "1". If I use digitalRead I get an bounce error.
                                    I have an arduino compatible, configure it for 1Mhz, 1M resistor for the reed switch and 2 AA battery.
                                    Someone has a similar one working?

                                    Meshx86M 1 Reply Last reply
                                    0
                                    • JicJ Jic

                                      @Meshx86

                                      I have the same problem, when I use the bounce library to read my reed switch I always read "1". If I use digitalRead I get an bounce error.
                                      I have an arduino compatible, configure it for 1Mhz, 1M resistor for the reed switch and 2 AA battery.
                                      Someone has a similar one working?

                                      Meshx86M Offline
                                      Meshx86M Offline
                                      Meshx86
                                      wrote on last edited by
                                      #18

                                      @Jic i was wondering what's the purpose of the 1 M resistor on the reed switch ?
                                      i used 2 x AA battery, digitalRead, 8 MHz stock clock and no resistor, i know this might not be the most optimized power consumption setup

                                      1 Reply Last reply
                                      0
                                      • meanmrgreenM Offline
                                        meanmrgreenM Offline
                                        meanmrgreen
                                        wrote on last edited by
                                        #19

                                        Nuub here..
                                        Thinking about building this in my mailbox..
                                        AND if possible set a green light diode to start light when box is opened and stop when its opened again.

                                        That way i would see when i come home if someone has opened the mailbox or not.. Sure push notifications work aswell but it would be a nice touch for the wifey

                                        Nca78N 1 Reply Last reply
                                        2
                                        • meanmrgreenM meanmrgreen

                                          Nuub here..
                                          Thinking about building this in my mailbox..
                                          AND if possible set a green light diode to start light when box is opened and stop when its opened again.

                                          That way i would see when i come home if someone has opened the mailbox or not.. Sure push notifications work aswell but it would be a nice touch for the wifey

                                          Nca78N Offline
                                          Nca78N Offline
                                          Nca78
                                          Hardware Contributor
                                          wrote on last edited by
                                          #20

                                          @meanmrgreen if you use a led it will draw a few mA when on and battery life will be poor.
                                          At best you could wake up every few seconds and flash it briefly (like 100ms or less). In that case use a low value current limiting resistor to have an intense flash, and probably a red LED is better.
                                          To stop the blinking why not use a button (or touch button, check TTP223 in AliExpress) inside the mailbox ?

                                          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