ruche
Dependencies: ATParser DHT22 SerialGPS Sigfox mbed
Fork of Nucleo_SerialGPS_to_PC by
main.cpp
- Committer:
- dahmani_belkacem
- Date:
- 2018-01-17
- Revision:
- 1:297aba9a5830
- Parent:
- 0:e0a6c18ea0fb
- Child:
- 2:f760e8507750
File content as of revision 1:297aba9a5830:
#include "mbed.h" #include "SerialGPS.h" #include "DHT22.h" #include "Sigfox.h" #include "BufferedSerial.h" //#include "ATParser.h" Serial pc(USBTX, USBRX); // tx, rx SerialGPS gps(PC_10,PC_11); // tx, rx DHT22 dht22(D4);//pin pour la lecture du dht22 grove DHT22 dht22Bis(D5);//pin pour la lecture du dht22 AnalogIn IRSensor(A1);//Pin de lecture du capteur IR BufferedSerial serial = BufferedSerial(PC_10,PC_11); //ATParser at = ATParser(serial, "\r\n"); Sigfox sig(*); //Sigfox(at(&at)); //programme du gps /** * A callback function for logging data. */ void cbfunc_log(char *s) { } /** * A callback function for GGA. * * GGA - Global Positioning System Fixed Data. */ void cbfunc_gga(SerialGPS::gps_gga_t *p) { pc.printf("%02d:%02d:%02d(P%d,S%d)\r\n", p->hour, p->min, p->sec, p->position_fix, p->satellites_used); // pc.printf("latitude %c=%10.4f\r\n", p->ns, p->latitude); // pc.printf("longitude %c=%10.4f\r\n", p->ew, p->longitude); double a = p->latitude; double b = p->longitude; pc.printf("latitude %10.4f\r\n", a); pc.printf("longitude %10.4f\r\n", b); } /** * A callback function for GSA. * * GSA - GNSS DOP and Active Satellites. */ void cbfunc_gsa(SerialGPS::gps_gsa_t *p) { pc.printf("SEL:%c FIX:%d\r\n", p->selmode, p->fix); } /** * A callback function for GSV. * * GSV - GNSS Satellites in View. */ void cbfunc_gsv(SerialGPS::gps_gsv_t *p) { pc.printf("Satellites:%2d\r\n", p->satcnt); } /** * A callback function for RMC. * * RMC - Recommended Minimum Specific GNSS Data. */ void cbfunc_rmc(SerialGPS::gps_rmc_t *p) { pc.printf("%02d:%02d:%02d(%c)\r\n", p->hour, p->min, p->sec, p->status); } /** * Entry point. */ //fin du prgramme de lecture GPS //Fonction lecture des donneé sigfox int main() { //programme main du gps //programme main de lecture DHT22 int hum; int temp; int hum1; int temp1; pc.baud(9600); pc.printf("TEST\r\n"); wait(0.5); pc.printf("TEST1\r\n"); SerialGPS::gps_callback_t cb; cb.cbfunc_log = cbfunc_log; pc.printf("TEST2\r\n"); cb.cbfunc_gsa = cbfunc_gsa; cb.cbfunc_gsv = cbfunc_gsv; cb.cbfunc_rmc = cbfunc_rmc; gps.attach(&cb); pc.printf("TEST3\r\n"); while(1) { wait(1); gps.processing(); pc.printf("TEST4\r\n"); //lecture du DHT22 grove dht22.sample() ; hum=dht22.getHumidity()/10.0; temp=dht22.getTemperature()/10.0; printf("temperature: %d, humidity: %d\n\r",temp,hum); //lecture du DHT22 simple dht22Bis.sample() ; hum1=dht22Bis.getHumidity()/10.0; temp1=dht22Bis.getTemperature()/10.0; printf("temperature1: %3d, humidity1: %3d\n\r",temp1,hum1); //mesure de la distance //wait(2); //3.1V at 4cm to 0.3V at 30cm. float a = IRSensor;// 1=4cm 0=30cm pc.printf("IR sensor reads %2.2f\n ", a); a=1-a;// now 0=4cm and 1=30cm float b= 40+a * 260; //(a26+4); pc.printf("\rDistance is %2.2f mm \n ", b); // print and convert to distance by taking x=0->1 and 26x+4 float x = 200 - b; float f = 2.913*x; int m= 1000*(f/(9.8)); pc.printf("\la masse de la ruche est egale a %2.2f g \n ",m); sig->send(""+m); wait(1); } //programme main de lecture DHT22 /* while (1) { } */ //Fin du programme de lecture DHT22 }