basic lightning detector with gps and sd card logging
Dependencies: AS3935 AdafruitGPS SDFileSystem TSI mbed ConfigFile
Diff: main.cpp
- Revision:
- 2:3edb129c60b2
- Parent:
- 1:10d2a051285e
- Child:
- 3:e3974328d808
--- a/main.cpp Mon Jun 22 20:39:32 2015 +0000 +++ b/main.cpp Tue Jun 23 21:01:40 2015 +0000 @@ -38,7 +38,7 @@ //DigitalOut blue(LED_BLUE); don't use the blue led, due to a board error, writing to the blue led kills spi bool debug; int day, month,year,hour,minute,seconds; -void writeLogFile(int interruptSource, int distance); +void writeLogFile(int interruptSource, int distance, long energy); char logName[]="lightning_data.csv"; int rdistance, rinterrupt; char directory[]="/sd/lightning_data"; @@ -47,6 +47,7 @@ { int OriginInt; int distance=-1; + long energy =-1; wait_ms(2); // OriginInt = ld.interruptSource(); pc.printf("%02d/%02d/20%02d_%02d:%02d:%02d ",month,day,year,hour,minute,seconds); @@ -60,19 +61,21 @@ break; case 8: distance = ld.lightningDistanceKm(); - pc.printf("Lightning detection, distance=%dkm\r\n", distance); + energy = ld.getEnergy(); + pc.printf("Lightning detection, distance=%dkm energy=%ld\r\n", distance, energy); + ld.clearStats(); break; default: pc.printf("Unknown interrupt %d\r\n", OriginInt); } - writeLogFile(OriginInt,distance); + writeLogFile(OriginInt,distance, energy); pc.printf("Resume wait for lightning detection...\r\n"); } - void writeLogFile(int interruptSource, int distance) + void writeLogFile(int interruptSource, int distance, long energy) { char logFilePath[128]; static bool header=false; @@ -97,7 +100,7 @@ // write the log file header if (header == false) { - fprintf(fp,"# date,time,raw timestamp,latitude,longitude,distance,interrupt\r\n"); + fprintf(fp,"# date,time,raw timestamp,latitude,longitude,distance,interrupt,energy\r\n"); header = true; } // write to the current log file @@ -106,7 +109,8 @@ fprintf(fp,"%7.0f,",gpsd.timef); fprintf(fp,"%5.7f,%5.7f,", gpsd.lat_deg, gpsd.lon_deg); fprintf(fp,"%d,",distance); - fprintf(fp,"%d",interruptSource); + fprintf(fp,"%d,",interruptSource); + fprintf(fp,"%ld",energy); fprintf(fp,"\r\n"); fflush(fp); f_sync((FIL*)fp); @@ -157,10 +161,11 @@ ld.init(); ld.clearStats(); + ld.calibrateRCOs(IntLightning); measFreq = ld.tuneAntenna(IntLightning); - ld.powerUp(); - ld.calibrateRCOs(IntLightning); + //ld.powerUp(); + //ld.setIndoors(); ld.setOutdoors(); ld.setMinimumLightnings(0);