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. Door, Motion and Temperature Sensor

Door, Motion and Temperature Sensor

Scheduled Pinned Locked Moved My Project
63 Posts 11 Posters 42.4k Views 4 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.
  • CaptainZapC Offline
    CaptainZapC Offline
    CaptainZap
    wrote on last edited by CaptainZap
    #11

    @robosensor Thank you very much for your insight... do I just download the new library and overwrite the one in the Arduino IDE install folder ?

    I've also used your code and I'm getting errors compiling it, any hints ? I guess it could be because of the library ?

    Arduino: 1.6.4 (Windows 8.1), Board: "Arduino Mini, ATmega328"

    Door_Motion_Temp_rev2.ino: In function 'void getTemps()':
    Door_Motion_Temp_rev2:115: error: 'class MySensor' has no member named 'wait'
    Multiple libraries were found for "DallasTemperature.h"

    Used: C:\Users***\Documents\Arduino\libraries\DallasTemperature << this is where I've copied the downloaded library

    Not used: C:\Users***\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master

    'class MySensor' has no member named 'wait'

    This report would have more information with
    "Show verbose output during compilation"
    enabled in File > Preferences.

    'class MySensor' has no member named 'wait'

    R 1 Reply Last reply
    0
    • CaptainZapC CaptainZap

      @robosensor Thank you very much for your insight... do I just download the new library and overwrite the one in the Arduino IDE install folder ?

      I've also used your code and I'm getting errors compiling it, any hints ? I guess it could be because of the library ?

      Arduino: 1.6.4 (Windows 8.1), Board: "Arduino Mini, ATmega328"

      Door_Motion_Temp_rev2.ino: In function 'void getTemps()':
      Door_Motion_Temp_rev2:115: error: 'class MySensor' has no member named 'wait'
      Multiple libraries were found for "DallasTemperature.h"

      Used: C:\Users***\Documents\Arduino\libraries\DallasTemperature << this is where I've copied the downloaded library

      Not used: C:\Users***\Documents\Arduino\libraries\Arduino-Temperature-Control-Library-master

      'class MySensor' has no member named 'wait'

      This report would have more information with
      "Show verbose output during compilation"
      enabled in File > Preferences.

      'class MySensor' has no member named 'wait'

      R Offline
      R Offline
      robosensor
      wrote on last edited by
      #12

      @CaptainZap yes, but update two libraries (OneWire and Dallas).

      gw.wait() function was added 1 feb 2015: https://github.com/mysensors/Arduino/commit/d45a48d8b786656968fb4b45b049e16700dd3fd0 so you should use latest stable 1.4.* code.

      CaptainZapC 1 Reply Last reply
      0
      • R robosensor

        @CaptainZap yes, but update two libraries (OneWire and Dallas).

        gw.wait() function was added 1 feb 2015: https://github.com/mysensors/Arduino/commit/d45a48d8b786656968fb4b45b049e16700dd3fd0 so you should use latest stable 1.4.* code.

        CaptainZapC Offline
        CaptainZapC Offline
        CaptainZap
        wrote on last edited by
        #13

        @robosensor I don't know where to find the complete library for version 1.4.x

        R 1 Reply Last reply
        0
        • CaptainZapC CaptainZap

          @robosensor I don't know where to find the complete library for version 1.4.x

          R Offline
          R Offline
          robosensor
          wrote on last edited by
          #14

          @CaptainZap

          http://www.mysensors.org/download/ click on Download button under "1.4 - Latest Release" section, download zip archive, extract archive and check Arduino-master\libraries\MySensors\Version.h file.

          CaptainZapC 1 Reply Last reply
          0
          • R robosensor

            @CaptainZap

            http://www.mysensors.org/download/ click on Download button under "1.4 - Latest Release" section, download zip archive, extract archive and check Arduino-master\libraries\MySensors\Version.h file.

            CaptainZapC Offline
            CaptainZapC Offline
            CaptainZap
            wrote on last edited by CaptainZap
            #15

            @robosensor Thanks, I installed that but it's version 1.5 b1 and after using it it's giving me lots of errors :| I think there have been changes in how the code is used...

            LE: I finally found the 1.4.1 branch and downloaded it however it's still giving me the same error about wait:

            Door_Motion_Temp_rev2.ino: In function 'void getTemps()':
            Door_Motion_Temp_rev2:115: error: 'class MySensor' has no member named 'wait'
            'class MySensor' has no member named 'wait'

            LLE: Just checked the cpp and there is no wait, this is the library I used :
            https://github.com/mysensors/Arduino/tree/1.4.1

            Can you tell me if there will be any issue if I comment that part ?

            R 1 Reply Last reply
            0
            • CaptainZapC CaptainZap

              @robosensor Thanks, I installed that but it's version 1.5 b1 and after using it it's giving me lots of errors :| I think there have been changes in how the code is used...

              LE: I finally found the 1.4.1 branch and downloaded it however it's still giving me the same error about wait:

              Door_Motion_Temp_rev2.ino: In function 'void getTemps()':
              Door_Motion_Temp_rev2:115: error: 'class MySensor' has no member named 'wait'
              'class MySensor' has no member named 'wait'

              LLE: Just checked the cpp and there is no wait, this is the library I used :
              https://github.com/mysensors/Arduino/tree/1.4.1

              Can you tell me if there will be any issue if I comment that part ?

              R Offline
              R Offline
              robosensor
              wrote on last edited by
              #16

              @CaptainZap https://github.com/mysensors/Arduino/archive/master.zip

              wait.png
              wait2.png

              1 Reply Last reply
              1
              • hekH Offline
                hekH Offline
                hek
                Admin
                wrote on last edited by
                #17

                @robosensor

                LOL :)

                R 1 Reply Last reply
                0
                • CaptainZapC Offline
                  CaptainZapC Offline
                  CaptainZap
                  wrote on last edited by CaptainZap
                  #18

                  That was the version I was using when I first encountered the issues... anyways I'll remove arduino IDE with everything and reinstall it. Thanks.

                  @hek I also LOL-ed :D Gotta love the helping spirit in the community you guys built.

                  R 1 Reply Last reply
                  0
                  • CaptainZapC CaptainZap

                    That was the version I was using when I first encountered the issues... anyways I'll remove arduino IDE with everything and reinstall it. Thanks.

                    @hek I also LOL-ed :D Gotta love the helping spirit in the community you guys built.

                    R Offline
                    R Offline
                    robosensor
                    wrote on last edited by
                    #19

                    @CaptainZap also try to backup and clean C:\Users***\Documents\Arduino\ directory :)

                    1 Reply Last reply
                    0
                    • hekH hek

                      @robosensor

                      LOL :)

                      R Offline
                      R Offline
                      robosensor
                      wrote on last edited by
                      #20

                      @hek as I said before, Dallas library is bit outdated. Is it possible to update dallas and onewire libraries? I provided links for newer versions of this libraries in this thread. I can do PR in github myself, but I don't know how to do it :) I need to read github manuals first :)

                      requestTemperatures() is can be non-blocking in newer version of dallas library, so code can deep sleep (better for batteries) or process messages (better for repeaters and msg-receiving nodes) about 750 ms.

                      hekH 1 Reply Last reply
                      0
                      • R robosensor

                        @hek as I said before, Dallas library is bit outdated. Is it possible to update dallas and onewire libraries? I provided links for newer versions of this libraries in this thread. I can do PR in github myself, but I don't know how to do it :) I need to read github manuals first :)

                        requestTemperatures() is can be non-blocking in newer version of dallas library, so code can deep sleep (better for batteries) or process messages (better for repeaters and msg-receiving nodes) about 750 ms.

                        hekH Offline
                        hekH Offline
                        hek
                        Admin
                        wrote on last edited by
                        #21

                        @robosensor

                        Using github is quite easy (when you get a hang of it). We can use this as a "training session" if you want?

                        I did a quick getting-started guide here:
                        http://forum.mysensors.org/topic/330/how-to-contribute-code-to-the-mysensors-project

                        Basically you need to

                        • Fork the mysensors project on github
                        • Clone your fork from your computer.
                        • Replace the libraries that is outdated.
                        • Commit as push the changes back to your fork of github.
                        • Create a pull-request (see above instructions) which I'll review and merge.

                        Easy peasy.. :)

                        R 1 Reply Last reply
                        0
                        • hekH hek

                          @robosensor

                          Using github is quite easy (when you get a hang of it). We can use this as a "training session" if you want?

                          I did a quick getting-started guide here:
                          http://forum.mysensors.org/topic/330/how-to-contribute-code-to-the-mysensors-project

                          Basically you need to

                          • Fork the mysensors project on github
                          • Clone your fork from your computer.
                          • Replace the libraries that is outdated.
                          • Commit as push the changes back to your fork of github.
                          • Create a pull-request (see above instructions) which I'll review and merge.

                          Easy peasy.. :)

                          R Offline
                          R Offline
                          robosensor
                          wrote on last edited by
                          #22

                          @hek thank you, I'll read and try on dallas&onewire :)

                          hekH 1 Reply Last reply
                          0
                          • R robosensor

                            @hek thank you, I'll read and try on dallas&onewire :)

                            hekH Offline
                            hekH Offline
                            hek
                            Admin
                            wrote on last edited by
                            #23

                            @robosensor

                            Great, just ask (or open a chat) if you run into trouble.

                            R 1 Reply Last reply
                            0
                            • hekH hek

                              @robosensor

                              Great, just ask (or open a chat) if you run into trouble.

                              R Offline
                              R Offline
                              robosensor
                              wrote on last edited by
                              #24

                              @hek I have forked MySensors project, added 3 commits into master branch with updated libraries and updated dallas sensors example (lower power usage).

                              I'm using similar code in my own version of MySensors 1.5-dev in my home, but I havn't tested this committed 1.4.1 github code on real hardware, so I will make PR after test on real hardware.

                              https://github.com/mysensors/Arduino/compare/master...roboprint:master?diff=split&name=master

                              1 Reply Last reply
                              0
                              • hekH Offline
                                hekH Offline
                                hek
                                Admin
                                wrote on last edited by
                                #25

                                Sounds good!

                                R 1 Reply Last reply
                                0
                                • hekH hek

                                  Sounds good!

                                  R Offline
                                  R Offline
                                  robosensor
                                  wrote on last edited by robosensor
                                  #26

                                  @hek It seems that I did it. If this push request is correct, what I should patch? Development branch, master branch or both?

                                  1 Reply Last reply
                                  0
                                  • hekH Offline
                                    hekH Offline
                                    hek
                                    Admin
                                    wrote on last edited by
                                    #27

                                    Good!
                                    You can create pull request on master (and I'll merge it to development later).

                                    1 Reply Last reply
                                    0
                                    • hekH Offline
                                      hekH Offline
                                      hek
                                      Admin
                                      wrote on last edited by
                                      #28

                                      @robosensor

                                      Thanks and congrats! You've made your first contribution to the MySensors project. :)

                                      1 Reply Last reply
                                      1
                                      • CaptainZapC Offline
                                        CaptainZapC Offline
                                        CaptainZap
                                        wrote on last edited by CaptainZap
                                        #29

                                        Guys, I had some free time tonight and tried to apply this fix... I ended up re-installing the arduino IDE + downloading the latest version, which now is 1.4.1 as opposed to the 1.4 that I used to have ?

                                        Anyways I had to upgrade my ethernet gateway (ENC28J60) and it's no longer working now... any hints will be golden.
                                        LE: I was too tired to check the sketch... I forgot to include the correct library and went to all debugging first, reset router config to default, but in the end I did notice the issue :) So I learned a valuable lesson, never work on this if it's late or you're tired.

                                        1 Reply Last reply
                                        0
                                        • CaptainZapC Offline
                                          CaptainZapC Offline
                                          CaptainZap
                                          wrote on last edited by CaptainZap
                                          #30

                                          Hello guys,

                                          I really need an expert's opinion on this because I'm experiencing some trouble... I've tried to include suggestions from all you guys, except the delay part, but so far it works partially... in my original code the temperature worked, and now it doesn't. The rest works ok, sensor and motion, so I would be grateful if anyone could take a look at my code and help me with it... I kind of need to get it in place soon, as I intend to leave my house for some time.

                                          Thank you.

                                          //This sketch is for Door & Motion & Temp Sensor
                                          
                                          
                                          #include <MySensor.h>
                                          #include <SPI.h>
                                          #include <DallasTemperature.h>
                                          #include <OneWire.h>
                                          #include <Bounce2.h>
                                          
                                          #define CLIENT_ID AUTO  // Sets MYSensors client id
                                          #define RADIO_CH 76  // Sets MYSensors to use Radio Channel
                                          #define TRIGGER	3	// used to connect motion sensor
                                          #define BUTTON_PIN  4 // used to connect door/window sensor
                                          
                                          //Temp Sensor bits
                                          #define ONE_WIRE_BUS 14 // Pin where dallas sensor is connected
                                          OneWire oneWire(ONE_WIRE_BUS);
                                          DallasTemperature DallasSensors(&oneWire);
                                          float lastTemperature ;
                                          #define CHILD_ID_T1 3 //CHILD ID for temp
                                          
                                          
                                          //Door/Window bits
                                          
                                          #define CHILD_ID_D1 1 //CHILD ID for door/window
                                          
                                          //Trigger Sensor Bits
                                          #define CHILD_ID_S1 2 //CHILD ID for Motion sensor
                                          boolean lastTripped = 0;
                                          
                                          MySensor gw;
                                          
                                          Bounce debouncer = Bounce(); 
                                          int oldValue=-1;
                                          
                                          // Change to V_LIGHT if you use S_LIGHT in presentation below
                                          MyMessage msg(CHILD_ID_D1,V_TRIPPED);
                                          MyMessage triggerMsg(CHILD_ID_S1,V_TRIPPED);
                                          MyMessage tempMsg(CHILD_ID_T1,V_TEMP);
                                          
                                          void setup()
                                          {
                                          	// Startup OneWire Temp Sensors
                                              DallasSensors.begin();
                                              DallasSensors.setWaitForConversion(false);
                                          
                                          	// Initialize library and add callback for incoming messages
                                          	 gw.begin(NULL, AUTO, true);
                                          	
                                          	// Send the sketch version information to the gateway and Controller
                                          	gw.sendSketchInfo("Multi Sensor", "1.1");
                                          
                                          	// Register all sensors to gw (they will be created as child devices)
                                          	gw.present(CHILD_ID_D1, S_DOOR);
                                          	gw.present(CHILD_ID_T1, S_TEMP);
                                          	gw.present(CHILD_ID_S1, S_MOTION);
                                          
                                          	// Setup the button
                                                  pinMode(BUTTON_PIN,INPUT);
                                                  // Activate internal pull-up
                                                  digitalWrite(BUTTON_PIN,HIGH);
                                            
                                                  // After setting up the button, setup debouncer
                                                  debouncer.attach(BUTTON_PIN);
                                                  debouncer.interval(5);
                                            
                                                  // Register binary input sensor to gw (they will be created as child devices)
                                                  // You can use S_DOOR, S_MOTION or S_LIGHT here depending on your usage. 
                                                  // If S_LIGHT is used, remember to update variable type you send in. See "msg" above.
                                          	
                                          }
                                          
                                          
                                          void loop()
                                          {
                                          	// Alway process incoming messages whenever possible
                                          	gw.process();
                                          	
                                          	
                                          	// Check for motion change value
                                          		boolean tripped = digitalRead(TRIGGER) == HIGH; 
                                          
                                          		if (lastTripped != tripped ) {
                                          			gw.send(triggerMsg.set(tripped?"1":"0")); // Send new state and request ack back
                                          			Serial.println("Tripped");
                                          			lastTripped=tripped;
                                          		}
                                          		
                                          	//  Check if digital input has changed and send in new value
                                                          debouncer.update();
                                                        // Get the update value
                                                          int value = debouncer.read();
                                           
                                                          if (value != oldValue) {
                                                              // Send in the new value
                                                               gw.send(msg.set(value==HIGH ? 1 : 0));
                                                               oldValue = value;
                                                          }
                                                          
                                              DallasSensors.requestTemperatures(); // no delay here
                                              gw.wait(750); // insert another value for non-12-bit resolution
                                              float tempC = DallasSensors.getTempCByIndex(1);
                                              
                                              // Only send data if temperature has changed and no error
                                              if (lastTemperature != tempC && tempC != -127.00) {
                                                
                                                // Send in the new temperature
                                                gw.send(tempMsg.set(tempC,1));
                                                lastTemperature=tempC;
                                                             }    		
                                          
                                          }
                                          
                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          19

                                          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