#include "mbed.h" #include "SDFileSystem.h" //#include "Stream.h" //#include //*http://www.scadacore.com/field-applications/programming-calculators/online-checksumcalculator/ -----> foe checksum calculator //*http://www.hhhh.org/wiml/proj/nmeaxor.html -----> foe checksum calculator /* Spreadsheet-ready equations for each unknown in terms of the two knowns: RH: =100*(EXP((17.625*TD)/(243.04+TD))/EXP((17.625*T)/(243.04+T))) TD: =243.04*(LN(RH/100)+((17.625*T)/(243.04+T)))/(17.625-LN(RH/100)-((17.625*T)/ (243.04+T))) T: =243.04*(((17.625*TD)/(243.04+TD))-LN(RH/100))/(17.625+LN(RH/100)-((17.625*TD)/ (243.04+TD))) (? replace "T", "TD", and "RH" with your actual cell references) (? T and TD inputs/outputs to the equations are in Celsius) Ref:>>> http://andrew.rsmas.miami.edu/bmcnoldy/Humidity.html */ Serial pc(USBTX, USBRX); //for out put display in PC //For GSM modem Serial serial_gsm(P2_14,P2_15); //for I/O with GSM Device void setup_GSM(); void Read_GSM(); void network_GSM(); //for Network status of GSM modem void network_Date_Time_GSM(); //for network date and time void GPRS_status();//for GPRS status void GPRS_setup();//for GPRS setup void upload_iot(); void GPRS_upload_status(); int upload_st=0; char GSM_raw_data[80]; int GSM_data_l=0,GSM_network_status=0,GPRS_st=0; //int GSM_dd=0, GSM_mm=0,GSM_yy=0,GSM_hh=0,GSM_min=0,GSM_sec=0; //For weather sensor void Read_DH11(); //int humi=0,temp=0; float humi_f=0,temp_f=0,temp_dew=0; DigitalOut dh11_pinout(P10_13); //Use for I/O with DH11 Teperatuer sensor //For Air Quality Sensor Registration ID: itsme_raju2002@yahoo.co.in Page 5 of 31 Serial serial_sds011(P8_13,P8_11); //for I/O with SDS011 void read_sds011(); int pm25=0,pm10=0,id_sds011=0; //char raw_data_sds011[10]; //For GPS Device void Read_GPS_Data(); int GPS_status=0; Serial serial_gps(P8_14,P8_15); //for I/O with GPS Device Timer t1; //Timer t1 for common use Timer t2; //Variabls for RTC //Timer timer_RTC; struct tm rtc; struct tm rtc_utc; int dd=1, mm=1, yyyy=2016; int hh=0, min=1, ss=0; int hh_utc=0,min_utc=1; int upload_y=0,upload_m=0,upload_d=0,upload_h=0,upload_min=0,upload_sec=0; //Save time stamping for uploading char cust_time[19]; void set_RTC_clock(); void display_RTC(); //char gps_status='x',gps_status_old; //char char_latitude[17], char_longitude[17];//, //float dec_latitude=0, dec_longitude=0; DigitalOut myled1(LED1); DigitalOut myled2(LED2); DigitalOut myled3(LED3); // Ref for MicroSD Card----> https://developer.mbed.org/cookbook/SD-Card-File-System#library // SDFileSystem sd(P8_5, P8_6, P8_3, P8_4, "sd"); ---->for GR PEACH // Ref:-----> https://developer.mbed.org/teams/Renesas/wiki/GR-PEACH-Getting-Started // Ref:------> https://developer.mbed.org/users/simon/notebook/sdcards/ void microSD_status(); void save_microSD(); void upload_save_data(); //int microSD_st=0,save_st=0,save_data_st=0; int data_lot_len=0; unsigned long file_size=0; char file_read[180]; Registration ID: itsme_raju2002@yahoo.co.in Page 6 of 31 SDFileSystem sd(P8_5, P8_6, P8_3, P8_4, "sd"); int main() { int i; float start_time_sec=0; //FILE *fp = fopen("/sd/mydir/sdtest.txt", "w"); //double jk; t1.start(); //Start timer t1 t2.start(); set_RTC_clock(); pc.printf("-----> Reg ID: itsme_raju2002@yahoo.co.in <------->\n"); wait(1); //timer_RTC.start(); //Start clock for RTC //set_time(890); //jk=log(0.2); for(i=1;i<=6;i++) { myled1=1; wait(1); myled2=1; wait(1); myled3=1; wait(3); pc.printf("Passing Sec: %d\n",(i*10-5)); myled3=0; wait(1); myled2=0; wait(1); myled1=0; wait(3); pc.printf("Passing Sec: %d\n",i*10); } microSD_status(); //upload_save_data(); myled2=1; serial_gps.printf("$PMTK220,1000*1F\r\n"); ////Setup GPS device data o/p with 1000ms interval wait(2); //myled2=0; myled3=1; serial_gps.printf("$PMTK314,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29\r\n"); ////Setup GPS device data o/p with RMC wait(2); myled3=0; myled2=0; setup_GSM(); network_GSM(); Registration ID: itsme_raju2002@yahoo.co.in Page 7 of 31 Read_GPS_Data(); Read_DH11(); //save_microSD(); //------------------------------ while(1) { myled1 = 1; wait(2); myled1 = 0; //wait(0.2); network_GSM(); network_Date_Time_GSM(); GPRS_status(); GPRS_setup(); //GPRS_status(); display_RTC(); Read_GPS_Data(); //microSD_status(); upload_y=rtc_utc.tm_year+1900; upload_m=rtc_utc.tm_mon+1; upload_d=rtc_utc.tm_mday; upload_h=rtc_utc.tm_hour; upload_min=rtc_utc.tm_min; upload_sec=rtc_utc.tm_sec; pc.printf("UPLOAD_MIN=%d ----- Remider of Min= %d\n",upload_min, upload_min%5); if((upload_min%5)==0) { start_time_sec=t2.read(); Read_DH11(); read_sds011(); while((t2.read()-start_time_sec)<=90) { if(upload_st==0) { GPRS_status(); GPRS_setup(); //GPRS_status(); upload_iot(); } else { break; } } if(upload_st==0) { Registration ID: itsme_raju2002@yahoo.co.in Page 8 of 31 save_microSD(); } } else { upload_st=0; } microSD_status(); upload_save_data(); t2.reset(); //save_microSD(); //------------------------------ pc.printf("\n-----------------Cycle END---------------------\n"); } } //**********************GSM Modem Setup*********************************// void setup_GSM() { //serial_gsm.baud(9600); pc.printf("*******Set GSM modem echo OFF mode*******\n"); serial_gsm.printf("ATE0&W\r");//Set echo OFF mode Read_GSM(); //serial_gsm.printf("ATV1\r");//Set no Short/long response mode //Read_GSM(); /*serial_gsm.printf("AT+CREG?\r"); //Check Network Registration status Read_GSM();*/ pc.printf("*******Set GSM modem clock in local time mode*******\n"); serial_gsm.printf("AT+CLTS=1\r");//Set local time mode Read_GSM(); /*serial_gsm.printf("AT+CCLK?\r");//Get local time mode Read_GSM();*/ /*serial_gsm.printf("AT+CSQ\r");//Get Signal quality Read_GSM();*/ } //****************GPRS Setup*********************// void GPRS_setup() { //int i=0,i1=0; if(GSM_network_status==1 && GPRS_st==0) { pc.printf("*******Attaching GPRS Service********\n"); serial_gsm.printf("AT+CGATT=1\r"); //Attach GPRS service Read_GSM(); Registration ID: itsme_raju2002@yahoo.co.in Page 9 of 31 pc.printf("*******Select TCPIP applicarion Mode in Normal Mode********\n"); serial_gsm.printf("AT+CIPMODE=0\r"); //Select TCPIP applicarion Mode in Normal Mode Read_GSM(); pc.printf("*******Show Remote IP Address and Port When Received Data********\n"); serial_gsm.printf("AT+CIPSRIP=1\r"); //Show Remote IP Address and Port When Received Data Read_GSM(); pc.printf("*******Set Bearer as GPRS********\n"); serial_gsm.printf("AT+SAPBR=3,1,\"contype\",\"GPRS\"\r"); //Set Bearer as GPRS Read_GSM(); pc.printf("*******Set Bearer Acess Point********\n"); serial_gsm.printf("AT+SAPBR=3,1,\"APN\",\"airtelgprs.com\"\r"); //Set Bearer Acess Point Read_GSM(); pc.printf("*******Set Bearer as OPEN BEARER********\n"); serial_gsm.printf("AT+SAPBR=1,1\r"); //Set Bearer as OPEN BEARER Read_GSM(); pc.printf("*******Quary Bearer connection********\n"); serial_gsm.printf("AT+SAPBR=2,1\r"); //Quary Bearer connection Read_GSM(); pc.printf("*******Initialize HTTP Service********\n"); serial_gsm.printf("AT+HTTPINIT\r"); //Initialize HTTP Service Read_GSM(); GPRS_status(); /*pc.printf("*******HTTPS mode enable********\n"); serial_gsm.printf("AT+HTTPSSL=?\r"); //HTTPS mode enable Read_GSM();*/ } else if(GSM_network_status==1 && GPRS_st==1) { pc.printf("************GPRS connection OK************\n"); } else { pc.printf("************GPRS setup fail************\n"); } } //****************GPRS Status check*********************// void GPRS_status() { int i=0,i1=0; GPRS_st=0; Registration ID: itsme_raju2002@yahoo.co.in Page 10 of 31 pc.printf("*******Quary Bearer connection********\n"); serial_gsm.printf("AT+SAPBR=2,1\r"); //Quary Bearer connection Read_GSM(); for(i=0;i0) { for(i=0;i0) { for(i=0;i=5 && gsm_signal!=99 && GSM_network_status==1) { GSM_network_status=1; } else { GSM_network_status=0; } } } else { pc.printf("No communication with GSM Modem\n"); } myled2=GSM_network_status; pc.printf("\n"); } //***************Read GSM Modem *********************// void Read_GSM() { int i=0,data_l=0; int start_time=0,w_time=0; GSM_data_l=0; for(i=0;i<80;i++) { GSM_raw_data[i]=0; } i=0; start_time=t1.read_ms(); w_time=10000; while((t1.read_ms()-start_time)<=w_time) { if(serial_gsm.readable()==1)//for(i=0;i<79;i++)//while(start==0) { while(serial_gsm.readable()==1) { serial_gsm.scanf("%c",&GSM_raw_data[i]); i++; data_l=i; if(i>79) { break; } Registration ID: itsme_raju2002@yahoo.co.in Page 14 of 31 } start_time=t1.read_ms(); w_time=5000; } } if(data_l>0) { pc.printf("GSM raw data= "); for(i=0;i\n"); if(GPRS_st==1) { // Reff:>>> http://community.thingspeak.com/forum/thingspeak-api/specifying-timestampwhile- sending-value/ //Syntax: http://api.thingspeak.com/update?key=XXXXXXXXX&field1=7&created_at=2011- 07-18T01:02:03Z serial_gsm.printf("AT+HTTPPARA=\"URL\",\"api.thingspeak.com/update? api_key=06WLAZYPA6QF42Z4&field1=%.1f&field2=%.1f&field3=%.1f&field4=%d&field5= %d&created_at=%d-%d-%dT%d:%d: %d\"\r",temp_f,humi_f,temp_dew,pm10,pm25,upload_y,upload_m,upload_d,upload_h,upload_min, upload_sec);//rtc_utc.tm_year+1900,rtc_utc.tm_mon+1,rtc_utc.tm_mday,rtc_utc.tm_hour,rtc_utc.tm _min,rtc_utc.tm_sec); //pc.printf("time:::: %d-%d-%d %d:%d:%d :\n",rtc.tm_mday,rtc.tm_mon+1,rtc.tm_year+1900,rtc.tm_hour,rtc.tm_min,rtc.tm_sec); Read_GSM(); serial_gsm.printf("AT+HTTPACTION=0\r"); Read_GSM(); GPRS_upload_status(); wait(0.5); Registration ID: itsme_raju2002@yahoo.co.in Page 15 of 31 pc.printf("Uploading Verification\n"); serial_gsm.printf("AT+HTTPREAD\r"); Read_GSM(); } else { pc.printf("Uploading fail\n"); } } /***********************Upload Status******************************/ void GPRS_upload_status() { int i=0,i1=0; upload_st=0; if(GSM_data_l>=28) { for(i=0;i=80 && (end_time2-start_time)>=160) { for(i=0;i<41;i++) { start_time=end_time2; while(dh11_pinin.read()==0) {} end_time1=t1.read_us(); while(dh11_pinin.read()==1) {} end_time2=t1.read_us(); if((end_time1-start_time)>=50 && (end_time2-start_time)>=74 && (end_time2- start_time)<=80) { dh11_bit[i]=0; } else if((end_time1-start_time)>=50 && (end_time2-start_time)>=120) { dh11_bit[i]=1; } else { pc.printf("+++Error+++\n"); dh11_st=2; break; } } } else { pc.printf("-----DH11 Not Ready\n-----"); Registration ID: itsme_raju2002@yahoo.co.in Page 18 of 31 dh11_st=2; } //pc.printf("------"); //for(i=0;i<41;i++) //{ // pc.printf("%d",dh11_bit[i]); //} //pc.printf("\n"); if(dh11_bit[0]==1) { for(i=1;i<9;i++) { dh11_byte[0]=dh11_byte[0]<<1; dh11_byte[0]=dh11_byte[0] | dh11_bit[i]; //humi=humi<<1; //humi=humi | dh11_bit[i]; } for(i=9;i<17;i++) { dh11_byte[1]=dh11_byte[1]<<1; dh11_byte[1]=dh11_byte[1] | dh11_bit[i]; } for(i=17;i<25;i++) { dh11_byte[2]=dh11_byte[2]<<1; dh11_byte[2]=dh11_byte[2] | dh11_bit[i]; } for(i=25;i<33;i++) { dh11_byte[3]=dh11_byte[3]<<1; dh11_byte[3]=dh11_byte[3] | dh11_bit[i]; } for(i=33;i<41;i++) { dh11_byte[4]=dh11_byte[4]<<1; dh11_byte[4]=dh11_byte[4] | dh11_bit[i]; } /*for(i=17;i<25;i++) { temp=temp<<1; temp=temp | dh11_bit[i]; }*/ } Registration ID: itsme_raju2002@yahoo.co.in Page 19 of 31 for(i=0;i<4;i++) { pc.printf("%d %0X\n",dh11_byte[i],dh11_byte[i]); parity=parity+dh11_byte[i]; } pc.printf("%d %0X\n",parity,parity); if(parity==dh11_byte[4]) { humi_f=dh11_byte[0]; temp_f=dh11_byte[2]; temp_dew=243.04*(log(humi_f/100)+((17.625*temp_f)/(243.04+temp_f)))/(17.625- log(humi_f/100)-((17.625*temp_f)/(243.04+temp_f))); pc.printf("Humidity= %.2f Temperature= %.2f C Dew Point Temperature= %.2f C\n",humi_f,temp_f,temp_dew); if(humi_f>0 && humi_f<=100) { dh11_st=1; } else { dh11_st=0; } } else { pc.printf("++++++DH11 Parity ERROR+++++\n"); dh11_st=0; } round++; if(round>1) { break; } wait(0.5); } t1.reset(); } //*****************************************************************// //*****************RTC Clock*************************************// void set_RTC_clock() { //web Ref:>>>>https://en.wikipedia.org/wiki/C_date_and_time_functions //web Ref:>>>>https://developer.mbed.org/blog/entry/103/ //web Ref:>>>>https://developer.mbed.org/users/petereiso/notebook/cc-time-functions/ Registration ID: itsme_raju2002@yahoo.co.in Page 20 of 31 rtc.tm_year=yyyy-1900; rtc.tm_mon=mm-1; rtc.tm_mday=dd; rtc.tm_hour=hh; rtc.tm_min=min; rtc.tm_sec=ss; set_time(mktime(&rtc)); rtc_utc.tm_year=yyyy-1900; rtc_utc.tm_mon=mm-1; rtc_utc.tm_mday=dd; rtc_utc.tm_hour=hh_utc; rtc_utc.tm_min=min_utc; rtc_utc.tm_sec=ss; set_time(mktime(&rtc_utc)); } void display_RTC() { time_t seconds = time(NULL); //pc.printf("Time as a basic string = %s: ", ctime(&seconds)); strftime(cust_time,23,"%d-%m-%Y %H:%M:%S",localtime(&seconds)); pc.printf("%s:-->",cust_time); pc.printf("Local Time Time: %d-%d-%d %d:%d:%d : -->",rtc.tm_mday,rtc.tm_mon+1,rtc.tm_year+1900,rtc.tm_hour,rtc.tm_min,rtc.tm_sec); } //*****************Read GPS data from GPS device***************// void Read_GPS_Data() { int i,start=0,gps_data_l=0,valid_data=0; char gps_raw_data[80],temp[1]; int begin_time1=0,end_time1=0; int ren=1; int comma=0; GPS_status=0; begin_time1=t1.read_ms(); temp[0]=0; for(i=0;i<80;i++) { gps_raw_data[i]=0; } i=0; if(serial_gps.readable()==1) { Registration ID: itsme_raju2002@yahoo.co.in Page 21 of 31 while(start!=2) { serial_gps.scanf("%c",&temp[0]); i++; if(temp[0]=='$' && i<100) { start++; valid_data=1; } else if(i>99) { start=2; valid_data=0; } } if(valid_data==1) { for(i=0;i<80;i++) { serial_gps.scanf("%c",&gps_raw_data[i]); if(gps_raw_data[i]=='*') { gps_data_l=i; i=80; } } for(i=0;i<=gps_data_l;i++) { if(gps_raw_data[i]==',') { comma++; } if(comma==9) { comma=i; i=81; } } if(gps_raw_data[17]=='A' && gps_raw_data[comma]==',' && gps_raw_data[comma+1]!=',') { dd=(gps_raw_data[comma+1]-48)*10+(gps_raw_data[comma+2]-48); mm=(gps_raw_data[comma+3]-48)*10+(gps_raw_data[comma+4]-48); yyyy=2000+(gps_raw_data[comma+5]-48)*10+(gps_raw_data[comma+6]-48); hh=(gps_raw_data[6]-48)*10+(gps_raw_data[7]-48)+5; min=(gps_raw_data[8]-48)*10+(gps_raw_data[9]-48)+30; ss=(gps_raw_data[10]-48)*10+(gps_raw_data[11]-48); Registration ID: itsme_raju2002@yahoo.co.in Page 22 of 31 hh_utc=hh-5; min_utc=min-30; //i=0; while(ren!=0) { end_time1=t1.read_ms(); ren=(end_time1-begin_time1)%1000; //i++; //pc.printf("x"); } //pc.printf("xx%d %d xx",ren, (end_time1-begin_time1)); ss=ss+(end_time1-begin_time1)/1000; GPS_status=1; //pc.printf("<---%d-%d-%d--%d:%d:%d--->",dd,mm,yyyy,hh,min,ss); set_RTC_clock(); } else { GPS_status=0; } for(i=0;i<=gps_data_l;i++) { pc.printf("%c",gps_raw_data[i]); } pc.printf("\n"); wait(2); } } else { pc.printf("--->No GPS Data <-----\n"); } t1.reset(); } /*****************Read SDS011************************************/ void read_sds011() { int i=0,i1=0,start_time=0,valid_sds011=0; char raw_data_sds011[20]={0}; char check_s=0; pm25=0; pm10=0; id_sds011=0; /*for(i=0;i<10;i++) { Registration ID: itsme_raju2002@yahoo.co.in Page 23 of 31 raw_data_sds011[i]=0; }*/ //Serial serial_sds011(P8_13,P8_11) pc.printf("******Reading SDS011*******\n"); start_time=t1.read_ms(); while((t1.read_ms()-start_time)<15000) { if(serial_sds011.readable()==1) { while(serial_sds011.readable()==1) { serial_sds011.scanf("%c",&raw_data_sds011[i]); //pc.printf("%02X ",raw_data_sds011[i]); i++; if(i>=20) { break; } } } if(i>=20) { break; } } t1.reset(); pc.printf("\nRaw data SDS011: "); for(i=0;i<20;i++) { pc.printf("%02X ",raw_data_sds011[i]); } for(i=0;i<10;i++) { if(raw_data_sds011[i]==0xaa && i<10 && raw_data_sds011[i+1]==0xc0 && raw_data_sds011[i+9]==0xab) { i1=i; check_s=raw_data_sds011[i+2]+raw_data_sds011[i+3]+raw_data_sds011[i+4]+raw_data_s ds011[i+5]+raw_data_sds011[i+6]+raw_data_sds011[i+7]; if(check_s==raw_data_sds011[i+8]) { //pc.printf("SDS011 data: Valid. Check Sum=%02X\n",check_s); valid_sds011=1; } else { //pc.printf("SDS011 data: Checksum ERROR. Check Sum=%02X\n",check_s); valid_sds011=2; Registration ID: itsme_raju2002@yahoo.co.in Page 24 of 31 } break; } else { //pc.printf("SDS011 data is Inalid\n"); valid_sds011=0; } } if(valid_sds011==0) { pc.printf("\nSDS011 Data= INVALID\n"); } else if(valid_sds011==1) { pc.printf("\nSDS011 Data= VALID\n"); pm25=raw_data_sds011[i1+3]; pm25=raw_data_sds011[i1+2]+(pm25<<8); pm10=raw_data_sds011[i1+5]; pm10=raw_data_sds011[i1+4]+(pm10<<8); //pm25=(raw_data_sds011[i1+3]*256+raw_data_sds011[i1+2])/10; //pm10=(raw_data_sds011[i1+5]*256+raw_data_sds011[i1+4])/10; //pc.printf("PM2.5=%04X PM10=%04X\n",pm25,pm10); //pc.printf("PM2.5=%d PM10=%d\n",pm25,pm10); pm25=pm25/10; pm10=pm10/10; pc.printf("PM2.5=%d PM10=%d\n",pm25,pm10); } else { pc.printf("\nSDS011 Data= CHECKSUM ERROR\n"); } pc.printf("\n"); //return; } /******** MicroSD Card Status*****************/ void microSD_status() { pc.printf("*******MicroSD Card Stratus***********\n"); FILE *fp = NULL; fp=fopen("/sd/tower01.txt", "r"); file_size=0; if(fp == NULL) { pc.printf("Could not open file for read or write\n"); wait(5); Registration ID: itsme_raju2002@yahoo.co.in Page 25 of 31 pc.printf("Trynig 2nd Time\n"); fp = fopen("/sd/tower01.txt", "r"); } else { //fprintf(fp, "Hello fun SD Card World!"); fseek(fp,0,SEEK_END); file_size=ftell(fp); pc.printf("File Size: %d byte\n",file_size); pc.printf("MicroSD Card Status : OK\n"); fclose(fp); //microSD_st=1; return; } if(fp==NULL) { pc.printf("Try to cread file tower01.txt\n"); fp = fopen("/sd/tower01.txt", "w"); if(fp==NULL) { pc.printf("Could not open file for read or write\n"); } else { pc.printf("New file tower01.txt created\n"); fclose(fp); } } else { //fprintf(fp, "Hello fun SD Card World!"); fseek(fp,0,SEEK_END); file_size=ftell(fp); pc.printf("File Size: %d Byte\n",file_size); pc.printf("MicroSD Card Status : OK\n"); fclose(fp); //microSD_st=1; } if(file_size>0 && file_size<=155) { pc.printf("Not A valid tower01.txt file. Removing ......"); if(remove("/sd/tower01.txt")==0) { pc.printf("Successful\n"); pc.printf("Try to cread file tower01.txt\n"); fp = fopen("/sd/tower01.txt", "w"); if(fp==NULL) { pc.printf("Could not open file for read or write\n"); Registration ID: itsme_raju2002@yahoo.co.in Page 26 of 31 } else { pc.printf("New file tower01.txt created\n"); fclose(fp); file_size=0; } } else { pc.printf("Unable to remove... unknown ERROR\n"); } } else { pc.printf("FILE SIZE= %d byte---OK\n",file_size); } //pc.printf("*******Seving data END in MicroSD Card ***********\n"); } /******** Seving data in MicroSD Card *****************/ void save_microSD() { int save_byte=0; FILE *fp = NULL; pc.printf("*******Seving data in MicroSD Card ***********\n"); fp=fopen("/sd/tower01.txt", "a"); if(fp == NULL) { pc.printf("Could not open file for write\n"); wait(5); pc.printf("Trynig 2n Time\n"); fp = fopen("/sd/tower01.txt", "a"); } if(fp==NULL) { pc.printf("Could not open file for write\n"); } else { //fprintf(fp, "Hello fun SD Card World!"); //fseek(fp,0,SEEK_END); save_byte=fprintf(fp,"AT+HTTPPARA=\"URL\",\"api.thingspeak.com/update? api_key=06WLAZYPA6QF42Z4&field1=%.1f&field2=%.1f&field3=%.1f&field4=%d&field5= %d&created_at=%d-%d-%dT%d:%d: %d\"\r",temp_f,humi_f,temp_dew,pm10,pm25,upload_y,upload_m,upload_d,upload_h,upload_min, upload_sec); //save_byte=fprintf(fp, "Hello fun SD Card World!"); Registration ID: itsme_raju2002@yahoo.co.in Page 27 of 31 //fprintf(fp,"\n"); pc.printf("Number of Byte Saved: %d\n",save_byte); pc.printf("Seving data in MicroSD Card: Sucess\n"); fclose(fp); } pc.printf("*******Seving data END in MicroSD Card ***********\n"); } /**********************Upload Save Data ***************************/ void upload_save_data() { FILE *fp_read=NULL; FILE *fp_edit=NULL; int i=0,file_pos=0; int end=0; data_lot_len=0; for(i=0;i<180;i++) { file_read[i]=NULL; } //pc.printf("FILE SIZE= %d\n",file_size); if(file_size>155) { pc.printf("________________________Uploadting Save DATA____________________\n"); fp_read=fopen("/sd/tower01.txt", "r"); pc.printf("File Raw Data Below and Current File position %d:\n",ftell(fp_read)); //fscanf(fp_read,"%d",&end); while(end!=EOF) { end=getc(fp_read); //pc.printf("%c",end); //end=file_read[0]; if(data_lot_len<180) { file_read[data_lot_len]=end; //pc.printf("%c",end); } data_lot_len++; if(end=='\r') { file_pos=ftell(fp_read); break; } Registration ID: itsme_raju2002@yahoo.co.in Page 28 of 31 } for(i=0;i>> http://community.thingspeak.com/forum/thingspeak-api/specifying-timestampwhile- sending-value/ //Syntax: http://api.thingspeak.com/update? key=XXXXXXXXX&field1=7&created_at=2011-07-18T01:02:03Z //serial_gsm.printf("AT+HTTPPARA=\"URL\",\"api.thingspeak.com/update? api_key=06WLAZYPA6QF42Z4&field1=%.1f&field2=%.1f&field3=%.1f&field4=%d&field5= %d&created_at=%d-%d-%dT%d:%d: %d\"\r",temp_f,humi_f,temp_dew,pm10,pm25,upload_y,upload_m,upload_d,upload_h,upload_min, upload_sec);//rtc_utc.tm_year+1900,rtc_utc.tm_mon+1,rtc_utc.tm_mday,rtc_utc.tm_hour,rtc_utc.tm _min,rtc_utc.tm_sec); //pc.printf("time:::: %d-%d-%d %d:%d:%d :\n",rtc.tm_mday,rtc.tm_mon+1,rtc.tm_year+1900,rtc.tm_hour,rtc.tm_min,rtc.tm_sec); for(i=0;i0 && end<=127) { //end=getc(fp_read); pc.printf("%c",end); putc(end,fp_edit); } } fclose(fp_read); fclose(fp_edit); pc.printf("Copping Compleated\n"); fp_read=fopen("/sd/copy.txt", "r"); if(fp_read!=NULL) { //fseek(fp_read,0,SEEK_END); //if(ftell(fp_read)>150) //{ fseek(fp_read,0,SEEK_SET); fp_edit=fopen("/sd/tower01.txt", "w"); end=0; while(end!=EOF) { end=getc(fp_read); if(end>0 && end<=127) { //end=getc(fp_read); pc.printf("%c",end); putc(end,fp_edit); } } fclose(fp_edit); fclose(fp_read); if(remove("/sd/copy.txt")==0) { pc.printf("\ncopy.txt file deleted\n"); } else { pc.printf("\ncopy.txt file unable to delete\n"); } Registration ID: itsme_raju2002@yahoo.co.in Page 30 of 31 //} } else { pc.printf("\ncopy.txt file fail to open\n"); } } } else if(file_size>0 && file_size<=155) { pc.printf("Not A valid tower01.txt file.\n"); } else { pc.printf("Nothing for Uploading\n"); } //fclose(fp_read); }