HAB code for FRDM-K64F/LoRa
Dependencies: FXOS8700Q TinyGPSPlus
main.cpp
- Committer:
- zer044
- Date:
- 2019-02-06
- Revision:
- 9:e4b111ec65e9
- Parent:
- 8:9560dcd4341b
File content as of revision 9:e4b111ec65e9:
#include "mbed.h" #include "TinyGPSPlus.h" //#include "SDFileSystem.h" #include "FXOS8700Q.h" //code in this program does the following: //set up LoRa connection //retreives the GPS data from the UBLOX module //collect accellerometer and mag data from onboard chip //log data on board SD //sends the GPS + time via LoRa module void data_logger(); void send_data(); void sensor_data(); void get_gps(); void lora_setup(); RawSerial s_com(PTC17, PTC16); // tx, rx read gps in Serial pc(USBTX, USBRX); // tx, rx TinyGPSPlus gps; bool flag= false; double latitude, longitude; //String data; //data=""; Timer t; int data_time=0; I2C i2c(PTE25, PTE24); FXOS8700QAccelerometer acc(i2c, FXOS8700CQ_SLAVE_ADDR1); //access accelerometer FXOS8700QMagnetometer mag(i2c, FXOS8700CQ_SLAVE_ADDR1); //access magnetometer DigitalOut led1(LED1); //use for debugging int main(){ //set up LoRa stuff //get current time (millis) //run gps method //get sensor data //call send data //log data t.start(); //start the timer object s_com.baud(9600); //set baud rate for serial read acc.enable(); //start accelerometer mag.enable(); //start magnetometer while(true){ //sensor_data(); get_gps(); } } void lora_setup(){ //set up LoRa connection here } void get_gps(){ // //retreive gps data from module //printf("In get_gps\n"); while(!flag){ if(s_com.readable()) { // pc.putc(s_com.getc()); flag = gps.encode(s_com.getc()); } // printf("youre stuck here forever"); } //printf("enemy spotted \n"); latitude = gps.location.lat(); longitude = gps.location.lng(); data_time = t.read_ms(); //data = (string(latitude)+","+string(longitude)+","+string(data_time)); printf("\r latitude %lf, longitude %lf \n", latitude, longitude); //send_gps(data); led1!=led1; wait(1000); } void send_data(){ //send data via LoRa shield } void sensor_data(){ //get mag+accel data motion_data_units_t acc_data, mag_data; acc.getAxis(acc_data); mag.getAxis(mag_data); data_time = t.read_ms(); printf("ACC: X=%1.4ff Y=%1.4ff Z=%1.4ff \t MAG: X=%4.1ff Y=%4.1ff Z=%4.1ff\r\n", acc_data.x, acc_data.y, acc_data.z, mag_data.x, mag_data.y, mag_data.z); // printf("TIME:"+ data_time+"\n"); //goes weird here wait(0.5); } void data_logger(){ //log data onto on board SD }