Version 8, working version with Alix, sams and ollies code. Displays time, date and sensor info onto terminal, LCD and networking, and saves onto SD card.

Dependencies:   BMP280 ELEC350-Practicals-FZ429 TextLCD BME280 ntp-client

SDcard.hpp

Committer:
Alix955
Date:
2018-12-31
Revision:
12:4c7eaac8ceef

File content as of revision 12:4c7eaac8ceef:

#ifndef _SDCARD_ 
#define _SDCARD_  
#include "mbed.h" 
#include "SDBlockDevice.h" 
#include "FATFileSystem.h" 
#include "sample_hardware.hpp" 

  

class SDcard 

{     

    private: 
     float temp;       //current temperature of sensor 
     float pressure;  //current pressure of sensor 
     float fLDR;      //current light level from LDR 

      void update_temp(double t) //use this function to update the current temperature value 
            { 
                temp = t; 
            }  

        void update_pressure(double p) //use this function to update the current pressure value 
            { 
                pressure = p;     
            }  

        void update_LDR(double L) 
            { 
                fLDR = L;    
            } 

        

    public: 
    EventQueue SDcard_Queue; 
    
     SDcard(){                      //constructor, 

    }    

   

      ~SDcard(){                      //Deconstructor,  

    }




      void update_sensor_info(sample_message msg) //updates all current sensor information, this is called by a ticker every 5 seconds to read from the mailbox 
    { 
         update_temp(msg.temp);                  // Include message class passing of data 
         update_pressure(msg.pressure); 
         update_LDR(msg.ldr); 
    } 
    



    void Save_Data() {          

      
    // initalising the SD card 
    if ( sd.init() != 0) {
        printf("Init failed \n");
        errorCode(FATAL);
    }     

    //Create a filing system for SD Card 

    FATFileSystem fs("sd", &sd);
        
    FILE* fp = fopen("/sd/SensorData.csv","a");

    if (fp == NULL) {
        error("Could not open file for write\n");
        errorCode(FATAL);
    } 

    //Storing sensor data in csv file 

    fprintf(fp, " Temperature(C) , %4.2f , Pressure(mbar) , %4.2f , Lux , %4.2f \n", temp , pressure , fLDR );

    //Close the file
    fclose(fp); 

   //Close down SD card 
    sd.deinit(); 
    
    errorCode(OK);
    
        temp = 0;
        pressure = 0;
        fLDR = 0;
        
   } 
}; 
// creating the instance SD of the class SDcard 


SDcard m_oSD; 

#endif