Navigation

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

    JohanRC

    @JohanRC

    Always intrested in new gadgets :)

    1
    Reputation
    12
    Posts
    511
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online
    Location The Netherlands Age 44

    JohanRC Follow

    Best posts made by JohanRC

    • RE: Dallas DS18B20 compiling error

      Thanx 😀
      The compiling errors are now solved!

      Unfortunately the problem is not solved yet, the led L flashes a couple of times when starting and after that it starts to burn softly.
      It looks like it stops working after this.

      The Nano and Dallas sensors are connected OK, when I check it with a simple sketch I can reed the temperatures through the serial connection.

      alt text

      posted in Troubleshooting
      JohanRC
      JohanRC

    Latest posts made by JohanRC

    • RE: Dallas DS18B20 compiling error

      Thanx 😀
      The compiling errors are now solved!

      Unfortunately the problem is not solved yet, the led L flashes a couple of times when starting and after that it starts to burn softly.
      It looks like it stops working after this.

      The Nano and Dallas sensors are connected OK, when I check it with a simple sketch I can reed the temperatures through the serial connection.

      alt text

      posted in Troubleshooting
      JohanRC
      JohanRC
    • Dallas DS18B20 compiling error

      Hi All,

      I am having a problem with compiling the code for 3 Dallas DS18B20 temperature sensors.
      I am using the IDE 1.6.12 with fresh library's imported as per these instructions.

      The errors are in this piece of code:

       // query conversion time and sleep until conversion completed
        int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
        // sleep() call can be replaced by wait() call if node need to process incoming messages (or if node is repeater)
        sleep(conversionTime);
      

      The errors I am getting are as follows:

      In file included from C:\Users\johan\Documents\Arduino\examples\DallasTemperatureSensor\DallasTemperatureSensor.ino:37:0:
      
      C:\Users\johan\Documents\Arduino\libraries\DallasTemperature/DallasTemperature.h: In function 'void loop()':
      
      C:\Users\johan\Documents\Arduino\libraries\DallasTemperature/DallasTemperature.h:252:13: error: 'int16_t DallasTemperature::millisToWaitForConversion(uint8_t)' is private
      
           int16_t millisToWaitForConversion(uint8_t);
      
                   ^
      DallasTemperatureSensor:85: error: within this context
      
         int16_t conversionTime = sensors.millisToWaitForConversion(sensors.getResolution());
                                                                                         ^
      exit status 1
      within this context
      
      

      At this moment I am completely clueless on how to continue.

      Thanx in advance!
      Best regards Johan

      posted in Troubleshooting
      JohanRC
      JohanRC
    • RE: Wind speed sensor node

      Yesterday I found some example code on the Domoticz forum.

      With some modifications I get numbers in wind 😃

      As below my current sketch that sends values, I will modify it untill it is what I like and will post it here.

      #include <SPI.h>
      #include <MySensor.h>  
      
      #define CHILD_ID_WIND 20
      
      #define LED_PIN 8
      
      #define ID_WIND 170
      
      #define WIND_SENSOR_ANALOG_PIN 1
      
      MySensor gw;
      unsigned int val_wspeed;
      unsigned int val_wgust;
      unsigned int val_wdirection;
      
      
      unsigned int last_wspeed;
      unsigned int last_wgust;
      unsigned int last_wdirection;
      
      
      boolean metric = true; 
      
      unsigned long currentTime;
      unsigned long SEND_FREQUENCY = 10000;
      unsigned long lastSend;
      
      MyMessage msgWSpeed(CHILD_ID_WIND, V_WIND);
      MyMessage msgWGust(CHILD_ID_WIND, V_GUST);
      MyMessage msgWDirection(CHILD_ID_WIND, V_DIRECTION);
      
      //Setup routine
      void setup()  
      { 
        
          // Initialize library and add callback for incoming messages
        gw.begin();
      
        // Send the Sketch Version Information to the Gateway
        gw.sendSketchInfo("Windsensor", "0.1");
      
        // Register all sensors to gw (they will be created as child devices)
        gw.present(CHILD_ID_WIND, S_WIND);
      
        metric = gw.getConfig().isMetric;
        lastSend = 0;
      
        pinMode(LED_PIN, OUTPUT); 
        digitalWrite(LED_PIN,1);
      }
      
      //Main loop
      void loop()      
      {  
        gw.process();
       
        currentTime = millis();
        
        unsigned int val_wspeed = (analogRead(WIND_SENSOR_ANALOG_PIN))/31.605; 
        
          if(last_wspeed != val_wspeed)
          { 
             last_wspeed = val_wspeed;
             gw.send(msgWSpeed.set(val_wspeed, 1));
             Serial.print("WS: ");
             Serial.println(val_wspeed);
          }
          
          unsigned int val_wgust = (analogRead(WIND_SENSOR_ANALOG_PIN))/31.605; 
          if(last_wgust != val_wgust)
          { 
             last_wgust = val_wgust;
             gw.send(msgWGust.set(val_wgust, 1));
             Serial.print("WG: ");
             Serial.println(val_wgust);
          }
          
          unsigned int val_wdirection = (analogRead(WIND_SENSOR_ANALOG_PIN))/2.842; 
          if(last_wdirection != val_wdirection)
          { 
             last_wdirection = val_wdirection;
             gw.send(msgWDirection.set(val_wdirection, 1));
             Serial.print("WD: ");
             Serial.println(val_wdirection);
          }
      }
      
      posted in Hardware
      JohanRC
      JohanRC
    • RE: Wind speed sensor node

      @kenci
      Ah I checked the manufacturers data again and now see what you mean 🙂
      I will change this, thanx!

      posted in Hardware
      JohanRC
      JohanRC
    • RE: Wind speed sensor node

      My current code that is not sending info is:

      #include <SPI.h>
      #include <MySensor.h>  
      
      #define CHILD_ID_WIND 1
      #define WIND_SENSOR_ANALOG_PIN 1
      
      unsigned long SLEEP_TIME = 10000; // Sleep time between reads (in milliseconds)
      
      MySensor gw;
      MyMessage msg(CHILD_ID_WIND, V_WIND);
      float lastWindLevel;
      
      void setup()  
      { 
        gw.begin();
      
        // Send the sketch version information to the gateway and Controller
        gw.sendSketchInfo("Wind Sensor", "2.0");
      
        // Register all sensors to gateway (they will be created as child devices)
        gw.present(CHILD_ID_WIND, S_WIND);
      }
      
      void loop()      
      {     
        float windLevel = (analogRead(WIND_SENSOR_ANALOG_PIN))/31.605; 
        Serial.println(windLevel);
        if (windLevel != lastWindLevel) {
            gw.send(msg.set(windLevel, 1));
            lastWindLevel = windLevel;
        }
        gw.sleep(SLEEP_TIME);
      }
      

      The code that is sending data (in lux) is:

      #include <SPI.h>
      #include <MySensor.h>  
      
      #define CHILD_ID_WIND 1
      #define WIND_SENSOR_ANALOG_PIN 1
      
      unsigned long SLEEP_TIME = 10000; // Sleep time between reads (in milliseconds)
      
      MySensor gw;
      MyMessage msg(CHILD_ID_WIND, V_LIGHT_LEVEL);
      float lastWindLevel;
      
      void setup()  
      { 
        gw.begin();
      
        // Send the sketch version information to the gateway and Controller
        gw.sendSketchInfo("Wind Sensor", "2.0");
      
        // Register all sensors to gateway (they will be created as child devices)
        gw.present(CHILD_ID_WIND, S_LIGHT_LEVEL);
      }
      
      void loop()      
      {     
        float windLevel = (analogRead(WIND_SENSOR_ANALOG_PIN))/31.605; 
        Serial.println(windLevel);
        if (windLevel != lastWindLevel) {
            gw.send(msg.set(windLevel, 1));
            lastWindLevel = windLevel;
        }
        gw.sleep(SLEEP_TIME);
      }
      

      I dont really see why my formula is wrong, my sensor output is 0V to 5V in wind ranging from 0m/s to 32,4ms.
      This means when I have 5V on the input sensor (32,4m/s) I will measure a value of 1023 when I devide this through 31,605 I will read a value of 32,368 m/s
      I have made it a float and rounded it to one decimal, so I dont realy see the problem here (please correct me if I am wrong)

      I am more and more suspecting that there might be something going on on the Domoticz side.

      posted in Hardware
      JohanRC
      JohanRC
    • RE: Wind speed sensor node

      @sundberg84
      This might be a good tip, I did not add any new node in Domoticz but I waited until would appear automaticly, this ofcourse did not happen. So I need to find out how to manually add a new node in Domoticz. (I am only a 3 days old baby regarding to Domoticz😄 )

      @mfalkvidd
      My latest sketch is the one I last posted in post 8.

      Already thanks for all the input I am not there yet but I think were getting close 🙂
      When finished I think it would perhaps be a good idea to post the code as an example so more people can have the benefits of it.

      Greetz Johan

      posted in Hardware
      JohanRC
      JohanRC
    • RE: Wind speed sensor node

      @sundberg84
      No unfortunatly this is not the problem, the setup is still on my kitchen table so i can "produce wind with my finger" 🙂

      The thing is when I leave the V and S values to "Light" it transfers the data without any problems you can aslo see this in the log file between 07:05 and 07:06.
      But when I change it to WIND there is no transfer of data anymore, I can see by the TX light on my Arduino nano that it is sending info.

      posted in Hardware
      JohanRC
      JohanRC
    • RE: Wind speed sensor node

      At 7:08 I changed to the "Wind" code, as you can see it sends its sketch info but nothing more

      2016-01-20 07:01:02.472 Domoticz V2.3530 (c)2012-2015 GizMoCuz
      2016-01-20 07:01:02.474 Build Hash: 9eef872, Date: 2015-11-01 11:41:18
      2016-01-20 07:01:02.475 System: Raspberry Pi
      2016-01-20 07:01:02.475 Startup Path: /home/pi/domoticz/
      2016-01-20 07:01:02.850 Sunrise: 08:32:00 SunSet:16:57:00
      2016-01-20 07:01:02.850 EventSystem: reset all events...
      2016-01-20 07:01:02.904 Active notification subsystems: (0/10)
      2016-01-20 07:01:03.062 Webserver started on port: 8080
      2016-01-20 07:01:03.117 Webserver started on port: 443
      2016-01-20 07:01:03.143 Started shared server on: 0.0.0.0
      2016-01-20 07:01:05.148 EventSystem: reset all events...
      2016-01-20 07:01:05.149 EventSystem: reset all device statuses...
      2016-01-20 07:01:05.151 EventSystem: Started
      2016-01-20 07:01:06.148 MySensors: Using serial port: /dev/ttyUSB0
      2016-01-20 07:01:07.627 MySensors: Gateway Ready...
      2016-01-20 07:01:07.703 MySensors: Gateway Version: 1.5
      2016-01-20 07:02:01.877 (Arduino_Gateway) Humidity (Unknown)
      2016-01-20 07:02:21.109 (Arduino_Gateway) General/Barometer (Barometer)
      2016-01-20 07:02:33.803 Incoming connection from: 192.168.2.104
      2016-01-20 07:02:34.397 (Arduino_Gateway) Humidity (Unknown)
      2016-01-20 07:03:26.039 (Arduino_Gateway) General/Barometer (Barometer)
      2016-01-20 07:03:34.371 (Arduino_Gateway) Lux (Windmeter)
      2016-01-20 07:03:39.421 (Arduino_Gateway) Humidity (Unknown)
      2016-01-20 07:04:06.690 (Arduino_Gateway) Lux (Windmeter)
      2016-01-20 07:04:30.971 (Arduino_Gateway) General/Barometer (Barometer)
      2016-01-20 07:05:05.811 MySensors: Node: 4, Sketch Name: Light Sensor
      2016-01-20 07:05:05.822 MySensors: Node: 4, Sketch Version: 1.0
      2016-01-20 07:05:05.837 (Arduino_Gateway) Lux (Windmeter)
      2016-01-20 07:05:38.195 (Arduino_Gateway) Lux (Windmeter)
      2016-01-20 07:06:10.553 (Arduino_Gateway) Lux (Windmeter)
      2016-01-20 07:06:42.911 (Arduino_Gateway) Lux (Windmeter)
      2016-01-20 07:07:15.274 (Arduino_Gateway) Lux (Windmeter)
      2016-01-20 07:08:02.692 MySensors: Node: 4, Sketch Version: 1.0
      2016-01-20 07:08:11.010 MySensors: Node: 4, Sketch Name: Light Sensor
      2016-01-20 07:08:11.017 MySensors: Node: 4, Sketch Version: 1.0
      2016-01-20 07:08:50.713 (Arduino_Gateway) General/Barometer (Barometer)
      2016-01-20 07:09:36.974 (Arduino_Gateway) Humidity (Unknown)
      2016-01-20 07:09:55.656 (Arduino_Gateway) General/Barometer (Barometer)

      posted in Hardware
      JohanRC
      JohanRC
    • RE: Wind speed sensor node

      This is the sketch that is working with just changing the formula:

      #include <SPI.h>
      #include <MySensor.h>  
      
      #define CHILD_ID_LIGHT 0
      #define LIGHT_SENSOR_ANALOG_PIN 0
      
      unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
      
      MySensor gw;
      MyMessage msg(CHILD_ID_LIGHT, V_LIGHT_LEVEL);
      int lastLightLevel;
      
      void setup()  
      { 
        gw.begin();
      
        // Send the sketch version information to the gateway and Controller
        gw.sendSketchInfo("Light Sensor", "1.0");
      
        // Register all sensors to gateway (they will be created as child devices)
        gw.present(CHILD_ID_LIGHT, S_LIGHT_LEVEL);
      }
      
      void loop()      
      {     
        int lightLevel = (analogRead(LIGHT_SENSOR_ANALOG_PIN))/31.605; 
        Serial.println(lightLevel);
        if (lightLevel != lastLightLevel) {
            gw.send(msg.set(lightLevel));
            lastLightLevel = lightLevel;
        }
        gw.sleep(SLEEP_TIME);
      }
      

      And than when I change it like below it doent seem to do anything anymore

      #include <SPI.h>
      #include <MySensor.h>  
      
      #define CHILD_ID_LIGHT 0
      #define LIGHT_SENSOR_ANALOG_PIN 0
      
      unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
      
      MySensor gw;
      MyMessage msg(CHILD_ID_LIGHT, V_WIND);
      int lastLightLevel;
      
      void setup()  
      { 
        gw.begin();
      
        // Send the sketch version information to the gateway and Controller
        gw.sendSketchInfo("Light Sensor", "1.0");
      
        // Register all sensors to gateway (they will be created as child devices)
        gw.present(CHILD_ID_LIGHT, S_WIND);
      }
      
      void loop()      
      {     
        int lightLevel = (analogRead(LIGHT_SENSOR_ANALOG_PIN))/31.605; 
        Serial.println(lightLevel);
        if (lightLevel != lastLightLevel) {
            gw.send(msg.set(lightLevel));
            lastLightLevel = lightLevel;
        }
        gw.sleep(SLEEP_TIME);
      }
      

      I think it is somewhere wrond in comunication text or something (I mean have a resonable amount of experiance in Arduino programming only not in the communication part).

      Thanks!

      posted in Hardware
      JohanRC
      JohanRC
    • RE: Wind speed sensor node

      Hmmz, just changing V_LIGHT_LEVEL to V_WIND and S_LIGHT_LEVEL to S_WIND doesnt seem to do the trick.
      When these values are changed, Domoticz does not seem to recognize it any more (no new devices or updated lux values).

      I think I am missing something here.

      posted in Hardware
      JohanRC
      JohanRC