WeatherDuino Forum

Full Version: WeatherDuino Pro2 v2.0 - Software Configuration
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
[Image: WD_Pro2_logo02.png]

This topic is updated every time there is a change in the user configurable options of the WeatherDuino Pro2 v2.0 software. Please refer to it often.

Configure the basic functionalities of the WeatherDuino Pro2 RX, TX and WD software is very easy, and almost self explanatory. Configure some of the advanced features such as the mapping of Extra Sensors and the use of Soil or Leaf sensors may require a little more attention and learning time.
Before programing your system, always revise carefully all user configurable options. Default values often are not suitable to everyone.

The user configurable options for each software are located on a separate tab (Arduino IDE) called, Config_RX, Config_TX and Config_WD.

Bellow an example of the user configurable options for each software:

WeatherDuino Pro2 Universal TX - Version: 3.0 b004 - Software configuration

Code:
// --------------------------------------------------------------------------------------
//    WeatherDuino Pro2 Universal TX - Version: 3.0 b004
//           Start of user configurable options
// --------------------------------------------------------------------------------------


// --------------------------------------------------------------------------------------
//   Define ID and TX unit number
// --------------------------------------------------------------------------------------
#define StationID  0xA1    // Must be equal to your RX Unit (Value from 0x00 to 0xFF)  
#define UnitID        0    // If you use only one TX unit define it as UnitID = 0
                           // For a second TX unit, define it as UnitID = 1

// --------------------------------------------------------------------------------------
//   Define type of Temperature / Humidity sensor used as Sensor 0 and / or Sensor 1
// --------------------------------------------------------------------------------------
#define TH_Sensor0  1      // [SENSOR 0] - 0 for SHT2x sensor, 1 for SHT31 sensor, 2 for HTU21 sensor, 9 for Not Used
#define TH_Sensor1  0      // [SENSOR 1] - 0 for SHT1x sensor, 1 for DHT22 sensor, 9 for Not Used


// --------------------------------------------------------------------------------------
//   Define which Temp / Hum sensor controls the fan, and threshold values
// --------------------------------------------------------------------------------------
#define FanControlSensor  0      // 0 for Sensor 0, 1 for Sensor 1 (which sensor is used to control the RS Fan)
#define fanOn_HiTemp     38      // RS Fan turn on when outside temperature is >= than this value (ºC)
#define fanOn_LowTemp     2      // RS Fan turn on when outside temperature is <= than this value (ºC)
#define fanOn_LowWind     1      // RS Fan turn on when Wind Average is <= than this value (m/s)


// --------------------------------------------------------------------------------------
//   Define Rain Gauge tip boucket value (mm)
// --------------------------------------------------------------------------------------
/*
  Use 0.280 for standard FineOfset rain gauges (Datasheet value = 0.2794)
  Use 0.200 for standard metric Davis rain gauges
  Use 0.254 for standard imperial Davis rain gauges
*/  
#define COLLECTOR_TYPE  0.280  // Please note: Values must be in metric units. Max. resolution: 3 decimal digits
  

// --------------------------------------------------------------------------------------
//   Soil / Leaf Interface Enable Disable
// --------------------------------------------------------------------------------------
#define SoilLeaf_Interface     0   // 0 = Soil Leaf Interface not used, 1 = Enable Soil Leaf Interface
#define Number_AnalogSensors   2   // Up to 4 analog sensors


// --------------------------------------------------------------------------------------
//   Define which data this unit will send. 0 = Not send this data, 1= Send this data
// --------------------------------------------------------------------------------------
#define ID0  1   // Temp/Hum Data
#define ID1  0   // Not Used
#define ID2  1   // Wind data
#define ID3  1   // Rain data
#define ID4  0   // UV / SolRad data
#define ID5  1   // Hardware Status - System Temp, Battery Voltage etc
#define ID7  0   // Send Soil & Leaf Temperature Data
#define ID9  0   // Send Soil & Leaf Moisture / Wetness Data


// --------------------------------------------------------------------------------------
//   Define type of Wind Speed sensor. See below for allowed types
// --------------------------------------------------------------------------------------
/*
--- Fine Offset Anemometers ---
Use 1O for standard FO anemometers
Use 11 for FO anemometer modified with 1 hall effect sensor

--- Inspeed Anemometers ---
Use 20 for Inspeed Vortex, digital 8 pulse revolution anemometer
Use 21 for Inspeed Vortex, hall efect sensor
Use 22 for Inspeed Vortex, read switch sensor

--- Davis Anemometers ---
Use 30 for Davis 6410, 7911 anemometer

--- Novalynx Anemometers ---
Use 40 for Novalynx, model 200-WS-02F

--- Environmental Measurements Limited ---
Use 50 for EML, model WSD1

--- Didcot Instrument Company ---
Use 60 for DIDCOT, model DWR205
*/
#define WSpeedSensor_Type 10             // SEE INFO ABOVE!!!


