Ruche connectée 2 correction de poids
Dependencies: mbed Message HX711 DHT22 GPS
Diff: main.cpp
- Revision:
- 2:3248370d6bc4
- Parent:
- 1:25a290929b47
- Child:
- 3:33d642087cca
--- a/main.cpp Thu Jan 24 13:08:02 2019 +0000 +++ b/main.cpp Fri Feb 01 17:14:30 2019 +0000 @@ -15,7 +15,7 @@ void mesureTempInt(float &temperatureInt); void mesureMasse(float &masse, long valeurTare); void mesureGps(float &longit, float &lat); -DigitalOut myled(D2); +DigitalOut myled(D13); //Serial sc(SERIAL_TX, SERIAL_RX, 9600); //Serial device(PA_9, PA_10); DHT22 dht22(D3); @@ -25,6 +25,14 @@ //SoftSerial device(D3, D4); //Serial sc2(D5, D4); +///////////Déclaration des Variables Correction de la masse + + float temperature_actuelle=12; + float temperature_prvious=0; + float delta =0; + float asser_err= -0.15; + float masse_reelle=0; +/////////////////// int main() { // device.baud(9600); @@ -42,10 +50,13 @@ int humidite= 18; float temperatureExt = 12; float temperatureInt = 15; + //coefficient asservissement + long valeur; long valeurTare ; - float masse; + float masse=13.2; + valeurTare = Balance.getValue(); probe.search_ROM(); @@ -56,26 +67,48 @@ mesureTempInt(temperatureInt); //sc.printf("temperature externe: %.2f humidity: %d temperature interne: %.2f \n\r",temperatureExt, humidite, temperatureInt); //sc.printf("masse: %f\n\r", masse); + + //////Correction des la masse + + temperature_actuelle=temperatureExt; + + + + delta=temperature_actuelle-temperature_prvious; + + masse_reelle=masse+(delta*asser_err); + + temperature_prvious=temperature_actuelle; + ////// - Message_1 msg1(1, temperatureExt, temperatureInt, humidite, masse); + //Message_1 msg1(1, temperatureExt, temperatureInt, humidite, masse);//envoyé données sigfox sans la correction de la masse + + Message_1 msg1(1, temperatureExt, temperatureInt, humidite, masse_reelle); msg1.send(); - wait(20); + myled = 1 ; + wait(15); + myled = 0 ; } } void mesureTempExtHumidite(int &humidite, float &temperatureExt){ + dht22.sample() ; humidite=dht22.getHumidity()/10.0; temperatureExt=dht22.getTemperature()/10.0; + // humidite = 57; // temperatureExt = 17; }; + void mesureMasse(float &masse, long valeurTare){ + wait_ms(200); // Attente de 200 millisecondes float valeur = Balance.getValue(); // On récupère la valeur du module - masse = ((double)valeur-(double)valeurTare)/11200; + masse = ((double)valeur-(double)valeurTare)/-11900; + }; void mesureTempInt(float &temperatureInt){