Re: Two hotwire wind sensors ?


Howard Dutton
 


Guess the following should work.  It takes the higher windspeed from the two devices and returns that...

// -----------------------------------------------------------------------------------------------------------------
// gets windspeed in kph
// for the Modern Devices wind sensor, https://moderndevice.com/product/wind-sensor-rev-p/

#define HotWire1Pin A6    // wind sensor analog pin hooked up to Wind P sensor "OUT" pin (primary)
#define HotWire2Pin OFF   // wind sensor analog pin hooked up to Wind P sensor "OUT" pin (secondary)

// return (invalid) if not implemented or if there's an error
double weatherWindspeed() {
  int hw1ADU;
  int hw2ADU;
  if (!windspeedGood) return (invalid);

  hw1ADU = analogRead(HotWire1Pin);
  if (HotWire2Pin != OFF) hw2ADU = analogRead(HotWire2Pin); else hw2ADU = hw1ADU;

  double windMPH1 = pow((((float)hw1ADU - 264.0) / 85.6814), 3.36814);
  if (isnan(windMPH1)) windMPH1 = 0;
  double windKPH1 = windMPH1 * 1.60934;

  double windMPH2 = pow((((float)hw2ADU - 264.0) / 85.6814), 3.36814);
  if (isnan(windMPH2)) windMPH2 = 0;
  double windKPH2 = windMPH2 * 1.60934;

  if (windKPH2 > windKPH1windKPH1 = windKPH2;

  if (windKPH1 < 0 || windKPH1 > 350windKPH1 = invalid;
  return (windKPH1);
}

bool initWindspeed() {
  return true;
}

Join onstep-ocs@onstep.groups.io to automatically receive all group messages.