Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:667b9825e7ee, 2019-08-15 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |