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 Volckens Group Sensors

main.cpp

Committer:
caseyquinn
Date:
2015-05-03
Revision:
4:69bd7e8a994c
Parent:
3:2d059d88582b
Child:
5:0edf35b6d79a

File content as of revision 4:69bd7e8a994c:

#include "mbed.h"
#include "SDFileSystem.h"
#include "Adafruit_ADS1015.h"
#include "MCP40D17.h"

#define SERIAL_BAUD_RATE    9600

I2C i2c(p22, p20);
Adafruit_ADS1115 ads(&i2c);
MCP40D17 DigPot(&i2c);
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\r\n", t.read(),omronReading,vInReading, vBlowerReading, omronDiff);
    fclose(fp);
    //Unmount the filesystem
    sd.unmount();
   
    wait(5);
   
    DigPot.writeRegister(digital_pot_setpoint);
   
    
    }
}