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. Development
  3. Control lights and intencidad with Vera and arduino

Control lights and intencidad with Vera and arduino

Scheduled Pinned Locked Moved Development
16 Posts 5 Posters 7.5k Views 2 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 hek

    Have a vague memory they got this fixed in a FW update... Haven't heard any problems from UI7 users lately... so I just assumed it wasn't a problem any more.

    C4VetteC Offline
    C4VetteC Offline
    C4Vette
    wrote on last edited by
    #7

    @hek
    Ok, I missed that news than. Will try that one of these days because have it still laying around. I remember the serial port was there but the device disapeard in the UI.

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

      Ok, report back.

      1 Reply Last reply
      0
      • C4VetteC Offline
        C4VetteC Offline
        C4Vette
        wrote on last edited by
        #9

        It just works now!
        I removed the Ethernet gateway device from the UI and added the new device as per description on the webside. For a short while I had the error ComFailure but found on the forum that in advanced this must be altered from 1 to 0.

        1 Reply Last reply
        0
        • C conde

          Hello. Thanks for reply.

          This is my first project witn arduino. I'm learning. xD
          For this project i have:

          • the vera edge;
          • arduino uno;
          • NRF24L01+ 2.4GHz Wireless Transceiver;
          • Relays;

          So my question is. It's possible wiht this components? I need another?

          You say: (All of these builds are well documented on the Mysensor website.) - can you please send me de link? because i can't found.

          Thank you.

          mntlvrM Offline
          mntlvrM Offline
          mntlvr
          wrote on last edited by
          #10

          @conde said:

          Hello. Thanks for reply.

          This is my first project witn arduino. I'm learning. xD
          For this project i have:

          • the vera edge;
          • arduino uno;
          • NRF24L01+ 2.4GHz Wireless Transceiver;
          • Relays;

          So my question is. It's possible wiht this components? I need another?

          You say: (All of these builds are well documented on the Mysensor website.) - can you please send me de link? because i can't found.

          Thank you.

          Conde
          Here is an Example of a battery Operated wireless door sensor it uses a 18560 li-ion battery for power.Wireless_Door_Sensor.jpg Battery_Wireless_Door_Sensor.jpg
          The project cost me about $8-$10.00 to build you might find parts cheaper or have some of your own but this uses a nRF24l01= transceiver and an ATtiny 85 mcu ,2- 22ufd caps a 3.3 volts LDO regulator.
          If interested I can supply BOM and sketch.

          1 Reply Last reply
          0
          • C Offline
            C Offline
            conde
            wrote on last edited by
            #11

            I would greatly appreciate it. I like your project.

            Thanks for your help.

            mntlvrM 1 Reply Last reply
            0
            • mntlvrM Offline
              mntlvrM Offline
              mntlvr
              wrote on last edited by
              #12
              / MySensorsDoor/Window sensor
              // Based on Attiny85
              // Author: Wiebe Nieuwenhuis
              // these are suggested wire colors but you can use any color you want,  just be consistent on all sensors
              //                    +-\/-+
              //  ORANGE   CE      1|o   |8  VCC   RED
              //  YELLOW   CSN     2|    |7  SCK   GREEN
              //  -        SENSOR  3|    |6  MOSI  BLUE
              //  BLACK    GND     4|    |5  MISO  VIOLET
              //                    +----+
              
              #include <MySensor.h>
              #include <Bounce2.h>
              
              #define SENSOR_INFO "Door sensor"
              #define NODE_ID 1 // Start numbering by 1 adding 1 each time you upload to new attiny85
              #define CHILD_ID 1 // this number must match above number
              #define INPUT_PIN 4 // This is ATiny input number pin # 3 is the physical pin
              
              MySensor gw;
              Bounce debouncer = Bounce(); 
              int oldValue = -1;
              
              MyMessage msg(NODE_ID, V_TRIPPED);
              
              void setup()
              {
                pinMode(INPUT_PIN, INPUT);
                digitalWrite(INPUT_PIN, HIGH);
                
                debouncer.attach(INPUT_PIN);
                debouncer.interval(5);
                
                gw.begin(NULL, NODE_ID, false, 0);
                gw.sendSketchInfo(SENSOR_INFO, "1.15");
                gw.present(CHILD_ID, S_DOOR);
              }
              
              
              void loop()
              {
                debouncer.update();
                int value = debouncer.read();
                if (value != oldValue) {
                   gw.send(msg.set(value==HIGH ? 1 : 0));
                   oldValue = value;
                }
              }
              
              
              • BOM
                2cm x 8cm fiber glass perf board such as http://www.ebay.com/itm/10pcs-2X8-Double-side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board-/111345609084?hash=item19ecb7297c
                each board can make 4 sensors
                1- AMS1117 3.3 v LDO regulator for each sensor, such as http://www.ebay.com/itm/10Pcs-National-Semiconductor-LM1117-3-3-LM1117-3-3V-LDO-SOT223-Voltage-Regulator-/281790082194?hash=item419bff6c92
                2-10mfd 16v tantalum caps 3 for each sensor such as http://www.ebay.com/itm/50PCS-TANTALUM-CAPACITOR-10UF-16V-SMD-3216-NEW-/400985284440?hash=item5d5c95df58
                1-ATtiny 85 chip for each sensor you build
                1-8 pin socket if you wish to make it plug in but can be soldered in directly after you program chip.
                1-nRF24l01+ transceiver for each sensor you build
                1-5pin header female dbl row connector such as http://www.ebay.com/itm/50pcs-2-54mm-Pitch-2X5-10Pin-Female-Double-Row-Straight-Header-PCB-Connector-287-/171275351990?hash=item27e0ce77b6
                or a 4 pin dbl row header connector will do also
                1- case to fit your project
                1-18650 LI-ION 4000 Mah battery and holder if you wish to power in this manner but can be powered by 5vdc 500 Mah phone charger type P.S.
                Now there are other ways of doing this project but I found this works very well for me. There are people on this site that can do it more efficiently than the way I am showing here.
                Good luck with your project and if I can help more just ask.Now plan well , have all of your materials on hand,research anything you are not sure of almost all the answers for any questions you have on the ATiny 85 are on the this site.
                Now you will need a steady hand when soldering the SMD, be patient and be safe with the project .
                I will post a picture of the boards I am wiring. If you use sockets for the ATiny make sure you know where pin 1 is located the sockets are usually maked with a semi circle in the socket but you can put them in any way you choose if you know exactly where pin 1 is located. Same with the nRF24l01= 5 pin or 4 pin just make sure you know where pin 1 is located.
              mntlvrM 1 Reply Last reply
              0
              • C conde

                I would greatly appreciate it. I like your project.

                Thanks for your help.

                mntlvrM Offline
                mntlvrM Offline
                mntlvr
                wrote on last edited by
                #13

                @conde said:

                I would greatly appreciate it. I like your project.

                Thanks for your help.

                Top_View_Reg.brd.jpg Top_View AVR.brd.jpg Bottom_View_Reg.brd.jpg Bottom_View AVR_Brd.jpg
                Area in yellow will cut off and the 2 boards will be joined together, to make 1 board.

                1 Reply Last reply
                1
                • mntlvrM mntlvr
                  / MySensorsDoor/Window sensor
                  // Based on Attiny85
                  // Author: Wiebe Nieuwenhuis
                  // these are suggested wire colors but you can use any color you want,  just be consistent on all sensors
                  //                    +-\/-+
                  //  ORANGE   CE      1|o   |8  VCC   RED
                  //  YELLOW   CSN     2|    |7  SCK   GREEN
                  //  -        SENSOR  3|    |6  MOSI  BLUE
                  //  BLACK    GND     4|    |5  MISO  VIOLET
                  //                    +----+
                  
                  #include <MySensor.h>
                  #include <Bounce2.h>
                  
                  #define SENSOR_INFO "Door sensor"
                  #define NODE_ID 1 // Start numbering by 1 adding 1 each time you upload to new attiny85
                  #define CHILD_ID 1 // this number must match above number
                  #define INPUT_PIN 4 // This is ATiny input number pin # 3 is the physical pin
                  
                  MySensor gw;
                  Bounce debouncer = Bounce(); 
                  int oldValue = -1;
                  
                  MyMessage msg(NODE_ID, V_TRIPPED);
                  
                  void setup()
                  {
                    pinMode(INPUT_PIN, INPUT);
                    digitalWrite(INPUT_PIN, HIGH);
                    
                    debouncer.attach(INPUT_PIN);
                    debouncer.interval(5);
                    
                    gw.begin(NULL, NODE_ID, false, 0);
                    gw.sendSketchInfo(SENSOR_INFO, "1.15");
                    gw.present(CHILD_ID, S_DOOR);
                  }
                  
                  
                  void loop()
                  {
                    debouncer.update();
                    int value = debouncer.read();
                    if (value != oldValue) {
                       gw.send(msg.set(value==HIGH ? 1 : 0));
                       oldValue = value;
                    }
                  }
                  
                  
                  • BOM
                    2cm x 8cm fiber glass perf board such as http://www.ebay.com/itm/10pcs-2X8-Double-side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board-/111345609084?hash=item19ecb7297c
                    each board can make 4 sensors
                    1- AMS1117 3.3 v LDO regulator for each sensor, such as http://www.ebay.com/itm/10Pcs-National-Semiconductor-LM1117-3-3-LM1117-3-3V-LDO-SOT223-Voltage-Regulator-/281790082194?hash=item419bff6c92
                    2-10mfd 16v tantalum caps 3 for each sensor such as http://www.ebay.com/itm/50PCS-TANTALUM-CAPACITOR-10UF-16V-SMD-3216-NEW-/400985284440?hash=item5d5c95df58
                    1-ATtiny 85 chip for each sensor you build
                    1-8 pin socket if you wish to make it plug in but can be soldered in directly after you program chip.
                    1-nRF24l01+ transceiver for each sensor you build
                    1-5pin header female dbl row connector such as http://www.ebay.com/itm/50pcs-2-54mm-Pitch-2X5-10Pin-Female-Double-Row-Straight-Header-PCB-Connector-287-/171275351990?hash=item27e0ce77b6
                    or a 4 pin dbl row header connector will do also
                    1- case to fit your project
                    1-18650 LI-ION 4000 Mah battery and holder if you wish to power in this manner but can be powered by 5vdc 500 Mah phone charger type P.S.
                    Now there are other ways of doing this project but I found this works very well for me. There are people on this site that can do it more efficiently than the way I am showing here.
                    Good luck with your project and if I can help more just ask.Now plan well , have all of your materials on hand,research anything you are not sure of almost all the answers for any questions you have on the ATiny 85 are on the this site.
                    Now you will need a steady hand when soldering the SMD, be patient and be safe with the project .
                    I will post a picture of the boards I am wiring. If you use sockets for the ATiny make sure you know where pin 1 is located the sockets are usually maked with a semi circle in the socket but you can put them in any way you choose if you know exactly where pin 1 is located. Same with the nRF24l01= 5 pin or 4 pin just make sure you know where pin 1 is located.
                  mntlvrM Offline
                  mntlvrM Offline
                  mntlvr
                  wrote on last edited by mntlvr
                  #14

                  @mntlvr said:

                  / MySensorsDoor/Window sensor
                  // Based on Attiny85
                  // Revision 9/28/15 by BW
                  // Author: Wiebe Nieuwenhuis
                  // these are suggested wire colors but you can use any color you want,  just be consistent on all sensors
                  //                    +-\/-+
                  //  ORANGE   CE      1|o   |8  VCC   RED
                  //  YELLOW   CSN     2|    |7  SCK   GREEN
                  //  -        SENSOR  3|    |6  MOSI  BLUE
                  //  BLACK    GND     4|    |5  MISO  VIOLET
                  //                    +----+
                  
                  #include <MySensor.h>
                  #include <Bounce2.h>
                  
                  #define SENSOR_INFO "Door sensor"
                  #define NODE_ID 1 // Start numbering by 1 adding 1 each time you upload to new attiny85
                  #define CHILD_ID 1 // this number must match above number
                  #define INPUT_PIN 4 // This is ATiny input number pin # 3 is the physical pin
                  
                  MySensor gw;
                  Bounce debouncer = Bounce(); 
                  int oldValue = -1;
                  
                  MyMessage msg(NODE_ID, V_TRIPPED);
                  
                  void setup()
                  {
                    pinMode(INPUT_PIN, INPUT);
                    digitalWrite(INPUT_PIN, HIGH);
                    
                    debouncer.attach(INPUT_PIN);
                    debouncer.interval(5);
                    
                    gw.begin(NULL, NODE_ID, false, 0);
                    gw.sendSketchInfo(SENSOR_INFO, "1.15");
                    gw.present(CHILD_ID, S_DOOR);
                  }
                  
                  
                  void loop()
                  {
                    debouncer.update();
                    int value = debouncer.read();
                    if (value != oldValue) {
                       gw.send(msg.set(value==HIGH ? 1 : 0));
                       oldValue = value;
                    }
                  }
                  
                  
                  • BOM
                    2cm x 8cm fiber glass perf board such as http://www.ebay.com/itm/10pcs-2X8-Double-side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board-/111345609084?hash=item19ecb7297c
                    each board can make 4 sensors
                    1- AMS1117 3.3 v LDO regulator for each sensor, such as http://www.ebay.com/itm/10Pcs-National-Semiconductor-LM1117-3-3-LM1117-3-3V-LDO-SOT223-Voltage-Regulator-/281790082194?hash=item419bff6c92
                    2-10mfd 16v tantalum caps 3 for each sensor such as http://www.ebay.com/itm/50PCS-TANTALUM-CAPACITOR-10UF-16V-SMD-3216-NEW-/400985284440?hash=item5d5c95df58
                    1-ATtiny 85 chip for each sensor you build
                    1-8 pin socket if you wish to make it plug in but can be soldered in directly after you program chip.
                    1-nRF24l01+ transceiver for each sensor you build
                    1-5pin header female dbl row connector such as http://www.ebay.com/itm/50pcs-2-54mm-Pitch-2X5-10Pin-Female-Double-Row-Straight-Header-PCB-Connector-287-/171275351990?hash=item27e0ce77b6
                    or a 4 pin dbl row header connector will do also
                    1- case to fit your project
                    1-18650 LI-ION 4000 Mah battery and holder if you wish to power in this manner but can be powered by 5vdc 500 Mah phone charger type P.S.
                    Now there are other ways of doing this project but I found this works very well for me. There are people on this site that can do it more efficiently than the way I am showing here.
                    Good luck with your project and if I can help more just ask.Now plan well , have all of your materials on hand,research anything you are not sure of almost all the answers for any questions you have on the ATiny 85 are on the this site.
                    Now you will need a steady hand when soldering the SMD, be patient and be safe with the project .
                    I will post a picture of the boards I am wiring. If you use sockets for the ATtiny make sure you know where pin 1 is located the sockets are usually marked with a semi circle in the socket but you can put them in any way you choose if you know exactly where pin 1 is located. Same with the nRF24l01= 5 pin or 4 pin just make sure you know where pin 1 is located.

                  Now if you eliminate the 3.3v regulator and run your Attiny off of just the battery you will save about 20ma. Now you will have to place a 1n4007 diode in series with the batteries + terminal and the sensors + input wire, having the cathode of the diode going to the battery +
                  I am still working on a way to power down the nRF24l01+ transceiver. I have asked the members on this site for some help with this project..
                  now I do power my units with a 5 vdc phone charger so right now I have to leave the 3.3 vdc regulator in the circuit.
                  I also have modified the original sketch to put the Attiny85 to sleep for 2 to 4 sec. You would not what the door switch being left unmonitored for more time than that. Now I may also change this to use a pin change to immediately wake unit.
                  Here is the code I am running as of now.

                  *
                   * Watchdog Sleep
                   * Modified on 5 Feb 2011 by InsideGadgets (www.insidegadgets.com)
                   * to suit the ATtiny85 and removed the cbi( MCUCR,SE ) section 
                   * in setup() to match the Atmel datasheet recommendations
                   */
                  
                  #include <avr/sleep.h>
                  #include <avr/wdt.h>
                  #include <MySensor.h>
                  #include <Bounce2.h>
                  
                  #ifndef cbi
                  #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
                  #endif
                  #ifndef sbi
                  #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
                  #endif
                  
                  #define SENSOR_INFO "Door sensor"
                  #define NODE_ID 14 // Start numbering by 1 adding 1 each time you upload to new attiny85
                  #define CHILD_ID 14 // this number must match above number
                  #define INPUT_PIN 4
                  
                  // int pinLed = 0;
                  volatile boolean f_wdt = 1;
                  MySensor gw;
                  Bounce debouncer = Bounce(); 
                  int oldValue = -1;
                  MyMessage msg(NODE_ID, V_TRIPPED);
                  
                  void setup(){
                    pinMode(INPUT_PIN, INPUT);
                    digitalWrite(INPUT_PIN, HIGH);
                   
                    setup_watchdog(8); // approximately 4 seconds sleep
                    debouncer.attach(INPUT_PIN);
                    debouncer.interval(5);
                    gw.begin(NULL, NODE_ID, false, 0);
                    gw.sendSketchInfo(SENSOR_INFO, "1.15");
                    gw.present(CHILD_ID, S_DOOR);
                  }
                  
                  void loop(){
                    if (f_wdt==1) {  // wait for timed out watchdog / flag is set when a watchdog timeout occurs
                      f_wdt=0;       // reset flag
                    debouncer.update();
                    int value = debouncer.read();
                    if (value != oldValue) {
                       gw.send(msg.set(value==HIGH ? 1 : 0));
                       oldValue = value;
                      system_sleep();
                    }
                  }
                  }
                  // set system into the sleep state 
                  // system wakes up when wtchdog is timed out
                  void system_sleep() {
                    cbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter OFF
                  
                    set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
                    sleep_enable();
                  
                    sleep_mode();                        // System sleeps here
                  
                    sleep_disable();                     // System continues execution here when watchdog timed out 
                    sbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter ON
                  }
                  
                  // 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
                  // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
                  void setup_watchdog(int ii) {
                  
                    byte bb;
                    int ww;
                    if (ii > 9 ) ii=9;
                    bb=ii & 7;
                    if (ii > 7) bb|= (1<<5);
                    bb|= (1<<WDCE);
                    ww=bb;
                  
                    MCUSR &= ~(1<<WDRF);
                    // start timed sequence
                    WDTCR |= (1<<WDCE) | (1<<WDE);
                    // set new watchdog timeout value
                    WDTCR = bb;
                    WDTCR |= _BV(WDIE);
                  }
                    
                  // Watchdog Interrupt Service / is executed when watchdog timed out
                  ISR(WDT_vect) {
                    f_wdt=1;  // set global flag
                  }```
                  T 1 Reply Last reply
                  0
                  • mntlvrM mntlvr

                    @mntlvr said:

                    / MySensorsDoor/Window sensor
                    // Based on Attiny85
                    // Revision 9/28/15 by BW
                    // Author: Wiebe Nieuwenhuis
                    // these are suggested wire colors but you can use any color you want,  just be consistent on all sensors
                    //                    +-\/-+
                    //  ORANGE   CE      1|o   |8  VCC   RED
                    //  YELLOW   CSN     2|    |7  SCK   GREEN
                    //  -        SENSOR  3|    |6  MOSI  BLUE
                    //  BLACK    GND     4|    |5  MISO  VIOLET
                    //                    +----+
                    
                    #include <MySensor.h>
                    #include <Bounce2.h>
                    
                    #define SENSOR_INFO "Door sensor"
                    #define NODE_ID 1 // Start numbering by 1 adding 1 each time you upload to new attiny85
                    #define CHILD_ID 1 // this number must match above number
                    #define INPUT_PIN 4 // This is ATiny input number pin # 3 is the physical pin
                    
                    MySensor gw;
                    Bounce debouncer = Bounce(); 
                    int oldValue = -1;
                    
                    MyMessage msg(NODE_ID, V_TRIPPED);
                    
                    void setup()
                    {
                      pinMode(INPUT_PIN, INPUT);
                      digitalWrite(INPUT_PIN, HIGH);
                      
                      debouncer.attach(INPUT_PIN);
                      debouncer.interval(5);
                      
                      gw.begin(NULL, NODE_ID, false, 0);
                      gw.sendSketchInfo(SENSOR_INFO, "1.15");
                      gw.present(CHILD_ID, S_DOOR);
                    }
                    
                    
                    void loop()
                    {
                      debouncer.update();
                      int value = debouncer.read();
                      if (value != oldValue) {
                         gw.send(msg.set(value==HIGH ? 1 : 0));
                         oldValue = value;
                      }
                    }
                    
                    
                    • BOM
                      2cm x 8cm fiber glass perf board such as http://www.ebay.com/itm/10pcs-2X8-Double-side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board-/111345609084?hash=item19ecb7297c
                      each board can make 4 sensors
                      1- AMS1117 3.3 v LDO regulator for each sensor, such as http://www.ebay.com/itm/10Pcs-National-Semiconductor-LM1117-3-3-LM1117-3-3V-LDO-SOT223-Voltage-Regulator-/281790082194?hash=item419bff6c92
                      2-10mfd 16v tantalum caps 3 for each sensor such as http://www.ebay.com/itm/50PCS-TANTALUM-CAPACITOR-10UF-16V-SMD-3216-NEW-/400985284440?hash=item5d5c95df58
                      1-ATtiny 85 chip for each sensor you build
                      1-8 pin socket if you wish to make it plug in but can be soldered in directly after you program chip.
                      1-nRF24l01+ transceiver for each sensor you build
                      1-5pin header female dbl row connector such as http://www.ebay.com/itm/50pcs-2-54mm-Pitch-2X5-10Pin-Female-Double-Row-Straight-Header-PCB-Connector-287-/171275351990?hash=item27e0ce77b6
                      or a 4 pin dbl row header connector will do also
                      1- case to fit your project
                      1-18650 LI-ION 4000 Mah battery and holder if you wish to power in this manner but can be powered by 5vdc 500 Mah phone charger type P.S.
                      Now there are other ways of doing this project but I found this works very well for me. There are people on this site that can do it more efficiently than the way I am showing here.
                      Good luck with your project and if I can help more just ask.Now plan well , have all of your materials on hand,research anything you are not sure of almost all the answers for any questions you have on the ATiny 85 are on the this site.
                      Now you will need a steady hand when soldering the SMD, be patient and be safe with the project .
                      I will post a picture of the boards I am wiring. If you use sockets for the ATtiny make sure you know where pin 1 is located the sockets are usually marked with a semi circle in the socket but you can put them in any way you choose if you know exactly where pin 1 is located. Same with the nRF24l01= 5 pin or 4 pin just make sure you know where pin 1 is located.

                    Now if you eliminate the 3.3v regulator and run your Attiny off of just the battery you will save about 20ma. Now you will have to place a 1n4007 diode in series with the batteries + terminal and the sensors + input wire, having the cathode of the diode going to the battery +
                    I am still working on a way to power down the nRF24l01+ transceiver. I have asked the members on this site for some help with this project..
                    now I do power my units with a 5 vdc phone charger so right now I have to leave the 3.3 vdc regulator in the circuit.
                    I also have modified the original sketch to put the Attiny85 to sleep for 2 to 4 sec. You would not what the door switch being left unmonitored for more time than that. Now I may also change this to use a pin change to immediately wake unit.
                    Here is the code I am running as of now.

                    *
                     * Watchdog Sleep
                     * Modified on 5 Feb 2011 by InsideGadgets (www.insidegadgets.com)
                     * to suit the ATtiny85 and removed the cbi( MCUCR,SE ) section 
                     * in setup() to match the Atmel datasheet recommendations
                     */
                    
                    #include <avr/sleep.h>
                    #include <avr/wdt.h>
                    #include <MySensor.h>
                    #include <Bounce2.h>
                    
                    #ifndef cbi
                    #define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
                    #endif
                    #ifndef sbi
                    #define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
                    #endif
                    
                    #define SENSOR_INFO "Door sensor"
                    #define NODE_ID 14 // Start numbering by 1 adding 1 each time you upload to new attiny85
                    #define CHILD_ID 14 // this number must match above number
                    #define INPUT_PIN 4
                    
                    // int pinLed = 0;
                    volatile boolean f_wdt = 1;
                    MySensor gw;
                    Bounce debouncer = Bounce(); 
                    int oldValue = -1;
                    MyMessage msg(NODE_ID, V_TRIPPED);
                    
                    void setup(){
                      pinMode(INPUT_PIN, INPUT);
                      digitalWrite(INPUT_PIN, HIGH);
                     
                      setup_watchdog(8); // approximately 4 seconds sleep
                      debouncer.attach(INPUT_PIN);
                      debouncer.interval(5);
                      gw.begin(NULL, NODE_ID, false, 0);
                      gw.sendSketchInfo(SENSOR_INFO, "1.15");
                      gw.present(CHILD_ID, S_DOOR);
                    }
                    
                    void loop(){
                      if (f_wdt==1) {  // wait for timed out watchdog / flag is set when a watchdog timeout occurs
                        f_wdt=0;       // reset flag
                      debouncer.update();
                      int value = debouncer.read();
                      if (value != oldValue) {
                         gw.send(msg.set(value==HIGH ? 1 : 0));
                         oldValue = value;
                        system_sleep();
                      }
                    }
                    }
                    // set system into the sleep state 
                    // system wakes up when wtchdog is timed out
                    void system_sleep() {
                      cbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter OFF
                    
                      set_sleep_mode(SLEEP_MODE_PWR_DOWN); // sleep mode is set here
                      sleep_enable();
                    
                      sleep_mode();                        // System sleeps here
                    
                      sleep_disable();                     // System continues execution here when watchdog timed out 
                      sbi(ADCSRA,ADEN);                    // switch Analog to Digitalconverter ON
                    }
                    
                    // 0=16ms, 1=32ms,2=64ms,3=128ms,4=250ms,5=500ms
                    // 6=1 sec,7=2 sec, 8=4 sec, 9= 8sec
                    void setup_watchdog(int ii) {
                    
                      byte bb;
                      int ww;
                      if (ii > 9 ) ii=9;
                      bb=ii & 7;
                      if (ii > 7) bb|= (1<<5);
                      bb|= (1<<WDCE);
                      ww=bb;
                    
                      MCUSR &= ~(1<<WDRF);
                      // start timed sequence
                      WDTCR |= (1<<WDCE) | (1<<WDE);
                      // set new watchdog timeout value
                      WDTCR = bb;
                      WDTCR |= _BV(WDIE);
                    }
                      
                    // Watchdog Interrupt Service / is executed when watchdog timed out
                    ISR(WDT_vect) {
                      f_wdt=1;  // set global flag
                    }```
                    T Offline
                    T Offline
                    ted
                    wrote on last edited by
                    #15

                    @mntlvr I'm excited to see that mysensors is working with attiny. However, when I compile your code for UNO (can't compile for attiny85 on my IDE), I see the code is about 16kb, much larger than the size of the available memory in attiny85. Did you use a different library?

                    mntlvrM 1 Reply Last reply
                    0
                    • T ted

                      @mntlvr I'm excited to see that mysensors is working with attiny. However, when I compile your code for UNO (can't compile for attiny85 on my IDE), I see the code is about 16kb, much larger than the size of the available memory in attiny85. Did you use a different library?

                      mntlvrM Offline
                      mntlvrM Offline
                      mntlvr
                      wrote on last edited by
                      #16

                      @ted said:

                      @mntlvr I'm excited to see that mysensors is working with attiny. However, when I compile your code for UNO (can't compile for attiny85 on my IDE), I see the code is about 16kb, much larger than the size of the available memory in attiny85. Did you use a different library?
                      Yes a mysensor library written for the Attiny85 chip. And also remember you need to either make a Attiny85 programmer or buy one. I think the 1st choice is the best. There are many articles on the Web that will guide you on how to build your own peogrammer. So do a little research and you will be greatly rewarded. Patience and perseverance will get you what you need and want.

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


                      14

                      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