Pennati

Dependencies:   BSP_B-L475E-IOT01 mbed

main.cpp

Committer:
lucaspennati
Date:
2018-11-15
Revision:
1:3a872c90df39
Parent:
0:0cc3bd737dcb

File content as of revision 1:3a872c90df39:

#include "mbed.h"

// Sensors drivers present in the BSP library
#include "stm32l475e_iot01_tsensor.h"
#include "stm32l475e_iot01_hsensor.h"
#include "stm32l475e_iot01_psensor.h"
#include "stm32l475e_iot01_magneto.h"
#include "stm32l475e_iot01_gyro.h"
#include "stm32l475e_iot01_accelero.h"

#define SENSOR_TYPES 5

DigitalOut led(LED1);
InterruptIn button(USER_BUTTON);

static int sensorCount = 0;

void updateSensorCount() {
    sensorCount++;
    if (sensorCount > SENSOR_TYPES) {
        sensorCount = 0;
    }
    printf("\n\n");
}

int main()
{
    float sensor_value = 0;
    int16_t pDataXYZ[3] = {0};
    float pGyroDataXYZ[3] = {0};

    BSP_TSENSOR_Init();
    BSP_HSENSOR_Init();
    BSP_PSENSOR_Init();

    BSP_MAGNETO_Init();
    BSP_GYRO_Init();
    BSP_ACCELERO_Init();
    
    // Toggle on button push (rise)
    button.rise(&updateSensorCount);

    while(1) {

        led = 1;
        switch(sensorCount) {
            case 0:
                sensor_value = BSP_TSENSOR_ReadTemp();
                printf("TEMPERATURE = %.2f degC\n", sensor_value);
                break;                
            case 1:
                sensor_value = BSP_HSENSOR_ReadHumidity();
                printf("HUMIDITY    = %.2f %%\n", sensor_value);
                break;
            case 2:
                sensor_value = BSP_PSENSOR_ReadPressure();
                printf("PRESSURE is = %.2f mBar\n", sensor_value);
                break;
            case 3:
                BSP_MAGNETO_GetXYZ(pDataXYZ);
                printf("MAGNETO_X = %d\n", pDataXYZ[0]);
                printf("MAGNETO_Y = %d\n", pDataXYZ[1]);
                printf("MAGNETO_Z = %d\n", pDataXYZ[2]);
                break;
            case 4:
                BSP_GYRO_GetXYZ(pGyroDataXYZ);
                printf("GYRO_X = %.2f\n", pGyroDataXYZ[0]);
                printf("GYRO_Y = %.2f\n", pGyroDataXYZ[1]);
                printf("GYRO_Z = %.2f\n", pGyroDataXYZ[2]);
                break;
            case 5:
                BSP_ACCELERO_AccGetXYZ(pDataXYZ);
                printf("ACCELERO_X = %d\n", pDataXYZ[0]);
                printf("ACCELERO_Y = %d\n", pDataXYZ[1]);
                printf("ACCELERO_Z = %d\n", pDataXYZ[2]);
                break;  
        }  
        led = 0;
        wait(0.5);
    }
}