Dependencies:   ADXL345 DHT HMC5883L SerialGPS mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers main.cpp Source File

main.cpp

00001 #include "mbed.h"
00002 #include "DHT.h"
00003 #include "HMC5883L.h"
00004 #include "ADXL345.h"
00005 #include "SerialGPS.h"
00006 #define SDA      A4
00007 #define SCL      A5
00008 
00009 Serial pc(D8, PA_10);
00010 DHT sensor(D7, DHT11);
00011 HMC5883L compass(SDA, SCL); 
00012 ADXL345 accelerometer(D4, D5, D3, D2);
00013 SerialGPS gps(D1, D0);
00014 
00015 
00016 int main() {
00017 /////////////// Declaration des différentes variables utilisées //////////////// 
00018 float  temp,Humidity;
00019 float  xBoussole, yBoussole, zBoussole;
00020 int    Hour, Min, Sec, Pos, Sat;
00021 double Latitude, Longitude;
00022 /////////////////// configuration de la liaison serie ////////////////////////// 
00023     pc.baud(9600); //speed(baud)
00024     pc.format(8,Serial::None,1); //format(bits,SerialBase,stop_bits)
00025 /////////////////// configuration du cap température ///////////////////////////
00026     int err;
00027 /////////////////// configuration de la Boussole /////////////////////////////// 
00028     HMC5883L hmc5883l(SDA, SCL);
00029 /////////////////// configuration de l'accélérométre ///////////////////////////
00030     int readings[3] = {0, 0, 0};
00031     //Go into standby mode to configure the device.
00032     accelerometer.setPowerControl(0x00);
00033     //Full resolution, +/-16g, 4mg/LSB.
00034     accelerometer.setDataFormatControl(0x0B);
00035     //3.2kHz data rate.
00036     accelerometer.setDataRate(ADXL345_3200HZ);
00037     //Measurement mode.
00038     accelerometer.setPowerControl(0x08);
00039 /////////////////// configuration GPS //////////////////////////////////////////
00040 SerialGPS::gps_gga_t *p;
00041 
00042   while(1) { 
00043 ////////////////////////////////////////////////////////////////////////////////
00044 ////////////////////////// aquisation du capteur de température/////////////////
00045 ////////////////////////////////////////////////////////////////////////////////
00046     err = sensor.readData();
00047     //if (err==0){
00048         temp=sensor.ReadTemperature(CELCIUS);
00049         Humidity=sensor.ReadHumidity();
00050 
00051    // }else
00052    //     pc.printf("\r\Error DHT %i \n",err);
00053        wait(5);    
00054 ////////////////////////////////////////////////////////////////////////////////
00055 ////////////////////////// aquisation de la boussole ///////////////////////////
00056 ////////////////////////////////////////////////////////////////////////////////
00057         xBoussole = hmc5883l.getMx();
00058         yBoussole = hmc5883l.getMy();
00059         zBoussole = hmc5883l.getMz();
00060 
00061          wait(5);    
00062 ////////////////////////////////////////////////////////////////////////////////
00063 ////////////////////////// aquisation de l'accélérométre ///////////////////////
00064 ////////////////////////////////////////////////////////////////////////////////
00065     accelerometer.getOutput(readings);
00066   //  pc.printf("accelerometre %i, %i, %i\r\n", (int16_t)readings[0], (int16_t)readings[1], (int16_t)readings[2]);
00067   //  pc.printf("AT$SS= %x \r\n",(int)readings[0]);  
00068   //  pc.printf("AT$SS= %x \r\n",(int)readings[1]);  
00069    // pc.printf("AT$SS= %x \r\n",(int)readings[2]);  
00070 
00071     
00072 ////////////////////////////////////////////////////////////////////////////////
00073 ////////////////////////// aquisation gps ////////////:::::::::::::::///////////
00074 ////////////////////////////////////////////////////////////////////////////////
00075       gps.processing();
00076       Hour= p->hour;
00077       Min = p->min;
00078       Sec = p->sec;
00079       Pos = p->position_fix;
00080       Sat = p->satellites_used;
00081       Latitude = p->latitude;
00082       Longitude= p->longitude;
00083      //   pc.printf("AT$SS= %f \r\n",temp); 
00084      //   pc.printf("AT$SS= %f \r\n",Humidity);  
00085        //  pc.printf("AT$SS= %8x \r\n",*((int *)&xBoussole));  
00086       //   pc.printf("AT$SS= %8x \r\n",(int)yBoussole);  
00087      //    pc.printf("AT$SS= %8x \r\n",(int)zBoussole);  
00088      //   pc.printf("AT$SS= %x \r\n", (int)Latitude);
00089      // pc.printf("AT$SS=00 12 FF 42 \r\n"); 
00090      // pc.printf("humidity= %4.2f C\r\n",); 
00091       // pc.printf("AT$SS= %x \r\n", (int)Longitude);
00092       //////////////////////////////////////////////
00093        pc.printf("AT$SS= %x%x \r\n", (unsigned char*)&Longitude,(unsigned char*)&Latitude);
00094 
00095      //  pc.printf("AT$SS= %x \r\n", (int)Longitude);
00096 
00097     wait(0);    
00098  
00099   }
00100 }
00101