Ruche connectée 2 correction de poids

Dependencies:   mbed Message HX711 DHT22 GPS

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){