// --------------------------------------------------------------------------------------
//   Define type of Wind Direction sensor
// --------------------------------------------------------------------------------------
/*
--- Fine Offset Wind Vane ---
Use 1O for standard FO wind vane

--- Inspeed Wind Vane ---
Use 20 for Inspeed E-Vane 2

--- Davis Wind Vane ---
Use 30 for Davis 6410 wind vane

--- Novalynx Wind Vane
Use 40 for Novalynx, model 200-WS-02F

--- Environmental Measurements Limited Wind Vane ---
Use 50 for EML, model model WSD1

   --- Didcot Instrument Company ---
Use 60 for DIDCOT, model DWD205
*/
#define WDirSensor_Type  10  // SEE INFO ABOVE!!!


// --------------------------------------------------------------------------------------
//          Inspeed Vane Calibration
//    Calibration values for Inspeed E-Vane 2
// --------------------------------------------------------------------------------------
#define WDir_min         60
#define WDir_max        990
#define WDir_offs         0


// --------------------------------------------------------------------------------------
//   Hardware settings
// --------------------------------------------------------------------------------------
// SHT31 I2c Address
// Default address will work most of the times!
#define SHT31_address 0x44           // Default value is 0x44, but it can be changed to 0x45

// --------------------------------------------------------------------------------------
//   Debug
// --------------------------------------------------------------------------------------
#define Debug_Enable      false
#define DebugID0          false
#define DebugID2          false
#define DebugID3          false
#define DebugID4          false
#define DebugID5          false
#define Easyweather_Test  false
#define Debug_SLinterface false


// ---------------------------------------------------------------------------------------------------
//     End of user configurable options
// ---------------------------------------------------------------------------------------------------


WeatherDuino Pro2 RX v2.0 b020 - Software configuration


Code:
// --------------------------------------------------------------------------------------
//  WeatherDuino Pro2 - Version: 2.00 b020
//        User configurable options
// --------------------------------------------------------------------------------------

// --------------------------------------------------------------------------------------
//   Define ID's for this weather station
// --------------------------------------------------------------------------------------
#define Station_ID     0xA1   // Station_ID, use the same value in all TX units
#define Relay_ID       0xA3   // Relay_ID,   use the same value in all WD units


// --------------------------------------------------------------------------------------
//   Define your Weather Station location
// --------------------------------------------------------------------------------------
#define LATITUDE      392    // Put here your Station latitude in tenths of degrees North
#define LONGITUDE     -89    // Put here your Station longitude in tenths of degrees (minus for West)
#define ELEVATION     124    // Put here your Station height above sea level in Meters


// --------------------------------------------------------------------------------------
//   Define Roll Over Hour for Meteorological Day
// --------------------------------------------------------------------------------------
#define MeteoDay_HStart   0   // Use values from 0 to 23


// --------------------------------------------------------------------------------------
//   Define Software Operation Mode
// --------------------------------------------------------------------------------------
#define Work_Mode         0   // Mode 0= Davis VP2 Emulation Mode, Mode 1= EasyWeather Mode


// --------------------------------------------------------------------------------------
//   Define your Display type
// --------------------------------------------------------------------------------------
#define DisplayType       0   // 0= LCD 20x4, 2= LCD 16x2


// --------------------------------------------------------------------------------------
//   Define Display Backlight TimeOut
// --------------------------------------------------------------------------------------
// ---- For old RX boards, version <= 3.01 always set this value to 0
const byte  BackLight_Timeout =  30;   // Timeout for display backlight in minutes (1 to 255). 0 = Always ON


// --------------------------------------------------------------------------------------
//   Define data display units
// --------------------------------------------------------------------------------------
#define Date_Time_Format    0    // 0 for dd-mm-yyyy, 1 for yyyy/mm/dd
#define Temp_Display_Unit   0    // 0 for ºC, 1 for ºF
#define ATM_Display_Unit    0    // 0 for mBar, 1 for inHg
#define Rain_Display_Unit   0    // 0 for mm (no other options)
#define Wind_Display_Unit   0    // 0 for Km/h, 1 for mph, 2 for m/s, 3 for Knots

