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
JohanRCJ

JohanRC

@JohanRC
About
Posts
12
Topics
2
Shares
0
Groups
0
Followers
0
Following
0

Posts

Recent Best Controversial

  • Dallas DS18B20 compiling error
    JohanRCJ JohanRC

    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

    Troubleshooting

  • Dallas DS18B20 compiling error
    JohanRCJ JohanRC

    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

    Troubleshooting

  • Wind speed sensor node
    JohanRCJ JohanRC

    Yesterday I found some example code on the Domoticz forum.

    With some modifications I get numbers in wind :smiley:

    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);
        }
    }
    
    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

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

    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

    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.

    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

    @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:smile: )

    @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

    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

    @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.

    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

    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)

    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

    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!

    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

    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.

    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

    Thanks guys I will try to change these valuess :)

    For the anemometer I use to following:
    http://www.aliexpress.com/item/0-5V-voltage-wind-speed-sensor-Voltage-output-Anemometer-360-degree-wind-speed-sensor/32371852577.html

    Greetz Johan

    Hardware

  • Wind speed sensor node
    JohanRCJ JohanRC

    Hi,

    I am building a wind speed sensor node, but I am having diffictulty's in programming the code since I have not found any example code.
    It is probably very easy but hey I am NOOB ;)

    The sensor I am using has a 0 to 5V analog output for windspeeds from 0 to 32,4 m/s.
    So what I did right now is I took the lightsensor example code and changed the formula to give me the value in m/s instead of lux, this already works.

    But now I would also like it that my Domoticz gateway would also see it as a wind speed sensor instead of a light sensor.

    Any hints/tips/help would be greatly appriciated!

    Greetz Johan

    Hardware
  • Login

  • Don't have an account? Register

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