Mohamed Sidibe / Mbed 2 deprecated RUCHE2-CODES_correctionpoids

Dependencies:   mbed Ruche-2 HX711 DHT22 Sigfox

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include <iostream>
00003 #include <vector>
00004 #include "sigfox.h"
00005 #include "SoftSerial.h"
00006 #include "message_1.h"
00007 #include "message_2.h"
00008 #include "DHT22.h"
00009 #include "HX711.h"
00010 #include "DS1820.h"
00011 
00012 using namespace std;
00013 
00014 void mesureTempExtHumidite(int &humidite, float &temperature);
00015 void mesureTempInt(float &temperatureInt);
00016 void mesureMasse(float &masse, long valeurTare);
00017 void mesureGps(float &longit, float &lat);
00018 DigitalOut myled(D13);
00019 //Serial sc(SERIAL_TX, SERIAL_RX, 9600);
00020 //Serial device(PA_9, PA_10);
00021 DHT22 dht22(D3);
00022 HX711 Balance(D12,D11);
00023 DS1820 probe = A6;
00024 
00025 //SoftSerial device(D3, D4);
00026 //Serial sc2(D5, D4);
00027 
00028 ///////////Déclaration des Variables Correction de la masse
00029 
00030      float temperature_actuelle=12;
00031     float temperature_prvious=0;
00032      float delta =0;
00033      float asser_err= -0.15;
00034     float masse_reelle=0;
00035 ///////////////////
00036 
00037 int main() {
00038    // device.baud(9600);
00039     //sc.printf("---New start ---\n");
00040    // while (!device.writeable()) { }
00041     //sc.printf("coucou 1 \n");
00042     
00043    /* device.printf("AT\r");;
00044     char a = device.getc();
00045     char b = device.getc();
00046     sc.printf("%c%c \n", a, b);
00047     sc.printf("%c", device.getc());
00048     */
00049     float longit = 12.3, lat = 18.6;
00050     int humidite= 18;  
00051     float temperatureExt = 12;
00052     float temperatureInt = 15;
00053     //coefficient asservissement
00054    
00055     
00056     long valeur;
00057     long valeurTare ;
00058     float masse=13.2;
00059    
00060     
00061     valeurTare = Balance.getValue();  
00062     probe.search_ROM();
00063     char temp;
00064     while(1) {
00065         mesureTempExtHumidite(humidite, temperatureExt);
00066         mesureMasse(masse, valeurTare);
00067         mesureTempInt(temperatureInt);
00068         //sc.printf("temperature externe: %.2f humidity: %d temperature interne: %.2f \n\r",temperatureExt, humidite, temperatureInt);
00069         //sc.printf("masse: %f\n\r", masse);
00070         
00071         //////Correction des la masse
00072         
00073         temperature_actuelle=temperatureExt;
00074         
00075         
00076     
00077     delta=temperature_actuelle-temperature_prvious;  
00078     
00079      masse_reelle=masse+(delta*asser_err);
00080     
00081     temperature_prvious=temperature_actuelle;
00082         //////
00083 
00084         //Message_1 msg1(1, temperatureExt, temperatureInt, humidite, masse);//envoyé données sigfox sans la correction de la masse 
00085         
00086         Message_1 msg1(1, temperatureExt, temperatureInt, humidite, masse_reelle);
00087         msg1.send();
00088         
00089         myled = 1 ;
00090         wait(15);
00091         myled = 0 ;
00092     }
00093 }
00094 
00095 void mesureTempExtHumidite(int &humidite, float &temperatureExt){
00096 
00097     dht22.sample() ;
00098     humidite=dht22.getHumidity()/10.0;
00099     temperatureExt=dht22.getTemperature()/10.0;
00100    
00101    // humidite = 57;
00102    // temperatureExt = 17;
00103 };
00104 
00105     
00106 void mesureMasse(float &masse, long valeurTare){
00107     
00108     wait_ms(200);                                                       // Attente de 200 millisecondes
00109    float valeur = Balance.getValue();                                        // On récupère la valeur du module
00110     masse = ((double)valeur-(double)valeurTare)/-11900;
00111    
00112 };
00113 
00114 void mesureTempInt(float &temperatureInt){
00115     probe.convert_temperature(DS1820::all_devices);
00116     temperatureInt = probe.temperature('c');
00117 };
00118 
00119 void mesureGps(float &longit, float &lat){
00120 };
00121 
00122 /*bool sendMessageToSigfox(Vector<Message*> msg){
00123     for(int i =0; i<msg.size(); i++){
00124         msg[i].send();
00125         wait_ms(100);
00126     };
00127 };*/