code
Dependencies: MPU6050_SIM5320_TEST SDFileSystem WakeUp
Fork of Nucleo_L476RG_SDCard_WorkingSample by
main.cpp
00001 #include "mbed.h" 00002 #include "SDFileSystem.h" 00003 #include "SIM5320.h" 00004 #include "MPU6050.h" 00005 #include "SensorBoards.h" 00006 #include "WakeUp.h" 00007 00008 00009 DigitalOut myled(D13); 00010 00011 00012 void create_sensor_data(uint8_t *write_sd_buffer, uint8_t *sensor_board_readings, uint8_t b_id, uint8_t s_id); 00013 //SIM5320 sim5320(PA_9,PA_10); 00014 DigitalOut SIM5320_PWR(PA_1); 00015 DigitalOut SIM_PWR_KEY(PA_15); 00016 InterruptIn mpuInterrupt(PB_6); 00017 uint8_t sensor_board_readings[4]; 00018 bool test = false; 00019 // MOSI, MISO, SCLK, CS, name 00020 SDFileSystem sd(PA_7, PA_6, PA_5, PA_4, "sd"); 00021 00022 00023 uint8_t write_sd_buffer[12]; 00024 00025 void mpuInterruptCallback() 00026 { 00027 test=!test; 00028 00029 } 00030 MPU6050 mpu; 00031 int main() 00032 { 00033 wait(2); 00034 printf("Pocetak\n"); 00035 00036 //////////////////////////////////////////////CODE FOR MPU//////////////////////////////////////////////////////////////// 00037 /* 00038 mpuInterrupt.fall(mpuInterruptCallback); 00039 wait(2); 00040 mpu.calibrate(accelBias, gyroBias); 00041 mpu.initialize(); 00042 mpu.setSleepEnabled(0); 00043 wait(2); 00044 mpu.setIntFreefallEnabled(1); 00045 mpu.setIntZeroMotionEnabled(0); 00046 mpu.setIntMotionEnabled(1); 00047 //printf("Setting mpu parameters...\r\n"); 00048 mpu.setMotionDetectionThreshold(1); 00049 mpu.setMotionDetectionDuration(15); 00050 00051 00052 while(1){ 00053 if(test){ 00054 printf("Desio se motion\r\n"); 00055 test = 0; 00056 } 00057 } 00058 */ 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 ///////////////////////////////////////////////////////////////CODE_FOR_GPS/////////////////////////////////////////////////////////// 00073 /* 00074 wait(3); 00075 printf("Star...\r\n"); 00076 SIM5320_PWR = 1; 00077 SIM_PWR_KEY = 1; 00078 wait(1); 00079 SIM_PWR_KEY = 0; 00080 wait(25); 00081 wait(2); 00082 printf("Starting...\r\n"); 00083 printf("Starting...\r\n"); 00084 printf("Starting...\r\n"); 00085 printf("Starting...\r\n"); 00086 sim5320.sendCommand("AT+CNUM",2); 00087 printf("Checking credit balance...\r\n"); 00088 sim5320.sendCommand("AT+CUSD=1, \"*100#\",15",5); 00089 //Testing GPS 00090 00091 sim5320.enableGPS(true); 00092 wait(30); 00093 00094 //Gettting GPS location 00095 sim5320.sendCommand("AT+CGPSINFO",2); 00096 sim5320.sendCommand("AT+CGPSINFO",2); 00097 sim5320.sendCommand("AT+CGPSINFO",2); 00098 00099 */ 00100 00101 00102 00103 00104 00105 ///////////////////////////////////////CODE FOR GPRS///////////////////////////////////////////////////////////////////////////////// 00106 /* 00107 wait(20); 00108 //Testing network connection and disconnection 00109 sim5320.connect("active.bhmobile.ba","",""); 00110 wait(2); 00111 if(sim5320.disconnect()) { 00112 sim5320.printDebug("Disconnected\r\n"); 00113 } 00114 00115 else { 00116 sim5320.printDebug("Still connected or error occured!\r\n"); 00117 } 00118 00119 */ 00120 00121 00122 00123 00124 00125 00126 00127 00128 00129 00130 00131 ///////////////////////////////////////////CODE FOR SD CARD////////////////////////////////////////////// 00132 00133 /* 00134 mkdir("/sd/mydir3", 0777); 00135 printf("\nDirectory created\n"); 00136 char buf[9]; 00137 sd.writeSD("/sd/mydir3/sdtest2.txt", "1111111\n"); 00138 sd.writeSD("/sd/mydir3/sdtest2.txt", "2222222\n"); 00139 sd.writeSD("/sd/mydir3/sdtest2.txt", "3333333\n"); 00140 printf("Upisao 1,2 i3\n"); 00141 sd.readSD("/sd/mydir3/sdtest2.txt",buf); 00142 printf("line=%s\n",buf); 00143 sd.readSD("/sd/mydir3/sdtest2.txt",buf); 00144 printf("line=%s\n",buf); 00145 sd.readSD("/sd/mydir3/sdtest2.txt",buf); 00146 printf("line=%s\n",buf); 00147 */ 00148 00149 00150 00151 //////////////////////////////////////////////CODE FOR SENDOR_BOARDS//////////////////////////////////////////////////////////////// 00152 /* 00153 uint8_t IDBuffer[8]; 00154 uint8_t IDMeasure[4]; 00155 float measure=0.0; 00156 float measure2=0.0; 00157 00158 SensorBoards B1; 00159 B1.sensorBoardScanner(); 00160 B1.getSensorNumbers(); 00161 B1.getSensorIDs(); 00162 for(int k=0; k<B1.numberOfBoards; k++) { 00163 // printf("broj senzora %d \n",B1.boards[k].numberOfSensors); 00164 for(int i=0; i<B1.boards[k].numberOfSensors; i++){ 00165 B1.getSensorReadings(B1.boards[k].I2CAddress,B1.boards[k].sensorIDs[i],IDMeasure); 00166 printf("measure=%d %d %d %d keaj\n",IDMeasure[0],IDMeasure[1],IDMeasure[2],IDMeasure[3]); 00167 create_sensor_data(write_sd_buffer,IDMeasure,B1.boards[k].I2CAddress,B1.boards[k].sensorIDs[i]); 00168 } 00169 } 00170 00171 for(int i=0;i<12;i++) 00172 printf("_%d\n",write_sd_buffer[i]); 00173 */ 00174 00175 00176 00177 00178 00179 00180 00181 //////////////////////////////////////////////////////////////////////////////////////////////////////////// 00182 //set_time(1505233738); // Set RTC time to Wed, 28 Oct 2009 11:35:37 00183 WakeUp::calibrate(); 00184 myled = 0; 00185 while (true) { 00186 // time_t seconds = time(NULL); 00187 // printf("T= %d\n", seconds); 00188 // printf("Time = %s", ctime(&seconds)); 00189 // wait(1); 00190 00191 WakeUp::set_ms(7000); 00192 printf("sleep\n"); 00193 wait(2); 00194 deepsleep(); 00195 wait(2); 00196 //myled = !myled; 00197 printf("wAKE_UP\n"); 00198 00199 } 00200 00201 00202 00203 00204 } 00205 void create_sensor_data(uint8_t *write_sd_buffer, uint8_t *sensor_board_readings, uint8_t b_id, uint8_t s_id) 00206 { 00207 //pcf8563_read(&rtc); 00208 00209 write_sd_buffer[0]=0; 00210 write_sd_buffer[1]=1; 00211 write_sd_buffer[2]=2; 00212 write_sd_buffer[3]=3; 00213 write_sd_buffer[4]=4; 00214 write_sd_buffer[5] =b_id; //sensor boaard id 00215 write_sd_buffer[6] =s_id; //sensor id 00216 write_sd_buffer[7] =sensor_board_readings[3]; //sensor reading 00217 write_sd_buffer[8] =sensor_board_readings[2]; //sensor reading 00218 write_sd_buffer[9] =sensor_board_readings[1]; //sensor reading 00219 write_sd_buffer[10]=sensor_board_readings[0]; //sensor reading 00220 write_sd_buffer[11]=0xFF; 00221 write_sd_buffer[12]=0xFF; 00222 00223 }
Generated on Sun Jul 24 2022 09:08:56 by 1.7.2