Ruche connectée 2 correction de poids

Dependencies:   mbed Message HX711 DHT22 GPS

Revision:
3:33d642087cca
Parent:
2:3248370d6bc4
Child:
4:3fd67792aaf3
--- a/main.cpp	Fri Feb 01 17:14:30 2019 +0000
+++ b/main.cpp	Mon Feb 04 11:49:24 2019 +0000
@@ -1,56 +1,36 @@
 #include "mbed.h"
-#include <iostream>
-#include <vector>
-#include "sigfox.h"
-#include "SoftSerial.h"
 #include "message_1.h"
-#include "message_2.h"
 #include "DHT22.h"
 #include "HX711.h"
 #include "DS1820.h"
 
 using namespace std;
 
-void mesureTempExtHumidite(int &humidite, float &temperature);
+// fonction de mesure de donnees
+void mesureTempExtHumidite(int &humidite, float &temperature); 
 void mesureTempInt(float &temperatureInt);
 void mesureMasse(float &masse, long valeurTare);
 void mesureGps(float &longit, float &lat);
-DigitalOut myled(D13);
-//Serial sc(SERIAL_TX, SERIAL_RX, 9600);
-//Serial device(PA_9, PA_10);
-DHT22 dht22(D3);
-HX711 Balance(D12,D11);
-DS1820 probe = A6;
+DigitalOut myled(D13); // debug led 
+//Serial sc(SERIAL_TX, SERIAL_RX, 9600); // mode debug le decommenter pour afficher les mesures des capteurs dans le moniteur serie
 
-//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;
-///////////////////
+DHT22 dht22(D3); // capteur de temperature et d'humidite
+HX711 Balance(D12,D11); // capteur de poids
+DS1820 probe = A6; // sonde 
 
 int main() {
-   // device.baud(9600);
-    //sc.printf("---New start ---\n");
-   // while (!device.writeable()) { }
-    //sc.printf("coucou 1 \n");
+  
+    float temperature_actuelle;  
+    float temperature_ref=20; 
+    float delta; 
+    float asser_err= -0.15; //coefficient de correction
     
-   /* device.printf("AT\r");;
-    char a = device.getc();
-    char b = device.getc();
-    sc.printf("%c%c \n", a, b);
-    sc.printf("%c", device.getc());
-    */
+    float masse_reelle; 
     float longit = 12.3, lat = 18.6;
     int humidite= 18;  
     float temperatureExt = 12;
     float temperatureInt = 15;
-    //coefficient asservissement
+    
    
     
     long valeur;
@@ -59,56 +39,39 @@
    
     
     valeurTare = Balance.getValue();  
-    probe.search_ROM();
-    char temp;
+    probe.search_ROM(); // mise en marche de la sonde
+    
     while(1) {
         mesureTempExtHumidite(humidite, temperatureExt);
         mesureMasse(masse, valeurTare);
         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;
-        
+        //sc.printf("masse: %f\n\r", masse);  // mode debug dans le moniteur serie... 
         
-    
-    delta=temperature_actuelle-temperature_prvious;  
-    
-     masse_reelle=masse+(delta*asser_err);
-    
-    temperature_prvious=temperature_actuelle;
-        //////
-
-        //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);
+        //Correction de la masse
+        temperature_actuelle=temperatureExt;
+        delta=temperature_ref - temperature_actuelle;  
+        masse_reelle=masse+(delta*asser_err);
+      
+                
+        Message_1 msg1(temperatureExt, temperatureInt, humidite, masse_reelle); // instanciation du corps du message avec les données à envoyer
         msg1.send();
         
-        myled = 1 ;
-        wait(15);
-        myled = 0 ;
+        wait(600); // envoie toutes les 10 min
     }
 }
 
 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)/-11900;
-   
+    float valeur = Balance.getValue();                                        // On récupère la valeur du module
+    masse = ((double)valeur-(double)valeurTare)/11900; // coeff de calibrage des jauges
 };
 
 void mesureTempInt(float &temperatureInt){
@@ -116,12 +79,6 @@
     temperatureInt = probe.temperature('c');
 };
 
-void mesureGps(float &longit, float &lat){
+void mesureGps(float &longit, float &lat){  // le Gps n'a pas ete implemente par soucis de consommation energetique.
 };
 
-/*bool sendMessageToSigfox(Vector<Message*> msg){
-    for(int i =0; i<msg.size(); i++){
-        msg[i].send();
-        wait_ms(100);
-    };
-};*/