code
Dependencies: MPU6050_SIM5320_TEST SDFileSystem WakeUp
Fork of Nucleo_L476RG_SDCard_WorkingSample by
main.cpp
- Committer:
- suads
- Date:
- 2017-09-13
- Revision:
- 2:f745f2656606
- Parent:
- 1:d5774258d18b
File content as of revision 2:f745f2656606:
#include "mbed.h" #include "SDFileSystem.h" #include "SIM5320.h" #include "MPU6050.h" #include "SensorBoards.h" #include "WakeUp.h" DigitalOut myled(D13); void create_sensor_data(uint8_t *write_sd_buffer, uint8_t *sensor_board_readings, uint8_t b_id, uint8_t s_id); //SIM5320 sim5320(PA_9,PA_10); DigitalOut SIM5320_PWR(PA_1); DigitalOut SIM_PWR_KEY(PA_15); InterruptIn mpuInterrupt(PB_6); uint8_t sensor_board_readings[4]; bool test = false; // MOSI, MISO, SCLK, CS, name SDFileSystem sd(PA_7, PA_6, PA_5, PA_4, "sd"); uint8_t write_sd_buffer[12]; void mpuInterruptCallback() { test=!test; } MPU6050 mpu; int main() { wait(2); printf("Pocetak\n"); //////////////////////////////////////////////CODE FOR MPU//////////////////////////////////////////////////////////////// /* mpuInterrupt.fall(mpuInterruptCallback); wait(2); mpu.calibrate(accelBias, gyroBias); mpu.initialize(); mpu.setSleepEnabled(0); wait(2); mpu.setIntFreefallEnabled(1); mpu.setIntZeroMotionEnabled(0); mpu.setIntMotionEnabled(1); //printf("Setting mpu parameters...\r\n"); mpu.setMotionDetectionThreshold(1); mpu.setMotionDetectionDuration(15); while(1){ if(test){ printf("Desio se motion\r\n"); test = 0; } } */ ///////////////////////////////////////////////////////////////CODE_FOR_GPS/////////////////////////////////////////////////////////// /* wait(3); printf("Star...\r\n"); SIM5320_PWR = 1; SIM_PWR_KEY = 1; wait(1); SIM_PWR_KEY = 0; wait(25); wait(2); printf("Starting...\r\n"); printf("Starting...\r\n"); printf("Starting...\r\n"); printf("Starting...\r\n"); sim5320.sendCommand("AT+CNUM",2); printf("Checking credit balance...\r\n"); sim5320.sendCommand("AT+CUSD=1, \"*100#\",15",5); //Testing GPS sim5320.enableGPS(true); wait(30); //Gettting GPS location sim5320.sendCommand("AT+CGPSINFO",2); sim5320.sendCommand("AT+CGPSINFO",2); sim5320.sendCommand("AT+CGPSINFO",2); */ ///////////////////////////////////////CODE FOR GPRS///////////////////////////////////////////////////////////////////////////////// /* wait(20); //Testing network connection and disconnection sim5320.connect("active.bhmobile.ba","",""); wait(2); if(sim5320.disconnect()) { sim5320.printDebug("Disconnected\r\n"); } else { sim5320.printDebug("Still connected or error occured!\r\n"); } */ ///////////////////////////////////////////CODE FOR SD CARD////////////////////////////////////////////// /* mkdir("/sd/mydir3", 0777); printf("\nDirectory created\n"); char buf[9]; sd.writeSD("/sd/mydir3/sdtest2.txt", "1111111\n"); sd.writeSD("/sd/mydir3/sdtest2.txt", "2222222\n"); sd.writeSD("/sd/mydir3/sdtest2.txt", "3333333\n"); printf("Upisao 1,2 i3\n"); sd.readSD("/sd/mydir3/sdtest2.txt",buf); printf("line=%s\n",buf); sd.readSD("/sd/mydir3/sdtest2.txt",buf); printf("line=%s\n",buf); sd.readSD("/sd/mydir3/sdtest2.txt",buf); printf("line=%s\n",buf); */ //////////////////////////////////////////////CODE FOR SENDOR_BOARDS//////////////////////////////////////////////////////////////// /* uint8_t IDBuffer[8]; uint8_t IDMeasure[4]; float measure=0.0; float measure2=0.0; SensorBoards B1; B1.sensorBoardScanner(); B1.getSensorNumbers(); B1.getSensorIDs(); for(int k=0; k<B1.numberOfBoards; k++) { // printf("broj senzora %d \n",B1.boards[k].numberOfSensors); for(int i=0; i<B1.boards[k].numberOfSensors; i++){ B1.getSensorReadings(B1.boards[k].I2CAddress,B1.boards[k].sensorIDs[i],IDMeasure); printf("measure=%d %d %d %d keaj\n",IDMeasure[0],IDMeasure[1],IDMeasure[2],IDMeasure[3]); create_sensor_data(write_sd_buffer,IDMeasure,B1.boards[k].I2CAddress,B1.boards[k].sensorIDs[i]); } } for(int i=0;i<12;i++) printf("_%d\n",write_sd_buffer[i]); */ //////////////////////////////////////////////////////////////////////////////////////////////////////////// //set_time(1505233738); // Set RTC time to Wed, 28 Oct 2009 11:35:37 WakeUp::calibrate(); myled = 0; while (true) { // time_t seconds = time(NULL); // printf("T= %d\n", seconds); // printf("Time = %s", ctime(&seconds)); // wait(1); WakeUp::set_ms(7000); printf("sleep\n"); wait(2); deepsleep(); wait(2); //myled = !myled; printf("wAKE_UP\n"); } } void create_sensor_data(uint8_t *write_sd_buffer, uint8_t *sensor_board_readings, uint8_t b_id, uint8_t s_id) { //pcf8563_read(&rtc); write_sd_buffer[0]=0; write_sd_buffer[1]=1; write_sd_buffer[2]=2; write_sd_buffer[3]=3; write_sd_buffer[4]=4; write_sd_buffer[5] =b_id; //sensor boaard id write_sd_buffer[6] =s_id; //sensor id write_sd_buffer[7] =sensor_board_readings[3]; //sensor reading write_sd_buffer[8] =sensor_board_readings[2]; //sensor reading write_sd_buffer[9] =sensor_board_readings[1]; //sensor reading write_sd_buffer[10]=sensor_board_readings[0]; //sensor reading write_sd_buffer[11]=0xFF; write_sd_buffer[12]=0xFF; }