code

Dependencies:   MPU6050_SIM5320_TEST SDFileSystem WakeUp

Fork of Nucleo_L476RG_SDCard_WorkingSample by M J.

Committer:
suads
Date:
Wed Sep 13 16:07:18 2017 +0000
Revision:
2:f745f2656606
Parent:
1:d5774258d18b
first commit

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mjm2016 0:fdd58267bc13 1 #include "mbed.h"
mjm2016 0:fdd58267bc13 2 #include "SDFileSystem.h"
suads 1:d5774258d18b 3 #include "SIM5320.h"
suads 1:d5774258d18b 4 #include "MPU6050.h"
suads 1:d5774258d18b 5 #include "SensorBoards.h"
suads 2:f745f2656606 6 #include "WakeUp.h"
suads 1:d5774258d18b 7
suads 2:f745f2656606 8
suads 2:f745f2656606 9 DigitalOut myled(D13);
suads 2:f745f2656606 10
suads 2:f745f2656606 11
suads 2:f745f2656606 12 void create_sensor_data(uint8_t *write_sd_buffer, uint8_t *sensor_board_readings, uint8_t b_id, uint8_t s_id);
suads 2:f745f2656606 13 //SIM5320 sim5320(PA_9,PA_10);
suads 1:d5774258d18b 14 DigitalOut SIM5320_PWR(PA_1);
suads 1:d5774258d18b 15 DigitalOut SIM_PWR_KEY(PA_15);
suads 2:f745f2656606 16 InterruptIn mpuInterrupt(PB_6);
suads 2:f745f2656606 17 uint8_t sensor_board_readings[4];
suads 2:f745f2656606 18 bool test = false;
suads 1:d5774258d18b 19 // MOSI, MISO, SCLK, CS, name
suads 2:f745f2656606 20 SDFileSystem sd(PA_7, PA_6, PA_5, PA_4, "sd");
suads 2:f745f2656606 21
suads 2:f745f2656606 22
suads 2:f745f2656606 23 uint8_t write_sd_buffer[12];
suads 2:f745f2656606 24
suads 2:f745f2656606 25 void mpuInterruptCallback()
suads 2:f745f2656606 26 {
suads 2:f745f2656606 27 test=!test;
suads 2:f745f2656606 28
suads 2:f745f2656606 29 }
suads 2:f745f2656606 30 MPU6050 mpu;
suads 2:f745f2656606 31 int main()
suads 2:f745f2656606 32 {
suads 2:f745f2656606 33 wait(2);
suads 2:f745f2656606 34 printf("Pocetak\n");
suads 1:d5774258d18b 35
suads 2:f745f2656606 36 //////////////////////////////////////////////CODE FOR MPU////////////////////////////////////////////////////////////////
suads 2:f745f2656606 37 /*
suads 2:f745f2656606 38 mpuInterrupt.fall(mpuInterruptCallback);
suads 2:f745f2656606 39 wait(2);
suads 2:f745f2656606 40 mpu.calibrate(accelBias, gyroBias);
suads 2:f745f2656606 41 mpu.initialize();
suads 2:f745f2656606 42 mpu.setSleepEnabled(0);
suads 2:f745f2656606 43 wait(2);
suads 2:f745f2656606 44 mpu.setIntFreefallEnabled(1);
suads 2:f745f2656606 45 mpu.setIntZeroMotionEnabled(0);
suads 2:f745f2656606 46 mpu.setIntMotionEnabled(1);
suads 2:f745f2656606 47 //printf("Setting mpu parameters...\r\n");
suads 2:f745f2656606 48 mpu.setMotionDetectionThreshold(1);
suads 2:f745f2656606 49 mpu.setMotionDetectionDuration(15);
suads 1:d5774258d18b 50
suads 2:f745f2656606 51
suads 2:f745f2656606 52 while(1){
suads 2:f745f2656606 53 if(test){
suads 2:f745f2656606 54 printf("Desio se motion\r\n");
suads 2:f745f2656606 55 test = 0;
suads 2:f745f2656606 56 }
suads 2:f745f2656606 57 }
suads 2:f745f2656606 58 */
suads 2:f745f2656606 59
suads 2:f745f2656606 60
suads 2:f745f2656606 61
suads 2:f745f2656606 62
suads 2:f745f2656606 63
suads 2:f745f2656606 64
mjm2016 0:fdd58267bc13 65
mjm2016 0:fdd58267bc13 66
mjm2016 0:fdd58267bc13 67
suads 1:d5774258d18b 68
suads 1:d5774258d18b 69
mjm2016 0:fdd58267bc13 70
mjm2016 0:fdd58267bc13 71
suads 2:f745f2656606 72 ///////////////////////////////////////////////////////////////CODE_FOR_GPS///////////////////////////////////////////////////////////
suads 2:f745f2656606 73 /*
suads 2:f745f2656606 74 wait(3);
suads 2:f745f2656606 75 printf("Star...\r\n");
suads 2:f745f2656606 76 SIM5320_PWR = 1;
suads 2:f745f2656606 77 SIM_PWR_KEY = 1;
suads 2:f745f2656606 78 wait(1);
suads 2:f745f2656606 79 SIM_PWR_KEY = 0;
suads 2:f745f2656606 80 wait(25);
suads 2:f745f2656606 81 wait(2);
suads 2:f745f2656606 82 printf("Starting...\r\n");
suads 2:f745f2656606 83 printf("Starting...\r\n");
suads 2:f745f2656606 84 printf("Starting...\r\n");
suads 2:f745f2656606 85 printf("Starting...\r\n");
suads 2:f745f2656606 86 sim5320.sendCommand("AT+CNUM",2);
suads 2:f745f2656606 87 printf("Checking credit balance...\r\n");
suads 2:f745f2656606 88 sim5320.sendCommand("AT+CUSD=1, \"*100#\",15",5);
suads 2:f745f2656606 89 //Testing GPS
suads 2:f745f2656606 90
suads 2:f745f2656606 91 sim5320.enableGPS(true);
suads 2:f745f2656606 92 wait(30);
suads 2:f745f2656606 93
suads 2:f745f2656606 94 //Gettting GPS location
suads 2:f745f2656606 95 sim5320.sendCommand("AT+CGPSINFO",2);
suads 2:f745f2656606 96 sim5320.sendCommand("AT+CGPSINFO",2);
suads 2:f745f2656606 97 sim5320.sendCommand("AT+CGPSINFO",2);
suads 2:f745f2656606 98
suads 2:f745f2656606 99 */
suads 2:f745f2656606 100
suads 2:f745f2656606 101
suads 2:f745f2656606 102
suads 2:f745f2656606 103
suads 2:f745f2656606 104
suads 2:f745f2656606 105 ///////////////////////////////////////CODE FOR GPRS/////////////////////////////////////////////////////////////////////////////////
suads 2:f745f2656606 106 /*
suads 2:f745f2656606 107 wait(20);
suads 2:f745f2656606 108 //Testing network connection and disconnection
suads 2:f745f2656606 109 sim5320.connect("active.bhmobile.ba","","");
suads 2:f745f2656606 110 wait(2);
suads 2:f745f2656606 111 if(sim5320.disconnect()) {
suads 2:f745f2656606 112 sim5320.printDebug("Disconnected\r\n");
suads 2:f745f2656606 113 }
suads 2:f745f2656606 114
suads 2:f745f2656606 115 else {
suads 2:f745f2656606 116 sim5320.printDebug("Still connected or error occured!\r\n");
suads 2:f745f2656606 117 }
suads 2:f745f2656606 118
suads 2:f745f2656606 119 */
suads 2:f745f2656606 120
suads 2:f745f2656606 121
suads 2:f745f2656606 122
suads 2:f745f2656606 123
suads 2:f745f2656606 124
suads 2:f745f2656606 125
suads 2:f745f2656606 126
suads 2:f745f2656606 127
suads 2:f745f2656606 128
suads 2:f745f2656606 129
suads 2:f745f2656606 130
suads 2:f745f2656606 131 ///////////////////////////////////////////CODE FOR SD CARD//////////////////////////////////////////////
suads 2:f745f2656606 132
suads 2:f745f2656606 133 /*
suads 2:f745f2656606 134 mkdir("/sd/mydir3", 0777);
suads 2:f745f2656606 135 printf("\nDirectory created\n");
suads 2:f745f2656606 136 char buf[9];
suads 2:f745f2656606 137 sd.writeSD("/sd/mydir3/sdtest2.txt", "1111111\n");
suads 2:f745f2656606 138 sd.writeSD("/sd/mydir3/sdtest2.txt", "2222222\n");
suads 2:f745f2656606 139 sd.writeSD("/sd/mydir3/sdtest2.txt", "3333333\n");
suads 2:f745f2656606 140 printf("Upisao 1,2 i3\n");
suads 2:f745f2656606 141 sd.readSD("/sd/mydir3/sdtest2.txt",buf);
suads 2:f745f2656606 142 printf("line=%s\n",buf);
suads 2:f745f2656606 143 sd.readSD("/sd/mydir3/sdtest2.txt",buf);
suads 2:f745f2656606 144 printf("line=%s\n",buf);
suads 2:f745f2656606 145 sd.readSD("/sd/mydir3/sdtest2.txt",buf);
suads 2:f745f2656606 146 printf("line=%s\n",buf);
suads 2:f745f2656606 147 */
suads 2:f745f2656606 148
suads 2:f745f2656606 149
suads 2:f745f2656606 150
suads 2:f745f2656606 151 //////////////////////////////////////////////CODE FOR SENDOR_BOARDS////////////////////////////////////////////////////////////////
suads 1:d5774258d18b 152 /*
suads 2:f745f2656606 153 uint8_t IDBuffer[8];
suads 2:f745f2656606 154 uint8_t IDMeasure[4];
suads 2:f745f2656606 155 float measure=0.0;
suads 2:f745f2656606 156 float measure2=0.0;
suads 2:f745f2656606 157
suads 2:f745f2656606 158 SensorBoards B1;
suads 2:f745f2656606 159 B1.sensorBoardScanner();
suads 2:f745f2656606 160 B1.getSensorNumbers();
suads 2:f745f2656606 161 B1.getSensorIDs();
suads 2:f745f2656606 162 for(int k=0; k<B1.numberOfBoards; k++) {
suads 2:f745f2656606 163 // printf("broj senzora %d \n",B1.boards[k].numberOfSensors);
suads 2:f745f2656606 164 for(int i=0; i<B1.boards[k].numberOfSensors; i++){
suads 2:f745f2656606 165 B1.getSensorReadings(B1.boards[k].I2CAddress,B1.boards[k].sensorIDs[i],IDMeasure);
suads 2:f745f2656606 166 printf("measure=%d %d %d %d keaj\n",IDMeasure[0],IDMeasure[1],IDMeasure[2],IDMeasure[3]);
suads 2:f745f2656606 167 create_sensor_data(write_sd_buffer,IDMeasure,B1.boards[k].I2CAddress,B1.boards[k].sensorIDs[i]);
suads 2:f745f2656606 168 }
suads 2:f745f2656606 169 }
suads 2:f745f2656606 170
suads 2:f745f2656606 171 for(int i=0;i<12;i++)
suads 2:f745f2656606 172 printf("_%d\n",write_sd_buffer[i]);
suads 1:d5774258d18b 173 */
suads 1:d5774258d18b 174
suads 1:d5774258d18b 175
suads 1:d5774258d18b 176
suads 1:d5774258d18b 177
suads 1:d5774258d18b 178
suads 2:f745f2656606 179
suads 2:f745f2656606 180
suads 2:f745f2656606 181 ////////////////////////////////////////////////////////////////////////////////////////////////////////////
suads 2:f745f2656606 182 //set_time(1505233738); // Set RTC time to Wed, 28 Oct 2009 11:35:37
suads 2:f745f2656606 183 WakeUp::calibrate();
suads 2:f745f2656606 184 myled = 0;
suads 2:f745f2656606 185 while (true) {
suads 2:f745f2656606 186 // time_t seconds = time(NULL);
suads 2:f745f2656606 187 // printf("T= %d\n", seconds);
suads 2:f745f2656606 188 // printf("Time = %s", ctime(&seconds));
suads 2:f745f2656606 189 // wait(1);
suads 2:f745f2656606 190
suads 2:f745f2656606 191 WakeUp::set_ms(7000);
suads 2:f745f2656606 192 printf("sleep\n");
suads 2:f745f2656606 193 wait(2);
suads 2:f745f2656606 194 deepsleep();
suads 2:f745f2656606 195 wait(2);
suads 2:f745f2656606 196 //myled = !myled;
suads 2:f745f2656606 197 printf("wAKE_UP\n");
suads 2:f745f2656606 198
mjm2016 0:fdd58267bc13 199 }
suads 2:f745f2656606 200
suads 2:f745f2656606 201
suads 2:f745f2656606 202
suads 2:f745f2656606 203
suads 2:f745f2656606 204 }
suads 2:f745f2656606 205 void create_sensor_data(uint8_t *write_sd_buffer, uint8_t *sensor_board_readings, uint8_t b_id, uint8_t s_id)
suads 2:f745f2656606 206 {
suads 2:f745f2656606 207 //pcf8563_read(&rtc);
suads 2:f745f2656606 208
suads 2:f745f2656606 209 write_sd_buffer[0]=0;
suads 2:f745f2656606 210 write_sd_buffer[1]=1;
suads 2:f745f2656606 211 write_sd_buffer[2]=2;
suads 2:f745f2656606 212 write_sd_buffer[3]=3;
suads 2:f745f2656606 213 write_sd_buffer[4]=4;
suads 2:f745f2656606 214 write_sd_buffer[5] =b_id; //sensor boaard id
suads 2:f745f2656606 215 write_sd_buffer[6] =s_id; //sensor id
suads 2:f745f2656606 216 write_sd_buffer[7] =sensor_board_readings[3]; //sensor reading
suads 2:f745f2656606 217 write_sd_buffer[8] =sensor_board_readings[2]; //sensor reading
suads 2:f745f2656606 218 write_sd_buffer[9] =sensor_board_readings[1]; //sensor reading
suads 2:f745f2656606 219 write_sd_buffer[10]=sensor_board_readings[0]; //sensor reading
suads 2:f745f2656606 220 write_sd_buffer[11]=0xFF;
suads 2:f745f2656606 221 write_sd_buffer[12]=0xFF;
suads 2:f745f2656606 222
suads 1:d5774258d18b 223 }