softemp

Dependencies:   mbed DHT22 ATParser SerialGPS

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
    
 
}