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

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. [SOLVED] Sleep dont run

[SOLVED] Sleep dont run

Scheduled Pinned Locked Moved Troubleshooting
51 Posts 8 Posters 11.4k 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.
  • mar.conteM Offline
    mar.conteM Offline
    mar.conte
    wrote on last edited by Yveaux
    #1

    Hi to all,
    Why my atmega328 in breadboard with official bootloader atmega328 (8mhz internal) qnd rfm69 with pir dont go in sleep?
    I see in serial wich send every
    Tanks

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

    M.C.

    mfalkviddM T 2 Replies Last reply
    0
    • mar.conteM mar.conte

      Hi to all,
      Why my atmega328 in breadboard with official bootloader atmega328 (8mhz internal) qnd rfm69 with pir dont go in sleep?
      I see in serial wich send every
      Tanks

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

      Hi @mar.conte
      Could you post the serial output as well?

      mar.conteM 1 Reply Last reply
      0
      • tonnerre33T Offline
        tonnerre33T Offline
        tonnerre33
        Hardware Contributor
        wrote on last edited by tonnerre33
        #3

        @mar.conte said in Sleep dont run:
        Hi, you need to change the SLEEP_TIME value .
        For example :
        SLEEP_TIME = 10000 //Time in milliseconds

        mar.conteM 1 Reply Last reply
        1
        • tonnerre33T tonnerre33

          @mar.conte said in Sleep dont run:
          Hi, you need to change the SLEEP_TIME value .
          For example :
          SLEEP_TIME = 10000 //Time in milliseconds

          mar.conteM Offline
          mar.conteM Offline
          mar.conte
          wrote on last edited by
          #4

          @tonnerre33
          If i want sleep forever and wake only pir is high?

          M.C.

          1 Reply Last reply
          0
          • H Offline
            H Offline
            HarryDutch
            wrote on last edited by
            #5

            @mar-conte
            What happens if you change your sleep function like this:

            sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), HIGH,0);

            mar.conteM 1 Reply Last reply
            0
            • H HarryDutch

              @mar-conte
              What happens if you change your sleep function like this:

              sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR), HIGH,0);

              mar.conteM Offline
              mar.conteM Offline
              mar.conte
              wrote on last edited by
              #6

              @HarryDutch
              I have try...
              Nothing, the mcu dont sleep😭

              M.C.

              H AWIA 2 Replies Last reply
              0
              • mar.conteM mar.conte

                @HarryDutch
                I have try...
                Nothing, the mcu dont sleep😭

                H Offline
                H Offline
                HarryDutch
                wrote on last edited by
                #7

                @mar.conte A shot in the dark but have you tried to pull down pin 3 in order to prevent this pin is floating? Connect pin 3 to ground with a 10K resistor.

                1 Reply Last reply
                0
                • mar.conteM mar.conte

                  Hi to all,
                  Why my atmega328 in breadboard with official bootloader atmega328 (8mhz internal) qnd rfm69 with pir dont go in sleep?
                  I see in serial wich send every
                  Tanks

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

                  @mar.conte Hi ! Have the same problem with mysensor and NRF24l01. Tried to pull down both pins 4,5 (INT1/2) and even tried just to sleep(10000) without success. My circuit uses 17mA sending and 3,5mA when its supposed to sleep ???

                  tonnerre33T 1 Reply Last reply
                  0
                  • T torfinn

                    @mar.conte Hi ! Have the same problem with mysensor and NRF24l01. Tried to pull down both pins 4,5 (INT1/2) and even tried just to sleep(10000) without success. My circuit uses 17mA sending and 3,5mA when its supposed to sleep ???

                    tonnerre33T Offline
                    tonnerre33T Offline
                    tonnerre33
                    Hardware Contributor
                    wrote on last edited by
                    #9

                    @torfinn said in Sleep dont run and @mar-conte :

                    Did you mesure the current consumed by the PIR when you are in sleep mode ?

                    1 Reply Last reply
                    0
                    • mar.conteM mar.conte

                      @HarryDutch
                      I have try...
                      Nothing, the mcu dont sleep😭

                      AWIA Offline
                      AWIA Offline
                      AWI
                      Hero Member
                      wrote on last edited by
                      #10

                      @mar.conte I did some testing and I am experiencing a similar thing.
                      The node powers down (8 uA)with sleep( 5000 ); // sleep only
                      but with
                      sleep(INTERRUPT1, CHANGE, INTERRUPT2, CHANGE, 0 ); // sleep and wait for motion
                      or
                      sleep(INTERRUPT1, FALLING, INTERRUPT2, FALLING, 0 ); // sleep and wait for motion
                      it doesn't (2.5 mA)
                      I will do some additional testing ...:confused:

                      YveauxY 1 Reply Last reply
                      1
                      • gohanG Offline
                        gohanG Offline
                        gohan
                        Mod
                        wrote on last edited by
                        #11

                        What library version are you using?

                        1 Reply Last reply
                        0
                        • mfalkviddM mfalkvidd

                          Hi @mar.conte
                          Could you post the serial output as well?

                          mar.conteM Offline
                          mar.conteM Offline
                          mar.conte
                          wrote on last edited by
                          #12

                          @mfalkvidd

                          0 MCO:BGN:INIT NODE,CP=RRNNA--,VER=2.1.1
                          4 TSM:INIT
                          4 TSF:WUR:MS=0
                          8 TSM:INIT:TSP OK
                          10 TSM:FPAR
                          141 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                          2148 !TSM:FPAR:NO REPLY
                          2150 TSM:FPAR
                          2281 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                          4288 !TSM:FPAR:NO REPLY
                          4290 TSM:FPAR
                          4421 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                          6430 !TSM:FPAR:NO REPLY
                          6432 TSM:FPAR
                          6563 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                          8574 !TSM:FPAR:FAIL
                          8577 TSM:FAIL:CNT=1
                          8579 TSM:FAIL:PDT
                          

                          M.C.

                          mfalkviddM gohanG 2 Replies Last reply
                          0
                          • mar.conteM mar.conte

                            @mfalkvidd

                            0 MCO:BGN:INIT NODE,CP=RRNNA--,VER=2.1.1
                            4 TSM:INIT
                            4 TSF:WUR:MS=0
                            8 TSM:INIT:TSP OK
                            10 TSM:FPAR
                            141 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                            2148 !TSM:FPAR:NO REPLY
                            2150 TSM:FPAR
                            2281 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                            4288 !TSM:FPAR:NO REPLY
                            4290 TSM:FPAR
                            4421 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                            6430 !TSM:FPAR:NO REPLY
                            6432 TSM:FPAR
                            6563 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                            8574 !TSM:FPAR:FAIL
                            8577 TSM:FAIL:CNT=1
                            8579 TSM:FAIL:PDT
                            
                            mfalkviddM Offline
                            mfalkviddM Offline
                            mfalkvidd
                            Mod
                            wrote on last edited by
                            #13

                            @mar.conte the node is unable to connect to your gateway so it never enters loop() and therefore never reaches the sleep statement.

                            mar.conteM 2 Replies Last reply
                            0
                            • mfalkviddM mfalkvidd

                              @mar.conte the node is unable to connect to your gateway so it never enters loop() and therefore never reaches the sleep statement.

                              mar.conteM Offline
                              mar.conteM Offline
                              mar.conte
                              wrote on last edited by
                              #14

                              @mfalkvidd
                              infact i the gw not exist, i try with gw and test again tanks

                              M.C.

                              1 Reply Last reply
                              1
                              • mfalkviddM mfalkvidd

                                @mar.conte the node is unable to connect to your gateway so it never enters loop() and therefore never reaches the sleep statement.

                                mar.conteM Offline
                                mar.conteM Offline
                                mar.conte
                                wrote on last edited by
                                #15

                                @mfalkvidd
                                what example in mysensors library i try?

                                M.C.

                                1 Reply Last reply
                                0
                                • AWIA AWI

                                  @mar.conte I did some testing and I am experiencing a similar thing.
                                  The node powers down (8 uA)with sleep( 5000 ); // sleep only
                                  but with
                                  sleep(INTERRUPT1, CHANGE, INTERRUPT2, CHANGE, 0 ); // sleep and wait for motion
                                  or
                                  sleep(INTERRUPT1, FALLING, INTERRUPT2, FALLING, 0 ); // sleep and wait for motion
                                  it doesn't (2.5 mA)
                                  I will do some additional testing ...:confused:

                                  YveauxY Offline
                                  YveauxY Offline
                                  Yveaux
                                  Mod
                                  wrote on last edited by
                                  #16

                                  @AWI See @tekka post here

                                  "For indefinite sleeping, only level IRQ triggers are permitted (see AVR datasheet)."

                                  Could you give that a try?

                                  http://yveaux.blogspot.nl

                                  AWIA 1 Reply Last reply
                                  0
                                  • mar.conteM mar.conte

                                    @mfalkvidd

                                    0 MCO:BGN:INIT NODE,CP=RRNNA--,VER=2.1.1
                                    4 TSM:INIT
                                    4 TSF:WUR:MS=0
                                    8 TSM:INIT:TSP OK
                                    10 TSM:FPAR
                                    141 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                    2148 !TSM:FPAR:NO REPLY
                                    2150 TSM:FPAR
                                    2281 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                    4288 !TSM:FPAR:NO REPLY
                                    4290 TSM:FPAR
                                    4421 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                    6430 !TSM:FPAR:NO REPLY
                                    6432 TSM:FPAR
                                    6563 TSF:MSG:SEND,255-255-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                    8574 !TSM:FPAR:FAIL
                                    8577 TSM:FAIL:CNT=1
                                    8579 TSM:FAIL:PDT
                                    
                                    gohanG Offline
                                    gohanG Offline
                                    gohan
                                    Mod
                                    wrote on last edited by
                                    #17

                                    @mar.conte remember to set node ID

                                    mar.conteM 1 Reply Last reply
                                    0
                                    • gohanG gohan

                                      @mar.conte remember to set node ID

                                      mar.conteM Offline
                                      mar.conteM Offline
                                      mar.conte
                                      wrote on last edited by
                                      #18

                                      @gohan
                                      one example to set node id in motion sketch?

                                      M.C.

                                      1 Reply Last reply
                                      0
                                      • mar.conteM Offline
                                        mar.conteM Offline
                                        mar.conte
                                        wrote on last edited by mar.conte
                                        #19

                                        RESOLVED

                                        I HAVE JUST ONE GATEWAY CONFIGURED WITH RFM69 ON BOARD, THEN I HAVE CONNECTED TO NODE ID MCU WITH PIR AND EVERYTHING WORKS, WHEN THE PIR IS HIGH CURRENT CONSUMED is 2.25 MAH, WHEN IN SLEEP MODE ONLY 30 microamps.
                                        THANKS TO ALL THAT I HAVE HELPED

                                        NODE

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

                                        GATEWAY

                                        /**
                                        * The MySensors Arduino library handles the wireless radio link and protocol
                                        * between your home built sensors/actuators and HA controller of choice.
                                        * The sensors forms a self healing radio network with optional repeaters. Each
                                        * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                                        * network topology allowing messages to be routed to nodes.
                                        *
                                        * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                                        * Copyright (C) 2013-2015 Sensnology AB
                                        * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                                        *
                                        * Documentation: http://www.mysensors.org
                                        * Support Forum: http://forum.mysensors.org
                                        *
                                        * This program is free software; you can redistribute it and/or
                                        * modify it under the terms of the GNU General Public License
                                        * version 2 as published by the Free Software Foundation.
                                        *
                                        *******************************
                                        *
                                        * DESCRIPTION
                                        * The ArduinoGateway prints data received from sensors on the serial link.
                                        * The gateway accepts input on seral which will be sent out on radio network.
                                        *
                                        * The GW code is designed for Arduino Nano 328p / 16MHz
                                        *
                                        * Wire connections (OPTIONAL):
                                        * - Inclusion button should be connected between digital pin 3 and GND
                                        * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series
                                        *
                                        * LEDs (OPTIONAL):
                                        * - To use the feature, uncomment any of the MY_DEFAULT_xx_LED_PINs
                                        * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
                                        * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
                                        * - ERR (red) - fast blink on error during transmission error or recieve crc error
                                        *
                                        */
                                        
                                        // Enable debug prints to serial monitor
                                        #define MY_DEBUG
                                        
                                        
                                        // Enable and select radio type attached
                                        //#define MY_RADIO_NRF24
                                        #define MY_RADIO_RFM69
                                        
                                        // Set LOW transmit power level as default, if you have an amplified NRF-module and
                                        // power your radio separately with a good regulator you can turn up PA level.
                                        #define MY_RF24_PA_LEVEL RF24_PA_LOW
                                        
                                        // Enable serial gateway
                                        #define MY_GATEWAY_SERIAL
                                        
                                        // Define a lower baud rate for Arduino's running on 8 MHz (Arduino Pro Mini 3.3V & SenseBender)
                                        #if F_CPU == 8000000L
                                        #define MY_BAUD_RATE 38400
                                        #endif
                                        
                                        // Enable inclusion mode
                                        #define MY_INCLUSION_MODE_FEATURE
                                        // Enable Inclusion mode button on gateway
                                        //#define MY_INCLUSION_BUTTON_FEATURE
                                        
                                        // Inverses behavior of inclusion button (if using external pullup)
                                        //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP
                                        
                                        // Set inclusion mode duration (in seconds)
                                        #define MY_INCLUSION_MODE_DURATION 60
                                        // Digital pin used for inclusion mode button
                                        //#define MY_INCLUSION_MODE_BUTTON_PIN  3
                                        
                                        // Set blinking period
                                        #define MY_DEFAULT_LED_BLINK_PERIOD 300
                                        
                                        // Inverses the behavior of leds
                                        //#define MY_WITH_LEDS_BLINKING_INVERSE
                                        
                                        // Flash leds on rx/tx/err
                                        // Uncomment to override default HW configurations
                                        //#define MY_DEFAULT_ERR_LED_PIN 4  // Error led pin
                                        //#define MY_DEFAULT_RX_LED_PIN  6  // Receive led pin
                                        //#define MY_DEFAULT_TX_LED_PIN  5  // the PCB, on board LED
                                        
                                        #include <MySensors.h>
                                        
                                        void setup()
                                        {
                                        	// Setup locally attached sensors
                                        }
                                        
                                        void presentation()
                                        {
                                        	// Present locally attached sensors
                                        }
                                        
                                        void loop()
                                        {
                                        	// Send locally attached sensor data here
                                        }
                                        
                                        

                                        SERIAL OUTPUT NODE

                                        0 MCO:BGN:INIT NODE,CP=RRNNA--,VER=2.1.1
                                        4 TSM:INIT
                                        4 TSF:WUR:MS=0
                                        8 TSM:INIT:TSP OK
                                        10 TSM:INIT:STATID=1
                                        12 TSF:SID:OK,ID=1
                                        14 TSM:FPAR
                                        145 TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                        1044 TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
                                        1050 TSF:MSG:FPAR OK,ID=0,D=1
                                        2152 TSM:FPAR:OK
                                        2152 TSM:ID
                                        2154 TSM:ID:OK
                                        2156 TSM:UPL
                                        2164 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
                                        2199 TSF:MSG:READ,0-0-1,s=255,c=3,t=25,pt=1,l=1,sg=0:1
                                        2205 TSF:MSG:PONG RECV,HP=1
                                        2207 TSM:UPL:OK
                                        2209 TSM:READY:ID=1,PAR=0,DIS=1
                                        2263 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
                                        2287 TSF:MSG:READ,0-0-1,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
                                        2344 TSF:MSG:SEND,1-1-0-0,s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=OK:2.1.1
                                        2404 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
                                        4421 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=11,pt=0,l=13,sg=0,ft=0,st=OK:Motion Sensor
                                        4483 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
                                        4542 TSF:MSG:SEND,1-1-0-0,s=1,c=0,t=1,pt=0,l=0,sg=0,ft=0,st=OK:
                                        4548 MCO:REG:REQ
                                        4601 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
                                        4626 TSF:MSG:READ,0-0-1,s=255,c=3,t=27,pt=1,l=1,sg=0:1
                                        4630 MCO:PIM:NODE REG=1
                                        4634 MCO:BGN:STP
                                        4636 MCO:BGN:INIT OK,TSP=1
                                        1
                                        4689 TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:1
                                        4698 MCO:SLP:MS=0,SMS=0,I1=1,M1=1,I2=255,M2=255
                                        4702 MCO:SLP:TPD
                                        4704 MCO:SLP:WUP=1
                                        0
                                        4714 TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        4722 MCO:SLP:MS=0,SMS=0,I1=1,M1=1,I2=255,M2=255
                                        4726 MCO:SLP:TPD
                                        4728 MCO:SLP:WUP=1
                                        1
                                        4739 TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:1
                                        4747 MCO:SLP:MS=0,SMS=0,I1=1,M1=1,I2=255,M2=255
                                        4751 MCO:SLP:TPD
                                        4753 MCO:SLP:WUP=1
                                        0
                                        4763 TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                        4771 MCO:SLP:MS=0,SMS=0,I1=1,M1=1,I2=255,M2=255
                                        4775 MCO:SLP:TPD
                                        

                                        SERIAL OUTPUT GATEWAY

                                        0;255;3;0;9;MCO:BGN:INIT GW,CP=RRNGA--,VER=2.1.1
                                        0;255;3;0;9;TSM:INIT
                                        0;255;3;0;9;TSF:WUR:MS=0
                                        0;255;3;0;9;TSM:INIT:TSP OK
                                        0;255;3;0;9;TSM:INIT:GW MODE
                                        0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
                                        0;255;3;0;9;MCO:REG:NOT NEEDED
                                        0;255;3;0;14;Gateway startup complete.
                                        0;255;0;0;18;2.1.1
                                        0;255;3;0;9;MCO:BGN:STP
                                        0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
                                        0;255;3;0;9;TSF:MSG:READ,1-1-0,s=1,c=1,t=16,pt=0,l=1,sg=0:1
                                        1;1;1;0;16;1
                                        

                                        TANKS VERY VERY VERY TO ALL

                                        M.C.

                                        YveauxY 1 Reply Last reply
                                        0
                                        • mar.conteM mar.conte

                                          RESOLVED

                                          I HAVE JUST ONE GATEWAY CONFIGURED WITH RFM69 ON BOARD, THEN I HAVE CONNECTED TO NODE ID MCU WITH PIR AND EVERYTHING WORKS, WHEN THE PIR IS HIGH CURRENT CONSUMED is 2.25 MAH, WHEN IN SLEEP MODE ONLY 30 microamps.
                                          THANKS TO ALL THAT I HAVE HELPED

                                          NODE

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

                                          GATEWAY

                                          /**
                                          * The MySensors Arduino library handles the wireless radio link and protocol
                                          * between your home built sensors/actuators and HA controller of choice.
                                          * The sensors forms a self healing radio network with optional repeaters. Each
                                          * repeater and gateway builds a routing tables in EEPROM which keeps track of the
                                          * network topology allowing messages to be routed to nodes.
                                          *
                                          * Created by Henrik Ekblad <henrik.ekblad@mysensors.org>
                                          * Copyright (C) 2013-2015 Sensnology AB
                                          * Full contributor list: https://github.com/mysensors/Arduino/graphs/contributors
                                          *
                                          * Documentation: http://www.mysensors.org
                                          * Support Forum: http://forum.mysensors.org
                                          *
                                          * This program is free software; you can redistribute it and/or
                                          * modify it under the terms of the GNU General Public License
                                          * version 2 as published by the Free Software Foundation.
                                          *
                                          *******************************
                                          *
                                          * DESCRIPTION
                                          * The ArduinoGateway prints data received from sensors on the serial link.
                                          * The gateway accepts input on seral which will be sent out on radio network.
                                          *
                                          * The GW code is designed for Arduino Nano 328p / 16MHz
                                          *
                                          * Wire connections (OPTIONAL):
                                          * - Inclusion button should be connected between digital pin 3 and GND
                                          * - RX/TX/ERR leds need to be connected between +5V (anode) and digital pin 6/5/4 with resistor 270-330R in a series
                                          *
                                          * LEDs (OPTIONAL):
                                          * - To use the feature, uncomment any of the MY_DEFAULT_xx_LED_PINs
                                          * - RX (green) - blink fast on radio message recieved. In inclusion mode will blink fast only on presentation recieved
                                          * - TX (yellow) - blink fast on radio message transmitted. In inclusion mode will blink slowly
                                          * - ERR (red) - fast blink on error during transmission error or recieve crc error
                                          *
                                          */
                                          
                                          // Enable debug prints to serial monitor
                                          #define MY_DEBUG
                                          
                                          
                                          // Enable and select radio type attached
                                          //#define MY_RADIO_NRF24
                                          #define MY_RADIO_RFM69
                                          
                                          // Set LOW transmit power level as default, if you have an amplified NRF-module and
                                          // power your radio separately with a good regulator you can turn up PA level.
                                          #define MY_RF24_PA_LEVEL RF24_PA_LOW
                                          
                                          // Enable serial gateway
                                          #define MY_GATEWAY_SERIAL
                                          
                                          // Define a lower baud rate for Arduino's running on 8 MHz (Arduino Pro Mini 3.3V & SenseBender)
                                          #if F_CPU == 8000000L
                                          #define MY_BAUD_RATE 38400
                                          #endif
                                          
                                          // Enable inclusion mode
                                          #define MY_INCLUSION_MODE_FEATURE
                                          // Enable Inclusion mode button on gateway
                                          //#define MY_INCLUSION_BUTTON_FEATURE
                                          
                                          // Inverses behavior of inclusion button (if using external pullup)
                                          //#define MY_INCLUSION_BUTTON_EXTERNAL_PULLUP
                                          
                                          // Set inclusion mode duration (in seconds)
                                          #define MY_INCLUSION_MODE_DURATION 60
                                          // Digital pin used for inclusion mode button
                                          //#define MY_INCLUSION_MODE_BUTTON_PIN  3
                                          
                                          // Set blinking period
                                          #define MY_DEFAULT_LED_BLINK_PERIOD 300
                                          
                                          // Inverses the behavior of leds
                                          //#define MY_WITH_LEDS_BLINKING_INVERSE
                                          
                                          // Flash leds on rx/tx/err
                                          // Uncomment to override default HW configurations
                                          //#define MY_DEFAULT_ERR_LED_PIN 4  // Error led pin
                                          //#define MY_DEFAULT_RX_LED_PIN  6  // Receive led pin
                                          //#define MY_DEFAULT_TX_LED_PIN  5  // the PCB, on board LED
                                          
                                          #include <MySensors.h>
                                          
                                          void setup()
                                          {
                                          	// Setup locally attached sensors
                                          }
                                          
                                          void presentation()
                                          {
                                          	// Present locally attached sensors
                                          }
                                          
                                          void loop()
                                          {
                                          	// Send locally attached sensor data here
                                          }
                                          
                                          

                                          SERIAL OUTPUT NODE

                                          0 MCO:BGN:INIT NODE,CP=RRNNA--,VER=2.1.1
                                          4 TSM:INIT
                                          4 TSF:WUR:MS=0
                                          8 TSM:INIT:TSP OK
                                          10 TSM:INIT:STATID=1
                                          12 TSF:SID:OK,ID=1
                                          14 TSM:FPAR
                                          145 TSF:MSG:SEND,1-1-255-255,s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=OK:
                                          1044 TSF:MSG:READ,0-0-1,s=255,c=3,t=8,pt=1,l=1,sg=0:0
                                          1050 TSF:MSG:FPAR OK,ID=0,D=1
                                          2152 TSM:FPAR:OK
                                          2152 TSM:ID
                                          2154 TSM:ID:OK
                                          2156 TSM:UPL
                                          2164 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=24,pt=1,l=1,sg=0,ft=0,st=OK:1
                                          2199 TSF:MSG:READ,0-0-1,s=255,c=3,t=25,pt=1,l=1,sg=0:1
                                          2205 TSF:MSG:PONG RECV,HP=1
                                          2207 TSM:UPL:OK
                                          2209 TSM:READY:ID=1,PAR=0,DIS=1
                                          2263 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=15,pt=6,l=2,sg=0,ft=0,st=OK:0100
                                          2287 TSF:MSG:READ,0-0-1,s=255,c=3,t=15,pt=6,l=2,sg=0:0100
                                          2344 TSF:MSG:SEND,1-1-0-0,s=255,c=0,t=17,pt=0,l=5,sg=0,ft=0,st=OK:2.1.1
                                          2404 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=6,pt=1,l=1,sg=0,ft=0,st=OK:0
                                          4421 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=11,pt=0,l=13,sg=0,ft=0,st=OK:Motion Sensor
                                          4483 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=12,pt=0,l=3,sg=0,ft=0,st=OK:1.0
                                          4542 TSF:MSG:SEND,1-1-0-0,s=1,c=0,t=1,pt=0,l=0,sg=0,ft=0,st=OK:
                                          4548 MCO:REG:REQ
                                          4601 TSF:MSG:SEND,1-1-0-0,s=255,c=3,t=26,pt=1,l=1,sg=0,ft=0,st=OK:2
                                          4626 TSF:MSG:READ,0-0-1,s=255,c=3,t=27,pt=1,l=1,sg=0:1
                                          4630 MCO:PIM:NODE REG=1
                                          4634 MCO:BGN:STP
                                          4636 MCO:BGN:INIT OK,TSP=1
                                          1
                                          4689 TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:1
                                          4698 MCO:SLP:MS=0,SMS=0,I1=1,M1=1,I2=255,M2=255
                                          4702 MCO:SLP:TPD
                                          4704 MCO:SLP:WUP=1
                                          0
                                          4714 TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                          4722 MCO:SLP:MS=0,SMS=0,I1=1,M1=1,I2=255,M2=255
                                          4726 MCO:SLP:TPD
                                          4728 MCO:SLP:WUP=1
                                          1
                                          4739 TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:1
                                          4747 MCO:SLP:MS=0,SMS=0,I1=1,M1=1,I2=255,M2=255
                                          4751 MCO:SLP:TPD
                                          4753 MCO:SLP:WUP=1
                                          0
                                          4763 TSF:MSG:SEND,1-1-0-0,s=1,c=1,t=16,pt=0,l=1,sg=0,ft=0,st=OK:0
                                          4771 MCO:SLP:MS=0,SMS=0,I1=1,M1=1,I2=255,M2=255
                                          4775 MCO:SLP:TPD
                                          

                                          SERIAL OUTPUT GATEWAY

                                          0;255;3;0;9;MCO:BGN:INIT GW,CP=RRNGA--,VER=2.1.1
                                          0;255;3;0;9;TSM:INIT
                                          0;255;3;0;9;TSF:WUR:MS=0
                                          0;255;3;0;9;TSM:INIT:TSP OK
                                          0;255;3;0;9;TSM:INIT:GW MODE
                                          0;255;3;0;9;TSM:READY:ID=0,PAR=0,DIS=0
                                          0;255;3;0;9;MCO:REG:NOT NEEDED
                                          0;255;3;0;14;Gateway startup complete.
                                          0;255;0;0;18;2.1.1
                                          0;255;3;0;9;MCO:BGN:STP
                                          0;255;3;0;9;MCO:BGN:INIT OK,TSP=1
                                          0;255;3;0;9;TSF:MSG:READ,1-1-0,s=1,c=1,t=16,pt=0,l=1,sg=0:1
                                          1;1;1;0;16;1
                                          

                                          TANKS VERY VERY VERY TO ALL

                                          YveauxY Offline
                                          YveauxY Offline
                                          Yveaux
                                          Mod
                                          wrote on last edited by
                                          #20

                                          @mar.conte Great to hear you nailed it!
                                          For others to learn: what did you change to make things work?

                                          http://yveaux.blogspot.nl

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


                                          16

                                          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