// --------------------------------------------------------------------------------------
//   Fine adjusts for Inside Temperature and Barometer
// --------------------------------------------------------------------------------------
const int   TemperaturaInt_offset = 0;   // Inside Temperature Fine Adjust in Tenths of Degree (-4 = -0,4ºC)
const float SeaLevel_ATM_offset   = 0;   // Pressure Fine Adjust in mB


// --------------------------------------------------------------------------------------
//   Define Wind Speed and Wind Gust resolution
// --------------------------------------------------------------------------------------
#define VP2_WindRes     2    // If set to 2, set Cumulus Wind Speed and Wind Gust multipliers to 0.448. Wind Resolution 0.72 Km/h (limite 183.6 Km/h)
                             // If set to 1, set Cumulus Wind Speed and Wind Gust multipliers to 0.224. Wind Resolution 0.36 Km/h (limite 91.8 Km/h)
                             // WARNING !!! Setting this variable to 1 allows a better wind speed and gust resolution,
                             // but also limits both of them, to a maximum reading of just 91.8 Km/h
                             // This setting only have effect when the software is used in Davis VP2 emulation mode
                             // If set to 0, system uses Standard Davis 1 mph wind resolution (limite 241 Km/h).

  
// --------------------------------------------------------------------------------------
//   Define use of Wind Gust Spike prevention routines
// --------------------------------------------------------------------------------------
#define WindSpikeControl 1   // 0= Disable, 1= Enable


// --------------------------------------------------------------------------------------
//   Define the type of your inside Temperature / Humidity Sensor
//   * Auriol users can't use the SHT31 sensor
// --------------------------------------------------------------------------------------
#define InsideTH_Sensor  1   // 0= DHT22, 1= HTU21D, 2= SHT21, 3*= SHT31


// --------------------------------------------------------------------------------------
//   Define the type of your outside Temperature / Humidity Sensor
// --------------------------------------------------------------------------------------
#define MainOutTH_Sensor 0   // 0 for sensor type SHT31, SHT2x or HTU21D, 1 for sensor type SHT1x or DHT22 (Always 0 when working with Auriol and clones)


// --------------------------------------------------------------------------------------
//   Define the source of your main outside sensors
// --------------------------------------------------------------------------------------
// ---- If you have all the sensors connected to only one TX board, always select Unit 0 as source
// ---- Define the source of your main Temperature / Humidity sensor
#define TH_OutUnit       0   // 0 for Temp/Hum sensor connected to TX_Unit 0, 1 for Temp/Hum sensor connected to TX_Unit 1, 3 for Auriol RF Wind Speed
// ---- Define the source of your Main Wind sensor
#define WIND_OutUnit     0   // 0 for Wind instruments connected to TX_Unit 0, 1 for TX_Unit 1, 3 for Auriol RF Wind Dir
// ---- Define the source of your main Rain Gauge
#define RAIN_OutUnit     0   // 0 for Rain Gauge connected to TX_Unit 0, 1 for TX_Unit 1, 3 for Auriol RF Rain Gauge
// ---- Define the source of your main Solar / UV sensores
#define SRUV_OutUnit     9   // 0 for Solar Rad / UV sensors connected to TX_Unit 0, 1 for TX_Unit1, 9 for not used
// ---- Define installed Solar / UV Sensors
#define Solar_Sensor     0   // 0 for not present; 1 for present
#define UV_Sensor        0   // 0 for not present; 1 for present
#define UV_Transmission 70   // UV Transmission percentage of UV sensor cover material

// --------------------------------------------------------------------------------------
//   Extra Sensors Settings and Mapping
// --------------------------------------------------------------------------------------
// ---- Define the TX source and sensor number of each of the five extra sensors, insert 9 if not used.
// ---- Source 0 means TX unit0, 1 means TX unit1... (sensor type SHT21 or HTU21D is number 0, sensor type SHT1x or DHT22 is number 1)
// ---- First field is Source = TX unit number, Second field = Sensor number (0 or 1) in the TX unit
// ---- Example:
// ----                          ES0   ES1   ES2   ES3   ES4   ES5   ES6    
//#define ExtraSensors_Source { {0,1},{1,0},{9,9},{9,9},{9,9},{9,9},{9,9} }
//                              {0,1} - First extra sensor, is sensor 1 from TX unit0
//                                    {1,0} - Second extra sensor, is sensor 0 from TX unit1            


//-----                        ES1   ES2   ES3   ES4   ES5
#define ExtraSensors_Source { {9,9},{9,9},{9,9},{9,9},{9,9} }


