How to use the GPS, DS18B20, analog input and SDCARD

Dependencies:   DS1820 SDFileSystem mbed RHT03

Fork of frdm_serial by Freescale

Revision:
9:27360d48afcd
Parent:
8:164088fcf57b
--- a/main.cpp	Thu Sep 03 12:36:09 2015 +0000
+++ b/main.cpp	Mon Feb 29 14:42:03 2016 +0000
@@ -1,11 +1,14 @@
 #include "mbed.h"
 #include "SDFileSystem.h"
 #include "DS1820.h"
+#include "RHT03.h" //Include neede to use the RHT03 lib
 /*******************************************************************************************/
 DigitalOut myled(LED_GREEN);
 Serial pc(USBTX, USBRX);
 Serial gps(PTC17, PTC16);
-AnalogIn analog_value(A1);
+AnalogIn ps(PTB10);//(A2);
+AnalogIn qc(PTB11);//(A2);
+
 SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // MOSI, MISO, SCK, CS
 DS1820  ds1820(PTB3);    // substitute PA_9 with actual mbed pin name connected to the DS1820 data pin    
 /*******************************************************************************************/
@@ -24,14 +27,17 @@
     int h_time,m_time,s_time,d_date,m_date,a_date;
     float speed,course,utcdate,magvar;
     int j;
-    float v1,temp;
+    float v1,v2,temp;
+    int done=0;
+    float temp2,hum;
+    RHT03 humtemp(PTB2); //Initalise the RHT03 (change pin number to the pin its connected to)
       
     wait(2);
     pc.baud(115200);
     gps.baud(9600);
     pc.printf("\nHello World! I am ALPINHA 4\n");
     mkdir("/sd/test1", 0777);
-    fp = fopen("/sd/alpinha2.txt", "w");
+    fp = fopen("/sd/GPS.txt", "w");
     if (fp == NULL) 
     {          // that it was created.
         pc.printf("\nnao possivel abrir o arquivo\n");;           // Return error.
@@ -43,25 +49,32 @@
     fclose(fp);
     ds1820.begin();
     ds1820.setResolution(12);
+    ds1820.startConversion();
     wait(1.0);                  // let DS1820 complete the temperature conversion
     pc.printf("temp = %3.3f\r\n", ds1820.read());     // read temperatura            
     while (1) 
-    {      
+    { 
+        if(humtemp.readData() == RHT_ERROR_NONE) done=1; //Request data from the RHT03   
+        temp2 = humtemp.getTemperatureC(); //Gets the current temperature in centigrade
+        hum = humtemp.getHumidity(); //Gets the current humidity in percentage  
       i=0;
       while(gps.getc()!='$');       
       while( (gps_data[i]=gps.getc()) != '\r') i++;      
       gps_data[i]='\0'; 
       aval='\0';
-      for i=0 to 100
-      v1 =v1+ analog_value;//.read();
-      end;
-      
+      v1=0.0;v2=0;
+      for (j=0;j<20;j=j+1)
+      {
+        v1 =v1+ps*3300;//.read();
+        v2 =v2+qc*3300;//.read();
+      }
+      v1=v1/20.0;v2=v2/20.0;
       if((gps_data[2]=='R')&(gps_data[3]=='M')&(gps_data[4]=='C'))      
       {
         temp=ds1820.read();   
         ds1820.startConversion();        
-          for(j=0;j<i-1;j++) if(gps_data[j]==',') gps_data[j]=' ';   
-          sscanf(gps_data,"%s %f %c %f %c %f %c %f %f %f %s",   str1,&utctime,&aval,&hokui,&ns,&tokei,&ew,&speed,&course,&utcdate,str2);      
+        for(j=0;j<i-1;j++) if(gps_data[j]==',') gps_data[j]=' ';   
+        sscanf(gps_data,"%s %f %c %f %c %f %c %f %f %f %s",   str1,&utctime,&aval,&hokui,&ns,&tokei,&ew,&speed,&course,&utcdate,str2);      
       //if(aval=='A')
         {
             //latitude
@@ -83,15 +96,13 @@
             m_date = int((utcdate - d_date*10000)/100);
             a_date = int(utcdate - d_date*10000 - m_date*100);
           
-            pc.printf("%02d/%02d/%02d %02d:%02d:%02d %c %4.6f %4.6f %4.6f %3.3f --->%f\n",d_date,m_date,a_date,h_time,m_time,s_time,aval,g_hokui,g_tokei,speed,temp,v1);       
+            pc.printf("%02d/%02d/%02d %02d:%02d:%02d %c %4.6f %4.6f %4.6f %3.3f %3.3f %3.3f --->%f %f\n",d_date,m_date,a_date,h_time,m_time,s_time,aval,g_hokui,g_tokei,speed,temp,temp2,hum,v1,v2);       
             fp = fopen("/sd/alpinha2.txt", "a");
             if (fp == NULL) 
             {          // that it was created.
-                 pc.printf("\nnao possivel abrir o arquivo\n");;           // Return error.
-            } else {
-                        pc.printf("\n turma do curso\n");;
-                        fprintf(fp,"%2d/%2d/%2d %2d:%2d:%2d %c %4.6f %4.6f %4.6f %3.3f\r\n",d_date,m_date,a_date,h_time,m_time,s_time,aval,g_hokui,g_tokei,speed,temp);       
-                    }
+                pc.printf("\nnao possivel abrir o arquivo\n");           // Return error.
+            } else
+                fprintf(fp,"%2d/%2d/%2d %2d:%2d:%2d %c %4.6f %4.6f %4.6f %3.3f %3.3f %3.3f %3.3f %3.3f\r\n",d_date,m_date,a_date,h_time,m_time,s_time,aval,g_hokui,g_tokei,speed,temp,temp2,hum,v1,v2);       
             fclose(fp);
         }