code
Dependencies: MPU6050_SIM5320_TEST SDFileSystem WakeUp
Fork of Nucleo_L476RG_SDCard_WorkingSample by
main.cpp@2:f745f2656606, 2017-09-13 (annotated)
- 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?
User | Revision | Line number | New 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 | } |