// --------------------------------------------------------------------------------------
//   ADVANCED FEATURE - Soil / Leaf Interface Settings
// --------------------------------------------------------------------------------------
#define SoilLeaf_Interface 0  // 0= Not used, 1= In use

// ---- Soil & Leaf Sensors Mapping
// ---- Use the same logic than for Extra Sensors
// ---- As source use the TX Unit number where the Soil / Leaf is connected
// ---- For an unused sensor use 9 in both fields
//                                 S1    S2    S3    S4
#define SoilTempSensors_Source  { {9,9},{9,9},{9,9},{9,9} }
#define LeafTempSensors_Source  { {9,9},{9,9},{9,9},{9,9} }
#define SoilMoistSensors_Source { {9,9},{9,9},{9,9},{9,9} }
#define LeafWetSensors_Source   { {9,9},{9,9},{9,9},{9,9} }

// Define VWC calculation method
// Method 1 applies only for VH400 soil moisture sensor
//
// METHOD 1 - Conversion from voltage to VWC (volumetric water content) is done using the piecewise regressions provided by the manufacturer
// at http://www.vegetronix.com/Products/VH400/VH400-Piecewise-Curve.phtml
//
// METHOD 2 - Used for any sensor which have a linear output between voltage and VWC (0V=0VWC, maxV=100VWC) .

#define VWC_CalcMethod 1    // Use 1 or 2

// Max and Min output voltage of the analog sensors connected to Soil / Leaf Interface
// Default value for Decagon Devices LWS Leaf Wetness Sensor (5V power): Max. Output Voltage - 1400mV (max wetness), Min Output Voltage - 530mV (dry)

//                                                  ADC1  ADC2  ADC3  ADC4  
const unsigned int AnalogSensor_MaxVoltOut[4]   = { 3000, 1400, 5000, 5000 };    // Values in miliVolt
const unsigned int AnalogSensor_MinVoltOut[4]   = {    0,  530,    0,    0 };


// --------------------------------------------------------------------------------------
//   Enable / Disable Relay Data to Wireless Display Units  (Don't enable without an antenna attached to RF output)
// --------------------------------------------------------------------------------------
#define Relay_Data       1   // 0= Disable, 1= Enable


// --------------------------------------------------------------------------------------
//   Davis compatible Data Logger Settings
// --------------------------------------------------------------------------------------
#define Logger_Enable    1   // 0= Disable, 1= Enable
byte ARCHIVE_PERIOD  =   5;  // Default Archive Period in Minutes (Usable values: 1, 5, 10, 15, 30, 60 or 120)


// --------------------------------------------------------------------------------------
//   Enable / Disable GPO - General Purpose Output (on boards <= v5.xx use Led+, Led- pins)
// --------------------------------------------------------------------------------------
#define UseGPO           0   // 0=Disable, 1= Enable


// --------------------------------------------------------------------------------------
//   Test Mode : Never run a live system in test mode
// --------------------------------------------------------------------------------------
#define TestMode    false   // false or true


// --------------------------------------------------------------------------------------
//   Hardware settings
// --------------------------------------------------------------------------------------
// ---- Define your RX board, main version number
#define Board_Version    6     // 6 for all RX boards v6.xx, 5 for all RX boards v5.xx, 4 for all RX boards v4.xx

// ---- Define LCD I2C address
// Only change this if your LCD don't display any data. I2C_Scanner utility may help you to find the address of your LCD display
// Default address will work most of the times!
#define LCD_I2C_Address 0x27  

// --------------------------------------------------------------------------------------
//   Presure Sensor Address (no need to change)
// --------------------------------------------------------------------------------------
//#define BMP085_ADDRESS 0x77    // I2C address of BMP085 or BMP180


// --------------------------------------------------------------------------------------
//   SHT31 I2C Address - Default address will work most of the times!
// --------------------------------------------------------------------------------------
#define SHT31_address 0x44       // Default value is 0x44, but it can be changed to 0x45


// ---------------------------------------------------------------------------------------------------
//     End of user configurable options
// ---------------------------------------------------------------------------------------------------


WeatherDuino Pro2 WD v2.0 b008 - Software configuration


Code:
// --------------------------------------------------------------------------------------
//   User configurable options
// --------------------------------------------------------------------------------------

// --- Relay ID, use the value set for Realy_ID in your Main RX unit
const byte Relay_ID = 0xA3;

// --- Define your Display type
#define DisplayType           1    // 0= TFT 160x128 ST7735, 1= TFT 320x240 ILI9341, 4= 20x4 LCD, 5= 16x2 LCD

