void peredat()//min max 415 { if(Serial.available()) { priem(); //171 //1d24.8h500p7630 2u+07.10h63.8s92 } t = rtc.getTime(); if (t.min<55) { if (per>4) {per=1; } //******************************************************************************* //******************************************************************************* if (per==4)//5+07.1v4.08 vetzav 921 {Serial.print("5");//prognoz // tuzav;//preszav // tudzav; Serial.print(znzav); if (tuzav>9) { Serial.print(tuzav); } else { Serial.print("0"); Serial.print(tuzav); } Serial.print("."); Serial.print(tudzav); Serial.print("v"); if (vetczav>9) { Serial.print(vetczav); } else { Serial.print("0"); Serial.print(vetczav); } Serial.print("."); Serial.print(vetdzav); Serial.print(vetzav); Serial.print("921"); } //**************************************************************************** //****************************************************************************** if (per==3) {//4V1*05.0 pzav 765 7s Serial.print("4V");//vet Serial.print(vet); Serial.print("*"); if (vetc>9) { Serial.print(vetc); } else { Serial.print("0"); Serial.print(vetc); } Serial.print("."); Serial.print(vetd); // Serial.print("ms"); Serial.print(pzav); Serial.print(preszav); Serial.print("7s"); } //********************************************************************** if (per==1) {Serial.print("1d"); //int tem = temperatur; Serial.print(tdc); Serial.print("."); Serial.print(tdd); Serial.print("h"); int hs=hdc; Serial.print(hs); // Serial.print("."); if (h[0]/10>h[1]/10){Serial.print("1");} if (h[0]/10==h[1]/10) {Serial.print("0");} if (h[0]/10pres[4]+1){ Serial.println("1");} if (pr==pres[0]) {Serial.println("0");} if (pr9) { Serial.print(tu); } else { Serial.print("0"); Serial.print(tu); } Serial.print("."); Serial.print(tud); int Tm; int Tm1; if (zn<2) {Tm1=-1*tu; } else {Tm1=tu; } if (temul[1]>1000) { Tm=-1*(temul[1]-1000); } else { Tm=temul[1]; } //myGLCD.setFont( Ubuntubold); if (Tm/10>Tm1) Serial.print("1"); if (Tm/10==Tm1) Serial.print("0"); if (Tm/1099){osv9=99;} }//sun hourdu=t.hour;//время прихода данных час mindu=t.min;//мин } //***************************************** if (p==33) {// myFile.print(c);//d55v26t07s20t n++; if (n==2){vfld3=10*(c-48);} if (n==3) {vfld3=vfld3+(c-48);} //влажность if (n==5){tfld3=10*(c-48);} if (n==6){tfld3=tfld3+(c-48);}//температура if (n==8){osvd=10*(c-48);} if (n==9){osvd=osvd+(c-48);}//освещенность if (n==11){dfld3=10*(c-48);} if (n==12){dfld3=dfld3+(c-48);}//время } //********************************************************** if (p==22) {// myFile.print(c);//d55v26t07s20t n++; if (n==2){vfld2=10*(c-48);} if (n==3) {vfld2=vfld2+(c-48);} //влажность if (n==5){tfld2=10*(c-48);} if (n==6){tfld2=tfld2+(c-48);}//температура if (n==8){osvd=10*(c-48);} if (n==9){osvd=osvd+(c-48);}//освещенность if (n==11){dfld2=10*(c-48);} if (n==12){dfld2=dfld2+(c-48);}//время } //******************************************** if (p==11) {// myFile.print(c);//d55v26t07s20t n++; if (n==2){vfld=10*(c-48);} if (n==3) {vfld=vfld+(c-48);} //влажность if (n==5){tfld=10*(c-48);} if (n==6){tfld=tfld+(c-48);}//температура if (n==8){osvd=10*(c-48);} if (n==9){osvd=osvd+(c-48);}//освещенность if (n==11){dfld=10*(c-48);} if (n==12){dfld=dfld+(c-48);}//время } //*****************датчики температуры переносные*********************** //************************T1**************************************************** if (p==111) //выделение данных из принятой строки {// myFile.print(c);//t1+103c375v299h9 ntdat=1; if(chet==0) { if( hourd1==t.hour) {fh=1; } else {fh=0; } chet=1; } hourd1=t.hour; mind1=t.min; //byte ntdat;номер датчика //byte zndat;знак температуры 0+ //int tdat;температура //int hdat;влажность //int vdat;напряж батареи датчика n++; if (n==2){ if (c==45){zndat=1;//- }//znak else {zndat=0;//+ } } if (n==3) {tdat=(c-48)*100;} //температура if (n==4){tdat=(c-48)*10+tdat;} if (n==5) {tdat=(c-48)+tdat; for (int u =22 ; u >= 0; u = u--) { t1[u+1]=t1[u]; } if(zndat==1)//- {t11=tdat+1000; t1[0]=t11; } else {t11=tdat; t1[0]=t11; } } if (n==7){vdat=(c-48)*100;}//напряж батареи датчика if (n==8){vdat=(c-48)*10+vdat;} if (n==9) {vdat=(c-48)+vdat; bat[0]=vdat; } if (n==11){hdat=(c-48)*100;}//влажность if (n==12) {hdat=(c-48)*10+hdat; for (int u =22 ; u >= 0; u = u--) { h1[u+1]=h1[u]; } h1[0]=hdat; } if (n==13) {hdat=(c-48)+hdat; h11=hdat; } } //**************************************** T2 if (p==112) //выделение данных из принятой строки {// myFile.print(c);//t2+103c375v299h9 ntdat=2; if(chet==0) { if( hourd2==t.hour) {fh=1; } else {fh=0; } chet=1; } hourd2=t.hour; mind2=t.min; //byte ntdat;номер датчика //byte zndat;знак температуры 0+ //int tdat;температура //int hdat;влажность //int vdat;напряж батареи датчика n++; if (n==2){ if (c==45){zndat=1;//- }//znak else {zndat=0;//+ } } if (n==3) {tdat=(c-48)*100;} //температура if (n==4){tdat=(c-48)*10+tdat;} if (n==5) {tdat=(c-48)+tdat; for (int u =22 ; u >= 0; u = u--) { t2[u+1]=t2[u]; } if(zndat==1)//- {t12=tdat+1000; t2[0]=t12; } else {t12=tdat; t2[0]=t12; } } if (n==7){vdat=(c-48)*100;}//напряж батареи датчика if (n==8){vdat=(c-48)*10+vdat;} if (n==9) {vdat=(c-48)+vdat; bat[1]=vdat; } if (n==11){hdat=(c-48)*100;}//влажность if (n==12) {hdat=(c-48)*10+hdat; for (int u =22 ; u >= 0; u = u--) { h2[u+1]=h2[u]; } h2[0]=hdat; } if (n==13) {hdat=(c-48)+hdat; h12=hdat; } } //**************************************** //**************************************** T3 if (p==113) //выделение данных из принятой строки {// myFile.print(c);//t2+103c375v299h9 ntdat=3; if(chet==0) { if( hourd3==t.hour) {fh=1; } else {fh=0; } chet=1; } hourd3=t.hour; mind3=t.min; //byte ntdat;номер датчика //byte zndat;знак температуры 0+ //int tdat;температура //int hdat;влажность //int vdat;напряж батареи датчика n++; if (n==2){ if (c==45){zndat=1;//- }//znak else {zndat=0;//+ } } if (n==3) {tdat=(c-48)*100;} //температура if (n==4){tdat=(c-48)*10+tdat;} if (n==5) {tdat=(c-48)+tdat; for (int u =22 ; u >= 0; u = u--) { t3[u+1]=t3[u]; } if(zndat==1)//- {t13=tdat+1000; t3[0]=t13; } else {t13=tdat; t3[0]=t13; } } if (n==7){vdat=(c-48)*100;}//напряж батареи датчика if (n==8){vdat=(c-48)*10+vdat;} if (n==9) {vdat=(c-48)+vdat; bat[2]=vdat; } if (n==11){hdat=(c-48)*100;}//влажность if (n==12) {hdat=(c-48)*10+hdat; for (int u =22 ; u >= 0; u = u--) { h3[u+1]=h3[u]; } h3[0]=hdat; } if (n==13) {hdat=(c-48)+hdat; h13=hdat; } } //**************************************** T4 **************************** if (p==114) //выделение данных из принятой строки {// myFile.print(c);//t1+103c375v299h9 ntdat=4; if(chet==0) { if( hourd4==t.hour) {fh=1; } else {fh=0; } chet=1; } hourd4=t.hour; mind4=t.min; //byte ntdat;номер датчика //byte zndat;знак температуры 0+ //int tdat;температура //int hdat;влажность //int vdat;напряж батареи датчика n++; if (n==2){ if (c==45){zndat=1;//- }//znak else {zndat=0;//+ } } if (n==3) {tdat=(c-48)*100;} //температура if (n==4){tdat=(c-48)*10+tdat;} if (n==5) {tdat=(c-48)+tdat; for (int u =22 ; u >= 0; u = u--) { t4[u+1]=t4[u]; } if(zndat==1)//- {t14=tdat+1000; t4[0]=t14; } else {t14=tdat; t4[0]=t14; } } if (n==7){vdat=(c-48)*100;}//напряж батареи датчика if (n==8){vdat=(c-48)*10+vdat;} if (n==9) {vdat=(c-48)+vdat; bat[3]=vdat; } if (n==11){hdat=(c-48)*100;}//влажность if (n==12) {hdat=(c-48)*10+hdat; for (int u =22 ; u >= 0; u = u--) { h4[u+1]=h4[u]; } h4[0]=hdat; } if (n==13) {hdat=(c-48)+hdat; h14=hdat; } } //**************************************** T5 if (p==115) //выделение данных из принятой строки {// myFile.print(c);//t2+103c375v299h9 ntdat=5; if(chet==0) { if( hourd5==t.hour) {fh=1; } else {fh=0; } chet=1; } hourd5=t.hour; mind5=t.min; //byte ntdat;номер датчика //byte zndat;знак температуры 0+ //int tdat;температура //int hdat;влажность //int vdat;напряж батареи датчика n++; if (n==2){ if (c==45){zndat=1;//- }//znak else {zndat=0;//+ } } if (n==3) {tdat=(c-48)*100;} //температура if (n==4){tdat=(c-48)*10+tdat;} if (n==5) {tdat=(c-48)+tdat; for (int u =22 ; u >= 0; u = u--) { t5[u+1]=t5[u]; } if(zndat==1)//- {t15=tdat+1000; t5[0]=t15; } else {t15=tdat; t3[0]=t15; } } if (n==7){vdat=(c-48)*100;}//напряж батареи датчика if (n==8){vdat=(c-48)*10+vdat;} if (n==9) {vdat=(c-48)+vdat; bat[4]=vdat; } if (n==11){hdat=(c-48)*100;}//влажность if (n==12) {hdat=(c-48)*10+hdat; for (int u =22 ; u >= 0; u = u--) { h5[u+1]=h5[u]; } h5[0]=hdat; } if (n==13) {hdat=(c-48)+hdat; h15=hdat; } } //******************************************************************************* if ((c==token[0])&&(p==0)){p=1;} if ((c==token1[0])&&(p==0)){p=2;} if ((c==token2[0])&&(p==0)){p=3;} if ((c==token9[0])&&(p==0)){p=9;} if ((c==token11[0])&&(p==0)){p=101;}//cравнение первого символа на соответствие t }//for //************************************************* if ((p==111)||(p==112)||(p==113)||(p==114)||(p==115)) {savetdat(); return; } //*******************POLIV*************************************************************************** char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; char* stry[] = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; char* name; sd.chdir("/"); delay (100); sd.chdir("flower"); delay (100); name= stry[t.year-2014]; if (!sd.chdir(name)) {sd.mkdir(name); } sd.chdir(name);//установка раб директории delay (100); name= strm[t.mon-1]; if (!sd.chdir(name)) {sd.mkdir(name); } sd.chdir(name);//установка раб директории delay (100); if (n>12) { if (p==99) { //******************************************************************** if((t9<650)&& (h9<1000)&& (h9>0)) { tu=t9/10;//темп улица целая часть tud=t9%10;//темп улица дробная часть hu=h9/10;//влажность улица целая часть hud=h9%10;//влажность улица дробная часть volt=510;//напряжение в батарейках zn=zn9;// знак ул темп 1- 2+ } int Tun;//настоящая температура int Tumin;// отриц температура if (zn==2) { Tun=tu*10+tud; zn=2; } if (zn==1) {Tun=tu*10+tud; zn=1;//- } if (Tun<600) { if((hu>0)&&(volt>0)) { if (zn==2)// +++++++++++++++++++++++++++++ {if (Tun>temul[24]) //max Tul {temul[24]=Tun; time1[24]=(t.date*1000)+(t.mon)*10+((t.year-2000)/10); time1[25]=(t.hour*1000)+(t.min)*10+((t.year-2000)%10);//tem%10 fa=1;//флаг появления макс темп } //проверка на отр темп if (temul[25]<1000)//pol+ { if (Tun999) { if (Tun>temul[25]-1000) //min Tul { temul[25]=Tun+1000; time1[26]=(t.date*1000)+(t.mon)*10+((t.year-2000)/10); time1[27]=(t.hour*1000)+(t.min)*10+((t.year-2000)%10);//tem%10 fi=1;//флаг появления мин темп для записи на флеш } } if (temul[25]<1000) { temul[25]=Tun+1000;//min Tul time1[26]=(t.date*1000)+(t.mon)*10+((t.year-2000)/10); time1[27]=(t.hour*1000)+(t.min)*10+((t.year-2000)%10);//tem%10 fi=1;//флаг появления мин темп для записи на флеш } } }//hu>0 }//>-300 //************************************************************************** myGLCD.setColor(VGA_WHITE); myGLCD.setBackColor(0,172,238); myGLCD.setFont(BigFont); if(zn==1) { myGLCD.print("T=-" ,80, 457); } else {myGLCD.print("T=+" ,80, 457); } myGLCD.printNumI(t9/10,80+48,457); myGLCD.print("," ,80+48+32, 457); myGLCD.printNumI(t9%10,80+48+32+16,457); myGLCD.print("C H=" ,80+48+32+16+16, 457); myGLCD.printNumI(h9/10,80+48+32+16+16+64,457); myGLCD.print("," ,80+48+32+16+16+64+32, 457); myGLCD.printNumI(h9%10 ,80+48+32+16+16+64+48,457); myGLCD.print("% S=" ,80+48+32+16+16+64+48+16, 457); if(osv9>99){osv9=99;} myGLCD.printNumI(osv9,80+48+32+16+16+64+48+16+64,457); min9=t.min; hour9=t.hour; myGLCD.printNumI(hour9,80+48+32+16+16+64+48+16+64+64,457); myGLCD.print(":" ,80+48+32+16+16+64+48+16+64+64+32, 457); if(min9>9){ myGLCD.printNumI(min9,80+48+32+16+16+64+48+16+64+64+32+16,457); } else {myGLCD.print("0" ,80+48+32+16+16+64+48+16+64+64+32+16, 457); myGLCD.printNumI(min9,80+48+32+16+16+64+48+16+64+64+32+16+16,457); } } if (p==11) { //********************* myGLCD.setColor(VGA_WHITE); myGLCD.setBackColor(0,172,238); myGLCD.setFont(BigFont); myGLCD.print("T=+" ,80, 457); myGLCD.printNumI(tfl ,80+48, 457); myGLCD.print(" V=" ,80+48+32, 457); myGLCD.printNumI(vfl ,80+48+48+32, 457); myGLCD.print("%" ,80+48+48+32+32, 457); myGLCD.print(" S=" ,80+48+48+32+32+16, 457); myGLCD.printNumI(osv ,80+48+48+32+32+16+48, 457); myGLCD.printNumI(dfld2 ,80+48+48+32+32+16+48+48, 457); myGLCD.print(":" ,80+48+48+32+32+16+48+48+32, 457); myGLCD.printNumI(min1 ,80+48+48+32+32+16+48+48+32+16, 457); //***************************** myFile.open("poliv.txt", O_RDWR | O_CREAT | O_AT_END); delay (50); //**************запиь в файл******************************************* if (dfl!=dfld) { if((dfld==t.hour)||(dfld==t.hour-1)||(dfld==t.hour+1)) { tfl=tfld;// temp flower vfl=vfld;// vlaga flower osv=osvd;// svet flower dfl=dfld; if(dfl>9) {myFile.print(dfl); } else {myFile.print("0"); myFile.print(dfl); } myFile.print(":00"); myFile.print(" vl="); if(vfl>9) {myFile.print(vfl); } else {myFile.print("0"); myFile.print(vfl); } myFile.print(" t="); if(tfl>9) {myFile.print(tfl); } else {myFile.print("0"); myFile.print(tfl); } myFile.print(" s="); if(osv>9) {myFile.println(osv); } else {myFile.print("0"); myFile.println(osv); } } } } if (p==22) { //********************* myGLCD.setColor(VGA_WHITE); myGLCD.setBackColor(0,172,238); myGLCD.setFont(BigFont); myGLCD.print("T=+" ,80, 457); myGLCD.printNumI(tfl2 ,80+48, 457); myGLCD.print(" V=" ,80+48+32, 457); myGLCD.printNumI(vfl2 ,80+48+48+32, 457); myGLCD.print("%" ,80+48+48+32+32, 457); myGLCD.print(" S=" ,80+48+48+32+32+16, 457); myGLCD.printNumI(osv ,80+48+48+32+32+16+48, 457); myGLCD.printNumI(dfld2 ,80+48+48+32+32+16+48+48, 457); myGLCD.print(":" ,80+48+48+32+32+16+48+48+32, 457); myGLCD.printNumI(min1 ,80+48+48+32+32+16+48+48+32+16, 457); //***************************** myFile.open("poliv2.txt", O_RDWR | O_CREAT | O_AT_END); delay (50); //**************запиь в файл******************************************* if (dfl2!=dfld2) { if((dfld2==t.hour)||(dfld2==t.hour-1)||(dfld2==t.hour+1)) { tfl2=tfld2;// temp flower vfl2=vfld2;// vlaga flower osv=osvd;// svet flower dfl2=dfld2; if(dfl2>9) {myFile.print(dfl2); } else {myFile.print("0"); myFile.print(dfl2); } myFile.print(":00"); myFile.print(" vl="); if(vfl2>9) {myFile.print(vfl2); } else {myFile.print("0"); myFile.print(vfl2); } myFile.print(" t="); if(tfl2>9) {myFile.print(tfl2); } else {myFile.print("0"); myFile.print(tfl2); } myFile.print(" s="); if(osv>9) {myFile.println(osv); } else {myFile.print("0"); myFile.println(osv); } } } } //************************************************************* if (p==33) { //********************* myGLCD.setColor(VGA_WHITE); myGLCD.setBackColor(0,172,238); myGLCD.setFont(BigFont); myGLCD.print("T=+" ,80, 457); myGLCD.printNumI(tfl3 ,80+48, 457); myGLCD.print(" V=" ,80+48+32, 457); myGLCD.printNumI(vfl3 ,80+48+48+32, 457); myGLCD.print("%" ,80+48+48+32+32, 457); myGLCD.print(" S=" ,80+48+48+32+32+16, 457); myGLCD.printNumI(osv ,80+48+48+32+32+16+48, 457); myGLCD.printNumI(dfld3 ,80+48+48+32+32+16+48+48, 457); myGLCD.print(":" ,80+48+48+32+32+16+48+48+32, 457); myGLCD.printNumI(min1 ,80+48+48+32+32+16+48+48+32+16, 457); //***************************** myFile.open("poliv3.txt", O_RDWR | O_CREAT | O_AT_END); delay (50); //**************запиь в файл******************************************* if (dfl3!=dfld3) { if((dfld3==t.hour)||(dfld3==t.hour-1)||(dfld3==t.hour+1)) { tfl3=tfld3;// temp flower vfl3=vfld3;// vlaga flower osv=osvd;// svet flower dfl3=dfld3; if(dfl3>9) {myFile.print(dfl3); } else {myFile.print("0"); myFile.print(dfl3); } myFile.print(":00"); myFile.print(" vl="); if(vfl3>9) {myFile.print(vfl3); } else {myFile.print("0"); myFile.print(vfl3); } myFile.print(" t="); if(tfl3>9) {myFile.print(tfl3); } else {myFile.print("0"); myFile.print(tfl3); } myFile.print(" s="); if(osv>9) {myFile.println(osv); } else {myFile.print("0"); myFile.println(osv); } } } } //************************************************************* }//n=12 delay (100); myFile.close(); delay (100); sd.chdir("/"); delay (100); } void savefld() { char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; char* stry[] = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; mon1=t.mon; days1=t.date; char* name; sd.chdir("/"); delay (100); sd.chdir("flower"); delay (100); name= stry[t.year-2014]; if (!sd.chdir(name)) {sd.mkdir(name); } sd.chdir(name);//установка раб директории delay (100); name= strm[t.mon-1]; if (!sd.chdir(name)) {sd.mkdir(name); } sd.chdir(name);//установка раб директории delay (100); myFile.open("poliv.txt", O_RDWR | O_CREAT | O_AT_END); delay (50); myFile.print("date: "); if(days1>9) {myFile.print(days1); } else{ myFile.print("0"); myFile.print(days1); } myFile.print("/"); if(mon1>9) {myFile.println(mon1); } else{ myFile.print("0"); myFile.println(mon1); } delay (100); myFile.close(); delay (100); sd.chdir("/"); delay (100); //********************************************************************** sd.chdir("/"); delay (100); sd.chdir("flower"); delay (100); name= stry[t.year-2014]; if (!sd.chdir(name)) {sd.mkdir(name); } sd.chdir(name);//установка раб директории delay (100); name= strm[t.mon-1]; if (!sd.chdir(name)) {sd.mkdir(name); } sd.chdir(name);//установка раб директории delay (100); myFile.open("poliv2.txt", O_RDWR | O_CREAT | O_AT_END); delay (50); myFile.print("date: "); if(days1>9) {myFile.print(days1); } else{ myFile.print("0"); myFile.print(days1); } myFile.print("/"); if(mon1>9) {myFile.println(mon1); } else{ myFile.print("0"); myFile.println(mon1); } delay (100); myFile.close(); delay (100); sd.chdir("/"); delay (100); //********************************************************************** sd.chdir("/"); delay (100); sd.chdir("flower"); delay (100); name= stry[t.year-2014]; if (!sd.chdir(name)) {sd.mkdir(name); } sd.chdir(name);//установка раб директории delay (100); name= strm[t.mon-1]; if (!sd.chdir(name)) {sd.mkdir(name); } sd.chdir(name);//установка раб директории delay (100); myFile.open("poliv3.txt", O_RDWR | O_CREAT | O_AT_END); delay (50); myFile.print("date: "); if(days1>9) {myFile.print(days1); } else{ myFile.print("0"); myFile.print(days1); } myFile.print("/"); if(mon1>9) {myFile.println(mon1); } else{ myFile.print("0"); myFile.println(mon1); } delay (100); myFile.close(); delay (100); sd.chdir("/"); delay (3000); }