Node is rebooted by waking up from a sleep
-
Hi all,
I have the following code which constantly reboots my node when Interrupted by PIR.
Any idea why?//#define MY_DEBUG_VERBOSE_SIGNING //#define MY_SPLASH_SCREEN_DISABLED // Enable and select radio type attached #define MY_RADIO_RFM69 #define MY_RFM69_NEW_DRIVER #define MY_RFM69_ATC_MODE_DISABLED #define MY_RFM69_FREQUENCY RFM69_868MHZ #define MY_PARENT_NODE_IS_STATIC #define MY_PARENT_NODE_ID 0 #define MY_RFM69_NETWORKID (100) #define MY_NODE_ID 3 #define INT_PIN 6 #define INT_PINN 7 #define SLEEP_TIME 9000000 // 15 min uint32_t sleepTime = SLEEP_TIME; int8_t wakeupReason = 0; #include <MySensors.h> void setup() { Serial.begin(115200); PCMSK2 |= bit(PCINT22); PCMSK2 |= bit(PCINT23); PCIFR |= bit(PCIF2); // clear any outstanding interrupts PCICR |= bit(PCIE2); // enable pin change interrupts for D0 to D7 delay(2000); pinMode(INT_PIN, INPUT); pinMode(INT_PINN, INPUT); } void loop() { if (wakeupReason == digitalPinToInterrupt(INT_PIN) || wakeupReason == digitalPinToInterrupt(INT_PINN)) { Serial.println("Sleep Interrupted!"); digitalWrite(9, HIGH); delay(20); digitalWrite(9, LOW); // Report sensor status here } else if (wakeupReason == MY_WAKE_UP_BY_TIMER) { Serial.println("MY_WAKE_UP_BY_TIMER"); // Report battery level here } wakeupReason = sleep(digitalPinToInterrupt(INT_PIN), CHANGE, digitalPinToInterrupt(INT_PINN), CHANGE, sleepTime); }
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login