updated

Dependencies:   mbed Nucleo_Sensor_Shield

main.cpp

Committer:
richson999
Date:
2019-02-15
Revision:
4:0c2adcf321c4
Parent:
3:53d2d440a695

File content as of revision 4:0c2adcf321c4:



#include "mbed.h"
#include "x_cube_mems.h"

DigitalOut led(LED1);

Serial pc(USBTX, USBRX);

Ticker blinky; 
Ticker update;

volatile float TEMPERATURE_C;
volatile float TEMPERATURE_F;
volatile float TEMPERATURE_K;
volatile float HUMIDITY;
volatile float PRESSURE;


bool measurements_update = false;

void blinky_handler(){
    led = !led;
}

void sensors_handler(){
    measurements_update = true;
}

int main() {
    
   
    static X_CUBE_MEMS *Sensors = X_CUBE_MEMS::Instance();
    
    
    blinky.attach(&blinky_handler, 0.5);
    update.attach(&sensors_handler, 3);
    
    while(1) {

        if(measurements_update == true){
        /* Read the environmental sensors  */
        
        Sensors->hts221.GetTemperature((float*)&TEMPERATURE_C);
        Sensors->hts221.GetHumidity((float*)&HUMIDITY);
        Sensors->lps25h.GetPressure((float*)&PRESSURE);
            
        TEMPERATURE_F = (TEMPERATURE_C * 1.8f) + 32.0f;
        TEMPERATURE_K = (TEMPERATURE_C + 273.15f);
        
        pc.printf("Temperature:\t %.2f C / %.2f F / %.2f K\r\n", TEMPERATURE_C, TEMPERATURE_F, TEMPERATURE_K);
        pc.printf("Humidity:\t %.2f%%\r\n", HUMIDITY);
        pc.printf("Pressure:\t %.2fhPa\r\n", PRESSURE);

        pc.printf("\r\n");
                
        measurements_update = false;
        }
        __wfi();
    }
}