Code supports writing to the SD card as well as working with the Volckens group smartphone apps for the mbed HRM1017
Dependencies: ADS1115 BLE_API BME280 Calibration CronoDot EEPROM LSM303 MCP40D17 NCP5623BMUTBG SDFileSystem SI1145 STC3100 mbed nRF51822
Fork of UPAS_BLE_and_USB by
main.cpp
- Committer:
- caseyquinn
- Date:
- 2015-05-03
- Revision:
- 5:0edf35b6d79a
- Parent:
- 4:69bd7e8a994c
- Child:
- 6:2328feb48792
File content as of revision 5:0edf35b6d79a:
#include "mbed.h" #include "SDFileSystem.h" #include "Adafruit_ADS1015.h" #include "MCP40D17.h" #include "BMP280.h" #define SERIAL_BAUD_RATE 9600 I2C i2c(p22, p20); Adafruit_ADS1115 ads(&i2c); MCP40D17 DigPot(&i2c); BMP280 bmpsensor(p22, p20); Serial pc(USBTX, USBRX); DigitalOut blower(p29, 1); Timer t; int omronReading; int vInReading; int vBlowerReading; int omronDiff; int digital_pot_setpoint = 0x3D; //min = 0x7F, max = 0x00 char filename[] = "/sd/UPASLOG00.txt"; SDFileSystem sd(SPIS_PSELMOSI, SPIS_PSELMISO, SPIS_PSELSCK, SPIS_PSELSS, "sd"); // I believe this matches Todd's pinout, let me know if this doesn't work. (p12, p13, p15, p14) int main() { t.start(); // create a new file for (uint8_t i = 0; i < 100; i++) { filename[11] = i/10 + '0'; filename[12] = i%10 + '0'; FILE *fp = fopen(filename, "r"); if (fp == NULL) { // only open a new file if it doesn't exist FILE *fp = fopen(filename, "w"); fclose(fp); break; // leave the loop! } } while(1){ omronReading = ads.readADC_SingleEnded(0, 0xC583); // read channel 0 vInReading = ads.readADC_SingleEnded(1, 0xD583); // read channel 0 vBlowerReading = ads.readADC_SingleEnded(2, 0xE783); // read channel 0 omronDiff = ads.readADC_Differential(0x8583); // differential channel 2-3 //Mount the filesystem sd.mount(); FILE *fp = fopen(filename, "a"); fprintf(fp, "%f,%d,%d,%d,%d,%2.2f,%04.2f\r\n", t.read(),omronReading,vInReading, vBlowerReading, omronDiff,bmpsensor.getTemperature(), bmpsensor.getPressure()); fclose(fp); //Unmount the filesystem sd.unmount(); wait(5); DigPot.writeRegister(digital_pot_setpoint); } }