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
CreakyC

Creaky

@Creaky
About
Posts
13
Topics
2
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • 💬 Dimmable LED Actuator
    CreakyC Creaky

    @mfalkvidd Thanks for the reply!

    Announcements

  • PIR node with interrupts
    CreakyC Creaky

    Thanks for all your feedback guys! I really appreciate it!
    I now use the following code based on a MySensors example, it does the job but I have the feeling it still uses quite some power. Is this the best we can do code wise to reduce power? My Chinese Nano V3 clone still uses 17.2mA with this code and I have already disabled the power LED...

    *******************************
    *
    * DESCRIPTION
    *
    * Interrupt driven binary switch example with dual interrupts
    * Author: Patrick 'Anticimex' Fallberg
    * Connect one button or door/window reed switch between
    * digitial I/O pin 3 (BUTTON_PIN below) and GND and the other
    * one in similar fashion on digital I/O pin 2.
    * This example is designed to fit Arduino Nano/Pro Mini
    *
    */
    
    #include <MyConfig.h>
    
    #define MY_DEBUG
    // Enable and select radio type attached
    #define MY_RADIO_NRF24
    //#define MY_RADIO_RFM69
    
    //#define MY_REPEATER_FEATURE
    #define MY_NODE_ID 100
    
    #include <MySensors.h>
    
    #define SN "PIRnode"
    #define SV "0.1"
    
    #define PRIMARY_CHILD_ID 0
    
    #define PRIMARY_BUTTON_PIN 2   // Arduino Digital I/O pin for button/reed switch
    
    #if (PRIMARY_BUTTON_PIN < 2 || PRIMARY_BUTTON_PIN > 3)
    #error PRIMARY_BUTTON_PIN must be either 2 or 3 for interrupts to work
    #endif
    #if (PRIMARY_BUTTON_PIN == SECONDARY_BUTTON_PIN)
    #error PRIMARY_BUTTON_PIN and BUTTON_PIN2 cannot be the same
    #endif
    
    
    // Change to V_LIGHT if you use S_LIGHT in presentation below
    MyMessage msg(PRIMARY_CHILD_ID, V_TRIPPED);
    
    
    void setup()
    {
    	// Setup the buttons
    	pinMode(PRIMARY_BUTTON_PIN, INPUT);
    
    	// Activate internal pull-ups
    	//digitalWrite(PRIMARY_BUTTON_PIN, HIGH);
    }
    
    void presentation()
    {
    	// Send the sketch version information to the gateway and Controller
    	sendSketchInfo(SN, SV);
    
    	// Register binary input sensor to sensor_node (they will be created as child devices)
    	// You can use S_DOOR, S_MOTION or S_LIGHT here depending on your usage.
    	// If S_LIGHT is used, remember to update variable type you send in. See "msg" above.
    	present(PRIMARY_CHILD_ID, S_MOTION);
    }
    
    // Loop will iterate on changes on the BUTTON_PINs
    void loop()
    {
    	uint8_t value;
    	static uint8_t sentValue = 2;
    	static uint8_t sentValue2 = 2;
    
    	// Short delay to allow buttons to properly settle
    	sleep(5);
    
    	value = digitalRead(PRIMARY_BUTTON_PIN);
    
    	if (value != sentValue) {
    		// Value has changed from last transmission, send the updated value
    		send(msg.set(value == HIGH));
    		sentValue = value;
    	}
    
    	// Sleep until something happens with the sensor
    	sleep(PRIMARY_BUTTON_PIN - 2, CHANGE, 0);
    }
    
    Troubleshooting

  • PIR node with interrupts
    CreakyC Creaky

    @AWI I realize that now and already purchased a Pro mini 3.3v.

    Troubleshooting
  • Login

  • Don't have an account? Register

  • Login or register to search.
  • First post
    Last post
0
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular