Navigation

    • Register
    • Login
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. Rene046
    3. Best
    • Profile
    • Following
    • Followers
    • Topics
    • Posts
    • Best
    • Groups

    Best posts made by Rene046

    • RE: Could use a bid help to get started

      ok,

      At least i can now experiment with other sensors for my weather station project.
      i now all electronics are working, i saved this sketch and commented those changes.
      Again thank you for getting me started.

      posted in Troubleshooting
      Rene046
      Rene046
    • RE: Double Pir sensors

      thx.

      Aha i missed those

      sketch is accepted, waiting for second pir sensor to test in real time.

      thx again learned something new again...
      Starting to have fun with Mysensors ...

      For other users who like to try.

      /**
       * 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_NRF24
      //#define MY_RADIO_RFM69
      
      #include <MySensors.h>
      #define MY_NODE_ID 9
      unsigned long SLEEP_TIME = 5000 ; // 120000 Sleep time between reports (in milliseconds)
      #define DIGITAL_INPUT_SENSOR1 2   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
      #define DIGITAL_INPUT_SENSOR2 3   // The digital input you attached your motion sensor.  (Only 2 and 3 generates interrupt!)
      
      #define CHILD_ID_PIR1 21   // Id of the sensor child
      #define CHILD_ID_PIR2 22   // Id of the sensor child
      
      // Enable repeater functionality for this node
      #define MY_REPEATER_FEATURE
      
      // Initialize motion message
      MyMessage msg1(CHILD_ID_PIR1, V_TRIPPED);
      MyMessage msg2(CHILD_ID_PIR2, V_TRIPPED);
      
      void setup()
      {
      	pinMode(DIGITAL_INPUT_SENSOR1, INPUT);      // sets the motion sensor digital pin as input
        pinMode(DIGITAL_INPUT_SENSOR2, INPUT);      // sets the motion sensor digital pin as input
       }
      
      void presentation()
      {
      	// Send the sketch version information to the gateway and Controller
      	sendSketchInfo("PIR Sensor", "3.0");
      
      	// Register all sensors to gw (they will be created as child devices)
      	present(CHILD_ID_PIR1, S_MOTION);
        present(CHILD_ID_PIR2, S_MOTION);
      }
      
      void loop()
      {
      	// Read digital motion value
      	bool tripped = digitalRead(DIGITAL_INPUT_SENSOR1) == HIGH;
        bool tripped2 = digitalRead(DIGITAL_INPUT_SENSOR2) == HIGH;
       
      	Serial.println(tripped);
      	send(msg1.set(tripped?"1":"0"));  // Send tripped value to gw
        
        Serial.println(tripped2);
        send(msg2.set(tripped2?"1":"0"));  // Send tripped value to gw
      	
      	// Sleep until interrupt comes in on motion sensor. Send update every two minute.
      	sleep(digitalPinToInterrupt(DIGITAL_INPUT_SENSOR1), CHANGE, (DIGITAL_INPUT_SENSOR2), CHANGE, SLEEP_TIME);
      }
      
      
      posted in Troubleshooting
      Rene046
      Rene046
    • RE: Analog to digital how ?

      @mfalkvidd

      Thx

      I already got it running after a long night ...lol

      here is what i have sofar...

      #define MY_RADIO_NRF24
      #define MY_REPEATER_FEATURE
      #define MY_DEBUG
      //#include <SPI.h>
      #include <MySensors.h>
      boolean sensorUpperActive;
      // boolean sensorBottomActive;
      int sensorBottomActive;
      int PIR1new;
      int PIR1old;
      int PIR2new;
      int PIR2old;
      
      boolean PIR00;
      #define MY_NODE_ID 30
      #define CHILD_ID_PIR00 31   // Id of the sensor child
      #define CHILD_ID_PIR01 32   // Id of the sensor child
      #define CHILD_ID_PIR02 33   // Id of the sensor child
      
      void presentation()
      {
      // Send the sketch version information to the gateway and Controller
        sendSketchInfo("PIR Sensor", "4.0");
      
      // Register all sensors to gw (they will be created as child devices)
        present(CHILD_ID_PIR00, S_MOTION, "PIR Sensor 0");
        present(CHILD_ID_PIR01, S_MOTION, "PIR Sensor 1");
        present(CHILD_ID_PIR02, S_MOTION, "PIR Sensor 2");
       
       }
      // Initialize motion message
       MyMessage msgPIR00(CHILD_ID_PIR00, V_TRIPPED);
       MyMessage msgPIR01(CHILD_ID_PIR01, V_TRIPPED);
       MyMessage msgPIR02(CHILD_ID_PIR02, V_TRIPPED);
      
      // the setup routine runs once when you press reset:
      void setup() {
        // initialize serial communication at 9600 bits per second:
      //  Serial.begin(9600);
        pinMode(LED_BUILTIN, OUTPUT);
      
      }
      
      // the loop routine runs over and over again forever:
      void loop() {
       Pir0lezen();
       
       Pir1lezen();
       Pir2lezen();
       effopneer();
       effneerop();
       Tegelijk();
       
      //  delay(1000);        // delay in between reads for stability
      }
      
      void Pir0lezen() {
        int PIR0 = analogRead(A0);
        if (analogRead(A0) >=700) 
        {
        Serial.println("PIR0----");
        Serial.println(PIR0);
        PIR00 = true;
      }}
      
      void Pir1lezen() {
        int PIR1new = analogRead(A1);
        if (PIR1new != PIR1old && PIR1new >=700) {
        sensorBottomActive = true ;
        send (msgPIR01.set(sensorBottomActive?"1":"0"));
        // Send status to Domoticz
        Serial.println("PIR1----");
        Serial.println(PIR1new);
        PIR1old = PIR1new;
      }}
      
      void Pir2lezen() {
        int PIR2new = analogRead(A2);
        if (PIR2new != PIR2old && PIR2new >=700) {
        sensorUpperActive = true ;
        send (msgPIR02.set(sensorUpperActive?"1":"0"));
        // Send status to Domoticz
        Serial.println("PIR2----");
        Serial.println(PIR2new);
        PIR2old = PIR2new;
       }
      }
      
      void effopneer() {
        if (sensorBottomActive==true && sensorUpperActive==false){
        // do something
        digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
        delay(100);                       // wait for a second
        digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
        sensorBottomActive = false ;  
        send (msgPIR01.set(sensorBottomActive));
        Serial.println("PIR1--uit");
        }
      }
      
      void effneerop() {
        if (sensorBottomActive==false && sensorUpperActive==true){
        digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
        delay(500);                       // wait for a second
        digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
        sensorUpperActive = false ;  
        send (msgPIR02.set(sensorUpperActive));
        Serial.println("PIR2--uit");
        }
      }
      
      void  Tegelijk() {
        if (sensorBottomActive==true && sensorUpperActive==true){
        digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
        delay(5000);                       // wait for a second
        digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
        sensorUpperActive = false ; 
        sensorBottomActive = false ;  
        send (msgPIR01.set(sensorUpperActive));
        send (msgPIR01.set(sensorBottomActive));
        Serial.println("PIR1&2--uit");
      }
      }
      
      posted in Troubleshooting
      Rene046
      Rene046