Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed Ruche-2 HX711 DHT22 Sigfox
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 };*/
Generated on Sun Jul 31 2022 20:44:02 by
