Fedor Chervyakov / Mbed OS bme280-ble-sensor
Committer:
Fedor Chervyakov
Date:
Thu Aug 15 23:47:18 2019 +0300
Revision:
1:667b9825e7ee
Parent:
0:22a4f6c99d74
Child:
2:45ed62566694
Add wrapper class for BME280_driver library

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Fedor Chervyakov 1:667b9825e7ee 1 /* BME280 BLE senior -- main.cpp
Fedor Chervyakov 1:667b9825e7ee 2 *
Fedor Chervyakov 1:667b9825e7ee 3 * Licensed under the Apache License, Version 2.0 (the "License");
Fedor Chervyakov 1:667b9825e7ee 4 * you may not use this file except in compliance with the License.
Fedor Chervyakov 1:667b9825e7ee 5 * You may obtain a copy of the License at
Fedor Chervyakov 1:667b9825e7ee 6 *
Fedor Chervyakov 1:667b9825e7ee 7 * http://www.apache.org/licenses/LICENSE-2.0
Fedor Chervyakov 1:667b9825e7ee 8 *
Fedor Chervyakov 1:667b9825e7ee 9 * Unless required by applicable law or agreed to in writing, software
Fedor Chervyakov 1:667b9825e7ee 10 * distributed under the License is distributed on an "AS IS" BASIS,
Fedor Chervyakov 1:667b9825e7ee 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
Fedor Chervyakov 1:667b9825e7ee 12 * See the License for the specific language governing permissions and
Fedor Chervyakov 1:667b9825e7ee 13 * limitations under the License.
Fedor Chervyakov 1:667b9825e7ee 14 *
Fedor Chervyakov 1:667b9825e7ee 15 * Copyright 2019 Fedor Chervyakov
Fedor Chervyakov 1:667b9825e7ee 16 */
fedorc 0:22a4f6c99d74 17
fedorc 0:22a4f6c99d74 18 #include "mbed.h"
Fedor Chervyakov 1:667b9825e7ee 19 #include "bme280_wrapper.h"
fedorc 0:22a4f6c99d74 20
Fedor Chervyakov 1:667b9825e7ee 21 AnalogIn lm35_input(A0);
fedorc 0:22a4f6c99d74 22
fedorc 0:22a4f6c99d74 23 void print_sensor_data(struct bme280_data *comp_data)
fedorc 0:22a4f6c99d74 24 {
fedorc 0:22a4f6c99d74 25 float temp, press, hum;
fedorc 0:22a4f6c99d74 26 #ifdef BME280_FLOAT_ENABLE
fedorc 0:22a4f6c99d74 27 temp = comp_data->temperature;
fedorc 0:22a4f6c99d74 28 press = 0.01 * comp_data->pressure;
fedorc 0:22a4f6c99d74 29 hum = comp_data->humidity;
fedorc 0:22a4f6c99d74 30 #else
fedorc 0:22a4f6c99d74 31 #ifdef BME280_64BIT_ENABLE
fedorc 0:22a4f6c99d74 32 temp = 0.01f * comp_data->temperature;
fedorc 0:22a4f6c99d74 33 press = 0.0001f * comp_data->pressure;
fedorc 0:22a4f6c99d74 34 hum = 1.0f / 1024.0f * comp_data->humidity;
fedorc 0:22a4f6c99d74 35 #else
fedorc 0:22a4f6c99d74 36 temp = 0.01f * comp_data->temperature;
fedorc 0:22a4f6c99d74 37 press = 0.01f * comp_data->pressure;
fedorc 0:22a4f6c99d74 38 hum = 1.0f / 1024.0f * comp_data->humidity;
fedorc 0:22a4f6c99d74 39 #endif
fedorc 0:22a4f6c99d74 40 #endif
Fedor Chervyakov 1:667b9825e7ee 41 printf("BME280 %0.2lf deg C, %0.2lf hPa, %0.2lf%%\n", temp, press, hum);
fedorc 0:22a4f6c99d74 42 }
fedorc 0:22a4f6c99d74 43
fedorc 0:22a4f6c99d74 44 // main() runs in its own thread in the OS
fedorc 0:22a4f6c99d74 45 int main()
fedorc 0:22a4f6c99d74 46 {
fedorc 0:22a4f6c99d74 47
fedorc 0:22a4f6c99d74 48 struct bme280_data comp_data;
Fedor Chervyakov 1:667b9825e7ee 49 BME280 bme280(I2C_SDA, I2C_SCL);
fedorc 0:22a4f6c99d74 50
fedorc 0:22a4f6c99d74 51 while (true) {
Fedor Chervyakov 1:667b9825e7ee 52 bme280.force_measurement();
Fedor Chervyakov 1:667b9825e7ee 53 printf("LM35 %.2f deg C; ", lm35_input / 0.01 * 3.3);
Fedor Chervyakov 1:667b9825e7ee 54 print_sensor_data(&bme280.comp_data);
Fedor Chervyakov 1:667b9825e7ee 55 wait(5);
fedorc 0:22a4f6c99d74 56 }
fedorc 0:22a4f6c99d74 57 }