Hola Amigos
Estoy intentando adaptar el sensor Grove - Barometer HP206C a Arduino Yun, con la mini board del sensor éste se conecta directamente al micro-controlador via I2C bus en su bas shield.
El caso es que en el código se aplica el Filtro de Kalman (mediante la libreria “<KalmanFilter.h>” para reducir el ruido y mejorar el resultado, pero obtengo este error:
sketch_aug15b.ino:103:35: error: no match for call to ‘(KalmanFilter) (float&)’
sketch_aug15b.ino:117:36: error: no match for call to ‘(KalmanFilter) (float&)’
sketch_aug15b.ino:131:33: error: no match for call to ‘(KalmanFilter) (float&)’
A continuación pongo el código por si alguien me puede ayudar u orientar.
Un saludo
unsigned char ret = 0;
KalmanFilter t_filter; //temperature filter
KalmanFilter p_filter; //pressure filter
KalmanFilter a_filter; //altitude filter
#define DHTPIN 2 // pin de salida
#define DHTTYPE DHT22 // DHT 22
DHT dht(DHTPIN, DHTTYPE);
void setup()
{
Bridge.begin();
Serial.begin(9600);
Serial.println("****HP20x & DHT22 temperature by Wi_sen****\n");
Serial.println("Calculation formula: H = [8.5(101325-P)]/100 \n");
delay(150);
HP20x.begin();
dht.begin();
while(!Serial);
/* Reset HP20x_dev */
delay(100);
ret = HP20x.isAvailable();
if(OK_HP20X_DEV == ret)
{
Serial.println("HP20x_dev is available.\n");
}
else
{
Serial.println("HP20x_dev isn't available.\n");
}
}
void loop()
{
HttpClient client;
float humidity = dht.readHumidity();
float temperature = dht.readTemperature();
if (isnan(temperature) || isnan(humidity))
{
Serial.println("Failed to read from DHT");
} else {
Process p;
p.begin("/root/curl.sh");
p.addParameter(String(temperature));
p.addParameter(String(humidity));
p.run();
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.print(" %\t");
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" *C");
}
if(OK_HP20X_DEV == ret)
{
Process b;
b.begin("/root/temperature.sh");
Serial.println("------------------\n");
long Temper = HP20x.ReadTemperature();
Serial.println("Temper:");
float t = Temper/100.0;
Serial.print(t);
Serial.println("C.\n");
Serial.println("Filter:");
long TempFiltered = t_filter(t));
b.addParameter(String(TempFiltered));
b.run();
Serial.print(t_filter.Filter(t));
Serial.println("C.\n");
Process c;
long Pressure = HP20x.ReadPressure();
c.begin("root/pressure.sh");
Serial.println("Pressure:");
t = Pressure/100.0;
Serial.print(t);
Serial.println("hPa.\n");
Serial.println("Filter:");
float PressFiltered =p_filter(t);
c.addParameter(String(PressFiltered));
c.run();
Serial.print(p_filter.Filter(t));
Serial.println("hPa\n");
Process d;
long Altitude = HP20x.ReadAltitude();
d.begin("root/altitude.sh");
Serial.println("Altitude:");
t = Altitude/100.0;
Serial.print(t);
Serial.println("m.\n");
Serial.println("Filter:");
float AltFiltered=a_filter(t);
d.addParameter(String(AltFiltered));
d.run();
Serial.print(a_filter.Filter(t));
Serial.println("m.\n");
Serial.println("------------------\n");
}
/* 3 times per day */
delay(28800000);
Serial.flush();
}