You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1259 lines
32 KiB
1259 lines
32 KiB
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]/10<h[1]/10) {Serial.print("2");}
|
|
|
|
Serial.print("p");
|
|
|
|
word pr=pressure;
|
|
Serial.print(pr);
|
|
if (pr>pres[4]+1){ Serial.println("1");}
|
|
|
|
if (pr==pres[0]) {Serial.println("0");}
|
|
|
|
if (pr<pres[4]-1){ Serial.println("2");}
|
|
}
|
|
//**********************************************
|
|
//***************************2u+07.10h63.8s9
|
|
if (per==2)
|
|
{
|
|
Serial.print("2u");
|
|
|
|
if (zn<2)
|
|
{
|
|
Serial.print("-");
|
|
|
|
}
|
|
else
|
|
{
|
|
Serial.print("+");
|
|
}
|
|
|
|
if (tu>9)
|
|
{
|
|
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/10<Tm1)
|
|
Serial.print("2");
|
|
// 2u+07.10 h63.8s92
|
|
Serial.print("h");
|
|
Serial.print(hu);
|
|
Serial.print(".");
|
|
Serial.print(hud);
|
|
Serial.print("s");
|
|
Serial.println(ptoday);
|
|
//ptoday=0;//погода сегодня 0-солн 1-перемен обл 2-пасмурно 3-дождь 4- снег 5- туман 6-гроза
|
|
// Serial.print(osv);1-ясно 2 перем обл 3-облачно 4-дождь-солнце 5-дождь 6 -снег 7- туман
|
|
}
|
|
//********************************************
|
|
//******************************************
|
|
per++;
|
|
//delay (400);
|
|
}
|
|
}
|
|
|
|
|
|
//*****************************************************************************************************************
|
|
void priem()
|
|
{
|
|
t = rtc.getTime();
|
|
char datf[16];//принятая с премника по UART перемнная
|
|
for (int j=0 ; j<15 ;j++)
|
|
{ if(Serial.available()) {
|
|
datf[j] = Serial.read();//принятая с премника по UART перемнная
|
|
}
|
|
}
|
|
int i=0;
|
|
while (i<6000) {
|
|
if(Serial.available()) {
|
|
datf[16] = Serial.read();
|
|
}
|
|
i++;
|
|
}
|
|
//myGLCD.print(datf ,80, 457);
|
|
|
|
int tfld;// temp flower1
|
|
int vfld;// vlaga flower1
|
|
int osvd;// svet flower1
|
|
int dfld;// time flower1
|
|
|
|
int tfld2;// temp flower2
|
|
int vfld2;// vlaga flower2
|
|
int dfld2;// time flower2
|
|
|
|
int tfld3;// temp flower3
|
|
int vfld3;// vlaga flower3
|
|
int dfld3;// time flower3
|
|
|
|
//int tfl3=27;// temp flower
|
|
//int vfl3=52;// vlaga flower
|
|
//int dfl3=14;// time flower
|
|
|
|
int tdat;//температура
|
|
int hdat;//влажность
|
|
int vdat;//напряж батареи датчика
|
|
|
|
char c ;
|
|
char token[] = "6d";//цветок1
|
|
char token1[] = "7d";//цветок2
|
|
char token2[] = "8d";//цветок3
|
|
char token9[] = "9d";//улица
|
|
char token11[] = "t1";//датчики
|
|
char token12[] = "t2";//датчики
|
|
char token13[] = "t3";//датчики
|
|
char token14[] = "t4";//датчики
|
|
char token15[] = "t5";//датчики
|
|
|
|
int n=0;
|
|
int p=0;
|
|
boolean chet=0;
|
|
i=0;
|
|
|
|
//***************************
|
|
for (int j=0 ; j<15 ;j++)
|
|
{ c=datf[j];//принятая с премника по UART перемнная
|
|
|
|
|
|
if (p==1)
|
|
{
|
|
if (c == token[1]) {p=11;}
|
|
else {
|
|
p=0;}
|
|
}
|
|
|
|
if (p==2)
|
|
{ if (c==token1[1]){p=22;}
|
|
else{
|
|
p=0;}
|
|
}
|
|
|
|
if (p==3)
|
|
{ if (c==token2[1]){p=33;}
|
|
else{
|
|
p=0;}
|
|
}
|
|
|
|
if (p==9)
|
|
{ if (c==token9[1]){p=99;}
|
|
else{
|
|
p=0;}
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 1
|
|
{ if (c==token11[1]){p=111;}
|
|
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 2
|
|
{ if (c==token12[1]){p=112;}
|
|
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 3
|
|
{ if (c==token13[1]){p=113;}
|
|
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 4
|
|
{ if (c==token14[1]){p=114;}
|
|
|
|
}
|
|
if (p==101)//cравнение второго символа на соответствие t 5
|
|
{ if (c==token15[1]){p=115;}
|
|
else{
|
|
p=0;}
|
|
}
|
|
//*************************************************
|
|
if (p==99)
|
|
{// myFile.print(c);//d+237h895s05v
|
|
n++;
|
|
if (n==2){
|
|
if (c==45){zn9=1;//-
|
|
}//znak
|
|
else
|
|
{zn9=2;//+
|
|
}
|
|
}
|
|
if (n==3) {t9=(c-48)*100;} //температура
|
|
if (n==4){t9=(c-48)*10+t9;}
|
|
if (n==5){t9=(c-48)+t9;}
|
|
if (n==7){h9=(c-48)*100;}//влажность
|
|
if (n==8){h9=(c-48)*10+h9;}
|
|
if (n==9){h9=(c-48)+h9;}
|
|
if (n==11){osv9=10*(c-48);}//освещенность
|
|
if (n==12)
|
|
{osv9=osv9+(c-48);
|
|
if(osv9>99){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 (Tun<temul[25]) //min Tul
|
|
{
|
|
temul[25]=Tun;
|
|
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 (zn==1)// ---------------------------------
|
|
{
|
|
if (temul[25]>999)
|
|
{
|
|
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);
|
|
|
|
}
|
|
|