// --- Define if your ILI9341 Display have touch capabilities - ATENTION! Requires WD board v2.20 or greater
#define Touch_Display         1    // 0= Display without touch panel, 1 = Display with touch panel

// --- Define Backlight timeOut
byte BackLight_Timeout    =  10;   // Timeout for TFT backlight in minutes (1 to 255). 0= Always ON

// --- Use local TH sensor or Main Station TH sensor for Inside Temp / Hum display
#define UseLocalTH_Sensor     1    // 1= Local TH Sensor, 0= Main Station TH sensor

// --- Define type of Local TH sensor
#define InsideTH_Sensor       1    // 0= DHT22, 1= HTU21D, 2= SHT21, 3= SHT31

// --- Fine adjusts for Local Inside Temperature
int TemperaturaInt_offset =   0;   // Inside Temperature Fine Adjust in Tenths of Degrees

#define Board_Type            1    // 1= Wireless Display Boards >= 2.xx, 0= Others (Old RX converted boards)

//------  Extra Sensors Label -  "Máx 8 chars" ----------
const char ExtraSensName[5][9]= {"Telhado ",
                                 "LagoAgua",
                                 "Alpendre",
                                 "Main Out",
                                 "1-Wire 0"};

//------  Soil Sensors Label -  "Máx 8 chars" ----------
const char SoilSensName[4][9]= {"Solo Frt",
                                "Not Inst",
                                "Not Inst",
                                "LagoAgua"};

//------  Extra Sensors Label -  "Máx 8 chars" ----------
const char LeafSensName[4][9]= {"Folhas  ",
                                "Not Inst",
                                "Not Inst",
                                "Not Inst"};                                


// --------------------------------------------------------------------------------------
//   Hardware settings
// --------------------------------------------------------------------------------------
// SHT31 I2c Address
// Default address will work most of the times!
#define SHT31_address 0x44           // Default value is 0x44, but it can be changed to 0x45

// ---------------------------------------------------------------------------------------------------
//     End of user configurable options
// ---------------------------------------------------------------------------------------------------

Questions about user configurable options, please post them on this topic.
Werk,
In your examples the station I'd in the Tx is "0xB1" and the RX is shown as "0xA1", whereas it states thy must be the same value?
Regards
Jim
Hi Jim,
You are right! The Station ID must have the same value on the Config_RX.h and Config.TX.h files. It can be any value between 0x00 and 0xFF.
Also, the Relay_ID should be different from Station_ID.
To avoid any confusion, I have edited the value on the examples above.
Thank you.
Hi Werk_AG,

I've noticed that in new "universal" software for TX is recommended coefficient for standard FineOfset
rain gauge 0.280, but earlier we have 0.300.

It's not a mistake, it really true?

Thank you for answer.
Well, the only thing similar to a datasheet for the Fine Offset rain gauge that I can found, is this document from Argent Data Systems which refers to a weather station which uses Fine Offset sensors.
In this document we can read:

Rain Gauge
The rain gauge is a self-emptying tipping bucket type. Each 0.011”
(0.2794 mm) of rain causes one momentary contact closure that can
be recorded with a digital counter or microcontroller interrupt input.
The gauge’s switch is connected to the two center conductors of the
attached RJ11-terminated cable.


Also, we can find on Cumulus forum, some tests done by individuals:

The bucket needs 1.5 ml water to tip it (result of 3 tests using a syringe and counting the number of tips to take 7.5 ml = 5, 7.5/5 = 1.5).
1.5 ml divided by 55 cm^2 gives 0.0273 cm or 0.273 mm of rainfall per tip of the bucket not 0.3 mm as used in all the rainfall calculations.


which seems to confirm, that the value of each tip bucket expressed on the Argent data Systems documents is the correct value. However, as the Fine Offset rain gauges have the well know problem of under reading (specially during heavy rain), to compensate this, commonly the value of 0.3mm is used, which increases the readings by around 9%

In this new software version, I opted to use the factory value of 0.2794mm rounded to 0.280mm
I am afraid the FO gauge almost certainly reads only a representation of the rain not a measure of the rain. See here for calibration,

http://www.meteocercal.info/forum/Thread...07#pid2607

A good way of checking is to buy a plastic manual gauge with a decent diameter,(100mm to 150mm) and use it for a month or so.

http://www.ebay.co.uk/itm/The-REMEX-rain...SHDkFN0Y9g
(17-03-2017, 03:04)Werk_AG Wrote: [ -> ]In this new software version, I opted to use the factory value of 0.2794mm rounded to 0.280mm

Thank you for the explanation.  Smile