BME280 environmental recorder
Dependencies: BME280 SB1602E SDFileSystem mbed
main.cpp@1:8d7984b2e2bc, 2016-01-29 (annotated)
- Committer:
- MACRUM
- Date:
- Fri Jan 29 15:01:24 2016 +0000
- Revision:
- 1:8d7984b2e2bc
- Parent:
- 0:7cbf615a0467
Change recording duration
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MACRUM | 0:7cbf615a0467 | 1 | #include "mbed.h" |
MACRUM | 0:7cbf615a0467 | 2 | #include "SB1602E.h" |
MACRUM | 0:7cbf615a0467 | 3 | #include "BME280.h" |
MACRUM | 0:7cbf615a0467 | 4 | #include "SDFileSystem.h" |
MACRUM | 0:7cbf615a0467 | 5 | |
MACRUM | 0:7cbf615a0467 | 6 | #define USE_SDCARD 1 |
MACRUM | 0:7cbf615a0467 | 7 | #define USE_RTC 0 |
MACRUM | 0:7cbf615a0467 | 8 | |
MACRUM | 0:7cbf615a0467 | 9 | #if USE_SDCARD |
MACRUM | 0:7cbf615a0467 | 10 | DigitalOut sd_sdo(dp18, 0); |
MACRUM | 0:7cbf615a0467 | 11 | DigitalOut sd_csb(dp15, 1); |
MACRUM | 0:7cbf615a0467 | 12 | DigitalOut sd_gnd(dp12, 0); |
MACRUM | 0:7cbf615a0467 | 13 | SDFileSystem sd(dp24, dp22, dp23, dp25, "sd"); // mosi, miso, sclk, cs |
MACRUM | 0:7cbf615a0467 | 14 | #endif |
MACRUM | 0:7cbf615a0467 | 15 | |
MACRUM | 0:7cbf615a0467 | 16 | SB1602E lcd(dp11, dp10); |
MACRUM | 0:7cbf615a0467 | 17 | DigitalIn btn(dp2); |
MACRUM | 0:7cbf615a0467 | 18 | BME280 sensor(dp16, dp17); |
MACRUM | 0:7cbf615a0467 | 19 | |
MACRUM | 0:7cbf615a0467 | 20 | |
MACRUM | 0:7cbf615a0467 | 21 | int main() |
MACRUM | 0:7cbf615a0467 | 22 | { |
MACRUM | 0:7cbf615a0467 | 23 | float temp, humd, pres; |
MACRUM | 0:7cbf615a0467 | 24 | lcd.setCharsInLine(8); |
MACRUM | 0:7cbf615a0467 | 25 | lcd.contrast(0x30); |
MACRUM | 0:7cbf615a0467 | 26 | int last_mode = 0; |
MACRUM | 0:7cbf615a0467 | 27 | btn.mode(PullUp); |
MACRUM | 0:7cbf615a0467 | 28 | |
MACRUM | 0:7cbf615a0467 | 29 | lcd.printf(0, 0, "BME280"); |
MACRUM | 0:7cbf615a0467 | 30 | lcd.printf(0, 1, "Demo"); |
MACRUM | 0:7cbf615a0467 | 31 | wait(3); |
MACRUM | 0:7cbf615a0467 | 32 | |
MACRUM | 0:7cbf615a0467 | 33 | #if USE_SDCARD |
MACRUM | 0:7cbf615a0467 | 34 | uint32_t count = 0; |
MACRUM | 0:7cbf615a0467 | 35 | mkdir("/sd/environmental", 0777); |
MACRUM | 0:7cbf615a0467 | 36 | FILE *fp = fopen("/sd/environmental/log.csv", "w"); |
MACRUM | 0:7cbf615a0467 | 37 | if(fp == NULL) { |
MACRUM | 0:7cbf615a0467 | 38 | error("Could not open file for write\n"); |
MACRUM | 0:7cbf615a0467 | 39 | } |
MACRUM | 0:7cbf615a0467 | 40 | fprintf(fp, "Temerature,Humidity,Pressure\r\n"); |
MACRUM | 0:7cbf615a0467 | 41 | #endif |
MACRUM | 0:7cbf615a0467 | 42 | |
MACRUM | 0:7cbf615a0467 | 43 | while(1) { |
MACRUM | 0:7cbf615a0467 | 44 | temp = sensor.getTemperature(); |
MACRUM | 0:7cbf615a0467 | 45 | humd = sensor.getHumidity(); |
MACRUM | 0:7cbf615a0467 | 46 | pres = sensor.getPressure(); |
MACRUM | 0:7cbf615a0467 | 47 | if (btn == 1) { |
MACRUM | 0:7cbf615a0467 | 48 | if (last_mode == 0) { |
MACRUM | 0:7cbf615a0467 | 49 | lcd.clear(); |
MACRUM | 0:7cbf615a0467 | 50 | } |
MACRUM | 0:7cbf615a0467 | 51 | lcd.printf(0, 0, "%2.2f%cC", temp, 0xdf); |
MACRUM | 0:7cbf615a0467 | 52 | lcd.printf(0, 1, "%2.2f%%", humd); |
MACRUM | 0:7cbf615a0467 | 53 | last_mode = 1; |
MACRUM | 0:7cbf615a0467 | 54 | } else { |
MACRUM | 0:7cbf615a0467 | 55 | if (last_mode == 1) { |
MACRUM | 0:7cbf615a0467 | 56 | lcd.clear(); |
MACRUM | 0:7cbf615a0467 | 57 | } |
MACRUM | 0:7cbf615a0467 | 58 | lcd.printf(0, 0, "%2.2f%cC", temp, 0xdf); |
MACRUM | 0:7cbf615a0467 | 59 | lcd.printf(0, 1, "%04.1fhPa", pres); |
MACRUM | 0:7cbf615a0467 | 60 | last_mode = 0; |
MACRUM | 0:7cbf615a0467 | 61 | } |
MACRUM | 0:7cbf615a0467 | 62 | #if USE_SDCARD |
MACRUM | 0:7cbf615a0467 | 63 | count++; |
MACRUM | 1:8d7984b2e2bc | 64 | if ((count % (60 * 5)) == 0) { |
MACRUM | 0:7cbf615a0467 | 65 | fprintf(fp, "%2.2f,%2.2f,%4.1f\r\n", temp, humd, pres); |
MACRUM | 0:7cbf615a0467 | 66 | fflush(fp); |
MACRUM | 0:7cbf615a0467 | 67 | count = 0; |
MACRUM | 0:7cbf615a0467 | 68 | } |
MACRUM | 0:7cbf615a0467 | 69 | #endif |
MACRUM | 0:7cbf615a0467 | 70 | wait(1); |
MACRUM | 0:7cbf615a0467 | 71 | } |
MACRUM | 0:7cbf615a0467 | 72 | |
MACRUM | 0:7cbf615a0467 | 73 | #if USE_SDCARD |
MACRUM | 0:7cbf615a0467 | 74 | fclose(fp); |
MACRUM | 0:7cbf615a0467 | 75 | delete fp; |
MACRUM | 0:7cbf615a0467 | 76 | #endif |
MACRUM | 0:7cbf615a0467 | 77 | } |