Navigation

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

    mikeg291

    @mikeg291

    1
    Reputation
    16
    Posts
    464
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    mikeg291 Follow

    Best posts made by mikeg291

    • RE: Parking Sensor problem

      Problem solved Turned out to be a bad sensor and with mfalkvidd 's suggestion troubleshooting was a lot easier . Thanks

      posted in Troubleshooting
      mikeg291
      mikeg291

    Latest posts made by mikeg291

    • RE: Binary switch project

      Sorry for the lack of clarity . I have used your tips to and update the sketch to no avail . What I am trying to do is use the switch to activate the time and use the time the switch was activated ( lastSwitchTime ) to compare to the (alarmTime ) and send the new (value ). ? . Once I resolve the current issues : I haven't gotten to it yet but , Once the alarmTime alarm is met I would like to have locked in requiring a reset are possible button push to clear it .
      [code]
      #include <MySensor.h>
      #include <SPI.h>
      #include <Bounce2.h>
      #include <Time.h>

      #define CHILD_ID 3
      #define BUTTON_PIN 3 // Arduino Digital I/O pin for button/reed switch
      int alarmTime = 15;
      MySensor gw;
      Bounce debouncer = Bounce();
      int oldValue = -1;

      time_t lastSwitchTime = 0;
      void receiveTime(unsigned long controllerTime);
      bool timeReceived = false;

      // Change to V_LIGHT if you use S_LIGHT in presentation below
      MyMessage msg(CHILD_ID, V_TRIPPED);

      void setup()
      {
      gw.begin();
      // Serial.begin(9600);
      // Setup the button
      pinMode(BUTTON_PIN, INPUT);
      // Activate internal pull-up
      digitalWrite(BUTTON_PIN, HIGH);

      // After setting up the button, setup debouncer
      debouncer.attach(BUTTON_PIN);
      debouncer.interval(5);

      // Register binary input sensor to gw (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.
      gw.present(CHILD_ID, S_DOOR);

      // Make sure we get the system time, repeat request every 5 seconds until we have a valid time
      gw.requestTime(receiveTime);
      unsigned long lastRequest = millis();
      if ((millis() - lastRequest) > 5000) {
      gw.wait(100);
      gw.requestTime(receiveTime);
      lastRequest = millis();
      }
      lastSwitchTime = now();
      }

      // Check if digital input has changed and send in new value
      void loop()
      {
      debouncer.update();
      // Get the update value
      int value = debouncer.read();

      if (value != oldValue) {
      Serial.print("Switch was ");
      Serial.print(oldValue ? "ON" : "OFF");
      Serial.print(" for: ");
      Serial.print(now() - lastSwitchTime);
      Serial.println(" seconds");
      lastSwitchTime = now();

      // Send in the new value
      if (alarmTime <= lastSwitchTime );
      

      { gw.send(msg.set(value == HIGH 1));}
      else
      { gw.send(msg.set(value = LOW 0));
      oldValue = value;

      }
      }

      // This is called when a new time value was received
      void receiveTime(unsigned long controllerTime) {
      // OK, set incoming time
      Serial.print(F("Time value received: "));
      Serial.println(controllerTime);
      setTime(controllerTime);
      timeReceived = true;
      }

      Arduino: 1.6.7 (Windows 7), Board: "Arduino Nano, ATmega328"

      C:\Users\repair\AppData\Local\Temp\arduino_9fa690567122ca1856b95eff67fbf9b8\pump_cycle_time_2.5.ino: In function 'void loop()':

      pump_cycle_time_2.5:67: error: expected ')' before numeric constant

      { gw.send(msg.set(value == HIGH 1));}
      
                                      ^
      

      pump_cycle_time_2.5:68: error: expected '}' before 'else'

       else
      
       ^
      

      pump_cycle_time_2.5:69: error: expected ')' before numeric constant

        { gw.send(msg.set(value = LOW 0));
      
                                      ^
      

      exit status 1
      expected ')' before numeric constant

      This report would have more information with
      "Show verbose output during compilation"
      enabled in File > Preferences.

      [/code]

      posted in Troubleshooting
      mikeg291
      mikeg291
    • Binary switch project

      I cannot figure out how to correct the errors that I am getting. on this project. I need help

      #include <MySensor.h>
      #include <SPI.h>
      #include <Bounce2.h>
      #include <Time.h>
      
      #define CHILD_ID 3
      #define BUTTON_PIN  3  // Arduino Digital I/O pin for button/reed switch
      int alarmtime = 15;
      MySensor gw;
      Bounce debouncer = Bounce(); 
      int oldValue=-1;
      
      time_t  lastSwitchTime = 0;
      void receiveTime(unsigned long controllerTime);
      bool timeReceived = false;
      
      // Change to V_LIGHT if you use S_LIGHT in presentation below
      MyMessage msg(CHILD_ID,V_TRIPPED);
      
      void setup()  
      {  
        gw.begin();
        // Serial.begin(9600);
       // Setup the button
        pinMode(BUTTON_PIN,INPUT);
        // Activate internal pull-up
        digitalWrite(BUTTON_PIN,HIGH);
        
        // After setting up the button, setup debouncer
        debouncer.attach(BUTTON_PIN);
        debouncer.interval(5);
        
        // Register binary input sensor to gw (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.
         gw.present(CHILD_ID, S_DOOR);  
        
        // Make sure we get the system time, repeat request every 5 seconds until we have a valid time
        gw.requestTime(receiveTime);
        unsigned long lastRequest = millis();
        if ((millis() - lastRequest) >  5000) {
            gw.wait(100);
            gw.requestTime(receiveTime); 
            lastRequest = millis();
         }
         lastSwitchTime = now();
      }
      
      
      //  Check if digital input has changed and send in new value
      void loop() 
      {
        debouncer.update();
        // Get the update value
        int value = debouncer.read();
       
        if (value != oldValue) {
           Serial.print("Switch was ");
           Serial.print(oldValue ? "ON" : "OFF");
           Serial.print(" for: ");
           Serial.print(now() - lastSwitchTime);
           Serial.println(" seconds");
           lastSwitchTime = now();
           
           // Send in the new value 
          if (value < == alarmtime );
           gw.send(msg.set(value==HIGH 1));
           else 
           gw.send(msg.set(value=LOW 0));
           oldValue = value;
      
        }
      } 
      
      // This is called when a new time value was received
      void receiveTime(unsigned long controllerTime) {
         // OK, set incoming time
         Serial.print(F("Time value received: "));
         Serial.println(controllerTime);
         setTime(controllerTime); 
         timeReceived = true;
      }
      

      Arduino: 1.6.7 (Windows 7), Board: "Arduino Nano, ATmega328"

      C:\Users\repair\Documents\Arduino\pump_cycle_time_2.5\pump_cycle_time_2.5.ino: In function 'void loop()':

      pump_cycle_time_2.5:66: error: expected primary-expression before '==' token

       if (value < == alarmtime );
      
                   ^
      

      pump_cycle_time_2.5:67: error: expected ')' before numeric constant

        gw.send(msg.set(value==HIGH 1));
      
                                    ^
      

      pump_cycle_time_2.5:68: error: expected '}' before 'else'

        else 
      
        ^
      

      pump_cycle_time_2.5:69: error: expected ')' before numeric constant

        gw.send(msg.set(value=LOW 0));
      
                                  ^
      

      C:\Users\repair\Documents\Arduino\pump_cycle_time_2.5\pump_cycle_time_2.5.ino: At global scope:

      pump_cycle_time_2.5:73: error: expected declaration before '}' token

      }

      ^

      C:\Users\repair\Documents\Arduino\pump_cycle_time_2.5\pump_cycle_time_2.5.ino: In function 'void loop()':

      pump_cycle_time_2.5:66: error: expected primary-expression before '==' token

       if (value < == alarmtime );
      
                   ^
      

      pump_cycle_time_2.5:67: error: expected ')' before numeric constant

        gw.send(msg.set(value==HIGH 1));
      
                                    ^
      

      pump_cycle_time_2.5:68: error: expected '}' before 'else'

        else 
      
        ^
      

      pump_cycle_time_2.5:69: error: expected ')' before numeric constant

        gw.send(msg.set(value=LOW 0));
      
                                  ^
      

      C:\Users\repair\Documents\Arduino\pump_cycle_time_2.5\pump_cycle_time_2.5.ino: At global scope:

      pump_cycle_time_2.5:73: error: expected declaration before '}' token

      }

      ^

      exit status 1
      exit status 1
      expected primary-expression before '==' token

      expected primary-expression before '==' token

      posted in Troubleshooting
      mikeg291
      mikeg291
    • Moving a Post

      How do you move a post from a category to another category to avoid cross posting ?

      posted in General Discussion
      mikeg291
      mikeg291
    • RE: Binary Switch Timer

      @mikeg291 Arduino: 1.6.7 (Windows 7), Board: "Arduino Nano, ATmega328"

      C:\Users\repair\AppData\Local\Temp\arduino_9fa690567122ca1856b95eff67fbf9b8\pump_cycle_time_2.5.ino: In function 'void loop()':

      pump_cycle_time_2.5:66: error: expected primary-expression before '==' token

       if (value < == alarmtime );
      
                   ^
      

      pump_cycle_time_2.5:67: error: expected ')' before numeric constant

        gw.send(msg.set(value==HIGH 1));
      
                                    ^
      

      pump_cycle_time_2.5:68: error: expected '}' before 'else'

        else 
      
        ^
      

      pump_cycle_time_2.5:69: error: expected ')' before numeric constant

        gw.send(msg.set(value=LOW 0));
      
                                  ^
      

      C:\Users\repair\AppData\Local\Temp\arduino_9fa690567122ca1856b95eff67fbf9b8\pump_cycle_time_2.5.ino: At global scope:

      pump_cycle_time_2.5:73: error: expected declaration before '}' token

      }

      ^

      exit status 1
      expected primary-expression before '==' token

      This report would have more information with
      "Show verbose output during compilation"
      enabled in File > Preferences.

      posted in Development
      mikeg291
      mikeg291
    • RE: Binary Switch Timer

      That fixed the issue. It works great. To further enhance the sketch I added an alarm ,however I get an error as shown . Is there a way ; once the sent value of the alarm is set high that it is not changed based on future reading . requiring an acknowledgement or reset .

      #include <MySensor.h>
      #include <SPI.h>
      #include <Bounce2.h>
      #include <Time.h>
      
      #define CHILD_ID 3
      #define BUTTON_PIN  3  // Arduino Digital I/O pin for button/reed switch
      const int alarmtime = 15;
      MySensor gw;
      Bounce debouncer = Bounce(); 
      int oldValue=-1;
      
      time_t  lastSwitchTime = 0;
      void receiveTime(unsigned long controllerTime);
      bool timeReceived = false;
      
      // Change to V_LIGHT if you use S_LIGHT in presentation below
      MyMessage msg(CHILD_ID,V_TRIPPED);
      
      void setup()  
      {  
        gw.begin();
        // Serial.begin(9600);
       // Setup the button
        pinMode(BUTTON_PIN,INPUT);
        // Activate internal pull-up
        digitalWrite(BUTTON_PIN,HIGH);
        
        // After setting up the button, setup debouncer
        debouncer.attach(BUTTON_PIN);
        debouncer.interval(5);
        
        // Register binary input sensor to gw (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.
         gw.present(CHILD_ID, S_DOOR);  
        
        // Make sure we get the system time, repeat request every 5 seconds until we have a valid time
        gw.requestTime(receiveTime);
        unsigned long lastRequest = millis();
        if ((millis() - lastRequest) >  5000) {
            gw.wait(100);
            gw.requestTime(receiveTime); 
            lastRequest = millis();
         }
         lastSwitchTime = now();
      }
      
      
      //  Check if digital input has changed and send in new value
      void loop() 
      {
        debouncer.update();
        // Get the update value
        int value = debouncer.read();
       
        if (value != oldValue) {
           Serial.print("Switch was ");
           Serial.print(oldValue ? "ON" : "OFF");
           Serial.print(" for: ");
           Serial.print(now() - lastSwitchTime);
           Serial.println(" seconds");
           lastSwitchTime = now();
           
           // Send in the new value
           if (value < == alarmtime );
           gw.send(msg.set(value==HIGH 1));
           else 
           gw.send(msg.set(value=LOW 0));
           oldValue = value;
        
      } 
      
      // This is called when a new time value was received
      void receiveTime(unsigned long controllerTime) {
         // OK, set incoming time
         Serial.print(F("Time value received: "));
         Serial.println(controllerTime);
         setTime(controllerTime); 
         timeReceived = true;
      }
      
      posted in Development
      mikeg291
      mikeg291
    • RE: Binary Switch Timer

      BartE I hope this isn't a test because I just failed . I get the following error when compiling .
      Arduino: 1.6.7 (Windows 7), Board: "Arduino Nano, ATmega328"

      C:\Users\repair\AppData\Local\Temp\arduino_7e89e922452d95ce255568999142a32b\sketch_mar10a.ino: In function 'void setup()':

      sketch_mar10a:43: error: expected primary-expression before ')' token

         if (( millis()- ) {
      
                         ^
      

      sketch_mar10a:43: error: expected ')' before '{' token

         if (( millis()- ) {
      
                           ^
      

      sketch_mar10a:47: error: expected primary-expression before '}' token

      }
      
      ^
      

      sketch_mar10a:47: error: expected ';' before '}' token

      exit status 1
      expected primary-expression before ')' token

      This report would have more information with
      "Show verbose output during compilation"
      enabled in File > Preferences.

      posted in Development
      mikeg291
      mikeg291
    • Binary Switch Timer

      I am trying to use the Binary switch example to monitor the state of a Switch .I want to be able to measure the length of time the switch is not in its normal state e.g.. "how long was the door/window open" I have found numerous timer sketch's but they seem to be for timing when something should happen . Anyone have suggestions or example sketch's

      posted in Development
      mikeg291
      mikeg291
    • RE: Water pressure struggling with sketch

      @tripy Thanks ; Tripy your solution solve the problem and pointed me in new info . I am slowly learning the solutions are available here .

      posted in Troubleshooting
      mikeg291
      mikeg291
    • RE: Water pressure struggling with sketch

      he error that I get is
      Arduino: 1.6.7 (Windows 7), Board: "Arduino Nano, ATmega328"

      C:\Users\repair\Desktop\Ardunio Files\my_pressure_sketch_1\my_pressure_sketch_1.ino: In function 'void loop()':

      my_pressure_sketch_1:34: error: no matching function for call to 'MySensor::send(float&)'

       gw.send (PSI);
      
                   ^
      

      C:\Users\repair\Desktop\Ardunio Files\my_pressure_sketch_1\my_pressure_sketch_1.ino:34:17: note: candidate is:

      In file included from C:\Users\repair\Desktop\Ardunio Files\my_pressure_sketch_1\my_pressure_sketch_1.ino:2:0:

      C:\Program Files (x86)\Arduino\libraries\MySensors/MySensor.h:215:7: note: bool MySensor::send(MyMessage&, bool)

      bool send(MyMessage &msg, bool ack=false);

         ^
      

      C:\Program Files (x86)\Arduino\libraries\MySensors/MySensor.h:215:7: note: no known conversion for argument 1 from 'float' to 'MyMessage&'

      exit status 1
      no matching function for call to 'MySensor::send(float&)'

      This report would have more information with
      "Show verbose output during compilation"
      enabled in File > Preferences.
      @tripy

      posted in Troubleshooting
      mikeg291
      mikeg291
    • Water pressure struggling with sketch

      Can some help with this sketch I can't seem to figure it out. I will be so happy when I get past this newbie stage.

      #include <SPI.h>
      #include <MySensor.h>  
      #define BARO_CHILD 0
      MySensor gw;
      MyMessage pressureMsg(BARO_CHILD, V_PRESSURE);
      
      int pSensor=A0; //assigning pressure sensor to pin A0
      int readValue; //declaring our readValue Variable
      float Voltage; // declare  voltage variable
      float PSI; // declare pressure variable
      
      void setup()
      {
        gw.begin();
      
        // Send the sketch version information to the gateway and Controller
        gw.sendSketchInfo("Water Pressure", "1.1");
      
        // Register sensors to gw (they will be created as child devices)
        gw.present(BARO_CHILD, S_BARO);
      
      
       pinMode(pSensor,INPUT); //declare psensor as a input
       Serial.begin(9600); //start serial port
      }
      
      void loop() {
        
        readValue = analogRead(pSensor); // read psensor and put value in read value
        Voltage = (5./1023.)*readValue; //calculating real  world voltage
        PSI = 17.78*Voltage -8; // Calculate pressure PSI
      
        {
          gw.send (PSI);
        }
      
      Serial.println(PSI); //print results to serial monitor
        delay(1000);   // delay one second
      
      }
      
      posted in Troubleshooting
      mikeg291
      mikeg291