parent
991a09d3b5
commit
631dd50d91
@ -0,0 +1,901 @@ |
|||||||
|
void flower1() |
||||||
|
|
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("weat");//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("fl1.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 640, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
//**************************************************
|
||||||
|
myGLCD.setBackColor(VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(VGA_RED);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("+" ,60, 56); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont);
|
||||||
|
myGLCD.printNumI(tfl ,80, 46); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_AQUA);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("%" ,122, 410); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont); |
||||||
|
myGLCD.printNumI(vfl ,59, 385);
|
||||||
|
|
||||||
|
// myGLCD.setFont(Ubuntubold);
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
//myGLCD.printNumI(osv ,440, 43);
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(dfl ,65, 455);
|
||||||
|
myGLCD.print(":00",77+16, 455);
|
||||||
|
|
||||||
|
//********************************************************
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
//**************************************
|
||||||
|
// myGLCD.setColor(0,38,92);
|
||||||
|
// myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
// myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
// myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
// info();
|
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
|
||||||
|
graflawer(); |
||||||
|
grafflm(); |
||||||
|
|
||||||
|
//******************************************************************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//********************************************************************************************************************
|
||||||
|
void graflawer() |
||||||
|
//*******рисуем график *********************************
|
||||||
|
{ myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(215, 0, 635, 475);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(215, 0, 635, 475);//прямоугольник с обводкой
|
||||||
|
int z=80; |
||||||
|
int s=220; |
||||||
|
myGLCD.setColor(30,55,90); |
||||||
|
myGLCD.fillRoundRect(s+55, 5, s+55+15, 440-z);//рисуем синий пр-к1
|
||||||
|
myGLCD.setColor(45,55,105); |
||||||
|
myGLCD.fillRoundRect(s+55+15, 5, s+55+30, 440-z);//рисуем синий пр-к2
|
||||||
|
myGLCD.setColor(60,55,110); |
||||||
|
myGLCD.fillRoundRect(s+55+30, 5, s+55+45, 440-z);//рисуем синий пр-к3
|
||||||
|
myGLCD.setColor(75,55,115); |
||||||
|
myGLCD.fillRoundRect(s+55+45, 5, s+55+60, 440-z);//рисуем синий пр-к4
|
||||||
|
|
||||||
|
myGLCD.setColor(82,40,137); |
||||||
|
myGLCD.fillRoundRect(s+55+60,5 , s+55+60+15, 440-z);//рисуем синий пр-к5
|
||||||
|
myGLCD.setColor(97,35,139); |
||||||
|
myGLCD.fillRoundRect(s+55+60+15,5 , s+55+60+30, 440-z);//рисуем синий пр-к6
|
||||||
|
myGLCD.setColor(125,32,141); |
||||||
|
myGLCD.fillRoundRect(s+55+60+30,5 , s+55+60+45, 440-z);//рисуем синий пр-к7
|
||||||
|
myGLCD.setColor(145,27,143); |
||||||
|
myGLCD.fillRoundRect(s+55+60+45,5 , s+55+60+60, 440-z);//рисуем синий пр-к8
|
||||||
|
|
||||||
|
myGLCD.setColor(163,25,146); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60,5 , s+55+60+60+15, 440-z);//рисуем синий пр-к9
|
||||||
|
myGLCD.setColor(173,35,136); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+15,5 , s+55+60+60+30, 440-z);//рисуем синий пр-к10
|
||||||
|
myGLCD.setColor(187,45,120); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+30,5 , s+55+60+60+45, 440-z);//рисуем синий пр-к11
|
||||||
|
myGLCD.setColor(195,55,106); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+45,5 , s+55+60+60+60, 440-z);//рисуем синий пр-к 12
|
||||||
|
|
||||||
|
myGLCD.setColor(200,64,97); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+60,5 , s+55+60+60+60+15, 440-z);//рисуем синий пр-к13
|
||||||
|
myGLCD.setColor(195,75,92); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+60+15,5 , s+55+60+60+60+30, 440-z);//рисуем синий пр-к14
|
||||||
|
myGLCD.setColor(190,85,87); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+60+30,5 , s+55+60+60+60+45, 440-z);//рисуем синий пр-к15
|
||||||
|
myGLCD.setColor(180,95,82); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+60+45,5 , s+55+60+60+60+60, 440-z);//рисуем синий пр-к 16
|
||||||
|
|
||||||
|
myGLCD.setColor(171,103,76); |
||||||
|
myGLCD.fillRoundRect(s+55+240,5 , s+55+240+15, 440-z);//рисуем синий пр-к 17
|
||||||
|
myGLCD.setColor(151,93,86); |
||||||
|
myGLCD.fillRoundRect(s+55+240+15,5 , s+55+240+30, 440-z);//рисуем синий пр-к 18
|
||||||
|
myGLCD.setColor(131,83,96); |
||||||
|
myGLCD.fillRoundRect(s+55+240+30,5 , s+55+240+45, 440-z);//рисуем синий пр-к 19
|
||||||
|
myGLCD.setColor(101,73,116); |
||||||
|
myGLCD.fillRoundRect(s+55+240+45,5 , s+55+300, 440-z);//рисуем синий пр-к 20
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(82,40,137); |
||||||
|
myGLCD.fillRoundRect(s+55+300,5 , s+55+315, 440-z);//рисуем синий пр-к 21
|
||||||
|
myGLCD.setColor(60,55,110); |
||||||
|
myGLCD.fillRoundRect(s+55+315,5 , s+55+330, 440-z);//рисуем синий пр-к 22
|
||||||
|
myGLCD.setColor(30,55,90); |
||||||
|
myGLCD.fillRoundRect(s+55+330,5 , s+55+345, 440-z);//рисуем синий пр-к 23
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.drawLine(s+55, 10, s+55, 450-z);// ось у
|
||||||
|
myGLCD.drawLine(s+400, 10, s+400, 440-z);//ось у давление
|
||||||
|
myGLCD.drawLine(s+55, 90+180-z, s+400, 90+180-z);// ось х темп
|
||||||
|
myGLCD.drawLine(s+55, 440-z, s+400, 440-z);//ось х влажность
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(35,173,255); |
||||||
|
//myGLCD.drawLine(s+55, 270-80, s+400, 270-80);// ось 0
|
||||||
|
myGLCD.setColor(200,64,97); |
||||||
|
myGLCD.drawLine(s+55, 270-200, s+400, 70);// ось 30
|
||||||
|
myGLCD.drawLine(s+55, 270-220, s+400, 50);// ось 35
|
||||||
|
myGLCD.drawLine(s+55, 440-30-z, s+400, 440-30-z);// ось 30
|
||||||
|
myGLCD.drawLine(s+55, 440-15-z, s+400, 440-15-z);// ось 30
|
||||||
|
myGLCD.setColor(45,112,56); |
||||||
|
myGLCD.drawLine(s+55, 270-180, s+400, 270-180);// ось 25
|
||||||
|
myGLCD.drawLine(s+55, 270-160, s+400, 270-160);// ось 20
|
||||||
|
myGLCD.drawLine(s+55, 270-120, s+400, 270-120);// ось 10
|
||||||
|
myGLCD.drawLine(s+55, 270-100, s+400, 270-100);// ось 5
|
||||||
|
myGLCD.drawLine(s+55, 270-140, s+400, 270-140);// ось 15
|
||||||
|
myGLCD.drawLine(s+55, 440-105-z, s+400, 440-105-z);// ось 70
|
||||||
|
myGLCD.drawLine(s+55, 440-90-z, s+400, 440-90-z);// ось 60
|
||||||
|
myGLCD.drawLine(s+55, 440-75-z, s+400, 440-75-z);// ось 50
|
||||||
|
myGLCD.drawLine(s+55, 440-60-z, s+400, 440-60-z);// ось 40
|
||||||
|
myGLCD.drawLine(s+55, 440-45-z, s+400, 440-45-z);// ось 30
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
// myGLCD.drawLine(s+55, 270-60, s+400, 270-60);// ось -5
|
||||||
|
// myGLCD.drawLine(s+55, 270-40, s+400, 270-40);// ось -10
|
||||||
|
// myGLCD.drawLine(s+55, 270-20, s+400, 270-20);// ось -15
|
||||||
|
myGLCD.drawLine(s+55, 440-135-z, s+400, 440-135-z);// ось 90
|
||||||
|
myGLCD.drawLine(s+55, 440-120-z, s+400, 440-120-z);// ось 80
|
||||||
|
myGLCD.setColor(255,75,29); |
||||||
|
myGLCD.drawLine(s+55, 270-240, s+400, 270-240);// ось 40
|
||||||
|
myGLCD.drawLine(s+55, 270-260, s+400, 270-260);// ось 45
|
||||||
|
|
||||||
|
|
||||||
|
byte k=0; |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
for (int i =80 ; i < 270; i = i+4) //температура шкала цифры
|
||||||
|
{
|
||||||
|
myGLCD.drawLine(s+55, 90+180-i, s+52, 90+180-i); |
||||||
|
myGLCD.drawLine(s+400, 90+180-i, s+403, 90+180-i); |
||||||
|
k=k+1; |
||||||
|
if((k==6)||(k==1))//верт метки tu td
|
||||||
|
{ |
||||||
|
if ((i/4-20)>29) |
||||||
|
{myGLCD.setColor(255,62,62); |
||||||
|
myGLCD.printNumI(i/4-20, s+5, 90+180-8-i); |
||||||
|
} |
||||||
|
if ((i/4-20)>0 && (i/4-20)<30) |
||||||
|
{myGLCD.setColor(10,255,60); |
||||||
|
myGLCD.printNumI(i/4-20, s+5, 90+180-8-i); |
||||||
|
} |
||||||
|
|
||||||
|
if ((i/4-20)<1) |
||||||
|
{myGLCD.setColor(35,173,255); |
||||||
|
myGLCD.printNumI(i/4-20, s+5, 90+180-8-i); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.drawLine(s+55, 90+180-i, s+55-9, 90+180-i); |
||||||
|
myGLCD.drawLine(s+400, 90+180-i, s+400+9, 90+180-i); |
||||||
|
k=1;} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
k=0; |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
for (int i =0 ; i < 150; i = i+3) //влажность
|
||||||
|
{ //myGLCD.drawLine(55, 440, 400, 440);//ось х давление
|
||||||
|
//myGLCD.drawLine(55, 10, 55, 450);// ось у
|
||||||
|
myGLCD.drawLine(s+55, 440-i-z, s+52, 440-i-z); |
||||||
|
k=k+1; |
||||||
|
|
||||||
|
if((k==6)||(k==1))//верт метки tu td
|
||||||
|
{ |
||||||
|
if (i>119) |
||||||
|
{myGLCD.setColor(35,173,255); |
||||||
|
myGLCD.printNumI(i*2/3, s+5, 440-8-i-z); |
||||||
|
} |
||||||
|
if (i>31 && i<119) |
||||||
|
{myGLCD.setColor(10,255,60); |
||||||
|
myGLCD.printNumI(i*2/3, s+5, 440-8-i-z); |
||||||
|
} |
||||||
|
|
||||||
|
if (i<31) |
||||||
|
{myGLCD.setColor(255,255,0); |
||||||
|
myGLCD.printNumI(i*2/3, s+5, 440-8-i-z); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.drawLine(s+55, 440-i-z, s+55-9, 440-i-z); |
||||||
|
k=1;} |
||||||
|
|
||||||
|
} |
||||||
|
//*************************************
|
||||||
|
// int z=80;
|
||||||
|
k=0; |
||||||
|
for (int i =0 ; i < 360; i = i+11) //гориз метки и шкала days
|
||||||
|
{ |
||||||
|
//for (byte n =0 ; n < 5; n = n++)
|
||||||
|
myGLCD.drawLine(s+55+i, 90+180-z, s+55+i, 90+180-z+5); |
||||||
|
myGLCD.drawLine(s+55+i, 440-z, s+55+i, 440+5-z); |
||||||
|
|
||||||
|
|
||||||
|
k=k+1; |
||||||
|
if((k==6)||(k==1)) |
||||||
|
{myGLCD.printNumI(i/11, s+55+i-12, 90+180+10-z); |
||||||
|
myGLCD.printNumI(i/11, s+55+i-12, 440+10-z); |
||||||
|
myGLCD.drawLine(s+55+i, 90+180-z, s+55+i, 90+180+9-z); |
||||||
|
myGLCD.drawLine(s+55+i, 440-z, s+55+i, 440+9-z); |
||||||
|
k=1;} |
||||||
|
} |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(255,62,62); |
||||||
|
myGLCD.print("T C" ,s+59, 10); |
||||||
|
myGLCD.print("T C" ,s+61, 10); |
||||||
|
myGLCD.print("T C" ,s+60, 11); |
||||||
|
myGLCD.print("T C" ,s+60, 9); |
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.print("T C" ,s+60, 10); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// myGLCD.setColor(10,255,60);
|
||||||
|
// myGLCD.print("750" ,352, 250-8);
|
||||||
|
// myGLCD.print("755" ,352, 230-8);
|
||||||
|
// myGLCD.print("760" ,352, 210-8);
|
||||||
|
// myGLCD.print("765" ,352, 190-8);
|
||||||
|
// myGLCD.print("770" ,352, 170-8);
|
||||||
|
// myGLCD.setColor(0,38,92);
|
||||||
|
// myGLCD.print("Pmm" ,353, 170-35);
|
||||||
|
// myGLCD.print("Pmm" ,351, 170-35);
|
||||||
|
// myGLCD.print("Pmm" ,352, 171-35);
|
||||||
|
// myGLCD.print("Pmm" ,352, 169-35);
|
||||||
|
// myGLCD.setColor(VGA_WHITE);
|
||||||
|
// myGLCD.print("Pmm" ,352, 170-35);
|
||||||
|
|
||||||
|
myGLCD.setColor(35,173,255);
|
||||||
|
myGLCD.print("H%" ,s+61, 290-z); |
||||||
|
myGLCD.print("H%" ,s+59, 290-z); |
||||||
|
myGLCD.print("H%" ,s+60, 291-z); |
||||||
|
myGLCD.print("H%" ,s+60, 289-z); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.print("H%" ,s+60, 290-z); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
//***************************************************************
|
||||||
|
void grafflm() |
||||||
|
{ |
||||||
|
boolean datm=1; |
||||||
|
boolean daty=1; |
||||||
|
int m=t.mon;//месяц
|
||||||
|
int ye=t.year; //год
|
||||||
|
// knopki******************************
|
||||||
|
byte dat16=0;//16:00 date yes or no
|
||||||
|
|
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255, 255, 0);//цвет
|
||||||
|
myGLCD.print("M" ,235, 395);//выделение месяца цветом 440 203
|
||||||
|
|
||||||
|
// myGLCD.setBackColor(8,101,192);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255, 255, 0);//цвет 440 243
|
||||||
|
myGLCD.print("Y" ,235, 435); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(275, 391, 400, 434-5);//рисуем синий пр-к M
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(275, 391, 400, 434-5);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(275, 431, 400, 474-5);//рисуем синий пр-к Y
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(275, 431, 400, 474-5);//прямоугольник с обводкой
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
|
||||||
|
if (mon1<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
|
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
myGLCD.print(">" ,312+63, 395); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(430, 391, 500, 434-5);//рисуем синий пр-к RS
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(430, 391, 500, 434-5);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92);
|
||||||
|
myGLCD.fillRoundRect(520, 391, 590, 434-5);//прямоугольник с обводкой OK
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(520, 391, 590, 434-5);//прямоугольник с обводкой OK
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92);
|
||||||
|
myGLCD.drawRoundRect(430, 431, 590, 474-5);//прямоугольник с обводкой OK
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(430, 431, 590, 474-5);//прямоугольник с обводкой OK
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
myGLCD.setColor(255, 97, 237);//цвет
|
||||||
|
myGLCD.print("QUIT" ,460, 435); |
||||||
|
myGLCD.setColor(255, 255, 255);//цвет
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************
|
||||||
|
graff: |
||||||
|
|
||||||
|
byte dm=31;// макс день месяца
|
||||||
|
if (m==2) |
||||||
|
dm=28; |
||||||
|
|
||||||
|
if ((m==4)||(m==6)||(m==9)||(m==11)) |
||||||
|
dm=30; |
||||||
|
|
||||||
|
if(ye==t.year)//проверка на наличае данных
|
||||||
|
{if(m==t.mon) |
||||||
|
{ dm=t.date-1; |
||||||
|
} |
||||||
|
} |
||||||
|
//*************************GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG*******************************************************
|
||||||
|
word work[31]={100,250,250,244,245,246,240,248,249,245,250,249,250,250,250,244,245,246,250,248,250,250,250,249,250,250,250,250,250,250,249};
|
||||||
|
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");//23:00 T=+27,8C Hu=33,2%
|
||||||
|
delay (100); |
||||||
|
name= stry[ye-2014]; |
||||||
|
|
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку год
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
name= strm[m-1]; |
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку месяц
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*************************************************************************
|
||||||
|
myFile.open("poliv.txt", O_READ); |
||||||
|
char s; |
||||||
|
char token[] = "date:";
|
||||||
|
char token1[] = "16:00";
|
||||||
|
int n1=0; |
||||||
|
int p=0;
|
||||||
|
int j=0;
|
||||||
|
int w=0; |
||||||
|
for (int d=0; d<dm ;d++){ |
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
//s=myFile.read();//пробел
|
||||||
|
w=10*(myFile.read()-48);//десятки даты
|
||||||
|
|
||||||
|
w=w+(myFile.read()-48);//единицы даты
|
||||||
|
|
||||||
|
|
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token1[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
dat16=1; |
||||||
|
for (j=0; j<8 ;j++) |
||||||
|
{ s=myFile.read();//пропуск 9 символов
|
||||||
|
//delay(10);
|
||||||
|
} |
||||||
|
work[w-1]=10*(myFile.read()-48);//десятки t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312-24, 10);
|
||||||
|
work[w-1]=work[w-1]+(myFile.read()-48);//единицы t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312+48, 10);
|
||||||
|
work[w-1]=work[w-1]*10; |
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}//while
|
||||||
|
if (dat16==0) |
||||||
|
{ |
||||||
|
if (w>1){ work[w-1]=work[w-2];} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
myGLCD.setColor(255, 0, 0); |
||||||
|
int y1; |
||||||
|
int y2; |
||||||
|
//****************Рисуем графики T***************************
|
||||||
|
|
||||||
|
// цвет графиа
|
||||||
|
if(colorgraf>3) |
||||||
|
colorgraf=0; |
||||||
|
if(colorgraf==0)//выбор цвета графика
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
if(colorgraf==1) |
||||||
|
myGLCD.setColor(35,173,255); |
||||||
|
if(colorgraf==2) |
||||||
|
myGLCD.setColor(255, 255, 0); |
||||||
|
if(colorgraf==3) |
||||||
|
myGLCD.setColor(10,255,60); |
||||||
|
for ( byte x =1 ; x < dm; x = x+1) //****************темп дома постр графика
|
||||||
|
{
|
||||||
|
y1=190-(work[x-1]*4/10); |
||||||
|
y2=190-(work[x]*4/10); |
||||||
|
myGLCD.drawLine(275+x*11, y1, 275+11*(x+1), y2);
|
||||||
|
myGLCD.drawLine(275+x*11, y1-1, 275+11*(x+1), y2-1);
|
||||||
|
|
||||||
|
} |
||||||
|
//********************************************************************************
|
||||||
|
//****************************влажность
|
||||||
|
strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; |
||||||
|
stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("flower");//23:00 T=+27,8C Hu=33,2%
|
||||||
|
delay (100); |
||||||
|
// name= stry[years1-2014];
|
||||||
|
name= stry[ye-2014];
|
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку год
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
name= strm[m-1]; |
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку месяц
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myFile.open("poliv.txt", O_READ); |
||||||
|
w=0; |
||||||
|
for (int d=0; d<dm ;d++){ |
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
|
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
//s=myFile.read();//пробел
|
||||||
|
|
||||||
|
w=10*(myFile.read()-48);//десятки даты
|
||||||
|
|
||||||
|
|
||||||
|
w=w+(myFile.read()-48);//единицы даты
|
||||||
|
|
||||||
|
|
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
dat16=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token1[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
dat16=1; |
||||||
|
s=myFile.read();//пропуск
|
||||||
|
s=myFile.read();//пропуск
|
||||||
|
s=myFile.read();//пропуск
|
||||||
|
|
||||||
|
work[w-1]=10*(myFile.read()-48);//десятки t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312-24, 250);
|
||||||
|
work[w-1]=work[w-1]+(myFile.read()-48);//единицы t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312+48, 250);
|
||||||
|
work[w-1]=work[w-1]*10; |
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dat16==0) |
||||||
|
{ |
||||||
|
if (w>1){ work[w-1]=work[w-2];} |
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
|
||||||
|
for ( byte x =1 ; x < dm; x = x+1) //******************************************влажность ул постр графика
|
||||||
|
{
|
||||||
|
y1=360-(work[x-1]*15/100); |
||||||
|
y2=360-(work[x]*15/100); |
||||||
|
myGLCD.drawLine(275+x*11, y1, 275+11*(x+1), y2);
|
||||||
|
myGLCD.drawLine(275+x*11, y1-1, 275+11*(x+1), y2-1);
|
||||||
|
} |
||||||
|
delay (100);
|
||||||
|
sd.chdir("/");
|
||||||
|
//****************************************************************************
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
|
||||||
|
if ((sec==0)||(sec==20)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==45) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*********************************TOUCH********************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
// myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
// myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
flower1(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((y>=400) && (y<=430)) //
|
||||||
|
{ |
||||||
|
if ((x>=280) && (x<=300))//<M
|
||||||
|
{datm=1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126);
|
||||||
|
|
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
//myGLCD.print(">" ,312+63, 395);
|
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
m=m-1; |
||||||
|
if (m==0) |
||||||
|
m=12; |
||||||
|
if(ye==t.year) |
||||||
|
{if(m>t.mon) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(ye<2016) |
||||||
|
{if(m<9) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (m<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
delay (300);
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=370) && (x<=390))//>M
|
||||||
|
{datm=1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126);
|
||||||
|
|
||||||
|
//myGLCD.print("<" ,312-32, 395);
|
||||||
|
myGLCD.print(">" ,312+63, 395); |
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
m=m+1; |
||||||
|
if (m==13) |
||||||
|
m=1; |
||||||
|
if(ye==t.year) |
||||||
|
{if(m>t.mon) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(ye<2016) |
||||||
|
{if(m<9) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (m<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
delay (300);
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print(">" ,312+63, 395);
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=435) && (x<=500))//RS
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
if(daty+datm==2)
|
||||||
|
{myGLCD.setColor(0,255,0); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
//GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
graflawer(); |
||||||
|
grafflm();
|
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
} |
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if ((x>=525) && (x<=590))//OK
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
if(daty+datm==2)
|
||||||
|
{myGLCD.setColor(0,255,0); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
delay(300); |
||||||
|
colorgraf++; |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
goto graff; |
||||||
|
} |
||||||
|
//*******GGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
} |
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=440) && (y<=470)) //
|
||||||
|
{ |
||||||
|
if ((x>=280) && (x<=300))//<Y
|
||||||
|
{daty=1; |
||||||
|
ye=ye-1; |
||||||
|
if(ye<2015) |
||||||
|
ye=2015; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
if((ye<2015) || (ye>t.year)) |
||||||
|
{ myGLCD.setColor(255,0,0); |
||||||
|
daty=0; |
||||||
|
} |
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
delay(300); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=370) && (x<=390))//>Y
|
||||||
|
{daty=1; |
||||||
|
ye=ye+1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
if((ye<2015) || (ye>t.year)) |
||||||
|
{ myGLCD.setColor(255,0,0); |
||||||
|
daty=0; |
||||||
|
} |
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
delay(300); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=435) && (x<=590))//QUIT
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(59, 251, 104);//цвет
|
||||||
|
myGLCD.print("QUIT" ,460, 435); |
||||||
|
delay(500); |
||||||
|
flower(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}//touch
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,681 @@ |
|||||||
|
void flower2() |
||||||
|
|
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("weat");//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("fl2.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 640, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
//**************************************************
|
||||||
|
myGLCD.setBackColor(VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(VGA_RED);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("+" ,60, 56); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont);
|
||||||
|
myGLCD.printNumI(tfl2 ,80, 46); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_AQUA);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("%" ,122, 410); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont); |
||||||
|
myGLCD.printNumI(vfl2 ,59, 385);
|
||||||
|
|
||||||
|
// myGLCD.setFont(Ubuntubold);
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
//myGLCD.printNumI(osv ,440, 43);
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(dfl2 ,65, 455);
|
||||||
|
myGLCD.print(":00",77+16, 455);
|
||||||
|
|
||||||
|
//********************************************************
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
//**************************************
|
||||||
|
// myGLCD.setColor(0,38,92);
|
||||||
|
// myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
// myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
// myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
// info();
|
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
|
||||||
|
graflawer(); |
||||||
|
grafflm2(); |
||||||
|
|
||||||
|
//******************************************************************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//***************************************************************
|
||||||
|
void grafflm2() |
||||||
|
{ |
||||||
|
boolean datm=1; |
||||||
|
boolean daty=1; |
||||||
|
int m=t.mon;//месяц
|
||||||
|
int ye=t.year; //год
|
||||||
|
// knopki******************************
|
||||||
|
byte dat16=0;//16:00 date yes or no
|
||||||
|
|
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255, 255, 0);//цвет
|
||||||
|
myGLCD.print("M" ,235, 395);//выделение месяца цветом 440 203
|
||||||
|
|
||||||
|
// myGLCD.setBackColor(8,101,192);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255, 255, 0);//цвет 440 243
|
||||||
|
myGLCD.print("Y" ,235, 435); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(275, 391, 400, 434-5);//рисуем синий пр-к M
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(275, 391, 400, 434-5);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(275, 431, 400, 474-5);//рисуем синий пр-к Y
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(275, 431, 400, 474-5);//прямоугольник с обводкой
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
|
||||||
|
if (mon1<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
|
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
myGLCD.print(">" ,312+63, 395); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(430, 391, 500, 434-5);//рисуем синий пр-к RS
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(430, 391, 500, 434-5);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92);
|
||||||
|
myGLCD.fillRoundRect(520, 391, 590, 434-5);//прямоугольник с обводкой OK
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(520, 391, 590, 434-5);//прямоугольник с обводкой OK
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92);
|
||||||
|
myGLCD.drawRoundRect(430, 431, 590, 474-5);//прямоугольник с обводкой OK
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(430, 431, 590, 474-5);//прямоугольник с обводкой OK
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
myGLCD.setColor(255, 97, 237);//цвет
|
||||||
|
myGLCD.print("QUIT" ,460, 435); |
||||||
|
myGLCD.setColor(255, 255, 255);//цвет
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************
|
||||||
|
graff2: |
||||||
|
|
||||||
|
byte dm=31;// макс день месяца
|
||||||
|
if (m==2) |
||||||
|
dm=28; |
||||||
|
|
||||||
|
if ((m==4)||(m==6)||(m==9)||(m==11)) |
||||||
|
dm=30; |
||||||
|
|
||||||
|
if(ye==t.year)//проверка на наличае данных
|
||||||
|
{if(m==t.mon) |
||||||
|
{ dm=t.date-1; |
||||||
|
} |
||||||
|
} |
||||||
|
//*************************GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG*******************************************************
|
||||||
|
word work[31]={100,250,250,244,245,246,240,248,249,245,250,249,250,250,250,244,245,246,250,248,250,250,250,249,250,250,250,250,250,250,249};
|
||||||
|
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");//23:00 T=+27,8C Hu=33,2%
|
||||||
|
delay (100); |
||||||
|
name= stry[ye-2014]; |
||||||
|
|
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку год
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
name= strm[m-1]; |
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку месяц
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*************************************************************************
|
||||||
|
myFile.open("poliv2.txt", O_READ); |
||||||
|
char s; |
||||||
|
char token[] = "date:";
|
||||||
|
char token1[] = "16:00";
|
||||||
|
int n1=0; |
||||||
|
int p=0;
|
||||||
|
int j=0;
|
||||||
|
int w=0; |
||||||
|
for (int d=0; d<dm ;d++){ |
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
//s=myFile.read();//пробел
|
||||||
|
w=10*(myFile.read()-48);//десятки даты
|
||||||
|
|
||||||
|
w=w+(myFile.read()-48);//единицы даты
|
||||||
|
|
||||||
|
|
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token1[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
dat16=1; |
||||||
|
for (j=0; j<8 ;j++) |
||||||
|
{ s=myFile.read();//пропуск 9 символов
|
||||||
|
//delay(10);
|
||||||
|
} |
||||||
|
work[w-1]=10*(myFile.read()-48);//десятки t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312-24, 10);
|
||||||
|
work[w-1]=work[w-1]+(myFile.read()-48);//единицы t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312+48, 10);
|
||||||
|
work[w-1]=work[w-1]*10; |
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}//while
|
||||||
|
if (dat16==0) |
||||||
|
{ |
||||||
|
if (w>1){ work[w-1]=work[w-2];} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
myGLCD.setColor(255, 0, 0); |
||||||
|
int y1; |
||||||
|
int y2; |
||||||
|
//****************Рисуем графики T***************************
|
||||||
|
|
||||||
|
// цвет графиа
|
||||||
|
if(colorgraf>3) |
||||||
|
colorgraf=0; |
||||||
|
if(colorgraf==0)//выбор цвета графика
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
if(colorgraf==1) |
||||||
|
myGLCD.setColor(35,173,255); |
||||||
|
if(colorgraf==2) |
||||||
|
myGLCD.setColor(255, 255, 0); |
||||||
|
if(colorgraf==3) |
||||||
|
myGLCD.setColor(10,255,60); |
||||||
|
for ( byte x =1 ; x < dm; x = x+1) //****************темп дома постр графика
|
||||||
|
{
|
||||||
|
y1=190-(work[x-1]*4/10); |
||||||
|
y2=190-(work[x]*4/10); |
||||||
|
myGLCD.drawLine(275+x*11, y1, 275+11*(x+1), y2);
|
||||||
|
myGLCD.drawLine(275+x*11, y1-1, 275+11*(x+1), y2-1);
|
||||||
|
|
||||||
|
} |
||||||
|
//********************************************************************************
|
||||||
|
//****************************влажность
|
||||||
|
strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; |
||||||
|
stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("flower");//23:00 T=+27,8C Hu=33,2%
|
||||||
|
delay (100); |
||||||
|
// name= stry[years1-2014];
|
||||||
|
name= stry[ye-2014];
|
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку год
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
name= strm[m-1]; |
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку месяц
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myFile.open("poliv2.txt", O_READ); |
||||||
|
w=0; |
||||||
|
for (int d=0; d<dm ;d++){ |
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
|
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
//s=myFile.read();//пробел
|
||||||
|
|
||||||
|
w=10*(myFile.read()-48);//десятки даты
|
||||||
|
|
||||||
|
|
||||||
|
w=w+(myFile.read()-48);//единицы даты
|
||||||
|
|
||||||
|
|
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
dat16=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token1[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
dat16=1; |
||||||
|
s=myFile.read();//пропуск
|
||||||
|
s=myFile.read();//пропуск
|
||||||
|
s=myFile.read();//пропуск
|
||||||
|
|
||||||
|
work[w-1]=10*(myFile.read()-48);//десятки t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312-24, 250);
|
||||||
|
work[w-1]=work[w-1]+(myFile.read()-48);//единицы t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312+48, 250);
|
||||||
|
work[w-1]=work[w-1]*10; |
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dat16==0) |
||||||
|
{ |
||||||
|
if (w>1){ work[w-1]=work[w-2];} |
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
|
||||||
|
for ( byte x =1 ; x < dm; x = x+1) //******************************************влажность ул постр графика
|
||||||
|
{
|
||||||
|
y1=360-(work[x-1]*15/100); |
||||||
|
y2=360-(work[x]*15/100); |
||||||
|
myGLCD.drawLine(275+x*11, y1, 275+11*(x+1), y2);
|
||||||
|
myGLCD.drawLine(275+x*11, y1-1, 275+11*(x+1), y2-1);
|
||||||
|
} |
||||||
|
delay (100);
|
||||||
|
sd.chdir("/");
|
||||||
|
//****************************************************************************
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
|
||||||
|
if ((sec==0)||(sec==20)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==45) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*********************************TOUCH********************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
// myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
// myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
flower2(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((y>=400) && (y<=430)) //
|
||||||
|
{ |
||||||
|
if ((x>=280) && (x<=300))//<M
|
||||||
|
{datm=1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126);
|
||||||
|
|
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
//myGLCD.print(">" ,312+63, 395);
|
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
m=m-1; |
||||||
|
if (m==0) |
||||||
|
m=12; |
||||||
|
if(ye==t.year) |
||||||
|
{if(m>t.mon) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(ye<2016) |
||||||
|
{if(m<9) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (m<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
delay (300);
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=370) && (x<=390))//>M
|
||||||
|
{datm=1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126);
|
||||||
|
|
||||||
|
//myGLCD.print("<" ,312-32, 395);
|
||||||
|
myGLCD.print(">" ,312+63, 395); |
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
m=m+1; |
||||||
|
if (m==13) |
||||||
|
m=1; |
||||||
|
if(ye==t.year) |
||||||
|
{if(m>t.mon) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(ye<2016) |
||||||
|
{if(m<9) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (m<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
delay (300);
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print(">" ,312+63, 395);
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=435) && (x<=500))//RS
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
if(daty+datm==2)
|
||||||
|
{myGLCD.setColor(0,255,0); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
//GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
graflawer(); |
||||||
|
grafflm2();
|
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
} |
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if ((x>=525) && (x<=590))//OK
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
if(daty+datm==2)
|
||||||
|
{myGLCD.setColor(0,255,0); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
delay(300); |
||||||
|
colorgraf++; |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
goto graff2; |
||||||
|
} |
||||||
|
//*******GGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
} |
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=440) && (y<=470)) //
|
||||||
|
{ |
||||||
|
if ((x>=280) && (x<=300))//<Y
|
||||||
|
{daty=1; |
||||||
|
ye=ye-1; |
||||||
|
if(ye<2015) |
||||||
|
ye=2015; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
if((ye<2015) || (ye>t.year)) |
||||||
|
{ myGLCD.setColor(255,0,0); |
||||||
|
daty=0; |
||||||
|
} |
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
delay(300); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=370) && (x<=390))//>Y
|
||||||
|
{daty=1; |
||||||
|
ye=ye+1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
if((ye<2015) || (ye>t.year)) |
||||||
|
{ myGLCD.setColor(255,0,0); |
||||||
|
daty=0; |
||||||
|
} |
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
delay(300); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=435) && (x<=590))//QUIT
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(59, 251, 104);//цвет
|
||||||
|
myGLCD.print("QUIT" ,460, 435); |
||||||
|
delay(500); |
||||||
|
flower(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}//touch
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,151 @@ |
|||||||
|
void flower3() |
||||||
|
|
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("weat");//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("fl3.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 640, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
//**************************************************
|
||||||
|
myGLCD.setBackColor(VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(VGA_RED);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("+" ,60, 56); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont);
|
||||||
|
myGLCD.printNumI(tfl3 ,80, 46); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_AQUA);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("%" ,122, 410); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont); |
||||||
|
myGLCD.printNumI(vfl3 ,59, 385);
|
||||||
|
|
||||||
|
// myGLCD.setFont(Ubuntubold);
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
//myGLCD.printNumI(osv ,440, 43);
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(dfl3 ,65, 455);
|
||||||
|
myGLCD.print(":00",77+16, 455);
|
||||||
|
|
||||||
|
//********************************************************
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
//**************************************
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
info(); |
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
kalend(); |
||||||
|
clc(); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
|
||||||
|
if ((sec==0)||(sec==20)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==42) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==55) || (sec==25) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//*********************************TOUCH********************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print("x= " , 650, 32); |
||||||
|
myGLCD.printNumI(x , 700, 32);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print("y= " ,650 , 72); |
||||||
|
myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
flower3(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
flower(); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
}//touch
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,186 @@ |
|||||||
|
void flower() |
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("weat");//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("fl.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 640, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
//**************************************************
|
||||||
|
myGLCD.setBackColor(VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(VGA_RED);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("+" ,60, 56); |
||||||
|
myGLCD.print("+" ,260, 56); |
||||||
|
myGLCD.print("+" ,522, 56); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont);
|
||||||
|
myGLCD.printNumI(tfl ,80, 46); |
||||||
|
myGLCD.printNumI(tfl2 ,280, 46); |
||||||
|
myGLCD.printNumI(tfl3 ,542, 46); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_AQUA);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("%" ,122, 410); |
||||||
|
myGLCD.print("%" ,318, 410); |
||||||
|
myGLCD.print("%" ,565, 410); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont); |
||||||
|
myGLCD.printNumI(vfl ,59, 385); |
||||||
|
myGLCD.printNumI(vfl2 ,255, 385);
|
||||||
|
myGLCD.printNumI(vfl3 ,500, 385);
|
||||||
|
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(osv ,443, 43);
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(dfl ,65, 455);
|
||||||
|
myGLCD.printNumI(dfl2 ,261, 455);
|
||||||
|
myGLCD.printNumI(dfl3 ,506, 455);
|
||||||
|
myGLCD.print(":00",77+16, 455);
|
||||||
|
myGLCD.print(":00",273+16, 455);
|
||||||
|
myGLCD.print(":00",518+16, 455);
|
||||||
|
|
||||||
|
//********************************************************
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
//**************************************
|
||||||
|
if (rawp==1) |
||||||
|
{delay (1000); |
||||||
|
rawp=0; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
info(); |
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
// kalend();
|
||||||
|
clc(); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
|
||||||
|
if ((sec==0)||(sec==20)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==45) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*********************************TOUCH********************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
// myGLCD.setBackColor(255,255,255);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
// myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
// myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
if ((y>=130) && (y<=450)) // Upper row
|
||||||
|
{ if ((x>=40) && (x<=200)) |
||||||
|
{ flower1(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=230) && (x<=400)) |
||||||
|
{ flower2(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=480) && (x<=620)) |
||||||
|
{ flower3(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
flower(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
}//touch
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,340 @@ |
|||||||
|
|
||||||
|
// This program requires the UTFT library.
|
||||||
|
|
||||||
|
#define imagedatatype unsigned short |
||||||
|
//#include <UTFT_Buttons.h>
|
||||||
|
#include <UTouch.h> |
||||||
|
#include <UTFT.h> |
||||||
|
//#include <UTFT_tinyFAT.h>
|
||||||
|
#include <SdFat.h> |
||||||
|
//#include <SdFatUtil.h>
|
||||||
|
SdFat sd; |
||||||
|
SdFile myFile; |
||||||
|
//#include <Time.h>
|
||||||
|
//#include <rtc_clock.h>
|
||||||
|
#include <MP1090S.h> |
||||||
|
#include <Wire.h> |
||||||
|
//RTC_clock rtc_clock(XTAL);
|
||||||
|
|
||||||
|
//*********************RTC*************************************************************
|
||||||
|
#include <DS3231.h> |
||||||
|
// Init the DS3231 using the hardware interface
|
||||||
|
DS3231 rtc(A2, A3); |
||||||
|
|
||||||
|
// Init a Time-data structure
|
||||||
|
Time t; |
||||||
|
|
||||||
|
|
||||||
|
//**************BMP085****************************************************************
|
||||||
|
#define BMP085_ADDRESS 0x77 // I2C address of BMP085
|
||||||
|
|
||||||
|
const unsigned char OSS = 0; // Oversampling Setting
|
||||||
|
|
||||||
|
//float temperatur;
|
||||||
|
float pressure; |
||||||
|
boolean rawp=0; |
||||||
|
// Calibration values of BMP085:
|
||||||
|
short ac1; |
||||||
|
short ac2;
|
||||||
|
short ac3;
|
||||||
|
unsigned short ac4; |
||||||
|
unsigned short ac5; |
||||||
|
unsigned short ac6; |
||||||
|
short b1;
|
||||||
|
short b2; |
||||||
|
short mb; |
||||||
|
short mc; |
||||||
|
short md; |
||||||
|
long b5;
|
||||||
|
// temul[24]max t
|
||||||
|
// temul[25]min t
|
||||||
|
//*****************************************************************************
|
||||||
|
word temdom[24]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249}; |
||||||
|
word temul[26]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249,490,152};// max t=49.0 min 15.2
|
||||||
|
word pres[24]={756,754,760,764,765,766,770,768,759,755,750,749,756,754,760,764,765,766,770,768,759,755,750,749}; |
||||||
|
word time1[28]={1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,0,100,200,300,400,500,600,700,800,900,16081,12004,20021,6454};//max 16.08.14 12:00 min 2.02.14 6:45
|
||||||
|
word hug[24]={756,754,760,764,765,766,770,768,759,755,750,749,756,754,760,764,765,766,770,768,759,755,750,749}; |
||||||
|
byte h[24]={25,25,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,25,25}; |
||||||
|
byte sun[24]={0,0,0,0,0,0,0,0,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0}; |
||||||
|
word t1[24]={201,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word t2[24]={202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word t3[24]={203,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word t4[24]={204,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word t5[24]={205,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word bat[5]={300,300,300,300,300}; |
||||||
|
byte h1[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
byte h2[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
byte h3[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
byte h4[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
byte h5[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
//word temul[24]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249};
|
||||||
|
//*********************************************************************************
|
||||||
|
|
||||||
|
extern uint8_t SevenSegNumFont[]; |
||||||
|
extern uint8_t SmallFont[]; |
||||||
|
extern uint8_t BigFont[]; |
||||||
|
|
||||||
|
extern uint8_t Ubuntubold[]; |
||||||
|
|
||||||
|
|
||||||
|
extern imagedatatype aandelen[]; |
||||||
|
extern imagedatatype fotos[]; |
||||||
|
extern imagedatatype instellingen[]; |
||||||
|
extern imagedatatype radio[]; |
||||||
|
extern imagedatatype klok[]; |
||||||
|
extern imagedatatype cl[]; |
||||||
|
extern imagedatatype pr[]; |
||||||
|
extern imagedatatype le[]; |
||||||
|
extern imagedatatype xf[]; |
||||||
|
extern imagedatatype ad[]; |
||||||
|
extern imagedatatype mi[]; |
||||||
|
extern imagedatatype jar[]; |
||||||
|
extern imagedatatype wer[]; |
||||||
|
extern imagedatatype open[];//40
|
||||||
|
extern imagedatatype del[];//40
|
||||||
|
extern imagedatatype flr[];//40
|
||||||
|
extern imagedatatype ints[];//40
|
||||||
|
extern imagedatatype clokk[];//40
|
||||||
|
extern imagedatatype dom1[]; |
||||||
|
byte volume=7; |
||||||
|
byte rad=0; |
||||||
|
long StationFrequency; |
||||||
|
int vetzav;//napr vetra
|
||||||
|
int vetczav;//skorost vetra
|
||||||
|
int vetdzav;//skorost vetra dr
|
||||||
|
int preszav; |
||||||
|
int vet;//napr vetra
|
||||||
|
int vetc;//skorost vetra
|
||||||
|
int vetd;//skorost vetra dr
|
||||||
|
byte q=1; |
||||||
|
byte hour1; |
||||||
|
byte hourp;//время пропуска данных massiv 623
|
||||||
|
byte dd=0;// флаг перехода времени через 00
|
||||||
|
byte min1; |
||||||
|
byte sec; |
||||||
|
byte date; |
||||||
|
byte mon; |
||||||
|
word year1; |
||||||
|
byte dow ; |
||||||
|
byte night; |
||||||
|
int clockCenterX=300; |
||||||
|
int clockCenterY=230; |
||||||
|
int oldsec=0; |
||||||
|
char* str[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"}; |
||||||
|
const int chipSelect = 10; |
||||||
|
byte ptoday=0;//погода сегодня 0-солн 1-перемен обл 2-пасмурно 3-дождь 4- снег 5- туман 6-гроза
|
||||||
|
byte pzav=0; //pogoda zavtra
|
||||||
|
byte tu; |
||||||
|
//**********************************
|
||||||
|
byte ntdat;//номер датчика
|
||||||
|
byte zndat;//знак температуры 0+
|
||||||
|
int hourd1;//время прихода данных час
|
||||||
|
int mind1;//мин
|
||||||
|
int hourd2=2;//время прихода данных час
|
||||||
|
int mind2=2;//мин
|
||||||
|
int hourd3;//время прихода данных час
|
||||||
|
int mind3;//мин
|
||||||
|
int hourd4=4;//время прихода данных час
|
||||||
|
int mind4=4;//мин
|
||||||
|
int hourd5=5;//время прихода данных час
|
||||||
|
int mind5=5;//мин
|
||||||
|
boolean fh=0;// флаг данных одного часа записываются данные в файл только один раз в час
|
||||||
|
|
||||||
|
int hourdu=77;//время прихода данных час
|
||||||
|
int mindu=77;//мин
|
||||||
|
|
||||||
|
word h11=100; |
||||||
|
word h12=100; |
||||||
|
word h13=100; |
||||||
|
word h14=100; |
||||||
|
word h15=100; |
||||||
|
word t11=202; |
||||||
|
word t12=202; |
||||||
|
word t13=202; |
||||||
|
word t14=202; |
||||||
|
word t15=202; |
||||||
|
//********************************************
|
||||||
|
byte tud; |
||||||
|
byte hu; |
||||||
|
byte hud; |
||||||
|
int volt; |
||||||
|
byte zn; |
||||||
|
byte znzav; |
||||||
|
byte tuzav; |
||||||
|
byte tudzav; |
||||||
|
unsigned long currentMillis = millis(); |
||||||
|
unsigned long previousMillis = 0;
|
||||||
|
int tab=0; |
||||||
|
boolean graf=0; |
||||||
|
byte colorgraf=0; |
||||||
|
byte mon1; |
||||||
|
word years1; |
||||||
|
byte days1; |
||||||
|
int w=0;//счетчик строк при чтении из файла
|
||||||
|
String bufer=""; |
||||||
|
char* name;
|
||||||
|
boolean fa=0;//флаг изменения макс темп
|
||||||
|
boolean fi=0;//флаг изменения мин темп
|
||||||
|
boolean bt=0;//флаг показа барометра
|
||||||
|
//boolean priemt=0;//флаг приема данных
|
||||||
|
long interval; // interval at which to blink (milliseconds)
|
||||||
|
|
||||||
|
//UTFT myGLCD(ITDB50,38,39,40,41); // Remember to change the model parameter to suit your display module!
|
||||||
|
UTFT myGLCD(TFT01_70,38,39,40,41); |
||||||
|
UTouch myTouch(42,43,44,45,46);//TCLK, TCS, TDIN, TDOUT и IRQ.Папа
|
||||||
|
//UTouch myTouch(59,61,60,15,14);//TCLK, TCS, TDIN, TDOUT и IRQ.Вова
|
||||||
|
//UTouch myTouch(19,16,17,15,14);//TCLK, TCS, TDIN, TDOUT и IRQ.Вова
|
||||||
|
//UTFT_Buttons myButtons(&myGLCD, &myTouch);
|
||||||
|
//int x,y;
|
||||||
|
//UTFT_tinyFAT myFiles(&myGLCD);
|
||||||
|
|
||||||
|
unsigned short pic1[0x320]; |
||||||
|
|
||||||
|
|
||||||
|
int color = 0; |
||||||
|
word colorlist[] = {VGA_WHITE, VGA_BLACK, VGA_RED, VGA_BLUE, VGA_GREEN, VGA_FUCHSIA, VGA_YELLOW, VGA_AQUA}; |
||||||
|
int bsize = 4; |
||||||
|
//unsigned short pic2[0x6400];
|
||||||
|
//unsigned short pic3[0x6400];
|
||||||
|
byte brightness=0; |
||||||
|
byte br; |
||||||
|
byte constbr=100; |
||||||
|
boolean c=0; |
||||||
|
boolean fcl=0;//флаг закрытия файла
|
||||||
|
|
||||||
|
// int pressed_button;
|
||||||
|
boolean default_colors = true; |
||||||
|
|
||||||
|
boolean fsec=1; |
||||||
|
//**************************DHT11**********************************
|
||||||
|
//#include "DHT.h"
|
||||||
|
//#define DHTPIN 3 // what pin we're connected to
|
||||||
|
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
|
||||||
|
//int humidity=50;
|
||||||
|
//DHT dht(DHTPIN, DHTTYPE);
|
||||||
|
int tdc=20; |
||||||
|
int tdd=0; |
||||||
|
int hdc=50; |
||||||
|
int hdd=0; |
||||||
|
//**************************************************************
|
||||||
|
//#define SSID "VOVA-47" // введите ваш SSID
|
||||||
|
//#define PASS "vovak26102003" // введите ваш пароль
|
||||||
|
//#define DST_IP "188.226.224.148" //api.openweathermap.org
|
||||||
|
boolean raw1=0; |
||||||
|
byte wifi=0; |
||||||
|
boolean fwifi=1; |
||||||
|
byte wifih=10;// час обновления данных
|
||||||
|
byte wifim=15;// минуты
|
||||||
|
//****************************************************************
|
||||||
|
int per=1;//номер передачи
|
||||||
|
//****************************************
|
||||||
|
int hour9; |
||||||
|
int min9; |
||||||
|
int t9; |
||||||
|
int h9; |
||||||
|
int osv9; |
||||||
|
boolean zn9=0; |
||||||
|
//****************************************
|
||||||
|
int tfl=25;// temp flower
|
||||||
|
int vfl=50;// vlaga flower
|
||||||
|
int osv=37;// svet flower
|
||||||
|
int dfl=12;// time flower
|
||||||
|
|
||||||
|
int tfl2=26;// temp flower
|
||||||
|
int vfl2=55;// vlaga flower
|
||||||
|
int dfl2=13;// time flower
|
||||||
|
|
||||||
|
int tfl3=27;// temp flower
|
||||||
|
int vfl3=52;// vlaga flower
|
||||||
|
int dfl3=14;// time flower
|
||||||
|
|
||||||
|
//************************************
|
||||||
|
|
||||||
|
void setup() |
||||||
|
{
|
||||||
|
rtc.begin(); |
||||||
|
Wire.begin(); |
||||||
|
Serial.begin(9600); // скорость обмена по уарт
|
||||||
|
delay(200); |
||||||
|
Serial3.begin(9600); // скорость обмена по уарт
|
||||||
|
// delay(200);
|
||||||
|
Serial2.begin(9600); // скорость обмена по уарт WIFI
|
||||||
|
//Serial2.begin(115200); // скорость обмена по уарт WIFI
|
||||||
|
Serial2.setTimeout(5000); |
||||||
|
bmp085Calibration(); |
||||||
|
delay(1000); |
||||||
|
pinMode(65, OUTPUT);
|
||||||
|
digitalWrite(65, LOW);
|
||||||
|
Serial3.print(1);
|
||||||
|
|
||||||
|
pinMode(18, OUTPUT);// reset WIFI
|
||||||
|
digitalWrite(18, LOW); |
||||||
|
delay(100); |
||||||
|
digitalWrite(18, HIGH); |
||||||
|
pinMode(53, OUTPUT);// reset nrf
|
||||||
|
digitalWrite(53, LOW); |
||||||
|
delay(100); |
||||||
|
digitalWrite(53, HIGH); |
||||||
|
// dumpRegisters();
|
||||||
|
//dps.dumpCalData();
|
||||||
|
// uart();
|
||||||
|
pinMode(12, OUTPUT); |
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, 0); |
||||||
|
|
||||||
|
delay(800); // catch Due reset problem
|
||||||
|
pinMode(10, OUTPUT); |
||||||
|
myGLCD.InitLCD(); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
myGLCD.fillScr(VGA_BLUE); |
||||||
|
//sd.begin(chipSelect, SPI_FULL_SPEED );
|
||||||
|
sd.begin(chipSelect, SPI_HALF_SPEED ); |
||||||
|
// file system
|
||||||
|
SdFat sd; |
||||||
|
|
||||||
|
myTouch.InitTouch(); |
||||||
|
myTouch.setPrecision(PREC_HI); |
||||||
|
// dht.begin();
|
||||||
|
dtu21(); |
||||||
|
// rtc_clock.init();
|
||||||
|
//readmasclok();
|
||||||
|
readmasrab();
|
||||||
|
//// rtc.setTime(12, 39, 0); // Set the time to 12:00:00 (24hr format)
|
||||||
|
//rtc.setDate(29, 11, 2015); // Set the date to January 1st, 2014
|
||||||
|
//rtc.setDOW(THURSDAY);
|
||||||
|
|
||||||
|
t = rtc.getTime(); |
||||||
|
years1=t.year; |
||||||
|
days1=t.date; |
||||||
|
mon1=t.mon; |
||||||
|
// dow=calcDOW(days1, mon1, years1);
|
||||||
|
// rtc.setDOW(dow);
|
||||||
|
dow=t.dow ; |
||||||
|
hour1=t.hour; |
||||||
|
min1=t.min;
|
||||||
|
delay(100); |
||||||
|
|
||||||
|
// myButtons.setTextFont(BigFont);
|
||||||
|
// myButtons.setSymbolFont(Dingbats1_XL);
|
||||||
|
//dtu21();
|
||||||
|
// esp8266();
|
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, br); |
||||||
|
} |
||||||
|
|
||||||
|
//myFiles.loadBitmap(0, 0, 320, 240, "33.raw");
|
||||||
|
|
||||||
|
void loop() |
||||||
|
{ |
||||||
|
if (t.date==0) |
||||||
|
{ |
||||||
|
setClock(); |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
menu(); |
||||||
|
} |
||||||
@ -0,0 +1,529 @@ |
|||||||
|
|
||||||
|
|
||||||
|
void drawDisplay() |
||||||
|
{ |
||||||
|
//t = rtc.getTime();
|
||||||
|
// t.hour=rtc_clock.get_hours();
|
||||||
|
// t.min=rtc_clock.get_minutes()
|
||||||
|
// sec=t.sec;
|
||||||
|
t = rtc.getTime(); |
||||||
|
min1= t.min; |
||||||
|
hour1=t.hour; |
||||||
|
drawSec(t.sec); |
||||||
|
oldsec=t.sec; |
||||||
|
if (t.sec==0) |
||||||
|
{ |
||||||
|
if(( t.hour>5)&&( t.hour<7)&&(t.min>29)) |
||||||
|
{night=0; |
||||||
|
savefld();//запись новой даты в файлы полива цветов
|
||||||
|
} |
||||||
|
else |
||||||
|
{night=1; |
||||||
|
} |
||||||
|
|
||||||
|
drawMin(t.min); |
||||||
|
drawHour(t.hour, t.min); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
// myGLCD.print(rtc_clock.get_hours(), clockCenterX+92+111+32, clockCenterY-8-20);
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(192, 192, 255); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255,255, 255); |
||||||
|
|
||||||
|
}
|
||||||
|
if (t.hour<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+340, clockCenterY-8-20); |
||||||
|
myGLCD.printNumI(t.hour, clockCenterX+340+32, clockCenterY-8-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.hour,clockCenterX+340, clockCenterY-8-20); |
||||||
|
} |
||||||
|
if (t.min<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+340+96, clockCenterY-8-20); |
||||||
|
myGLCD.printNumI(t.min, clockCenterX+340+128, clockCenterY-8-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.min, clockCenterX+340+96, clockCenterY-8-20); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
if (q==1) |
||||||
|
{ drawMin(t.min); |
||||||
|
drawHour(t.hour, t.min); |
||||||
|
printDate(); |
||||||
|
} |
||||||
|
if( (hour1==0) && (min1==0)) |
||||||
|
{
|
||||||
|
printDate(); |
||||||
|
} |
||||||
|
} |
||||||
|
//****************************************************************************
|
||||||
|
void drawMark(int h) |
||||||
|
{ |
||||||
|
float x1, y1, x2, y2; |
||||||
|
|
||||||
|
h=h*30; |
||||||
|
h=h+270; |
||||||
|
|
||||||
|
x1=2*110*cos(h*0.0175); |
||||||
|
y1=2*110*sin(h*0.0175); |
||||||
|
x2=2*100*cos(h*0.0175); |
||||||
|
y2=2*100*sin(h*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
} |
||||||
|
|
||||||
|
void drawSec(int s) |
||||||
|
{ |
||||||
|
float x1, y1, x2, y2; |
||||||
|
int ps = s-1; |
||||||
|
|
||||||
|
myGLCD.setColor(0, 0, 0); |
||||||
|
if (ps==-1) |
||||||
|
ps=59; |
||||||
|
ps=ps*6; |
||||||
|
ps=ps+270; |
||||||
|
|
||||||
|
x1=2*95*cos(ps*0.0175); |
||||||
|
y1=2*95*sin(ps*0.0175); |
||||||
|
x2=2*80*cos(ps*0.0175); |
||||||
|
y2=2*80*sin(ps*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
s=s*6; |
||||||
|
s=s+270; |
||||||
|
|
||||||
|
x1=2*95*cos(s*0.0175); |
||||||
|
y1=2*95*sin(s*0.0175); |
||||||
|
x2=2*80*cos(s*0.0175); |
||||||
|
y2=2*80*sin(s*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
} |
||||||
|
|
||||||
|
void drawMin(int m) |
||||||
|
{ |
||||||
|
float x1, y1, x2, y2, x3, y3, x4, y4; |
||||||
|
int pm = m-1; |
||||||
|
|
||||||
|
myGLCD.setColor(0, 0, 0); |
||||||
|
if (pm==-1) |
||||||
|
pm=59; |
||||||
|
pm=pm*6; |
||||||
|
pm=pm+270; |
||||||
|
|
||||||
|
x1=2*80*cos(pm*0.0175); |
||||||
|
y1=2*80*sin(pm*0.0175); |
||||||
|
x2=2*5*cos(pm*0.0175); |
||||||
|
y2=2*5*sin(pm*0.0175); |
||||||
|
x3=2*30*cos((pm+4)*0.0175); |
||||||
|
y3=2*30*sin((pm+4)*0.0175); |
||||||
|
x4=2*30*cos((pm-4)*0.0175); |
||||||
|
y4=2*30*sin((pm-4)*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY); |
||||||
|
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY); |
||||||
|
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY); |
||||||
|
|
||||||
|
myGLCD.setColor(0, 255, 0); |
||||||
|
m=m*6; |
||||||
|
m=m+270; |
||||||
|
|
||||||
|
x1=2*80*cos(m*0.0175); |
||||||
|
y1=2*80*sin(m*0.0175); |
||||||
|
x2=2*5*cos(m*0.0175); |
||||||
|
y2=2*5*sin(m*0.0175); |
||||||
|
x3=2*30*cos((m+4)*0.0175); |
||||||
|
y3=2*30*sin((m+4)*0.0175); |
||||||
|
x4=2*30*cos((m-4)*0.0175); |
||||||
|
y4=2*30*sin((m-4)*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY); |
||||||
|
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY); |
||||||
|
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY); |
||||||
|
} |
||||||
|
|
||||||
|
void drawHour(int h, int m) |
||||||
|
{ |
||||||
|
float x1, y1, x2, y2, x3, y3, x4, y4; |
||||||
|
int ph = h; |
||||||
|
|
||||||
|
myGLCD.setColor(0, 0, 0); |
||||||
|
if (m==0) |
||||||
|
{ |
||||||
|
ph=((ph-1)*30)+((m+59)/2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
ph=(ph*30)+((m-1)/2); |
||||||
|
} |
||||||
|
ph=ph+270; |
||||||
|
|
||||||
|
x1=2*60*cos(ph*0.0175); |
||||||
|
y1=2*60*sin(ph*0.0175); |
||||||
|
x2=2*5*cos(ph*0.0175); |
||||||
|
y2=2*5*sin(ph*0.0175); |
||||||
|
x3=2*20*cos((ph+5)*0.0175); |
||||||
|
y3=2*20*sin((ph+5)*0.0175); |
||||||
|
x4=2*20*cos((ph-5)*0.0175); |
||||||
|
y4=2*20*sin((ph-5)*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY); |
||||||
|
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY); |
||||||
|
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY); |
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 0); |
||||||
|
h=(h*30)+(m/2); |
||||||
|
h=h+270; |
||||||
|
|
||||||
|
x1=2*60*cos(h*0.0175); |
||||||
|
y1=2*60*sin(h*0.0175); |
||||||
|
x2=2*5*cos(h*0.0175); |
||||||
|
y2=2*5*sin(h*0.0175); |
||||||
|
x3=2*20*cos((h+5)*0.0175); |
||||||
|
y3=2*20*sin((h+5)*0.0175); |
||||||
|
x4=2*20*cos((h-5)*0.0175); |
||||||
|
y4=2*20*sin((h-5)*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY); |
||||||
|
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY); |
||||||
|
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************
|
||||||
|
void printDate() |
||||||
|
{ |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// Time t_temp;
|
||||||
|
|
||||||
|
//t_temp = rtc.getTime();
|
||||||
|
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(142, 142, 200);//ночной календарь
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.setBackColor(255, 255, 255); |
||||||
|
}
|
||||||
|
dow= t.dow; |
||||||
|
|
||||||
|
myGLCD.print(str[dow-1], 272+450-80, 24); |
||||||
|
// myGLCD.print(rtc.getDOWStr(FORMAT_SHORT), 256+450, 8);
|
||||||
|
if (t.date<10) |
||||||
|
myGLCD.printNumI(t.date, 272+450-50, 58); |
||||||
|
else |
||||||
|
myGLCD.printNumI(t.date, 264+450-50, 58); |
||||||
|
myGLCD.printNumI(t.mon, 256+450-50, 92); |
||||||
|
myGLCD.printNumI(t.year, 248+450-50, 126); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
} |
||||||
|
|
||||||
|
void clearDate() |
||||||
|
{ |
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor (0,38,92); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255, 255, 255); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.fillRect(240+450-80, 15, 319+450, 166); |
||||||
|
// myGLCD.fillRoundRect(240+450-80, 0, 319+450, 85+80);
|
||||||
|
} |
||||||
|
//*************************************************************************
|
||||||
|
//******************************************************************
|
||||||
|
void clok() |
||||||
|
|
||||||
|
{ //t = rtc.getTime();
|
||||||
|
int a=0; |
||||||
|
q=1; |
||||||
|
int x, y; |
||||||
|
do |
||||||
|
{ |
||||||
|
t = rtc.getTime(); |
||||||
|
|
||||||
|
if( night==1 ) |
||||||
|
{constbr=20; |
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, br);
|
||||||
|
} |
||||||
|
else |
||||||
|
{constbr=200; |
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, br); |
||||||
|
if (rawp==1) |
||||||
|
{rawp=0; |
||||||
|
myGLCD.fillScr(VGA_AQUA);//выход утром в RAW
|
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
int w;
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
myFile.open("33.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 96000; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>399){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, 2*m, 400, 1, pic1, 2); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
}
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
kalend();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
raw(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if (q==1) |
||||||
|
{ |
||||||
|
|
||||||
|
// Clear screen
|
||||||
|
myGLCD.clrScr(); |
||||||
|
|
||||||
|
// Draw Clockface
|
||||||
|
myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
for (int i=0; i<5; i++) |
||||||
|
{ |
||||||
|
myGLCD.drawCircle(clockCenterX, clockCenterY, 230-i);//119-i
|
||||||
|
} |
||||||
|
for (int i=0; i<5; i++) |
||||||
|
{ |
||||||
|
myGLCD.drawCircle(clockCenterX, clockCenterY, 2*i); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.setColor(192, 192, 255); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.print("3", clockCenterX+92+111-16, clockCenterY-8-20); |
||||||
|
myGLCD.print("6", clockCenterX-32+12, clockCenterY+95+111-30); |
||||||
|
myGLCD.print("9", clockCenterX-109-111, clockCenterY-8-20); |
||||||
|
myGLCD.print("12", clockCenterX-32, clockCenterY-109-111); |
||||||
|
for (int i=0; i<12; i++) |
||||||
|
{ |
||||||
|
if ((i % 3)!=0) |
||||||
|
drawMark(i); |
||||||
|
} |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
|
||||||
|
// Draw calendar
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(0,38,92); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255, 255, 255); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
myGLCD.fillRoundRect(240+450-80, 0, 319+450, 85+80); |
||||||
|
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(255, 255, 255); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(0, 0, 0); |
||||||
|
|
||||||
|
}
|
||||||
|
// myGLCD.setColor(0, 0, 0);
|
||||||
|
|
||||||
|
for (int i=0; i<14; i++) |
||||||
|
{ |
||||||
|
myGLCD.drawLine(249+450-80+(i*10), 0, 248+450-80+(i*10), 7); |
||||||
|
myGLCD.drawLine(250+450-80+(i*10), 0, 249+450-80+(i*10), 7); |
||||||
|
myGLCD.drawLine(251+450-80+(i*10), 0, 250+450-80+(i*10), 7); |
||||||
|
} |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
// Draw SET button
|
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
myGLCD.fillRoundRect(260+450, 200+200, 319+450, 239+200); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(260+450, 200+200, 319+450, 239+200); |
||||||
|
myGLCD.setBackColor(64, 64, 128); |
||||||
|
myGLCD.print("SET", 266+450, 212+200); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
// Draw exit button
|
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
myGLCD.fillRoundRect(260+450, 200+150, 319+450, 239+150); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(260+450, 200+150, 319+450, 239+150); |
||||||
|
myGLCD.setBackColor(64, 64, 128); |
||||||
|
myGLCD.print("EXT", 266+450, 212+150); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
|
||||||
|
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(192, 192, 255); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255,255, 255); |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
|
||||||
|
t = rtc.getTime(); |
||||||
|
if (t.hour<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+340, clockCenterY-8-20); |
||||||
|
myGLCD.printNumI(t.hour, clockCenterX+340+32, clockCenterY-8-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.hour,clockCenterX+340, clockCenterY-8-20); |
||||||
|
} |
||||||
|
myGLCD.print(":",clockCenterX+340+64, clockCenterY-8-20); |
||||||
|
if (t.min<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+340+96, clockCenterY-8-20); |
||||||
|
myGLCD.printNumI(t.min, clockCenterX+340+128, clockCenterY-8-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.min, clockCenterX+340+96, clockCenterY-8-20); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (t.date==0) |
||||||
|
{ |
||||||
|
setClock(); |
||||||
|
} |
||||||
|
|
||||||
|
drawDisplay(); |
||||||
|
// printDate();
|
||||||
|
q=0; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
x=myTouch.getX(); |
||||||
|
y=myTouch.getY(); |
||||||
|
if (((y>=200+200) && (y<=239+200)) && ((x>=260+450) && (x<=319+450))) |
||||||
|
{ |
||||||
|
myGLCD.setColor (255, 0, 0); |
||||||
|
myGLCD.drawRoundRect(260+450, 200+200, 319+450, 239+200); |
||||||
|
setClock(); |
||||||
|
} |
||||||
|
if (((y>=200+150) && (y<=239+150)) && ((x>=260+450) && (x<=319+450))) |
||||||
|
{ |
||||||
|
if (c==1) |
||||||
|
{ |
||||||
|
menu(); |
||||||
|
} |
||||||
|
myGLCD.setColor (255, 0, 0); |
||||||
|
myGLCD.drawRoundRect(260+450, 200+150, 319+450, 239+150); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
//**********TOUCH
|
||||||
|
delay(10); |
||||||
|
t = rtc.getTime(); |
||||||
|
// rawp=1 ;
|
||||||
|
if (rawp==1)
|
||||||
|
{ if (t.sec==17) |
||||||
|
{ prognoz(); |
||||||
|
q=1; |
||||||
|
delay(5000); |
||||||
|
}
|
||||||
|
if (t.sec==37) |
||||||
|
{ nightgraf(); |
||||||
|
q=1; |
||||||
|
delay(5000); |
||||||
|
}
|
||||||
|
if ((sec==10) || (sec==29) ) |
||||||
|
{ |
||||||
|
if(Serial.available()) {
|
||||||
|
priem(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
//**************************massiv******************
|
||||||
|
// t = rtc.getTime();
|
||||||
|
if (t.min==0) |
||||||
|
{ |
||||||
|
if ((t.sec==0)||(t.sec==1)) |
||||||
|
{ |
||||||
|
// printmassiv();
|
||||||
|
if (fsec==1) |
||||||
|
{uart(); |
||||||
|
bmp085(); |
||||||
|
uart(); |
||||||
|
savemastd(); |
||||||
|
|
||||||
|
|
||||||
|
fsec=0; //delay (300);
|
||||||
|
if(t.hour==23) |
||||||
|
{sdwrite(); |
||||||
|
savemasclok(); |
||||||
|
saveminmax();//запись макс мин и средних значений датчиков за день
|
||||||
|
}
|
||||||
|
if((t.hour>=0)||(t.hour<23)) |
||||||
|
{ |
||||||
|
savemasclok();//запись времени на sd 12:56 15/05/14 и массива rab
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} |
||||||
|
} |
||||||
|
//*****************************************************
|
||||||
|
if (t.min>3) |
||||||
|
{fsec=1; |
||||||
|
} |
||||||
|
//*****************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} while (a<1); |
||||||
|
} |
||||||
@ -0,0 +1,189 @@ |
|||||||
|
void bar(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(0,0,255); |
||||||
|
myGLCD.fillRoundRect(x-5, y-5, l+x+5, h+y+5);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(x, y, l+x, h+y);//с белой обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
myGLCD.fillRoundRect(x, y, pos*l/100+x, h+y); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.print("BRIGHT", x-48+(l/2), y-25); |
||||||
|
myGLCD.printNumI(abs(pos), x-10+(l/2), y+2);// уровень в процентах
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void bright() |
||||||
|
{ |
||||||
|
int x=200; |
||||||
|
int y=200; |
||||||
|
int pos; |
||||||
|
int h=20;//высота шкалы
|
||||||
|
int l=300;//длинна шкалы
|
||||||
|
|
||||||
|
|
||||||
|
//*****************
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawBitmap (x+l-30, y-37, 30, 30, xf); |
||||||
|
myGLCD.drawRoundRect (x+l-30, y-37, x+l-30+30, y-37+30);// Aandelend
|
||||||
|
// myGLCD.setColor(255, 0, 0);
|
||||||
|
// myGLCD.fillRoundRect ( x+l-30, y-37, x+l-30+30, y-37+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(255,0,0);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
// myGLCD.drawRoundRect ( x+l-30, y-37, x+l-30+30, y-37+30); //X
|
||||||
|
// myGLCD.print("X", x+l-30+8, y-37+7);
|
||||||
|
//***********************************
|
||||||
|
//*****************
|
||||||
|
// myGLCD.setColor(0, 0, 255);
|
||||||
|
// myGLCD.fillRoundRect ( x+l-30, y+26, x+l-30+30, y+26+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.drawBitmap (x+l-30, y+26, 30, 30, pr); |
||||||
|
myGLCD.drawRoundRect ( x+l-30, y+26, x+l-30+30, y+26+30); //>>
|
||||||
|
// myGLCD.print(">", x+l-30+8, y+26+7);
|
||||||
|
//***********************************
|
||||||
|
//*****************
|
||||||
|
// myGLCD.setColor(0, 0, 255);
|
||||||
|
// myGLCD.fillRoundRect ( x+l-60, y+26, x+l-60+30, y+26+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.drawBitmap (x+l-60, y+26, 30, 30, ad); |
||||||
|
myGLCD.drawRoundRect ( x+l-60, y+26, x+l-60+30, y+26+30); //+
|
||||||
|
// myGLCD.print("+", x+l-60+8, y+26+7);
|
||||||
|
//***********************************
|
||||||
|
myGLCD.drawBitmap (x, y+26, 30, 30, le); |
||||||
|
myGLCD.drawRoundRect ( x, y+26, x+30, y+26+30); //<
|
||||||
|
//*****************
|
||||||
|
// myGLCD.setColor(0, 0, 255);
|
||||||
|
// myGLCD.fillRoundRect ( x+30, y+26, x+30+30, y+26+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.drawBitmap (x+30, y+26, 30, 30, mi);
|
||||||
|
myGLCD.drawRoundRect ( x+30, y+26, x+30+30, y+26+30); //-
|
||||||
|
// myGLCD.print("-", x+30+8, y+26+7);
|
||||||
|
//***********************************
|
||||||
|
//*****************
|
||||||
|
// myGLCD.setColor(0, 0, 255);
|
||||||
|
// myGLCD.fillRoundRect ( x, y+26, x+30, y+26+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
|
||||||
|
// myGLCD.print("<", x+8, y+26+7);
|
||||||
|
//***********************************
|
||||||
|
|
||||||
|
pos=100*br/255;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
|
||||||
|
interval = 5000; |
||||||
|
previousMillis =millis(); |
||||||
|
while(1) |
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
currentMillis = millis(); |
||||||
|
|
||||||
|
if(currentMillis - previousMillis >= interval)
|
||||||
|
{ |
||||||
|
// save the last time you blinked the LED
|
||||||
|
previousMillis = currentMillis; |
||||||
|
interval = 10000; |
||||||
|
previousMillis=0; |
||||||
|
return; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x1=myTouch.getX(); |
||||||
|
int y1=myTouch.getY(); |
||||||
|
|
||||||
|
if ((y1>=y-37) && (y1<=y-37+30)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x1>= x+l-30) && (x1<= x+l-30+30)) // Aandelend
|
||||||
|
{waitForIt1( x+l-30, y-37, x+l-30+30, y-37+30); |
||||||
|
interval = 10000; |
||||||
|
previousMillis=0; |
||||||
|
return; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((y1>=y+26) && (y1<=y+26+30)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x1>= x+l-30) && (x1<= x+l-30+30)) //>
|
||||||
|
{brightness=brightness+25; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br>255) |
||||||
|
{br=255; |
||||||
|
brightness=55; |
||||||
|
} |
||||||
|
waitForIt1( x+l-30, y+26, x+l-30+30, y+26+30); |
||||||
|
pos=100*br/255 ;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
analogWrite(12, br); |
||||||
|
|
||||||
|
} |
||||||
|
if ((x1>= x+l-60) && (x1<= x+l-60+30)) // +
|
||||||
|
{brightness=brightness+1; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br>255) |
||||||
|
{br=255; |
||||||
|
brightness=55; |
||||||
|
} |
||||||
|
waitForIt1( x+l-60, y+26, x+l-60+30, y+26+30); |
||||||
|
pos=100*br/255 ;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
analogWrite(12, br); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((x1>= x+30) && (x1<= x+30+30)) //-
|
||||||
|
{brightness=brightness-1; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br<1) |
||||||
|
{br=1; |
||||||
|
} |
||||||
|
waitForIt1 ( x+30, y+26, x+30+30, y+26+30); |
||||||
|
pos=100*br/255;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
analogWrite(12, br); |
||||||
|
}
|
||||||
|
|
||||||
|
if ((x1>= x) && (x1<= x+30)) //<
|
||||||
|
{brightness=brightness-25; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br<1) |
||||||
|
{br=1; |
||||||
|
} |
||||||
|
waitForIt1 ( x, y+26, x+30, y+26+30); |
||||||
|
pos=100*br/255;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
analogWrite(12, br); |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
previousMillis = currentMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,181 @@ |
|||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
void bmp085() |
||||||
|
{float temperature; |
||||||
|
temperature = bmp085GetTemperature(bmp085ReadUT()); |
||||||
|
pressure = bmp085GetPressure(bmp085ReadUP())*10.023/1333; |
||||||
|
// pressureNN = pressure / pressureCorrection;
|
||||||
|
|
||||||
|
|
||||||
|
// Serial.print("Temperature: ");
|
||||||
|
// Serial.print(temperature,1);
|
||||||
|
// Serial.print(" C, Pressure: ");
|
||||||
|
// Serial.print(pressure,1);
|
||||||
|
// Serial.print(" hPa in 103m height above sea level, Pressure-NN: ");
|
||||||
|
// Serial.print(pressureNN,1);
|
||||||
|
// Serial.println(" hPa");
|
||||||
|
delay(500); |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Stores all of the bmp085's calibration values into global variables
|
||||||
|
// Calibration values are required to calculate temp and pressure
|
||||||
|
// This function should be called at the beginning of the program
|
||||||
|
void bmp085Calibration() |
||||||
|
{ |
||||||
|
ac1 = bmp085ReadInt(0xAA); |
||||||
|
ac2 = bmp085ReadInt(0xAC); |
||||||
|
ac3 = bmp085ReadInt(0xAE); |
||||||
|
ac4 = bmp085ReadInt(0xB0); |
||||||
|
ac5 = bmp085ReadInt(0xB2); |
||||||
|
ac6 = bmp085ReadInt(0xB4); |
||||||
|
b1 = bmp085ReadInt(0xB6); |
||||||
|
b2 = bmp085ReadInt(0xB8); |
||||||
|
mb = bmp085ReadInt(0xBA); |
||||||
|
mc = bmp085ReadInt(0xBC); |
||||||
|
md = bmp085ReadInt(0xBE); |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Calculate temperature given ut.
|
||||||
|
// Value returned will be in units of 0.1 deg C
|
||||||
|
short bmp085GetTemperature(unsigned short ut) |
||||||
|
{ |
||||||
|
long x1, x2; |
||||||
|
|
||||||
|
x1 = (((long)ut - (long)ac6)*(long)ac5) >> 15; |
||||||
|
x2 = ((long)mc << 11)/(x1 + md); |
||||||
|
b5 = x1 + x2; |
||||||
|
|
||||||
|
return ((b5 + 8)>>4);
|
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Calculate pressure given up
|
||||||
|
// calibration values must be known
|
||||||
|
// b5 is also required so bmp085GetTemperature(...) must be called first.
|
||||||
|
// Value returned will be pressure in units of Pa.
|
||||||
|
long bmp085GetPressure(unsigned long up) |
||||||
|
{ |
||||||
|
long x1, x2, x3, b3, b6, p; |
||||||
|
unsigned long b4, b7; |
||||||
|
|
||||||
|
b6 = b5 - 4000; |
||||||
|
// Calculate B3
|
||||||
|
x1 = (b2 * (b6 * b6)>>12)>>11; |
||||||
|
x2 = (ac2 * b6)>>11; |
||||||
|
x3 = x1 + x2; |
||||||
|
b3 = (((((long)ac1)*4 + x3)<<OSS) + 2)>>2; |
||||||
|
|
||||||
|
// Calculate B4
|
||||||
|
x1 = (ac3 * b6)>>13; |
||||||
|
x2 = (b1 * ((b6 * b6)>>12))>>16; |
||||||
|
x3 = ((x1 + x2) + 2)>>2; |
||||||
|
b4 = (ac4 * (unsigned long)(x3 + 32768))>>15; |
||||||
|
|
||||||
|
b7 = ((unsigned long)(up - b3) * (50000>>OSS)); |
||||||
|
if (b7 < 0x80000000) |
||||||
|
p = (b7<<1)/b4; |
||||||
|
else |
||||||
|
p = (b7/b4)<<1; |
||||||
|
|
||||||
|
x1 = (p>>8) * (p>>8); |
||||||
|
x1 = (x1 * 3038)>>16; |
||||||
|
x2 = (-7357 * p)>>16; |
||||||
|
p += (x1 + x2 + 3791)>>4; |
||||||
|
|
||||||
|
return p; |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Read 1 byte from the BMP085 at 'address'
|
||||||
|
char bmp085Read(unsigned char address) |
||||||
|
{ |
||||||
|
unsigned char data; |
||||||
|
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(address); |
||||||
|
Wire.endTransmission(); |
||||||
|
|
||||||
|
Wire.requestFrom(BMP085_ADDRESS, 1); |
||||||
|
while(!Wire.available()) |
||||||
|
; |
||||||
|
|
||||||
|
return Wire.read(); |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Read 2 bytes from the BMP085
|
||||||
|
// First byte will be from 'address'
|
||||||
|
// Second byte will be from 'address'+1
|
||||||
|
short bmp085ReadInt(unsigned char address) |
||||||
|
{ |
||||||
|
unsigned char msb, lsb; |
||||||
|
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(address); |
||||||
|
Wire.endTransmission(); |
||||||
|
|
||||||
|
Wire.requestFrom(BMP085_ADDRESS, 2); |
||||||
|
while(Wire.available()<2) |
||||||
|
; |
||||||
|
msb = Wire.read(); |
||||||
|
lsb = Wire.read(); |
||||||
|
|
||||||
|
return (short) msb<<8 | lsb; |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Read the uncompensated temperature value
|
||||||
|
unsigned short bmp085ReadUT() |
||||||
|
{ |
||||||
|
unsigned short ut; |
||||||
|
|
||||||
|
// Write 0x2E into Register 0xF4
|
||||||
|
// This requests a temperature reading
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(0xF4); |
||||||
|
Wire.write(0x2E); |
||||||
|
Wire.endTransmission(); |
||||||
|
|
||||||
|
// Wait at least 4.5ms
|
||||||
|
delay(10); |
||||||
|
|
||||||
|
// Read two bytes from registers 0xF6 and 0xF7
|
||||||
|
ut = bmp085ReadInt(0xF6); |
||||||
|
return ut; |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Read the uncompensated pressure value
|
||||||
|
unsigned long bmp085ReadUP() |
||||||
|
{ |
||||||
|
unsigned char msb, lsb, xlsb; |
||||||
|
unsigned long up = 0; |
||||||
|
|
||||||
|
// Write 0x34+(OSS<<6) into register 0xF4
|
||||||
|
// Request a pressure reading w/ oversampling setting
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(0xF4); |
||||||
|
Wire.write(0x34 + (OSS<<6)); |
||||||
|
Wire.endTransmission(); |
||||||
|
|
||||||
|
// Wait for conversion, delay time dependent on OSS
|
||||||
|
delay(2 + (3<<OSS)); |
||||||
|
|
||||||
|
// Read register 0xF6 (MSB), 0xF7 (LSB), and 0xF8 (XLSB)
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(0xF6); |
||||||
|
Wire.endTransmission(); |
||||||
|
Wire.requestFrom(BMP085_ADDRESS, 3); |
||||||
|
|
||||||
|
// Wait for data to become available
|
||||||
|
while(Wire.available() < 3) ; |
||||||
|
msb = Wire.read(); |
||||||
|
lsb = Wire.read(); |
||||||
|
xlsb = Wire.read(); |
||||||
|
|
||||||
|
up = (((unsigned long) msb << 16) | ((unsigned long) lsb << 8) | (unsigned long) xlsb) >> (8-OSS); |
||||||
|
|
||||||
|
return up; |
||||||
|
} |
||||||
|
//---------------------------------------------------------------------------------------------------------
|
||||||
@ -0,0 +1,101 @@ |
|||||||
|
void dtu21() |
||||||
|
{ //Set the address of the HTU21D. This detail is hidden at the bototm of page 10 of the datasheet.
|
||||||
|
const int I2C_address = 0x40; // I2C write address. Note that 'const' has been declared. If you try to write to this variable
|
||||||
|
// anywhere else in your code you'll get a compilation error. This prevents you from doing silly things.
|
||||||
|
|
||||||
|
const int TempCode = 0xE3; // A temperature measurement is executed with this command code. See page 11 of datasheet.
|
||||||
|
const int HumidCode = 0xE5; // A humidity measurement is executed with this command code. See page 11 of datasheet.
|
||||||
|
|
||||||
|
long Temperature; //Perform our calculation using LONG to prevent overflow at high measuremetn values when using 14bit mode.
|
||||||
|
long Humidity;
|
||||||
|
|
||||||
|
float TemperatureFL; //Variable to store our final calculated temperature measurement
|
||||||
|
float HumidityFL;
|
||||||
|
|
||||||
|
delay(100); // a short delay to let everything stabilise
|
||||||
|
|
||||||
|
|
||||||
|
delay(10); //add a small delay to slow things down
|
||||||
|
|
||||||
|
RequestMeas(I2C_address, TempCode); //Request the current temperature
|
||||||
|
Temperature = ReadMeas(I2C_address); //read the result
|
||||||
|
|
||||||
|
//We must now convert our temp measurement into an actual proper temperature value
|
||||||
|
//According to page 15, the conversion equation is: Temp = -46.85 + 175.72 x TeampMeas / 2^16
|
||||||
|
//Becasue the result will have decimal places in the result we must use a Float datatype.
|
||||||
|
// TemperatureFL = (Temperature/65536.0)*175.72-46.85 ;
|
||||||
|
TemperatureFL = (Temperature/65536.0)*175.72-46.85-1.1 ;
|
||||||
|
|
||||||
|
delay(100); //add a small delay to slow things down
|
||||||
|
|
||||||
|
RequestMeas(I2C_address, HumidCode); //Request the current humidity
|
||||||
|
Humidity = ReadMeas(I2C_address); //read the result
|
||||||
|
|
||||||
|
//We must now convert our humidity measurement into an actual proper humidity value
|
||||||
|
//According to page 15, the conversion equation is: Humidity = 6 + 125 x TeampMeas / 2^16
|
||||||
|
//Becasue the result will have decimal places in the result we must use a Float datatype.
|
||||||
|
//HumidityFL = -6 + 125*(Humidity/pow(2, 16));
|
||||||
|
HumidityFL =(Humidity/65536.0)*125.0-6.0;
|
||||||
|
|
||||||
|
|
||||||
|
tdc=TemperatureFL; |
||||||
|
tdd=abs(TemperatureFL*10-tdc*10); |
||||||
|
hdc=HumidityFL; |
||||||
|
hdd=HumidityFL*10-hdc*10; |
||||||
|
if(hdc>99) |
||||||
|
{hdc=99; |
||||||
|
hdd=9; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void RequestMeas(int Address, int CommandCode) |
||||||
|
{ |
||||||
|
Wire.beginTransmission(Address); // The HTU21D will respond to its address
|
||||||
|
Wire.write(CommandCode); // request the measurement, ie temperature or humidity
|
||||||
|
Wire.endTransmission(); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
long ReadMeas(int Address) |
||||||
|
{ |
||||||
|
//A measurement from the HTU21D is returned in 3 consecutive bytes. See page 11 of the datasheet
|
||||||
|
//the order of returend data is: [DATA (Most Sig Byte)], [DATA (Least Sig Byte)], [Checksum]
|
||||||
|
//We will ignore the checksum to save computation time and complexity. Page 14 of the datasheet details how to calculate the checksum
|
||||||
|
|
||||||
|
byte DataHIGH; //The location to store the high measurement byte
|
||||||
|
byte DataLOW; //The low measurement byte
|
||||||
|
byte CRC; //If you want to compute the CRC feel free to do so.
|
||||||
|
|
||||||
|
long Data; //The temporary memory location we are storing our data in as we receive it from the HTU21D
|
||||||
|
//Each packet of data is only 8bits in length, but if we do a bit shift we can store the 2 packets of
|
||||||
|
//measurement data in a variable. Remember you can only return 1 variable when a function finishes.
|
||||||
|
//Ideally, we'd use an int to store the result, however, at high measurement values in 14bit mode, an int overflows.
|
||||||
|
//To prevent overflow, we must use a single long (32bits).
|
||||||
|
|
||||||
|
Wire.requestFrom(Address, 3); //We are requesting data from the HTU21D and there will be 3x bytes that must be read.
|
||||||
|
while(Wire.available()) // Check for data from the HTU21D
|
||||||
|
{ |
||||||
|
DataHIGH = Wire.read(); // Read high byte
|
||||||
|
DataLOW = Wire.read(); // Read low byte
|
||||||
|
CRC = Wire.read(); // Read the CRC byte
|
||||||
|
}
|
||||||
|
|
||||||
|
//OK, so now we are going to 'pack' our 2x bytes of data measuremetns into a single int so only 1 variable is returned.
|
||||||
|
//To do this, we will use the left bitshift operator '&lt;&lt;'. What this does is push all the bits across to the left.
|
||||||
|
//FUN FACT: performing a left bit shift is equivalent to multiplication by 2 for each shift. The reverse is true for right
|
||||||
|
//bitshift which is equivalent to dividing by 2. This is a far more efficient method to perform multiply or divide by 2.
|
||||||
|
|
||||||
|
Data = DataHIGH; //The data sits in the low byte of 'int Data'.
|
||||||
|
//Ie, Data = [00000000][00000000][00000000][8 bits of DataHIGH]
|
||||||
|
//data[1] &lt;&lt; 8
|
||||||
|
//Data = Data &lt;&lt; 8; //Shift all the bits to the left for 8 bits. The old locations fill with zeros.
|
||||||
|
Data = Data<<8; |
||||||
|
//Ie, Data = [00000000][00000000][8 bits of DataHIGH][00000000]
|
||||||
|
Data = Data + DataLOW; //Now simply add the low byte of data to the int.
|
||||||
|
//Ie, Data = [00000000][00000000][8 bits of DataHIGH][8 bits of DataLOW]
|
||||||
|
|
||||||
|
return Data; //return our measurement.
|
||||||
|
} |
||||||
@ -0,0 +1,124 @@ |
|||||||
|
void readfile() |
||||||
|
{w=0; |
||||||
|
bufer=""; |
||||||
|
int a=0,b=0; |
||||||
|
byte st=0; |
||||||
|
int cardSize; |
||||||
|
|
||||||
|
myGLCD.setColor(22,18,70);
|
||||||
|
|
||||||
|
myGLCD.fillRoundRect (380,145, 630, 475); |
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.drawRoundRect (380,145, 630, 475);
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setFont(SmallFont); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
|
||||||
|
|
||||||
|
clc(); |
||||||
|
|
||||||
|
myGLCD.setBackColor(22,18,70);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay(100); |
||||||
|
myFile.open(name, O_READ); |
||||||
|
cardSize=myFile.fileSize(); |
||||||
|
// myGLCD.print("cardSize=",10,10);
|
||||||
|
// myGLCD.printNumI(cardSize,10,30);
|
||||||
|
st=0; |
||||||
|
w=0; |
||||||
|
for (int i=0 ; i < cardSize; i = i++) |
||||||
|
{ char ByteRead=myFile.read(); //чтение данных с порта
|
||||||
|
if (ByteRead==char(13))//окончание строки
|
||||||
|
{ analyzer(); //передача данных на обработку
|
||||||
|
myFile.read(); |
||||||
|
bufer=""; |
||||||
|
st=0; |
||||||
|
}
|
||||||
|
else { |
||||||
|
bufer=bufer+char(ByteRead); |
||||||
|
st++; |
||||||
|
if(st>28) |
||||||
|
{st=0; |
||||||
|
analyzer(); |
||||||
|
bufer=""; |
||||||
|
} |
||||||
|
} ///накопление данных в буфер
|
||||||
|
if (fcl==1) |
||||||
|
{fcl=0; |
||||||
|
goto clos; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
analyzer(); //передача данных на обработку
|
||||||
|
clos: |
||||||
|
myFile.close(); |
||||||
|
|
||||||
|
myGLCD.setColor(22,18,70);
|
||||||
|
myGLCD.setBackColor(VGA_WHITE);
|
||||||
|
myGLCD.print(" pres exit to return ",393,463); |
||||||
|
myGLCD.setBackColor(22,18,70);
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void analyzer() |
||||||
|
{ myGLCD.setFont(SmallFont); |
||||||
|
myGLCD.setBackColor(22,18,70);
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
|
||||||
|
w++; |
||||||
|
myGLCD.print(bufer,385,147-12+12*w); |
||||||
|
delay(100); |
||||||
|
boolean b=0; |
||||||
|
if(w>25) |
||||||
|
{w=0; |
||||||
|
myGLCD.setColor(22,18,70);
|
||||||
|
myGLCD.setBackColor(VGA_WHITE);
|
||||||
|
myGLCD.print(" pres touch to continion ",393,463); |
||||||
|
myGLCD.setBackColor(22,18,70);
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
while(b<1) |
||||||
|
{delay(200); |
||||||
|
if (myTouch.dataAvailable())
|
||||||
|
{
|
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
if ((x>=380) && (x<=630)) // open
|
||||||
|
{
|
||||||
|
if ((y>=150) && (y<=470)) // 640, 240, 680, 280); //open
|
||||||
|
|
||||||
|
{ b=2; |
||||||
|
myGLCD.setColor(22,18,70);
|
||||||
|
|
||||||
|
myGLCD.fillRoundRect (380,145, 630, 475); |
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.drawRoundRect (380,145, 630, 475);
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x<380) || (x>630)) // open
|
||||||
|
{fcl=1; |
||||||
|
b=2; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,290 @@ |
|||||||
|
void internet() |
||||||
|
{ //Serial2.setTimeout(5000);
|
||||||
|
char* name; |
||||||
|
char* name1; |
||||||
|
boolean bad=0; |
||||||
|
int i; |
||||||
|
// esp8266();
|
||||||
|
//doo:
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,172,238); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
|
||||||
|
digitalWrite(18, LOW); |
||||||
|
delay(3000); |
||||||
|
digitalWrite(18, HIGH);//reset WIFI
|
||||||
|
myGLCD.print(" openweather " ,280, 457); |
||||||
|
delay(7000); |
||||||
|
//***************************
|
||||||
|
i=0; |
||||||
|
while (i<900) |
||||||
|
{ |
||||||
|
i++; |
||||||
|
if(Serial2.available()) { |
||||||
|
i=0; |
||||||
|
if (Serial2.find("IP")) |
||||||
|
{myGLCD.print("ip:" ,260, 457); |
||||||
|
int ip1=Serial2.parseInt(); |
||||||
|
int ip2=Serial2.parseInt(); |
||||||
|
int ip3=Serial2.parseInt(); |
||||||
|
int ip4=Serial2.parseInt(); |
||||||
|
String data1= String(ip1)+"."+String(ip2)+"."+String(ip3)+"."+String(ip4)+" "; |
||||||
|
myGLCD.print(data1 ,280, 457); |
||||||
|
i=1000; |
||||||
|
delay(3000); |
||||||
|
c = Serial2.read(); |
||||||
|
c = Serial2.read(); |
||||||
|
myGLCD.print(" " ,240, 457); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
if(i>0)delay (10);
|
||||||
|
} |
||||||
|
//**************************************
|
||||||
|
Serial2.print("7");//проверка подключения к точке доступа если ответ больше 0 то подключились
|
||||||
|
delay(1000); |
||||||
|
//***************************
|
||||||
|
i=0; |
||||||
|
while (i<900) |
||||||
|
{ |
||||||
|
i++; |
||||||
|
if(Serial2.available()) { |
||||||
|
i=0; |
||||||
|
if (Serial2.find("7+")) |
||||||
|
{myGLCD.print(" read data " ,280, 457); |
||||||
|
i=1000; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
if(i>0)delay (10);
|
||||||
|
} |
||||||
|
//**************************************
|
||||||
|
Serial2.print("1");//проверка подключения к точке доступа если ответ больше 0 то подключились
|
||||||
|
delay(1000); |
||||||
|
//***************************
|
||||||
|
i=0; |
||||||
|
while (i<900) |
||||||
|
{ |
||||||
|
i++; |
||||||
|
if(Serial2.available()) { |
||||||
|
i=0; |
||||||
|
if (Serial2.find("1+")) |
||||||
|
{myGLCD.print(" read server " ,280, 457); |
||||||
|
i=1000; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
if(i>0)delay (10);
|
||||||
|
} |
||||||
|
//**************************************
|
||||||
|
//****************************SD**********************
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
sd.chdir("progn"); |
||||||
|
delay (100); |
||||||
|
if (sd.exists("prognoz.txt")) |
||||||
|
{name= "prognoz1.txt"; |
||||||
|
name1= "prognoz.txt"; |
||||||
|
}//установка раб директории
|
||||||
|
else |
||||||
|
{name= "prognoz.txt"; |
||||||
|
name1= "prognoz1.txt"; |
||||||
|
}
|
||||||
|
|
||||||
|
// myFile.remove();
|
||||||
|
delay (50); |
||||||
|
myFile.open(name, O_RDWR | O_CREAT | O_AT_END); |
||||||
|
delay (50); |
||||||
|
|
||||||
|
//******************************************************
|
||||||
|
|
||||||
|
i = 0; //счетчик времени
|
||||||
|
int n = 1; // счетчик символов
|
||||||
|
int st=0; |
||||||
|
char c ; |
||||||
|
//Serial2.setTimeout(2000);
|
||||||
|
i=0;
|
||||||
|
myGLCD.print(" read inform 1 " ,280, 457); |
||||||
|
while (i<60000) { |
||||||
|
if(Serial2.available()) { |
||||||
|
|
||||||
|
c = Serial2.read(); |
||||||
|
|
||||||
|
myFile.print(c); |
||||||
|
|
||||||
|
i=0;
|
||||||
|
}//gotov
|
||||||
|
i++; |
||||||
|
|
||||||
|
|
||||||
|
}//while
|
||||||
|
|
||||||
|
delay (500);
|
||||||
|
myGLCD.print(" read inform 2 " ,280, 457); |
||||||
|
i=0;
|
||||||
|
while (i<600) { |
||||||
|
if(Serial2.available()) { |
||||||
|
|
||||||
|
c = Serial2.read(); |
||||||
|
|
||||||
|
myFile.print(c); |
||||||
|
|
||||||
|
i=0;
|
||||||
|
}//gotov
|
||||||
|
if(i>0)delay (10); |
||||||
|
i++; |
||||||
|
|
||||||
|
}//while
|
||||||
|
|
||||||
|
delay (500);
|
||||||
|
myGLCD.print(" read inform 3 " ,280, 457); |
||||||
|
i=0;
|
||||||
|
while (i<600) { |
||||||
|
if(Serial2.available()) { |
||||||
|
|
||||||
|
c = Serial2.read(); |
||||||
|
|
||||||
|
myFile.print(c); |
||||||
|
|
||||||
|
i=0;
|
||||||
|
}//gotov
|
||||||
|
if(i>0)delay (10); |
||||||
|
i++; |
||||||
|
|
||||||
|
}//while
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.print(" ",118, 457); |
||||||
|
myGLCD.print(" end read inform " ,280, 457); |
||||||
|
int cardSize=myFile.fileSize(); |
||||||
|
//myGLCD.printNumI(st ,150, 230);
|
||||||
|
// myGLCD.printNumI(i ,180, 230);
|
||||||
|
myFile.close(); |
||||||
|
delay (1000); |
||||||
|
myGLCD.print(" ",118, 457); |
||||||
|
myGLCD.print(" verifying " ,280, 457);
|
||||||
|
delay (1000); |
||||||
|
myGLCD.print(" ",118, 457); |
||||||
|
myGLCD.print("file size=" ,280, 457);
|
||||||
|
myGLCD.printNumI(cardSize,280+160, 457); |
||||||
|
//************proverka file **********************************************
|
||||||
|
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (1000); |
||||||
|
sd.chdir("progn"); |
||||||
|
delay (100); |
||||||
|
myFile.open(name, O_READ); |
||||||
|
char symbol; |
||||||
|
i=0; |
||||||
|
char token[] = "weatherdata";
|
||||||
|
n=1; |
||||||
|
while( n < 8000)//размер считанного с сайта файла проверяем на наличае в конце </weatherdata>
|
||||||
|
{ symbol = myFile.read(); |
||||||
|
if(n>1000) |
||||||
|
{if (symbol == token[i]) |
||||||
|
{ i=i+1; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
i=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(i>9){break;} |
||||||
|
n=n+1;
|
||||||
|
} |
||||||
|
if (cardSize>5000)//измерение размера файла если размер больше то считали все
|
||||||
|
{ if(i>9){// если есть в конце </weatherdata>
|
||||||
|
wifi=0; |
||||||
|
myGLCD.print(" good file W= " ,280, 457); |
||||||
|
myGLCD.printNumI(i,280+256, 457); |
||||||
|
wifih=t.hour;// час обновления данных
|
||||||
|
wifim=t.min;// минуты
|
||||||
|
} |
||||||
|
else// // если нет в конце </weatherdata> то error
|
||||||
|
{ myGLCD.print(" bad file W= " ,280, 457);
|
||||||
|
myGLCD.printNumI(i,280+256, 457); |
||||||
|
wifi=9; |
||||||
|
bad=1; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
else//размер меньше то считали не все error
|
||||||
|
{ myGLCD.print(" bad file " ,280, 457);
|
||||||
|
wifi=9; |
||||||
|
bad=1; |
||||||
|
} |
||||||
|
myFile.close(); |
||||||
|
delay (1000); |
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (1000); |
||||||
|
sd.chdir("progn"); |
||||||
|
delay (100); |
||||||
|
if (bad==1) |
||||||
|
{ if (sd.exists("Err.txt")) |
||||||
|
{myFile.open("Err.txt", O_RDWR | O_CREAT | O_AT_END); |
||||||
|
delay (100); |
||||||
|
myFile.remove(); |
||||||
|
} |
||||||
|
delay (100); |
||||||
|
sd.rename(name,"Err.txt"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
} |
||||||
|
else{ |
||||||
|
myFile.open(name1, O_RDWR | O_CREAT | O_AT_END); |
||||||
|
delay (100); |
||||||
|
myFile.remove(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (2000); |
||||||
|
// myGLCD.print(" end read inform " ,260, 460);
|
||||||
|
myGLCD.print(" ",118, 457);
|
||||||
|
clc();
|
||||||
|
digitalWrite(65, LOW);
|
||||||
|
/* return;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//****Для отладки***************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
if ((x>=0) && (x<=799)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((y>=10) && (y<=479)) // яркость
|
||||||
|
{ |
||||||
|
menu(); |
||||||
|
} |
||||||
|
} |
||||||
|
}//touch
|
||||||
|
sec=rtc_clock.get_seconds(); |
||||||
|
if (sec==0) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
}
|
||||||
|
|
||||||
|
}//while
|
||||||
|
// dbgSerial.println(json);
|
||||||
|
//***********************************************************************************
|
||||||
|
*/ |
||||||
|
} |
||||||
|
//***********************************************
|
||||||
@ -0,0 +1,292 @@ |
|||||||
|
void intime() |
||||||
|
{ |
||||||
|
char c7 ; |
||||||
|
int i=0;
|
||||||
|
int h1,m1,s1,day1,month1,year1; |
||||||
|
int cl1=0; |
||||||
|
int save=0; |
||||||
|
int x,y; |
||||||
|
int x1=170; |
||||||
|
int y1=200; |
||||||
|
//doo:
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,172,238); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
|
||||||
|
digitalWrite(18, LOW); |
||||||
|
delay(3000); |
||||||
|
digitalWrite(18, HIGH);//reset WIFI
|
||||||
|
myGLCD.print(" NTP " ,280, 457); |
||||||
|
delay(5000); |
||||||
|
myGLCD.print(" connecting " ,280, 457); |
||||||
|
delay(500); |
||||||
|
//***************************
|
||||||
|
i=0; |
||||||
|
while (i<900) |
||||||
|
{ |
||||||
|
i++; |
||||||
|
if(Serial2.available()) { |
||||||
|
i=0; |
||||||
|
if (Serial2.find("IP")) |
||||||
|
{myGLCD.print("ip:" ,260, 457); |
||||||
|
int ip1=Serial2.parseInt(); |
||||||
|
int ip2=Serial2.parseInt(); |
||||||
|
int ip3=Serial2.parseInt(); |
||||||
|
int ip4=Serial2.parseInt(); |
||||||
|
String data1= String(ip1)+"."+String(ip2)+"."+String(ip3)+"."+String(ip4)+" "; |
||||||
|
myGLCD.print(data1 ,280, 457); |
||||||
|
i=1000; |
||||||
|
delay(3000); |
||||||
|
c7 = Serial2.read(); |
||||||
|
c7 = Serial2.read(); |
||||||
|
myGLCD.print(" " ,240, 457); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
if(i>0)delay (10);
|
||||||
|
} |
||||||
|
//**************************************
|
||||||
|
Serial2.print("7");//проверка подключения к точке доступа если ответ больше 0 то подключились
|
||||||
|
delay(1000); |
||||||
|
//***************************
|
||||||
|
i=0; |
||||||
|
while (i<900) |
||||||
|
{ |
||||||
|
i++; |
||||||
|
if(Serial2.available()) { |
||||||
|
i=0; |
||||||
|
if (Serial2.find("7+")) |
||||||
|
{myGLCD.print(" read data " ,280, 457); |
||||||
|
i=1000; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
if(i>0)delay (10);
|
||||||
|
} |
||||||
|
//**************************************
|
||||||
|
Serial2.print("2");//проверка подключения к точке доступа если ответ больше 0 то подключились
|
||||||
|
delay(1000); |
||||||
|
//***************************
|
||||||
|
i=0; |
||||||
|
while (i<900) |
||||||
|
{ |
||||||
|
i++; |
||||||
|
if(Serial2.available()) { |
||||||
|
i=0; |
||||||
|
if (Serial2.find("2+")) |
||||||
|
{myGLCD.print(" read NTP " ,280, 457); |
||||||
|
delay(1000); |
||||||
|
cl1=1;
|
||||||
|
|
||||||
|
myGLCD.print(" end read NTP " ,280, 457); |
||||||
|
myGLCD.setColor(155, 155,155); |
||||||
|
myGLCD.fillRect(160,140,660,390);//тень
|
||||||
|
myGLCD.setColor(0, 0,155); |
||||||
|
myGLCD.fillRect(150,130,650,380);//поле
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawRect(160,140,640,370);//обводка
|
||||||
|
|
||||||
|
myGLCD.drawRect(190,320,370,360);//YES
|
||||||
|
myGLCD.drawRect(430,320,610,360);//NO
|
||||||
|
myGLCD.setBackColor(0, 0,155);//фон цифр
|
||||||
|
myGLCD.print("YES" ,255, 335); |
||||||
|
myGLCD.print("NO" ,500, 335); |
||||||
|
myGLCD.print("Set NTP Time" ,300, 140); |
||||||
|
|
||||||
|
h1=Serial2.parseInt(); |
||||||
|
m1=Serial2.parseInt(); |
||||||
|
s1=Serial2.parseInt(); |
||||||
|
day1=Serial2.parseInt();
|
||||||
|
month1=Serial2.parseInt()*(-1);
|
||||||
|
year1=Serial2.parseInt()*(-1); |
||||||
|
if( year1==1970) |
||||||
|
{ Serial2.print("2"); |
||||||
|
myGLCD.setBackColor(0,172,238); |
||||||
|
myGLCD.print(" end read NTP1 " ,280, 457); |
||||||
|
delay(2000); |
||||||
|
|
||||||
|
if (Serial2.find("2+")) |
||||||
|
{myGLCD.print(" read NTP2 " ,280, 457); |
||||||
|
delay(1000); |
||||||
|
h1=Serial2.parseInt(); |
||||||
|
m1=Serial2.parseInt(); |
||||||
|
s1=Serial2.parseInt(); |
||||||
|
day1=Serial2.parseInt(); |
||||||
|
month1=Serial2.parseInt()*(-1);
|
||||||
|
year1=Serial2.parseInt()*(-1);
|
||||||
|
myGLCD.print(" end read NTP2 " ,280, 457); |
||||||
|
}
|
||||||
|
i=1000;
|
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
if(i>0)delay (10);
|
||||||
|
} |
||||||
|
} |
||||||
|
//**************************************
|
||||||
|
if (cl1==1 ) |
||||||
|
{myGLCD.setBackColor(0, 0,155);//фон цифр
|
||||||
|
//***********************************************************************************************************
|
||||||
|
while (1) |
||||||
|
{t = rtc.getTime(); |
||||||
|
//*********** T O U C H ********************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
{ //myGLCD.fillScr(0, 0, 0);
|
||||||
|
myTouch.read(); |
||||||
|
x=myTouch.getX(); |
||||||
|
y=myTouch.getY(); |
||||||
|
// Serial.print("xt=");
|
||||||
|
// Serial.println(xt);
|
||||||
|
// Serial.print("yt=");
|
||||||
|
// Serial.println(yt);
|
||||||
|
myGLCD.drawPixel(x, y); |
||||||
|
|
||||||
|
if ((y>=320) && (y<=360))
|
||||||
|
{ if ((x>=200) && (x<=350)) // Upper row
|
||||||
|
{myGLCD.setColor(100,255,100); |
||||||
|
myGLCD.drawRect(190,320,370,360);//YES
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.print("YES" ,255, 335);//The time is set
|
||||||
|
save=1; |
||||||
|
|
||||||
|
} |
||||||
|
if ((x>=450) && (x=600)) // Upper row
|
||||||
|
{myGLCD.setColor(255,50,0); |
||||||
|
myGLCD.drawRect(430,320,610,360);//NO
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.print("NO" ,500, 335);//time is not set
|
||||||
|
save=2; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (t.sec!=oldsec)
|
||||||
|
{ oldsec=t.sec; |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
String data= String(day1)+"/"+String(month1)+"/"+String(year1); |
||||||
|
myGLCD.print(data ,330, 175);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
s1++; |
||||||
|
if(s1>59){ |
||||||
|
s1=0; |
||||||
|
m1++; |
||||||
|
if(m1>59){ |
||||||
|
h1++; |
||||||
|
m1=0; |
||||||
|
if(h1>23)h1=0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
int clockCenterX=270; |
||||||
|
int clockCenterY=220; |
||||||
|
if (h1<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX, clockCenterY-20); |
||||||
|
myGLCD.printNumI(h1, clockCenterX+32, clockCenterY-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(h1,clockCenterX, clockCenterY-20); |
||||||
|
} |
||||||
|
myGLCD.print(":",clockCenterX+64, clockCenterY-20); |
||||||
|
if (m1<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+96, clockCenterY-20); |
||||||
|
myGLCD.printNumI(m1, clockCenterX+128, clockCenterY-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(m1, clockCenterX+96, clockCenterY-20); |
||||||
|
} |
||||||
|
myGLCD.print(":",clockCenterX+160, clockCenterY-20); |
||||||
|
if (s1<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+96*2, clockCenterY-20); |
||||||
|
myGLCD.printNumI(s1, clockCenterX+96*2+32, clockCenterY-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(s1, clockCenterX+96*2, clockCenterY-20); |
||||||
|
} |
||||||
|
if(save==2) |
||||||
|
{ myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(0, 0,155); |
||||||
|
myGLCD.fillRect(170,280,630,368);//поле
|
||||||
|
myGLCD.setColor(255,50,0); |
||||||
|
myGLCD.print("The time is not set" ,250, 310); |
||||||
|
delay(3000); |
||||||
|
return; |
||||||
|
} |
||||||
|
if(save==1) |
||||||
|
{ myGLCD.setFont(BigFont); |
||||||
|
rtc.setTime(h1, m1,s1); // Set the time to 12:00:00 (24hr format)
|
||||||
|
rtc.setDate(day1,month1,year1); // Set the date to January 1st, 2014
|
||||||
|
dow=calcDOW(day1,month1, year1); |
||||||
|
rtc.setDOW(dow); |
||||||
|
myGLCD.setColor(0, 0,155); |
||||||
|
myGLCD.fillRect(170,280,630,368);//поле
|
||||||
|
myGLCD.setColor(100,255,100); |
||||||
|
myGLCD.print("The time is set" ,280, 310); |
||||||
|
delay(3000); |
||||||
|
return; |
||||||
|
} |
||||||
|
}
|
||||||
|
delay(500); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
//****************************************************************
|
||||||
|
void vrem()
|
||||||
|
{//t19:05d29/0915/
|
||||||
|
// peredacha vremeni drugim ds1307
|
||||||
|
min1= t.min; |
||||||
|
hour1=t.hour;
|
||||||
|
|
||||||
|
Serial.print("t"); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (hour1>9) |
||||||
|
{ |
||||||
|
Serial.print(hour1); |
||||||
|
} |
||||||
|
else |
||||||
|
{ Serial.print("0"); |
||||||
|
Serial.print(hour1); |
||||||
|
} |
||||||
|
Serial.print(":");
|
||||||
|
if (min1>9) |
||||||
|
{ |
||||||
|
Serial.print(min1); |
||||||
|
} |
||||||
|
else |
||||||
|
{ Serial.print("0"); |
||||||
|
Serial.print(min1); |
||||||
|
} |
||||||
|
Serial.print("d");
|
||||||
|
if (date>9)
|
||||||
|
{ Serial.print(date); |
||||||
|
} |
||||||
|
else |
||||||
|
{ Serial.print("0"); |
||||||
|
Serial.print(date); |
||||||
|
} |
||||||
|
Serial.print("/");
|
||||||
|
if (mon>9)
|
||||||
|
{ Serial.print(mon); |
||||||
|
} |
||||||
|
else |
||||||
|
{ Serial.print("0"); |
||||||
|
Serial.print(mon); |
||||||
|
}
|
||||||
|
Serial.print(t.year-2000); |
||||||
|
Serial.print("/");
|
||||||
|
}
|
||||||
|
|
||||||
@ -0,0 +1,297 @@ |
|||||||
|
|
||||||
|
void kalendar(int days, int mon, word years) |
||||||
|
//void kalen()
|
||||||
|
{ |
||||||
|
char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; |
||||||
|
char* strw[] = {"MO","TU","WE","TH","FR","SA","SU"}; |
||||||
|
int mon1; |
||||||
|
// int days;
|
||||||
|
int dmax; |
||||||
|
word years1; |
||||||
|
byte dow; |
||||||
|
|
||||||
|
|
||||||
|
//*****************************************************************************************
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.fillRoundRect(80, 35, 632, 420); |
||||||
|
myGLCD.setColor(255,114,0); |
||||||
|
myGLCD.fillRoundRect(80, 35, 632, 87); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(strm[mon-1], 250, 50); |
||||||
|
myGLCD.printNumI(years, 420, 50); |
||||||
|
myGLCD.setColor(0, 0, 100); |
||||||
|
dmax=validmax(days, mon, years); |
||||||
|
for(int i=0;i<7;i++)//вывод дней недели
|
||||||
|
{ |
||||||
|
if (i>4) |
||||||
|
{myGLCD.setColor(255, 0, 0); //вывод красным выходных дней
|
||||||
|
} |
||||||
|
myGLCD.print(strw[i], 104+i*72, 89); |
||||||
|
} |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(0, 0, 255); |
||||||
|
days=1; |
||||||
|
int yk=0; |
||||||
|
dow=calcDOW1(days, mon, years); |
||||||
|
|
||||||
|
for (days=1;days<dmax+1;days++)//вывод чисел календаря
|
||||||
|
{ |
||||||
|
|
||||||
|
if (mon==t.mon)// текущая дата
|
||||||
|
{ |
||||||
|
if ( years==t.year) |
||||||
|
{ |
||||||
|
if ( days==t.date) |
||||||
|
{ |
||||||
|
// myGLCD.setColor(200, 200, 200);
|
||||||
|
// myGLCD.fillRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170);
|
||||||
|
|
||||||
|
if (dow>5) |
||||||
|
{ |
||||||
|
myGLCD.setColor(250, 198, 239); |
||||||
|
myGLCD.fillRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170); |
||||||
|
myGLCD.setColor(255, 0, 0); |
||||||
|
myGLCD.drawRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(182, 217, 252); |
||||||
|
myGLCD.fillRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170); |
||||||
|
myGLCD.setColor(0, 0, 255);
|
||||||
|
myGLCD.drawRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// myGLCD.printNumI(days, (dow-1)*72+104, yk*50+135);
|
||||||
|
} |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (dow>5) |
||||||
|
{myGLCD.setColor(255, 0, 0);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(0, 0, 255);
|
||||||
|
} |
||||||
|
myGLCD.printNumI(days, (dow-1)*72+104, yk*50+135);//вывод чисел календаря
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (dow>6) |
||||||
|
{dow=0; |
||||||
|
yk=yk+1; |
||||||
|
} |
||||||
|
|
||||||
|
dow=dow+1; |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
days=1; |
||||||
|
if (mon==12) |
||||||
|
{mon1=1; |
||||||
|
years1=years+1; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
mon1=mon+1; |
||||||
|
years1=years; |
||||||
|
} |
||||||
|
dow=calcDOW1(days, mon1, years1);
|
||||||
|
myGLCD.setColor(100, 100, 100); //*********************************
|
||||||
|
for (days=1;dow<8;days++) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(days, (dow-1)*72+104, yk*50+135);
|
||||||
|
dow=dow+1; |
||||||
|
} |
||||||
|
|
||||||
|
if (mon==1) |
||||||
|
{mon1=12; |
||||||
|
years1=years-1; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
mon1=mon-1; |
||||||
|
years1=years; |
||||||
|
} |
||||||
|
dmax=validmax(days, mon1, years1); |
||||||
|
days=dmax; |
||||||
|
dow=calcDOW1(days, mon1, years1);
|
||||||
|
if(dow<7) |
||||||
|
{ |
||||||
|
myGLCD.setColor(100, 100, 100); //*************************
|
||||||
|
for (days=dmax;dow>0;days--) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(days, (dow-1)*72+104, 135);
|
||||||
|
dow=dow-1; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//******************************kalendar*******************************************************************
|
||||||
|
void kalendarset()
|
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int days=t.date; |
||||||
|
int mon=t.mon; |
||||||
|
word years=t.year;
|
||||||
|
|
||||||
|
kalendar(days, mon, years);
|
||||||
|
|
||||||
|
|
||||||
|
// myButtons.setButtonColors(VGA_WHITE,VGA_AQUA,VGA_WHITE,VGA_YELLOW,VGA_RED);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
// myButtons.setSymbolFont(Dingbats1_XL);
|
||||||
|
drawButkal(); |
||||||
|
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
if ((y>=390) && (y<=390+30)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x>= 588) && (x<= 588+30)) //X
|
||||||
|
{waitForIt( 588, 390, 588+30, 390+30); |
||||||
|
return; |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
if ((y>=40) && (y<=40+30)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x>= 588) && (x<= 588+30)) //+
|
||||||
|
{waitForIt( 588, 40, 588+30, 40+30);
|
||||||
|
mon=mon+1; |
||||||
|
if (mon>12) |
||||||
|
{mon=1; |
||||||
|
} |
||||||
|
kalendar(days, mon, years); |
||||||
|
drawButkal(); |
||||||
|
} |
||||||
|
if ((x>= 90) && (x<= 90+30)) //-
|
||||||
|
{waitForIt( 90, 40, 90+30, 40+30);
|
||||||
|
mon=mon-1; |
||||||
|
if (mon<1) |
||||||
|
{mon=12; |
||||||
|
} |
||||||
|
kalendar(days, mon, years);
|
||||||
|
drawButkal(); |
||||||
|
} |
||||||
|
if ((x>= 545) && (x<= 545+30)) //>
|
||||||
|
{waitForIt( 545, 40, 545+30, 40+30);
|
||||||
|
years=years+1; |
||||||
|
if (years>2099) |
||||||
|
{years=2000; |
||||||
|
} |
||||||
|
kalendar(days, mon, years); |
||||||
|
drawButkal(); |
||||||
|
} |
||||||
|
if ((x>= 135) && (x<= 135+30)) //<
|
||||||
|
{waitForIt( 135, 40, 135+30, 40+30);
|
||||||
|
years=years-1; |
||||||
|
if (years<2000) |
||||||
|
{years=2099; |
||||||
|
} |
||||||
|
kalendar(days, mon, years); |
||||||
|
drawButkal(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sec=t.sec; |
||||||
|
if (sec==0) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
byte validmax(byte d, byte m, word y) |
||||||
|
{ |
||||||
|
byte mArr[12] = {31,0,31,30,31,30,31,31,30,31,30,31}; |
||||||
|
byte dmax; |
||||||
|
|
||||||
|
if (m==2) |
||||||
|
{ |
||||||
|
if ((y % 4)==0) |
||||||
|
{ |
||||||
|
dmax=29; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
dmax=28; |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
dmax=mArr[m-1]; |
||||||
|
} |
||||||
|
|
||||||
|
return dmax; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
byte calcDOW1(byte d, byte m, int y) |
||||||
|
{ |
||||||
|
int dow; |
||||||
|
byte mArr[12] = {6,2,2,5,0,3,5,1,4,6,2,4}; |
||||||
|
|
||||||
|
dow = (y % 100); |
||||||
|
dow = dow*1.25; |
||||||
|
dow += d; |
||||||
|
dow += mArr[m-1]; |
||||||
|
if (((y % 4)==0) && (m<3)) |
||||||
|
dow -= 1; |
||||||
|
while (dow>7) |
||||||
|
dow -= 7; |
||||||
|
|
||||||
|
return dow; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void drawButkal()// календарь на месяц
|
||||||
|
{ |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawBitmap (588, 390, 30, 30, xf); |
||||||
|
myGLCD.drawRoundRect (588, 390, 588+30, 390+30);//X
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (588, 40, 30, 30, ad); |
||||||
|
myGLCD.drawRoundRect ( 588, 40, 618, 70); //+
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (90, 40, 30, 30, mi);
|
||||||
|
myGLCD.drawRoundRect ( 90, 40, 120, 70); //-
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (545, 40, 30, 30, pr); |
||||||
|
myGLCD.drawRoundRect ( 545, 40, 545+30, 40+30);//>
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (135, 40, 30, 30, le); |
||||||
|
myGLCD.drawRoundRect ( 135, 40, 135+30, 40+30);//<
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,419 @@ |
|||||||
|
//********************************************************************************
|
||||||
|
void menu() |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
byte bait2; |
||||||
|
byte bait3; |
||||||
|
//long address;
|
||||||
|
int i; |
||||||
|
int w; |
||||||
|
int w1; |
||||||
|
int w2; |
||||||
|
int q=0; |
||||||
|
int x,y; |
||||||
|
if( t.hour<7 ) |
||||||
|
{night=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{night=0; |
||||||
|
} |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("33.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (i =0 ; i < 96000; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>399){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, 2*m, 400, 1, pic1, 2); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
|
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
|
||||||
|
myGLCD.drawBitmap (100, 100, 80, 80, flr); |
||||||
|
myGLCD.drawRoundRect (100, 100, 180, 180);// fl
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (100, 190, 80, 80, dom1);//******************************
|
||||||
|
myGLCD.drawRoundRect (100, 190, 180, 270);// dom1
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 10, 80, 80, aandelen); |
||||||
|
myGLCD.drawRoundRect (10, 10, 90, 90);// Aandelend
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (100, 10, 80, 80, clokk); |
||||||
|
myGLCD.drawRoundRect (100, 10, 180, 90);// internet
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 100, 80, 80,ints); |
||||||
|
myGLCD.drawRoundRect (10, 100, 90, 180); //Radio
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 190, 80, 80,wer); |
||||||
|
myGLCD.drawRoundRect (10, 190, 90, 270); //Klok
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 280, 80, 80, fotos); |
||||||
|
myGLCD.drawRoundRect (10, 280, 90, 360); //Foto
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 370, 80, 80, instellingen); |
||||||
|
myGLCD.drawRoundRect (10, 370, 90, 450); //Install
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (769, 449, 30, 30, jar); |
||||||
|
myGLCD.drawRoundRect (769, 449, 769+30, 449+30);// яркость
|
||||||
|
kalend(); |
||||||
|
clc(); |
||||||
|
c=0;
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
x=myTouch.getX(); |
||||||
|
y=myTouch.getY(); |
||||||
|
|
||||||
|
if ((x>=769) && (x<=799)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((y>=449) && (y<=479)) // яркость
|
||||||
|
{ |
||||||
|
waitForIt1(769, 449, 799, 479); |
||||||
|
bright(); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
if ((x>=100) && (x<=180)) // Upper row
|
||||||
|
{ |
||||||
|
if ((y>=10) && (y<=90)) // Aandelend
|
||||||
|
{waitForIt1(100, 10, 180, 90); |
||||||
|
|
||||||
|
intime(); |
||||||
|
menu(); |
||||||
|
// grafik();
|
||||||
|
//paint();
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=100) && (y<=180)) //Radio
|
||||||
|
{waitForIt1(100, 100, 180, 180); |
||||||
|
//radio2();
|
||||||
|
flower(); |
||||||
|
menu(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=190) && (y<=270)) //HOME
|
||||||
|
{waitForIt1(100, 190, 180, 270); |
||||||
|
//radio2();
|
||||||
|
initial(); |
||||||
|
home1(); |
||||||
|
menu(); |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=10) && (x<=90)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((y>=10) && (y<=90)) // Aandelend
|
||||||
|
{waitForIt1(10, 10, 90, 90); |
||||||
|
initial(); |
||||||
|
grafik(); |
||||||
|
//paint();
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=100) && (y<=180)) //Radio
|
||||||
|
{waitForIt1(10, 100, 90, 180); |
||||||
|
//radio2();
|
||||||
|
internet(); |
||||||
|
menu(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=190) && (y<=270)) //(10, 190, 90, 270); //Klok
|
||||||
|
{waitForIt1(10, 190, 90, 270); |
||||||
|
initial(); |
||||||
|
pogoda(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=280) && (y<=360)) //(10, 280, 90, 360); //Foto
|
||||||
|
{ |
||||||
|
waitForIt1(10, 280, 90, 360); |
||||||
|
initial(); |
||||||
|
raw(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Install
|
||||||
|
{waitForIt1(10, 370, 90, 450); |
||||||
|
sdlist(); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
vrem(); |
||||||
|
clok(); |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//*****************************************
|
||||||
|
|
||||||
|
t = rtc.getTime(); |
||||||
|
// sec=t.sec;
|
||||||
|
if (raw1==0) |
||||||
|
{raw1=1; |
||||||
|
raw(); |
||||||
|
} |
||||||
|
if (t.sec==0) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
if ((t.sec==5) || (t.sec==20) || (t.sec==35)|| (t.sec==50)) |
||||||
|
{
|
||||||
|
priem(); |
||||||
|
} |
||||||
|
if ((t.sec==14) || (t.sec==42) ) |
||||||
|
{ |
||||||
|
dtu21(); |
||||||
|
|
||||||
|
bmp085(); |
||||||
|
|
||||||
|
uart(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
//*******************************************************************************
|
||||||
|
void kalend() |
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
//long address;
|
||||||
|
|
||||||
|
int w; |
||||||
|
int i; |
||||||
|
int q=0; |
||||||
|
// char* S1[]={"fam1.txt","fam.txt","fam2.txt","fam3.txt"};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myFile.open("Kalendar.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
//160*160=25600
|
||||||
|
for (i =0 ; i < 25600; i = i++) { |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>159){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (640, m, 160, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close(); |
||||||
|
} |
||||||
|
//************************************************************************************
|
||||||
|
|
||||||
|
void clc()
|
||||||
|
{ char* strm[] = {" JAN","FEBR","MARCH","APRIL"," MAY","JUNE","JULY"," AUG","SEPT"," OCT"," NOV"," DEC"}; |
||||||
|
int cx=640; |
||||||
|
int cy=383; |
||||||
|
int month1; |
||||||
|
//**********CLOK*******************************************************************************
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
t = rtc.getTime(); |
||||||
|
if (t.hour<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,cx, cy); |
||||||
|
myGLCD.printNumI(t.hour, cx+32, cy); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.hour,cx, cy); |
||||||
|
} |
||||||
|
myGLCD.print(":",cx+64, cy); |
||||||
|
if (t.min<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,cx+96, cy); |
||||||
|
myGLCD.printNumI(t.min, cx+128, cy); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.min, cx+96, cy); |
||||||
|
} |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
|
||||||
|
myGLCD.setColor(0,0,155); |
||||||
|
myGLCD.setBackColor(255,114,0); |
||||||
|
month1=t.mon; |
||||||
|
myGLCD.print(strm[month1-1], 663, 18); |
||||||
|
|
||||||
|
// **********WIFI work ********************************************************************
|
||||||
|
if(t.hour>7) |
||||||
|
{ |
||||||
|
if (t.min==7)
|
||||||
|
{if (fwifi==1) |
||||||
|
{fwifi=0; |
||||||
|
internet(); |
||||||
|
} |
||||||
|
}
|
||||||
|
if (wifi>0) //если была ошибка подключения
|
||||||
|
{if (t.min==23) |
||||||
|
{ |
||||||
|
internet(); |
||||||
|
|
||||||
|
}
|
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
//**************************опрос всех датчиков каждый час и запись всех данных в massiv 23:00 ******************
|
||||||
|
if (t.min==0) |
||||||
|
{ |
||||||
|
|
||||||
|
// printmassiv();
|
||||||
|
if (fsec==1) |
||||||
|
{uart(); |
||||||
|
bmp085(); |
||||||
|
uart(); |
||||||
|
savemastd();//запись данных датчиков в рабочий массив
|
||||||
|
|
||||||
|
digitalWrite(53, LOW);//reset NRF
|
||||||
|
delay(100); |
||||||
|
digitalWrite(53, HIGH); |
||||||
|
|
||||||
|
fsec=0; //delay (300);
|
||||||
|
if(t.hour==23) |
||||||
|
{sdwrite();//запись данных в файлы по месяцам и дням директориии улица и дом Temul i Temdom
|
||||||
|
savemasclok();//запись времени на sd 12:56 15/05/14 и массива rab
|
||||||
|
saveminmax();//запись макс мин и средних значений датчиков за день
|
||||||
|
}
|
||||||
|
|
||||||
|
if((t.hour>=0)||(t.hour<23)) |
||||||
|
{ |
||||||
|
savemasclok();//запись времени на sd 12:56 15/05/14 и массива rab
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if (t.min>30) |
||||||
|
{fsec=1; |
||||||
|
fwifi=1; |
||||||
|
} |
||||||
|
//*****************************************************************
|
||||||
|
|
||||||
|
// myGLCD.print(rtc.getDOWStr(FORMAT_SHORT), 256+450, 8);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.setColor(0,0,155); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
if (t.date<10) |
||||||
|
myGLCD.printNumI(t.date, 710, 56); |
||||||
|
else |
||||||
|
myGLCD.printNumI(t.date, 695, 56); |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
// myGLCD.setBackColor(180,180,180);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
dow= t.dow; |
||||||
|
myGLCD.print(str[dow-1], 690,110); |
||||||
|
/// myGLCD.printNumI(rtc_clock.get_months(), 695, 122);
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setBackColor(180,180,180); |
||||||
|
myGLCD.printNumI(t.year, 694, 143); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void waitForIt1(int x1, int y1, int x2, int y2) |
||||||
|
{ |
||||||
|
myGLCD.setColor(255, 232, 13); |
||||||
|
myGLCD.drawRoundRect (x1, y1, x2, y2); |
||||||
|
while (myTouch.dataAvailable()) |
||||||
|
myTouch.read(); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect (x1, y1, x2, y2); |
||||||
|
} |
||||||
@ -0,0 +1,233 @@ |
|||||||
|
void nightgraf() |
||||||
|
{ |
||||||
|
|
||||||
|
mon1=t.mon; |
||||||
|
years1=t.year; |
||||||
|
days1=t.date; |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(0, 0, 635, 475);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(0, 0, 635, 475);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
pikgrafik(); |
||||||
|
colorgraf=0; |
||||||
|
picgraftoday(); |
||||||
|
myGLCD.setFont( SevenSegNumFont);//myGLCD.setFont(BigFont);Ubuntubold
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
|
||||||
|
myGLCD.setColor(255,242, 0); |
||||||
|
myGLCD.printNumI(pressure,430,205);// myGLCD.print(":",cx+32+32, cy);
|
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
myGLCD.print("MM",430+103, 205+24); |
||||||
|
|
||||||
|
|
||||||
|
//*********TEMPUL**************************************
|
||||||
|
// myGLCD.setColor(255,142,21);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
if (zn<2) |
||||||
|
{myGLCD.print("-",420, 65+8); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.print("+",420, 65+8); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.print(",",420+88, 65+24); |
||||||
|
myGLCD.print("C",420+88+20+32+10, 68); |
||||||
|
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
if (tu<10) |
||||||
|
{ myGLCD.printNumI(tu,420+24+32,65);// myGLCD.print(":",cx+32+32, cy);
|
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.printNumI(tu,420+24,65); |
||||||
|
} |
||||||
|
myGLCD.printNumI(tud,420+88+20,65);
|
||||||
|
//*********HUG**************************************
|
||||||
|
myGLCD.setColor(129,239,255); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(",",420+88, 300+24);
|
||||||
|
myGLCD.print("%",420+88+20+32+10, 300+24);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.printNumI(hu,420+24,300); |
||||||
|
myGLCD.printNumI(hud,420+88+20,300); |
||||||
|
//*************tdom*******************************
|
||||||
|
myGLCD.setColor(5,252,46); |
||||||
|
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print("+",420, 395+8);
|
||||||
|
myGLCD.print(",",420+88, 395+27); |
||||||
|
myGLCD.print("C",420+88+20+32+10, 395);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.printNumI(tdc,420+24,395); |
||||||
|
//int tem = temperatur;
|
||||||
|
myGLCD.printNumI(tdd,420+88+20,395); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
//*********************min max************************************************
|
||||||
|
// myGLCD.setBackColor(8,101,192);
|
||||||
|
myGLCD.setColor(255, 55, 55); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
int px=430; |
||||||
|
int py=80+50; |
||||||
|
byte hh; |
||||||
|
byte mm; |
||||||
|
byte d; |
||||||
|
byte m; |
||||||
|
word y; |
||||||
|
//*************max****************************************
|
||||||
|
d=time1[24]/1000; |
||||||
|
m=(time1[24]%1000)/10; |
||||||
|
y=((time1[24]%1000)%10)*10; |
||||||
|
hh=time1[25]/1000; |
||||||
|
mm=(time1[25]%1000)/10; |
||||||
|
y=y+((time1[25]%1000)%10); |
||||||
|
myGLCD.setBackColor(255,255,255);
|
||||||
|
myGLCD.print("Tmax=+" ,px, py); |
||||||
|
myGLCD.printNumI(temul[24]/10, px+16*6, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(temul[24]%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print(":" ,px-4+16*2, py+16); |
||||||
|
if(hh<10) |
||||||
|
{ myGLCD.print("0" ,px, py+16); |
||||||
|
myGLCD.printNumI(hh, px+16, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(hh, px, py+16); |
||||||
|
} |
||||||
|
//myGLCD.print(":" ,px+16*2, py+16);
|
||||||
|
|
||||||
|
if(mm<10) |
||||||
|
{ myGLCD.print("0" ,px+16*3-8, py+16); |
||||||
|
myGLCD.printNumI(mm, px+16*4-8, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(mm, px+16*3-8, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(" " ,px+16*5, py+16);
|
||||||
|
myGLCD.print("." ,px+16*7-4, py+16); |
||||||
|
if(d<10) |
||||||
|
{ myGLCD.print("0" ,px+16*5, py+16); |
||||||
|
myGLCD.printNumI(d, px+16*6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(d, px+16*5, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.print("." ,px+16*10-10, py+16); |
||||||
|
if(m<10) |
||||||
|
{ myGLCD.print("0" ,px+16*8-6, py+16); |
||||||
|
myGLCD.printNumI(m, px+16*9-6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(m, px+16*8-6, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print("." ,px+16*11-12, py+16);
|
||||||
|
|
||||||
|
myGLCD.printNumI(y, px+16*11-14, py+16); |
||||||
|
|
||||||
|
//*************min ***********************************************
|
||||||
|
myGLCD.setColor(55, 55, 255); |
||||||
|
myGLCD.setBackColor(255,255,255);
|
||||||
|
d=time1[26]/1000; |
||||||
|
m=(time1[26]%1000)/10; |
||||||
|
y=((time1[26]%1000)%10)*10; |
||||||
|
hh=time1[27]/1000; |
||||||
|
mm=(time1[27]%1000)/10; |
||||||
|
y=y+((time1[27]%1000)%10); |
||||||
|
int Tm;
|
||||||
|
py=py+35; |
||||||
|
if (temul[25]>1000) |
||||||
|
{ Tm=temul[25]-1000; |
||||||
|
|
||||||
|
if(Tm<100) |
||||||
|
{myGLCD.print("Tmin= -" ,px, py); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("Tmin=-" ,px, py); |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
Tm=temul[25]; |
||||||
|
if(Tm<100) |
||||||
|
{myGLCD.print("Tmin= +" ,px, py); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("Tmin=+" ,px, py); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if(Tm<100)
|
||||||
|
{ // myGLCD.print(" " ,px+16*6, py);
|
||||||
|
myGLCD.printNumI(Tm/10, px+16*7, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(Tm%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
}
|
||||||
|
else |
||||||
|
{ myGLCD.printNumI(Tm/10, px+16*6, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(Tm%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print(":" ,px-4+16*2, py+16); |
||||||
|
if(hh<10) |
||||||
|
{ myGLCD.print("0" ,px, py+16); |
||||||
|
myGLCD.printNumI(hh, px+16, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(hh, px, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(":" ,px+16*2, py+16);
|
||||||
|
|
||||||
|
if(mm<10) |
||||||
|
{ myGLCD.print("0" ,px+16*3-8, py+16); |
||||||
|
myGLCD.printNumI(mm, px+16*4-8, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(mm, px+16*3-8, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(" " ,px+16*5, py+16);
|
||||||
|
myGLCD.print("." ,px+16*7-4, py+16); |
||||||
|
if(d<10) |
||||||
|
{ myGLCD.print("0" ,px+16*5, py+16); |
||||||
|
myGLCD.printNumI(d, px+16*6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(d, px+16*5, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.print("." ,px+16*10-10, py+16); |
||||||
|
|
||||||
|
if(m<10) |
||||||
|
{ myGLCD.print("0" ,px+16*8-6, py+16); |
||||||
|
myGLCD.printNumI(m, px+16*9-6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(m, px+16*8-6, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.printNumI(y, px+16*11-14, py+16); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//delay(8000);
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,130 @@ |
|||||||
|
//***************************************************************************************************
|
||||||
|
void paint() |
||||||
|
{ |
||||||
|
|
||||||
|
myGLCD.clrScr(); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawLine(32,0,32,myGLCD.getDisplayYSize()-1); |
||||||
|
myGLCD.drawLine(myGLCD.getDisplayXSize()-32,0,myGLCD.getDisplayXSize()-32,myGLCD.getDisplayYSize()-1); |
||||||
|
myGLCD.print("C", myGLCD.getDisplayXSize()-24, 8); |
||||||
|
myGLCD.print("L", myGLCD.getDisplayXSize()-24, 24); |
||||||
|
myGLCD.print("E", myGLCD.getDisplayXSize()-24, 40); |
||||||
|
myGLCD.print("A", myGLCD.getDisplayXSize()-24, 56); |
||||||
|
myGLCD.print("R", myGLCD.getDisplayXSize()-24, 72); |
||||||
|
myGLCD.print("+", myGLCD.getDisplayXSize()-24, 136); |
||||||
|
myGLCD.print("-", myGLCD.getDisplayXSize()-24, 200); |
||||||
|
// myButtons.drawButton(but7);
|
||||||
|
myGLCD.fillRect(myGLCD.getDisplayXSize()-32,96,myGLCD.getDisplayXSize()-1,128); |
||||||
|
myGLCD.drawLine(myGLCD.getDisplayXSize()-32,160,myGLCD.getDisplayXSize()-1,160); |
||||||
|
myGLCD.drawLine(myGLCD.getDisplayXSize()-32,192,myGLCD.getDisplayXSize()-1,192); |
||||||
|
myGLCD.drawLine(myGLCD.getDisplayXSize()-32,224,myGLCD.getDisplayXSize()-1,224); |
||||||
|
for (int i=0; i<8; i++) |
||||||
|
{ |
||||||
|
myGLCD.setColor(colorlist[i]); |
||||||
|
myGLCD.fillRect(0, (i*30), 24, (((i+1)*30)-1)); |
||||||
|
} |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
int x; |
||||||
|
int y; |
||||||
|
int a=0; |
||||||
|
do |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
while (myTouch.dataAvailable() == true) |
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
x = myTouch.getX(); |
||||||
|
y = myTouch.getY(); |
||||||
|
// if ((x>300) and (y>230))
|
||||||
|
//{a=1;
|
||||||
|
//}
|
||||||
|
if ((x<700) and (y>400))
|
||||||
|
{a=1; |
||||||
|
} |
||||||
|
if ((x!=-1) and (y!=-1)) |
||||||
|
{ |
||||||
|
if (x>(31+bsize) and (x<myGLCD.getDisplayXSize()-(31+bsize))) |
||||||
|
{ |
||||||
|
if (bsize==1) |
||||||
|
myGLCD.drawPixel(x, y); |
||||||
|
else |
||||||
|
myGLCD.fillCircle(x, y, bsize); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if (x<(30+bsize)) |
||||||
|
{ |
||||||
|
if (y<240) |
||||||
|
{ |
||||||
|
color = y / 30; |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
while (myTouch.dataAvailable()) {}; |
||||||
|
delay(50); |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if (y<96) |
||||||
|
{ |
||||||
|
myGLCD.setColor(VGA_BLACK); |
||||||
|
myGLCD.fillRect(33, 0, myGLCD.getDisplayXSize()-33, myGLCD.getDisplayYSize()-1); |
||||||
|
myGLCD.setColor(colorlist[color]); |
||||||
|
} |
||||||
|
if ((y>128) and (y<160)) |
||||||
|
{ |
||||||
|
if (bsize<7) |
||||||
|
{ |
||||||
|
bsize++; |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
while (myTouch.dataAvailable()) {}; |
||||||
|
delay(50); |
||||||
|
} |
||||||
|
} |
||||||
|
if ((y>160) and (y<192)) |
||||||
|
{ |
||||||
|
bsize=4; |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
while (myTouch.dataAvailable()) {}; |
||||||
|
delay(50); |
||||||
|
} |
||||||
|
if ((y>192) and (y<224)) |
||||||
|
{ |
||||||
|
if (bsize>1) |
||||||
|
{ |
||||||
|
bsize--; |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
while (myTouch.dataAvailable()) {}; |
||||||
|
delay(50); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} while (a<1); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
void drawColorMarkerAndBrushSize(int col) |
||||||
|
|
||||||
|
{ |
||||||
|
myGLCD.setColor(VGA_BLACK); |
||||||
|
myGLCD.fillRect(25, 0, 31, 239); |
||||||
|
myGLCD.fillRect(myGLCD.getDisplayXSize()-31, 161, myGLCD.getDisplayXSize()-1, 191); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawPixel(25, (col*30)+15); |
||||||
|
for (int i=1; i<7; i++) |
||||||
|
myGLCD.drawLine(25+i, ((col*30)+15)-i, 25+i, ((col*30)+15)+i); |
||||||
|
|
||||||
|
if (color==1) |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
else |
||||||
|
myGLCD.setColor(colorlist[col]); |
||||||
|
if (bsize==1) |
||||||
|
myGLCD.drawPixel(myGLCD.getDisplayXSize()-15, 177); |
||||||
|
else |
||||||
|
myGLCD.fillCircle(myGLCD.getDisplayXSize()-15, 177, bsize); |
||||||
|
|
||||||
|
myGLCD.setColor(colorlist[col]); |
||||||
|
} |
||||||
@ -0,0 +1,46 @@ |
|||||||
|
void pictrad() |
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
//long address;
|
||||||
|
long i; |
||||||
|
int w; |
||||||
|
int w1; |
||||||
|
int w2; |
||||||
|
int q=0; |
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
|
||||||
|
myFile.open("rad.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (i =0 ; i < 384000; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>799){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 800, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
} |
||||||
@ -0,0 +1,393 @@ |
|||||||
|
void pogoda() |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(VGA_BLUE); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.fillScr(VGA_BLUE);
|
||||||
|
kalend(); |
||||||
|
|
||||||
|
//*************************************************************************
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
|
||||||
|
clc(); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
info();
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
|
||||||
|
|
||||||
|
//int pos=(10*temperature/90)+42;
|
||||||
|
|
||||||
|
//*****************************************************************************************
|
||||||
|
int xtd=10; |
||||||
|
termdom(xtd); |
||||||
|
int xb=140; |
||||||
|
barometr(xb); |
||||||
|
int xtu=270; |
||||||
|
termul(xtu); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//************************************************************************************************************************************************************
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
sec=t.sec; |
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
// myGLCD.setBackColor(255,255,255);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.printNumI(sec , 700, 160);
|
||||||
|
|
||||||
|
if ((sec==0) ||(sec==15) || (sec==30) || (sec==45)) |
||||||
|
{ |
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.drawBitmap (769, 339, 30, 30, jar);
|
||||||
|
|
||||||
|
|
||||||
|
delay(800); |
||||||
|
|
||||||
|
clc(); |
||||||
|
bmp085(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
int tem = tdc*10+tdd;
|
||||||
|
int pos=(10*tem/50);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barvert(xtd+58,42, pos,10,340); |
||||||
|
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
pos=(100*(pressure-730)/50); |
||||||
|
barbarom(xb+58,42, pos,10,340);
|
||||||
|
int tem1=tdc*10+tdd; |
||||||
|
pos=(10*(tem1+340)/85);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
|
||||||
|
int tempul=tu*10+tud;
|
||||||
|
pos=(10*(tempul+340)/85);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barult(xtu+58,42, pos,10,340);
|
||||||
|
//barvert(xtu+58,42, pos,10,340);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==42) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==55) || (sec==25) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//*****************************************************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
// myGLCD.setBackColor(255,255,255);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
// myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
// myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
pogoda(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
prognoz(); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
}
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
//***************************************************************************************************************************************************
|
||||||
|
void termdom(int xtd)// xtd- координата начала вывода term dom по х
|
||||||
|
{ |
||||||
|
myFile.open("termd.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 58086; i = i++) { |
||||||
|
n=n+1; |
||||||
|
byte bait = myFile.read(); |
||||||
|
|
||||||
|
byte bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
int w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>125){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (xtd, m+8, 126, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close();
|
||||||
|
int tem=tdc*10+tdd; |
||||||
|
int pos=(10*tem/50);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barvert(xtd+58,42, pos,10,340);
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void barvert(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(150,150,150); |
||||||
|
|
||||||
|
myGLCD.fillRoundRect(x-2, y-2, l+x+2, h+y+2);//рисуем серый пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.fillRoundRect(x, y, l+x, h+y);//с белой обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
if (tdc>27) |
||||||
|
{ myGLCD.setColor(255,50,50); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//уровень
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor( 255,0,0);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(7,120,34); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//уровень
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor( 7,120,34);
|
||||||
|
} |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print("+" , x-48 , 380+30); |
||||||
|
myGLCD.print("." ,x-48+24+40, 380+30); |
||||||
|
myGLCD.printNumI(tdc, x-48+24, 380+30); |
||||||
|
|
||||||
|
//int tdes=temperatur;
|
||||||
|
myGLCD.printNumI(tdd , x-48+24+40+20, 380+30); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
//**********************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
void barometr(int xb)// xb- координата начала вывода бар по х
|
||||||
|
{ |
||||||
|
myFile.open("barometr.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 58086; i = i++) { |
||||||
|
n=n+1; |
||||||
|
byte bait = myFile.read(); |
||||||
|
|
||||||
|
byte bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
int w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>125){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (xb, m+8, 126, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close();
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
|
||||||
|
int pos=(100*(pressure-730)/50);
|
||||||
|
barbarom(xb+58,42, pos,10,340);
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void barbarom(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(150,150,150); |
||||||
|
|
||||||
|
myGLCD.fillRoundRect(x-2, y-2, l+x+2, h+y+2);//рисуем серый пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.fillRoundRect(x, y, l+x, h+y);//с белой обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
if (pressure<743) |
||||||
|
{ myGLCD.setColor(0,70,167); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//син
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor(0,70,167);
|
||||||
|
} |
||||||
|
if ((pressure<755)&&(pressure>742)) |
||||||
|
{ myGLCD.setColor(60,212,209); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//бир
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor(60,212,209);
|
||||||
|
} |
||||||
|
if ((pressure<768)&&(pressure>754)) |
||||||
|
{ myGLCD.setColor(230,94,32); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//ор
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor(230,94,32);
|
||||||
|
} |
||||||
|
|
||||||
|
if (pressure>767) |
||||||
|
{ |
||||||
|
myGLCD.setColor(250,221,8); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//ж
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor(250,221,8);
|
||||||
|
} |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.printNumI(pressure , x-30, 380+30);
|
||||||
|
//myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
//myGLCD.print("+" ,20+58 , 380+30);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void termul(int xtu)// xtu- координата начала вывода term dom по х
|
||||||
|
{ |
||||||
|
myFile.open("termu.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 58086; i = i++) { |
||||||
|
n=n+1; |
||||||
|
byte bait = myFile.read(); |
||||||
|
|
||||||
|
byte bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
int w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>125){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (xtu, m+8, 126, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close();
|
||||||
|
int tempul=tu*10+tud;
|
||||||
|
int pos=(10*(tempul+340)/85);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barult(xtu+58,42, pos,10,340);
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
//*******************************************************************************************
|
||||||
|
void barult(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(150,150,150); |
||||||
|
|
||||||
|
myGLCD.fillRoundRect(x-2, y-2, l+x+2, h+y+2);//рисуем серый пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.fillRoundRect(x, y, l+x, h+y);//с белой обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
if (tdc>27) |
||||||
|
{ myGLCD.setColor(255,50,50); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//уровень
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor( 255,0,0);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(7,120,34); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//уровень
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor( 7,120,34);
|
||||||
|
} |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print("+" , x-48 , 380+30); |
||||||
|
myGLCD.print("." ,x-48+24+40, 380+30); |
||||||
|
myGLCD.printNumI(tu , x-48+24, 380+30); |
||||||
|
|
||||||
|
//int tempul=tu*10+tud;
|
||||||
|
//int tdes=tempul;
|
||||||
|
myGLCD.printNumI(tud , x-48+24+40+20, 380+30); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//******************************DHT11***********************************
|
||||||
|
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,611 @@ |
|||||||
|
//***********************************************
|
||||||
|
|
||||||
|
void radio2()
|
||||||
|
{ |
||||||
|
int STATION_1=1059; |
||||||
|
int STATION_2=1000; |
||||||
|
int STATION_3=1004; |
||||||
|
int STATION_4=1010; |
||||||
|
int STATION_5=1039; |
||||||
|
int STATION_6=1025; |
||||||
|
int STATION_7=1068; |
||||||
|
int STATION_8=1052; |
||||||
|
int STATION_9=1075; |
||||||
|
|
||||||
|
int x,y,f; |
||||||
|
boolean mem=0; |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(VGA_BLUE); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.fillScr(66,32,7); //(66,32,7)
|
||||||
|
//******************************************************************************************************
|
||||||
|
|
||||||
|
if (rad==0) |
||||||
|
{ |
||||||
|
StationFrequency=STATION_5*100; |
||||||
|
MP1090S:: InitI2C (19); |
||||||
|
MP1090S:: SetBand (MHz87_5_108); |
||||||
|
MP1090S::SetSpace (kHz50); |
||||||
|
MP1090S::SetVolume (volume); |
||||||
|
MP1090S::SetStation (StationFrequency);
|
||||||
|
|
||||||
|
//***************
|
||||||
|
|
||||||
|
//myGLCD.setFont( Dingbats1_XL);
|
||||||
|
//myButtons.drawButton(but7);
|
||||||
|
// but7 = myButtons.addButton(270, 80, 35, 35, "w", BUTTON_SYMBOL);
|
||||||
|
// myGLCD.setFont( BigFont);
|
||||||
|
|
||||||
|
// volume=5;
|
||||||
|
// MP1090S::SetVolume (volume);
|
||||||
|
rad=1; |
||||||
|
} |
||||||
|
pictrad(); |
||||||
|
c=1; |
||||||
|
//int a=0;
|
||||||
|
// drawButtons();
|
||||||
|
|
||||||
|
// myGLCD.setFont( Dingbats1_XL);
|
||||||
|
// pictradio();
|
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
drawButt(); |
||||||
|
strelka(); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,104,39);//goluboy
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
myGLCD.print(" ", 160, 95); |
||||||
|
|
||||||
|
int pos=100*volume/15;
|
||||||
|
myGLCD.printNumI(abs(pos) , 160, 95);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barrad(65,135, pos,270-25,10); |
||||||
|
|
||||||
|
// myGLCD.setColor(255,255,255);
|
||||||
|
myGLCD.setColor(29,124,221); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.printNumI(STATION_1 , 70, 370);
|
||||||
|
myGLCD.printNumI(STATION_2 ,119, 420);
|
||||||
|
myGLCD.printNumI(STATION_3 , 230, 370);
|
||||||
|
myGLCD.printNumI(STATION_4, 280, 420);
|
||||||
|
myGLCD.printNumI(STATION_5 , 388, 370); |
||||||
|
myGLCD.printNumI(STATION_6 ,440, 420);
|
||||||
|
myGLCD.printNumI(STATION_7 , 540, 370); |
||||||
|
myGLCD.printNumI(STATION_8 ,595, 420);
|
||||||
|
myGLCD.printNumI(STATION_9 , 695, 370);
|
||||||
|
|
||||||
|
// myGLCD.drawBitmap (639, 370, 160, 80, cl);
|
||||||
|
// myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
clcrad(); |
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
if (sec==0) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
//kalend();
|
||||||
|
clcrad(); |
||||||
|
} |
||||||
|
|
||||||
|
// digitalClockDisplay();
|
||||||
|
//{
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
x=myTouch.getX(); |
||||||
|
y=myTouch.getY(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
//myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
//myGLCD.printNumI(y , 700, 72);
|
||||||
|
//**************************************************
|
||||||
|
if ((y>=405) && (y<=450)) // Upper row
|
||||||
|
{ |
||||||
|
if ((x>=62) && (x<=112))// 2
|
||||||
|
{waitForIt(62, 405, 112, 450);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_2= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 119, 420); |
||||||
|
myGLCD.printNumI(STATION_2 ,119, 420);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_2*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=224) && (x<=274))// 4
|
||||||
|
{waitForIt(224, 405, 274, 450);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_4= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 280, 420); |
||||||
|
myGLCD.printNumI(STATION_4, 280, 420);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_4*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=383) && (x<=433))// 6
|
||||||
|
{waitForIt(383, 405, 433, 450);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_6= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 440, 420); |
||||||
|
myGLCD.printNumI(STATION_6 ,440, 420);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_6*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
if ((x>=540) && (x<=590))// 8
|
||||||
|
{waitForIt(540, 405, 590, 450);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_8= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 595, 420); |
||||||
|
myGLCD.printNumI(STATION_8 ,595, 420);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_8*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
//******************************
|
||||||
|
} |
||||||
|
if ((y>=5) && (y<=50)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x>=230) && (x<=280)) // Button: x
|
||||||
|
{ waitcirForIt(260+3,30+10,22); |
||||||
|
mem=1; |
||||||
|
}
|
||||||
|
if ((x>=480) && (x<=520)) // Button:_
|
||||||
|
{ |
||||||
|
waitForIt(482, 3, 532, 48); |
||||||
|
rad=1; |
||||||
|
//clok();
|
||||||
|
return ; |
||||||
|
}
|
||||||
|
|
||||||
|
if ((x>=540) && (x<=580)) // Button: x
|
||||||
|
{ |
||||||
|
waitForIt(540, 3, 590, 48); |
||||||
|
rad=0; |
||||||
|
volume=0; |
||||||
|
MP1090S::SetVolume (volume); |
||||||
|
//clok();
|
||||||
|
return ; |
||||||
|
|
||||||
|
}
|
||||||
|
} |
||||||
|
//**********************************************************************************
|
||||||
|
if ((y>=290) && (y<=330)) // Upper row
|
||||||
|
{ |
||||||
|
if ((x>=20) && (x<=55)) // Button:<<
|
||||||
|
{ |
||||||
|
waitForIt(10, 284, 62, 329); |
||||||
|
|
||||||
|
// do
|
||||||
|
//{
|
||||||
|
StationFrequency=StationFrequency-1000; |
||||||
|
if (StationFrequency<90000) |
||||||
|
{StationFrequency=108000; |
||||||
|
} |
||||||
|
strelka(); |
||||||
|
//myGLCD.printNumI(ust , CENTER, 350);
|
||||||
|
|
||||||
|
// } while(ust>0);
|
||||||
|
} |
||||||
|
if ((x>=75) && (x<=120)) // Button:-
|
||||||
|
{ |
||||||
|
waitForIt(70, 284, 120, 329); |
||||||
|
|
||||||
|
StationFrequency=StationFrequency-50;
|
||||||
|
if (StationFrequency<90000) |
||||||
|
{StationFrequency=108000; |
||||||
|
} |
||||||
|
strelka(); |
||||||
|
|
||||||
|
}
|
||||||
|
if ((x>=675) && (x<=725)) // Button:+
|
||||||
|
{ |
||||||
|
waitForIt(677, 284, 727, 329);
|
||||||
|
|
||||||
|
StationFrequency=StationFrequency+50; |
||||||
|
if (StationFrequency>108000) |
||||||
|
{StationFrequency=90000; |
||||||
|
} |
||||||
|
strelka(); |
||||||
|
|
||||||
|
} |
||||||
|
if ((x>=735) && (x<=775)) // Button:>>
|
||||||
|
{ |
||||||
|
waitForIt(739, 284, 792, 329);
|
||||||
|
|
||||||
|
// do
|
||||||
|
// {
|
||||||
|
StationFrequency=StationFrequency+1000;
|
||||||
|
|
||||||
|
if (StationFrequency>107000) |
||||||
|
{StationFrequency=90000; |
||||||
|
} |
||||||
|
strelka(); |
||||||
|
// myGLCD.printNumI(ust , CENTER, 350);
|
||||||
|
// } while(ust>0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
if ((y>=120) && (y<=150)) // Upper row
|
||||||
|
{ |
||||||
|
if ((x>=28) && (x<=48)) // Button:- volume
|
||||||
|
{ |
||||||
|
waitcirForIt(32-3,138+4,18);
|
||||||
|
if (volume<1) |
||||||
|
{volume=1; |
||||||
|
} |
||||||
|
volume=volume-1; |
||||||
|
MP1090S::SetVolume (volume); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,104,39); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
myGLCD.print(" ", 160, 95);
|
||||||
|
// myGLCD.printNumI(volume , 168, 90);
|
||||||
|
int pos=100*volume/15;
|
||||||
|
myGLCD.printNumI(abs(pos) ,160, 95);
|
||||||
|
|
||||||
|
barrad(65,135, pos,270-25,10);
|
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=316) && (x<=356)) // Button:+ volume
|
||||||
|
{ |
||||||
|
waitcirForIt(338+3,138+4,18); |
||||||
|
if (volume>14) |
||||||
|
{volume=14; |
||||||
|
} |
||||||
|
volume=volume+1;
|
||||||
|
MP1090S::SetVolume (volume); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,104,39); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
myGLCD.print(" ", 160, 95);
|
||||||
|
// myGLCD.printNumI(volume , 168, 90);
|
||||||
|
int pos=100*volume/15;
|
||||||
|
myGLCD.printNumI(abs(pos) , 160, 95);
|
||||||
|
|
||||||
|
barrad(65,135, pos,270-25,10);
|
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((y>=70) && (y<=100)) // Upper row
|
||||||
|
{
|
||||||
|
if ((x>=17) && (x<=47)) // Button:mute
|
||||||
|
{ waitcirForIt(32-3,85+6,18); |
||||||
|
volume=0; |
||||||
|
MP1090S::SetVolume (volume);
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,104,39); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
myGLCD.print(" ", 160, 95);
|
||||||
|
// myGLCD.printNumI(volume , 168, 90);
|
||||||
|
int pos=100*volume/15;
|
||||||
|
myGLCD.printNumI(abs(pos) , 160, 95);
|
||||||
|
|
||||||
|
barrad(65,135, pos,270-25,10);
|
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
if ((y>=355) && (y<=405)) // Upper row
|
||||||
|
{ |
||||||
|
if ((x>=16) && (x<=56))// 1
|
||||||
|
{waitForIt(6, 355, 56, 400);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_1= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 70, 370); |
||||||
|
myGLCD.printNumI(STATION_1 , 70, 370);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_1*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=175) && (x<=215))// 3
|
||||||
|
{waitForIt(170, 355, 220, 400);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_3= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 230, 370); |
||||||
|
myGLCD.printNumI(STATION_3 , 230, 370);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_3*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
if ((x>=330) && (x<=380))// 5
|
||||||
|
{waitForIt(330, 355, 380, 400);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_5= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 388, 370); |
||||||
|
myGLCD.printNumI(STATION_5 , 388, 370);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_5*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
if ((x>=484) && (x<=530))// 7
|
||||||
|
{waitForIt(484, 355, 534, 400);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_7= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 540, 370); |
||||||
|
myGLCD.printNumI(STATION_7 , 540, 370);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_7*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
if ((x>=640) && (x<=690))// 9
|
||||||
|
{waitForIt(640, 355, 690, 400);
|
||||||
|
if (mem==1) |
||||||
|
{STATION_9= StationFrequency/100; |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(66,32,7); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(" ", 695, 370); |
||||||
|
myGLCD.printNumI(STATION_9 , 695, 370);
|
||||||
|
mem=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{ StationFrequency=STATION_9*100; |
||||||
|
strelka(); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
//**********-----------------------------------------------------------------------------------------------------
|
||||||
|
if ((y>=210) && (y<=270)) // Upper row
|
||||||
|
{f=x*10/44+900; |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
// myGLCD.print("f= " , 650, 132);
|
||||||
|
// myGLCD.printNumI(f , 700, 132);
|
||||||
|
StationFrequency=f*100; |
||||||
|
strelka();
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
delay(100); |
||||||
|
}
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Рисуем кнопки
|
||||||
|
void drawButt() |
||||||
|
{ |
||||||
|
// Draw the upper row of buttons
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 232, 13); |
||||||
|
myGLCD.drawRoundRect (482, 3, 532, 48);// _ 50x45
|
||||||
|
myGLCD.drawRoundRect (540, 3, 590, 48); //x
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.drawRoundRect (10, 284, 62, 329);//<<
|
||||||
|
myGLCD.drawRoundRect (70, 284, 120, 329);//- 50x45
|
||||||
|
myGLCD.drawRoundRect (677, 284, 727, 329);//+
|
||||||
|
myGLCD.drawRoundRect (739, 284, 792, 329);//>>
|
||||||
|
|
||||||
|
myGLCD.drawCircle (32-3,85+6,18);//mute
|
||||||
|
myGLCD.drawCircle (32-3,138+4,18);//-
|
||||||
|
myGLCD.drawCircle (338+3,138+4,18);//+
|
||||||
|
myGLCD.drawCircle (260+3,30+10,22);//glass
|
||||||
|
|
||||||
|
myGLCD.drawRoundRect (6, 355, 56, 400);//1
|
||||||
|
myGLCD.drawRoundRect (170, 355, 220, 400);//3
|
||||||
|
myGLCD.drawRoundRect (330, 355, 380, 400);//5
|
||||||
|
myGLCD.drawRoundRect (484, 355, 534, 400);//7
|
||||||
|
myGLCD.drawRoundRect (640, 355, 690, 400);//9
|
||||||
|
|
||||||
|
myGLCD.drawRoundRect (62, 405, 112, 450);//2
|
||||||
|
myGLCD.drawRoundRect (224, 405, 274, 450);//4
|
||||||
|
myGLCD.drawRoundRect (383, 405, 433, 450);//6
|
||||||
|
myGLCD.drawRoundRect (540, 405, 590, 450);//8
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// Draw a red frame while a button is touched
|
||||||
|
void waitForIt(int x1, int y1, int x2, int y2) |
||||||
|
{ |
||||||
|
myGLCD.setColor(0, 217, 48); |
||||||
|
myGLCD.drawRoundRect (x1, y1, x2, y2); |
||||||
|
while (myTouch.dataAvailable()) |
||||||
|
myTouch.read(); |
||||||
|
myGLCD.setColor(255, 232, 13); |
||||||
|
myGLCD.drawRoundRect (x1, y1, x2, y2); |
||||||
|
} |
||||||
|
|
||||||
|
void waitcirForIt(int x1, int y1, int x2) |
||||||
|
{ |
||||||
|
myGLCD.setColor(0, 217, 48); |
||||||
|
myGLCD.drawCircle (x1,y1,x2);//glass
|
||||||
|
while (myTouch.dataAvailable()) |
||||||
|
myTouch.read(); |
||||||
|
myGLCD.setColor(255, 232, 13); |
||||||
|
myGLCD.drawCircle (x1,y1,x2);//glass
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//****************************strelka***********************************
|
||||||
|
void strelka() |
||||||
|
{ |
||||||
|
int xstr; |
||||||
|
xstr=(StationFrequency/100-900)*44/10; |
||||||
|
xstr=abs(xstr); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(0,104,39); |
||||||
|
myGLCD.fillRoundRect (306, 279, 500, 333); //clear
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,104,39); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.printNumI(StationFrequency/100 , CENTER, 280); |
||||||
|
MP1090S::SetStation ( StationFrequency); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(63,33, 9); |
||||||
|
myGLCD.fillRoundRect (0, 246, 800, 266); |
||||||
|
myGLCD.setColor(255,0, 0); |
||||||
|
myGLCD.fillRoundRect (xstr-2, 246, xstr+3, 266); |
||||||
|
} |
||||||
|
|
||||||
|
//************************************************************************************
|
||||||
|
|
||||||
|
void clcrad()
|
||||||
|
{ char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; |
||||||
|
int cx=70; |
||||||
|
int cy=30; |
||||||
|
int month1; |
||||||
|
//**********CLOK*******************************************************************************
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
if (t.hour<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,cx, cy); |
||||||
|
myGLCD.printNumI(t.hour, cx+32, cy); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.hour,cx, cy); |
||||||
|
} |
||||||
|
myGLCD.print(":",cx+64, cy); |
||||||
|
if (t.min<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,cx+96, cy); |
||||||
|
myGLCD.printNumI(t.min, cx+128, cy); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.min, cx+96, cy); |
||||||
|
} |
||||||
|
|
||||||
|
// kalendar
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(245,61,6); |
||||||
|
// myGLCD.setBackColor(255,114,0);
|
||||||
|
month1=t.mon; |
||||||
|
myGLCD.print(strm[month1-1], 663-15, 18+8); |
||||||
|
|
||||||
|
// myGLCD.print(rtc.getDOWStr(FORMAT_SHORT), 256+450, 8);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
// myGLCD.setBackColor(255,255,255);
|
||||||
|
myGLCD.setColor(29,124,221);//goluboy
|
||||||
|
if (t.date<10) |
||||||
|
myGLCD.printNumI(t.date, 710-30, 56+5); |
||||||
|
else |
||||||
|
myGLCD.printNumI(t.date, 695-30, 56+5); |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
// myGLCD.setBackColor(180,180,180);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setColor(13,124,30);//zelen
|
||||||
|
dow= t.dow; |
||||||
|
myGLCD.print(str[dow-1], 690-20,110+5); |
||||||
|
/// myGLCD.printNumI(rtc_clock.get_months(), 695, 122);
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
//myGLCD.setBackColor(180,180,180);
|
||||||
|
myGLCD.printNumI(t.year, 694-20, 143+5); |
||||||
|
|
||||||
|
|
||||||
|
//myGLCD.setBackColor(0,0,55);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void barrad(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(0,104,39);//цвет фоновый пр-к
|
||||||
|
// myGLCD.setColor(0,0,255);
|
||||||
|
myGLCD.fillRoundRect(x-5, y-5, l+x+5, h+y+5);//рисуем фоновый пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(x, y, l+x, h+y);//прямоугольник с обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
myGLCD.setColor(29,124,221);// цвет прямоуг уровня
|
||||||
|
myGLCD.fillRoundRect(x+1, y+1, (pos*l/100+x)-1, h+y-1);//рисуем прямоуг уровня
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
// myGLCD.setColor(VGA_WHITE);
|
||||||
|
// myGLCD.setBackColor(0,104,39);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.print("BRIGHT", x-48+(l/2), y-25);
|
||||||
|
// myGLCD.printNumI(abs(pos), x-10+(l/2), y+2);// уровень в процентах
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,767 @@ |
|||||||
|
//*******************************************************************************
|
||||||
|
void raw()//sd.begin(chipSelect, SPI_HALF_SPEED );
|
||||||
|
//myGLCD.setFont( Ubuntubold);
|
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
{
|
||||||
|
|
||||||
|
boolean pause=0; |
||||||
|
byte p=0; |
||||||
|
if (t.hour<7 || t.hour>22) |
||||||
|
{myGLCD.fillScr(22,18,70); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setBackColor(22,18,70); |
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
} |
||||||
|
else |
||||||
|
{
|
||||||
|
myGLCD.setBackColor(VGA_AQUA); |
||||||
|
} |
||||||
|
// myGLCD.setColor(VGA_WHITE);
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
|
||||||
|
// myGLCD.drawBitmap (679, 280, 80, 80, instellingen);
|
||||||
|
// myGLCD.drawRoundRect (679, 280, 759, 360); //Install
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (769, 449, 30, 30, jar); |
||||||
|
myGLCD.drawRoundRect (769, 449, 769+30, 449+30);// яркость
|
||||||
|
|
||||||
|
//myGLCD.setColor(255,255,255);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
|
||||||
|
myGLCD.fillRoundRect (769-31, 449, 769-1, 449+30); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setColor(0,250,0); |
||||||
|
myGLCD.fillCircle (769-31+7+8,449+7+8,12); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect (769-31, 449, 769-1, 449+30);// pause
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect (769-61, 449, 769-31, 449+30); |
||||||
|
//myGLCD.setColor(255, 255, 255);
|
||||||
|
myGLCD.setColor(0,174,235); |
||||||
|
myGLCD.fillCircle (769-61+7+8,449+7+8,12); |
||||||
|
//myGLCD.setColor(255,0,0);
|
||||||
|
// myGLCD.fillCircle (769-61+7+8,449+7+8,5);
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect (769-61, 449, 769-31, 449+30);// flower
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect (769-91, 449, 769-61, 449+30); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setColor(255,216,0); |
||||||
|
myGLCD.fillCircle (769-91+7+8,449+7+8,12); |
||||||
|
myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.fillCircle (769-61+7+8,449+7+8,5); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect (769-91, 449, 769-61, 449+30);// datchik
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
if (!sd.chdir("/")) |
||||||
|
{sd.begin(chipSelect, SPI_HALF_SPEED ); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
}//установка раб директории
|
||||||
|
|
||||||
|
int i; |
||||||
|
int data;
|
||||||
|
kalend(); |
||||||
|
clc(); |
||||||
|
//myGLCD.print(" ", 710, 90);
|
||||||
|
// myGLCD.printNumI(brightness, 710, 90);
|
||||||
|
|
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
byte k=2; |
||||||
|
byte k1=0; |
||||||
|
byte k2=0; |
||||||
|
|
||||||
|
//long address;
|
||||||
|
|
||||||
|
int w; |
||||||
|
|
||||||
|
int q=0; |
||||||
|
char* S1[]={"fam4.raw","1.raw","2.raw","3.raw","4.raw","5.raw","6.raw","7.raw","8.raw","9.raw","10.raw","11.raw","12.raw","15.raw","16.raw","17.raw","18.raw","19.raw","20.raw","21.raw","22.raw","23.raw","24.raw","25.raw","26.raw","27.raw","28.raw","29.raw","30.raw","31.raw","32.raw","35.raw","36.raw","37.raw","38.raw","39.raw","39.raw"};//36
|
||||||
|
//********************Foto*************************************************
|
||||||
|
myFile.open(S1[19], O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (i =0 ; i < 76800; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>319) |
||||||
|
{ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close(); |
||||||
|
//********************************************************
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
info();
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
|
||||||
|
while(1) |
||||||
|
{
|
||||||
|
// currentMillis = millis();
|
||||||
|
|
||||||
|
|
||||||
|
// save the last time you blinked the LED
|
||||||
|
// previousMillis = currentMillis;
|
||||||
|
t = rtc.getTime(); |
||||||
|
sec=t.sec; |
||||||
|
//*****************************************************************************
|
||||||
|
if (pause==0) |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
if (t.hour>6 && t.hour<22)
|
||||||
|
{ |
||||||
|
if (p==0)
|
||||||
|
{ if (sec==25 ) |
||||||
|
{ |
||||||
|
int days=t.date; |
||||||
|
int mon=t.mon; |
||||||
|
word years=t.year;
|
||||||
|
|
||||||
|
kalendar(days, mon, years);
|
||||||
|
//drawButkal();
|
||||||
|
delay(5000); |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==5) || (sec==20) || (sec==35)|| (sec==50)) |
||||||
|
{ p=0; |
||||||
|
priem(); |
||||||
|
q = random(0, 36); |
||||||
|
k2=k2+1;
|
||||||
|
k=k+1; |
||||||
|
k1=k1+1; |
||||||
|
|
||||||
|
if (p==0) |
||||||
|
{ |
||||||
|
if (k2==5) |
||||||
|
{ |
||||||
|
|
||||||
|
nightgraf(); |
||||||
|
|
||||||
|
p=1; |
||||||
|
|
||||||
|
}
|
||||||
|
} |
||||||
|
//******************************
|
||||||
|
if (p==0) |
||||||
|
{ |
||||||
|
if (k2>9) |
||||||
|
{//rawp=1;
|
||||||
|
k2=0; |
||||||
|
rawp=1; |
||||||
|
readprognoz(); |
||||||
|
// delay(2000);
|
||||||
|
p=1; |
||||||
|
} |
||||||
|
} |
||||||
|
//***************
|
||||||
|
if (p==0) |
||||||
|
{ |
||||||
|
if (k1==3) |
||||||
|
{//rawp=1;
|
||||||
|
|
||||||
|
rawp=1; |
||||||
|
// flower();
|
||||||
|
home1(); |
||||||
|
//delay(2000);
|
||||||
|
p=1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (p==0) |
||||||
|
{ |
||||||
|
if (k>7) |
||||||
|
{k=0; |
||||||
|
|
||||||
|
bmp085(); |
||||||
|
win(); |
||||||
|
p=1; |
||||||
|
// delay(4000);
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (p==0) |
||||||
|
{ |
||||||
|
if (k1>8) |
||||||
|
{rawp=1; |
||||||
|
k1=0; |
||||||
|
|
||||||
|
prognoz(); |
||||||
|
p=1; |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (p==0) |
||||||
|
{ |
||||||
|
//********************Foto*************************************************
|
||||||
|
myFile.open(S1[q], O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (i =0 ; i < 76800; i = i++) { |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>319){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close(); |
||||||
|
} |
||||||
|
//********************************************************
|
||||||
|
} |
||||||
|
//*****************************************************************
|
||||||
|
}//pause
|
||||||
|
else |
||||||
|
{
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,172,238); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
if(zn9==0)
|
||||||
|
{ 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); |
||||||
|
myGLCD.printNumI(osv9,80+48+32+16+16+64+48+16+64,457); |
||||||
|
|
||||||
|
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 ((sec==14) || (sec==42) ) |
||||||
|
{ |
||||||
|
//******DHT read********
|
||||||
|
info(); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//delay(5000);
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{
|
||||||
|
|
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
rawp=0; |
||||||
|
menu(); |
||||||
|
} |
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
//pogoda();
|
||||||
|
} |
||||||
|
if ((y>=160) && (y<=360)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(645, 155, 797, 367);//(645, 190, 795, 328)
|
||||||
|
rawp=1; |
||||||
|
readprognoz(); |
||||||
|
|
||||||
|
k1=5; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
//*********
|
||||||
|
if ((y>=451) && (y<=479)) // Upper row (y>=449) && (y<=479)
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x>=769) && (x<=799)) // яркость
|
||||||
|
{ |
||||||
|
waitForIt1(769, 449, 799, 479); |
||||||
|
bright(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=769-61) && (x<=799-61)) // яркость
|
||||||
|
{ |
||||||
|
waitForIt1(769-61, 449, 799-61, 479); |
||||||
|
rawp=1; |
||||||
|
//flower();
|
||||||
|
home1(); |
||||||
|
delay (2000); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=769-91) && (x<=799-91)) // датчик
|
||||||
|
{ |
||||||
|
waitForIt1(769-91, 449, 799-91, 479); |
||||||
|
printdat(); |
||||||
|
delay (3000); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=769-31) && (x<=768)) // pause
|
||||||
|
{ |
||||||
|
waitForIt1(769-31, 449, 768, 479); |
||||||
|
myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
if(pause==1)
|
||||||
|
{myGLCD.setColor(0,250,0); |
||||||
|
myGLCD.fillCircle (769-31+7+8,449+7+8,12); |
||||||
|
pause=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.setColor(255,60,50); |
||||||
|
myGLCD.fillCircle (769-31+7+8,449+7+8,12); |
||||||
|
pause=1; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
} |
||||||
|
if ((y>=50) && (y<=420)) |
||||||
|
{ if ((x>=50) && (x<=768)) // pause
|
||||||
|
{ |
||||||
|
waitForIt1(769-31, 449, 768, 479); |
||||||
|
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
if(pause==1)
|
||||||
|
{//myGLCD.print("P",769-31+7, 449+7);
|
||||||
|
myGLCD.setColor(0,250,0); |
||||||
|
myGLCD.fillCircle (769-31+7+8,449+7+8,12); |
||||||
|
pause=0; |
||||||
|
} |
||||||
|
else |
||||||
|
{//myGLCD.print(">",769-31+7, 449+7);
|
||||||
|
myGLCD.setColor(255,60,50); |
||||||
|
myGLCD.fillCircle (769-31+7+8,449+7+8,12); |
||||||
|
pause=1; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
delay(500);
|
||||||
|
// myGLCD.setColor(255,255,255);
|
||||||
|
// if(pause==0)
|
||||||
|
// myGLCD.print("P",769-31+7, 449+7);
|
||||||
|
// else
|
||||||
|
// myGLCD.print(">",769-31+7, 449+7);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
//*********************************************************
|
||||||
|
// sec=rtc_clock.get_seconds();
|
||||||
|
t = rtc.getTime();
|
||||||
|
//*********************************************************
|
||||||
|
// sec=rtc_clock.get_seconds();
|
||||||
|
|
||||||
|
// sec=rtc_clock.get_seconds();
|
||||||
|
if ((sec==0)||(sec==23)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
|
||||||
|
if(t.hour<6 ) |
||||||
|
{night=1; |
||||||
|
brightness=0; |
||||||
|
constbr=20; |
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, br); |
||||||
|
rawp=1; |
||||||
|
clok(); |
||||||
|
} |
||||||
|
else |
||||||
|
{night=0; |
||||||
|
} |
||||||
|
if (t.hour<7 || t.hour>21) |
||||||
|
{constbr=20; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br>255) |
||||||
|
{br=255; |
||||||
|
|
||||||
|
} |
||||||
|
analogWrite(12, br); |
||||||
|
} |
||||||
|
else |
||||||
|
{constbr=250; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br>255) |
||||||
|
br=255; |
||||||
|
|
||||||
|
analogWrite(12, br); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}//wile
|
||||||
|
} |
||||||
|
|
||||||
|
//***************************************************
|
||||||
|
|
||||||
|
//************** INFO *************************************
|
||||||
|
void info() |
||||||
|
{ |
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
myGLCD.print("|||" ,660+83, 200-25); |
||||||
|
//******DHT read********
|
||||||
|
dtu21(); |
||||||
|
|
||||||
|
bmp085(); |
||||||
|
|
||||||
|
uart(); |
||||||
|
//******DHT read********
|
||||||
|
//*****************VOLT ************************
|
||||||
|
|
||||||
|
if (volt/100<3) |
||||||
|
{myGLCD.setColor(255,0,0);//низкое напр батареи красным цветом
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//myGLCD.print("V=" ,650 , 290);
|
||||||
|
myGLCD.print("." ,712-48, 200-30); |
||||||
|
myGLCD.printNumI(volt/100 , 700-48, 200-30); |
||||||
|
|
||||||
|
if (volt%100<10) |
||||||
|
{ |
||||||
|
myGLCD.print("0" ,724-48, 200-30); |
||||||
|
myGLCD.printNumI(volt%100, 724+16-48, 200-30);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(volt%100, 724-48, 200-30);
|
||||||
|
} |
||||||
|
delay(1000);
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
//*********************************
|
||||||
|
myGLCD.print(" " ,660+16+83, 200-30);
|
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
|
||||||
|
//********************** P ************************************
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (ptoday==0)//погода сегодня 0-солн 1-перемен обл 2-пасмурно 3-дождь 4- снег 5- туман 6-гроза
|
||||||
|
{ myGLCD.setColor(255,250,50); |
||||||
|
if (t.hour<6 || t.hour>20)//ночь
|
||||||
|
{myGLCD.print("[]" ,650, 200-5);//луна
|
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.print("{}" ,650, 200-5); |
||||||
|
} |
||||||
|
} |
||||||
|
if (ptoday==1) |
||||||
|
{ |
||||||
|
if (t.hour<6 || t.hour>20)//ночь
|
||||||
|
{myGLCD.setColor(255,250,50); |
||||||
|
myGLCD.print("[]" ,650, 200-9);//луна
|
||||||
|
myGLCD.setColor(210,210,220); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print("|~" ,650, 200-5);//туча
|
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.setColor(255,250,50); |
||||||
|
myGLCD.print("{}" ,650, 200-9);// солнце
|
||||||
|
myGLCD.setColor(220,230,255); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print("|~" ,650, 200-5);//туча
|
||||||
|
} |
||||||
|
} |
||||||
|
if ((ptoday==2)||(ptoday==5)) |
||||||
|
{ |
||||||
|
if (t.hour<6 || t.hour>20)//ночь
|
||||||
|
{ |
||||||
|
myGLCD.setColor(81,120,180); |
||||||
|
myGLCD.print("|~" ,650, 200-8);//туча
|
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.setColor(74,126,200); |
||||||
|
myGLCD.print("|~" ,650, 200-8);//туча
|
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((ptoday==3)||(ptoday==6)) |
||||||
|
{ |
||||||
|
if (t.hour<6 || t.hour>20)//ночь
|
||||||
|
{ |
||||||
|
myGLCD.setColor(81,120,180); |
||||||
|
myGLCD.print("^_" ,650, 200-7);//rain
|
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.setColor(74,126,200); |
||||||
|
myGLCD.print("^_" ,650, 200-7); |
||||||
|
} |
||||||
|
}
|
||||||
|
if (ptoday==4) |
||||||
|
{ |
||||||
|
if (t.hour<6 || t.hour>20)//ночь
|
||||||
|
{ |
||||||
|
myGLCD.setColor(250,250,250); |
||||||
|
myGLCD.print("()" ,650, 200-7);//snow
|
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("()" ,650, 200-7); |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (pressure>759) |
||||||
|
{ myGLCD.setColor(255,250,50); |
||||||
|
//myGLCD.print("{}" ,650, 200-5);
|
||||||
|
} |
||||||
|
if (pressure<746) |
||||||
|
{myGLCD.setColor(0,0,255); |
||||||
|
// myGLCD.print("|~" ,650, 200-5);
|
||||||
|
}
|
||||||
|
if ((pressure>745)&&(pressure<760)) |
||||||
|
{ |
||||||
|
myGLCD.setColor(255,250,50); |
||||||
|
// myGLCD.print("{}" ,650, 200-5);
|
||||||
|
myGLCD.setColor(7,255,34); |
||||||
|
} |
||||||
|
myGLCD.printNumI(pressure,698,200-5);
|
||||||
|
word pr=pressure; |
||||||
|
if (pr>pres[4]+1) |
||||||
|
myGLCD.print("&",690+83,200-8); |
||||||
|
|
||||||
|
if (pr==pres[0]) |
||||||
|
myGLCD.print(" ",690+83,200-8);
|
||||||
|
|
||||||
|
if (pr<pres[4]-1) |
||||||
|
myGLCD.print("'",690+83, 200-8); |
||||||
|
//********************** tu ************************************
|
||||||
|
myGLCD.setColor(5,252,46); |
||||||
|
myGLCD.print("#" ,650, 200+30); |
||||||
|
|
||||||
|
if (zn<2) |
||||||
|
{ myGLCD.setColor(129,239,255); |
||||||
|
myGLCD.print("-",650+20, 200+30); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255,150,150); |
||||||
|
myGLCD.print("+",650+20, 200+30); |
||||||
|
} |
||||||
|
|
||||||
|
if (tu<10) |
||||||
|
{myGLCD.print(" ",650+20+24+16+18+24, 230); |
||||||
|
myGLCD.print(".",650+20+24+16, 230); |
||||||
|
myGLCD.printNumI(tud,650+20+24+16+18 ,230);
|
||||||
|
myGLCD.printNumI(tu,650+20+24,230);// myGLCD.print(":",cx+32+32, cy);
|
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.print(".",650+20+24+24+16, 230); |
||||||
|
myGLCD.printNumI(tu,650+20+24,230); |
||||||
|
myGLCD.printNumI(tud,650+20+24+24+16+18 ,230);
|
||||||
|
} |
||||||
|
//**********************T up or doun *****************************
|
||||||
|
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) |
||||||
|
myGLCD.print("'",690+83, 232-5);
|
||||||
|
|
||||||
|
if (Tm/10==Tm1) |
||||||
|
myGLCD.print(" ",690+83, 232-5); |
||||||
|
|
||||||
|
if (Tm/10<Tm1) |
||||||
|
myGLCD.print("&",690+83,232-5); |
||||||
|
|
||||||
|
//***************************Hul**********************************************
|
||||||
|
myGLCD.setColor(129,200,255); |
||||||
|
// myGLCD.print("0" ,650, 270-5);
|
||||||
|
// myGLCD.setColor(200,200,255);
|
||||||
|
myGLCD.print(".",650+20+24+24+16, 270-5); |
||||||
|
myGLCD.printNumI(hu,650+20+24,270-5); |
||||||
|
myGLCD.printNumI(hud,650+20+24+24+16+18,270-5); |
||||||
|
|
||||||
|
if (hug[0]/10>hug[1]/10) |
||||||
|
myGLCD.print("&",690+83,267-5); |
||||||
|
|
||||||
|
if (hug[0]/10==hug[1]/10) |
||||||
|
myGLCD.print(" ",690+83,267-5);
|
||||||
|
|
||||||
|
if (hug[0]/10<hug[1]/10) |
||||||
|
myGLCD.print("'",690+83, 267-5);
|
||||||
|
//*************************** T dom **************************************************
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("!" ,650, 270+35-5); |
||||||
|
int tem =tdc*10+tdd;
|
||||||
|
|
||||||
|
myGLCD.setColor(5,252,46); |
||||||
|
myGLCD.print("+" ,650+24, 270+35-5); |
||||||
|
myGLCD.print(".",650+20+24+24+16, 270+35-5); |
||||||
|
myGLCD.printNumI(tem/10,650+20+24,270+35-5); |
||||||
|
myGLCD.printNumI(tem%10,650+20+24+24+16+18,270+35-5); |
||||||
|
|
||||||
|
if (temdom[0]/10>temdom[1]/10) |
||||||
|
myGLCD.print("&",690+83,270+32-5); |
||||||
|
|
||||||
|
if (temdom[0]/10==temdom[1]/10) |
||||||
|
myGLCD.print(" ",690+83,270+32-5);
|
||||||
|
|
||||||
|
if (temdom[0]/10<temdom[1]/10) |
||||||
|
myGLCD.print("'",690+83, 270+32-5); |
||||||
|
|
||||||
|
//******************** H dom ***************************
|
||||||
|
myGLCD.setColor(129,200,255); |
||||||
|
// myGLCD.print("0" ,650, 270+70-5);
|
||||||
|
myGLCD.setColor(200,200,255); |
||||||
|
|
||||||
|
|
||||||
|
//int humidity=35;
|
||||||
|
//myGLCD.printNumI(DHT.humidity,650+20+24,270+70-5);
|
||||||
|
|
||||||
|
//myGLCD.printNumI(hdc,650+20+24,270+70-5);
|
||||||
|
//myGLCD.print(",",650+20+24+24+24, 270+70-5);
|
||||||
|
// myGLCD.printNumI(hdd,650+20+24+24+24+24,270+70-5);
|
||||||
|
// myGLCD.print("%",650+20+24+24+24+24, 270+70-5);
|
||||||
|
|
||||||
|
myGLCD.print(".",650+20+24+24+16, 270+70-5); |
||||||
|
myGLCD.printNumI(hdc,650+20+24,270+70-5); |
||||||
|
myGLCD.printNumI(hdd,650+20+24+24+16+18,270+70-5); |
||||||
|
|
||||||
|
if (h[0]/10>h[1]/10) |
||||||
|
myGLCD.print("&",690+83,270+70-3-5);
|
||||||
|
if (h[0]/10==h[1]/10) |
||||||
|
myGLCD.print(" ",690+83,270+70-3-5);
|
||||||
|
if (h[0]/10<h[1]/10) |
||||||
|
myGLCD.print("'",690+83, 270+70-3-5);
|
||||||
|
//*****************************************************************
|
||||||
|
} |
||||||
|
|
||||||
|
void initial() |
||||||
|
{ |
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.setColor(10, 50, 255); |
||||||
|
myGLCD.print("LOADING ..." ,400-120, 200-5); |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
if (!sd.chdir("/")) |
||||||
|
{sd.begin(chipSelect, SPI_HALF_SPEED ); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
}//установка раб директории
|
||||||
|
else |
||||||
|
{delay(500); |
||||||
|
} |
||||||
|
} |
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,344 @@ |
|||||||
|
void savetdat() |
||||||
|
{ // myFile.print(c);//t1+103c375v299h9
|
||||||
|
//byte ntdat;номер датчика
|
||||||
|
//byte zndat;знак температуры 0+
|
||||||
|
//int tdat;температура
|
||||||
|
//int hdat;влажность
|
||||||
|
//int vdat;напряж батареи датчика
|
||||||
|
int hourd;//время прихода данных час
|
||||||
|
int mind;//мин
|
||||||
|
int tdatc; |
||||||
|
int tdatd; |
||||||
|
int hdatc; |
||||||
|
int hdatd; |
||||||
|
int vdat; |
||||||
|
if(ntdat==1) |
||||||
|
{ hourd1=t.hour; |
||||||
|
mind1=t.min; |
||||||
|
hourd=t.hour; |
||||||
|
mind=t.min; |
||||||
|
tdatc=t11/10; |
||||||
|
tdatd=t11%10; |
||||||
|
hdatc=h11/10; |
||||||
|
hdatd=h11%10; |
||||||
|
vdat=bat[0]; |
||||||
|
} |
||||||
|
if(ntdat==2) |
||||||
|
{ hourd2=t.hour; |
||||||
|
mind2=t.min; |
||||||
|
hourd=t.hour; |
||||||
|
mind=t.min; |
||||||
|
tdatc=t12/10; |
||||||
|
tdatd=t12%10; |
||||||
|
hdatc=h12/10; |
||||||
|
hdatd=h12%10; |
||||||
|
vdat=bat[1]; |
||||||
|
} |
||||||
|
if(ntdat==3) |
||||||
|
{ hourd3=t.hour; |
||||||
|
mind3=t.min; |
||||||
|
hourd=t.hour; |
||||||
|
mind=t.min; |
||||||
|
tdatc=t13/10; |
||||||
|
tdatd=t13%10; |
||||||
|
hdatc=h13/10; |
||||||
|
hdatd=h13%10; |
||||||
|
vdat=bat[2]; |
||||||
|
} |
||||||
|
if(ntdat==4) |
||||||
|
{ hourd4=t.hour; |
||||||
|
mind4=t.min; |
||||||
|
hourd=t.hour; |
||||||
|
mind=t.min; |
||||||
|
tdatc=t14/10; |
||||||
|
tdatd=t14%10; |
||||||
|
hdatc=h14/10; |
||||||
|
hdatd=h14%10; |
||||||
|
vdat=bat[3]; |
||||||
|
} |
||||||
|
if(ntdat==5) |
||||||
|
{ hourd5=t.hour; |
||||||
|
mind5=t.min; |
||||||
|
hourd=t.hour; |
||||||
|
mind=t.min; |
||||||
|
tdatc=t15/10; |
||||||
|
tdatd=t15%10; |
||||||
|
hdatc=h15/10; |
||||||
|
hdatd=h15%10; |
||||||
|
vdat=bat[4]; |
||||||
|
} |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,172,238); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
|
||||||
|
myGLCD.print(" " ,80, 457);//20
|
||||||
|
myGLCD.printNumI(ntdat ,80, 457); |
||||||
|
myGLCD.print("t_T=" ,80+16, 457);//*16
|
||||||
|
if (zndat==0)
|
||||||
|
{myGLCD.print("+" ,80+90, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.print("-" ,80+90, 457);//pos*16
|
||||||
|
} |
||||||
|
|
||||||
|
if (tdatc<10)
|
||||||
|
{myGLCD.printNumI(tdatc ,80+90+16+16, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.printNumI(tdatc ,80+90+16, 457);//pos*16
|
||||||
|
}
|
||||||
|
myGLCD.print("," ,80+90+16+16+16, 457); |
||||||
|
myGLCD.printNumI(tdatd ,80+90+16+16+16+16, 457); |
||||||
|
myGLCD.print("C_H=" ,80+90+16+16+16+16+16+16, 457);//498
|
||||||
|
|
||||||
|
|
||||||
|
if (hdatc<10)
|
||||||
|
{myGLCD.printNumI(hdatc ,314+16+16, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.printNumI(hdatc ,314+16, 457);//pos*16
|
||||||
|
}
|
||||||
|
myGLCD.print("," ,314+16+16+16, 457); |
||||||
|
myGLCD.printNumI(hdatd ,314+16+16+16+16, 457); |
||||||
|
|
||||||
|
myGLCD.print("%_U=" ,314+16+16+16+16+16, 457);//610
|
||||||
|
myGLCD.printNumI(vdat/100 ,458-16, 457); |
||||||
|
myGLCD.print("," ,458, 457); |
||||||
|
myGLCD.printNumI(vdat%100 ,458+16, 457); |
||||||
|
myGLCD.print("v " ,458+64-16, 457); |
||||||
|
|
||||||
|
if (hourd<10) |
||||||
|
{myGLCD.print("0" ,474+64, 457); |
||||||
|
myGLCD.printNumI(hourd,474+64+16, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.printNumI(hourd,474+64, 457); |
||||||
|
} |
||||||
|
myGLCD.print(":",474+64+32, 457); |
||||||
|
if (mind<10) |
||||||
|
{myGLCD.print("0",474+64+32+16, 457); |
||||||
|
myGLCD.printNumI(mind,474+64+32+32, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.printNumI(mind,474+64+32+16, 457); |
||||||
|
} |
||||||
|
|
||||||
|
if(fh==0) |
||||||
|
{ //запись на флешку
|
||||||
|
char* strd[] = {"01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"}; |
||||||
|
char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; |
||||||
|
char* stry[] = {"2014","2015","2016","2017","D-2018","D-2019","D-2020","D-2021","D-2022","D-2023","D-2024","D-2025","D-2026","D-2027","D-2028","D-2029","D-2030","D-2031","D-2032","D-2033","D-2034","D-2035"}; |
||||||
|
char* strdat[] = {"T1.txt","T2.txt","T3.txt","T4.txt","T5.txt","T6.txt","T7.txt","T8.txt","T9.txt","T10.txt"}; |
||||||
|
char* name;
|
||||||
|
sd.chdir("/");//корневая директория
|
||||||
|
delay (100); |
||||||
|
// if (!sd.chdir("tdat"))//если поддериктория не создана , то создаем
|
||||||
|
// {sd.mkdir("tdat");
|
||||||
|
// }
|
||||||
|
// delay (100);
|
||||||
|
//sd.chdir("tdat");
|
||||||
|
//------------------------------------------------------------------------------------------------------
|
||||||
|
t = rtc.getTime(); |
||||||
|
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); |
||||||
|
|
||||||
|
name= strd[t.date-1]; |
||||||
|
|
||||||
|
if (!sd.chdir(name)) |
||||||
|
{sd.mkdir(name); |
||||||
|
} |
||||||
|
sd.chdir(name);//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//-----------------------------------------------------------------------------------------------------------------------------------
|
||||||
|
//delay (100);
|
||||||
|
name= strdat[ntdat-1];// имя файла
|
||||||
|
myFile.open(name, O_RDWR | O_CREAT | O_AT_END);//15:22 T=+25,2C H=45,6% U=2,7v
|
||||||
|
if (hourd<10) |
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(hourd); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myFile.print(hourd); |
||||||
|
} |
||||||
|
myFile.print(":"); |
||||||
|
if (mind<10) |
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(mind); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myFile.print(mind); |
||||||
|
} |
||||||
|
|
||||||
|
if (zndat==0)
|
||||||
|
{myFile.print("T=+"); |
||||||
|
} |
||||||
|
else |
||||||
|
{myFile.print("T=-"); |
||||||
|
} |
||||||
|
|
||||||
|
if (tdatc<10)
|
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(tdatc); |
||||||
|
} |
||||||
|
else |
||||||
|
{myFile.print(tdatc); |
||||||
|
}
|
||||||
|
myFile.print(","); |
||||||
|
|
||||||
|
myFile.print(tdatd); |
||||||
|
|
||||||
|
myFile.print("C H="); |
||||||
|
if (hdatc<10)
|
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(hdatc); |
||||||
|
} |
||||||
|
else |
||||||
|
{myFile.print(hdatc); |
||||||
|
}
|
||||||
|
myFile.print(","); |
||||||
|
myFile.print(hdatd); |
||||||
|
|
||||||
|
myFile.print("% U="); |
||||||
|
myFile.print(vdat/100); |
||||||
|
myFile.print(","); |
||||||
|
|
||||||
|
if (vdat%100<10)
|
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(vdat%100); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myFile.print(vdat%100); |
||||||
|
} |
||||||
|
myFile.println("v"); |
||||||
|
|
||||||
|
myFile.close(); |
||||||
|
sd.chdir("/"); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//******************************************************************************************
|
||||||
|
void printdat () |
||||||
|
{ |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,172,238); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.print(" " ,80, 457);//20
|
||||||
|
myGLCD.printNumI(ntdat ,80, 457); |
||||||
|
myGLCD.print("t_T=" ,80+16, 457);//*16
|
||||||
|
if (zndat==0)
|
||||||
|
{myGLCD.print("+" ,80+90, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.print("-" ,80+90, 457);//pos*16
|
||||||
|
} |
||||||
|
|
||||||
|
int hourd;//время прихода данных час
|
||||||
|
int mind;//мин
|
||||||
|
int tdatc; |
||||||
|
int tdatd; |
||||||
|
int hdatc; |
||||||
|
int hdatd; |
||||||
|
int vdat; |
||||||
|
if(ntdat==1) |
||||||
|
{ |
||||||
|
hourd=hourd1; |
||||||
|
mind=mind1; |
||||||
|
tdatc=t11/10; |
||||||
|
tdatd=t11%10; |
||||||
|
hdatc=h11/10; |
||||||
|
hdatd=h11%10; |
||||||
|
vdat=bat[0]; |
||||||
|
} |
||||||
|
if(ntdat==2) |
||||||
|
{ hourd=hourd2; |
||||||
|
mind=mind2; |
||||||
|
tdatc=t12/10; |
||||||
|
tdatd=t12%10; |
||||||
|
hdatc=h12/10; |
||||||
|
hdatd=h12%10; |
||||||
|
vdat=bat[1]; |
||||||
|
} |
||||||
|
if(ntdat==3) |
||||||
|
{ hourd=hourd3; |
||||||
|
mind=mind3; |
||||||
|
tdatc=t13/10; |
||||||
|
tdatd=t13%10; |
||||||
|
hdatc=h13/10; |
||||||
|
hdatd=h13%10; |
||||||
|
vdat=bat[2]; |
||||||
|
} |
||||||
|
if(ntdat==4) |
||||||
|
{ hourd=hourd4; |
||||||
|
mind=mind4; |
||||||
|
tdatc=t14/10; |
||||||
|
tdatd=t14%10; |
||||||
|
hdatc=h14/10; |
||||||
|
hdatd=h14%10; |
||||||
|
vdat=bat[3]; |
||||||
|
} |
||||||
|
if(ntdat==5) |
||||||
|
{ hourd=hourd5; |
||||||
|
mind=mind5; |
||||||
|
tdatc=t15/10; |
||||||
|
tdatd=t15%10; |
||||||
|
hdatc=h15/10; |
||||||
|
hdatd=h15%10; |
||||||
|
vdat=bat[4]; |
||||||
|
} |
||||||
|
|
||||||
|
if (tdatc<10)
|
||||||
|
{myGLCD.printNumI(tdatc ,80+90+16+16, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.printNumI(tdatc ,80+90+16, 457);//pos*16
|
||||||
|
}
|
||||||
|
myGLCD.print("," ,80+90+16+16+16, 457); |
||||||
|
myGLCD.printNumI(tdatd ,80+90+16+16+16+16, 457); |
||||||
|
myGLCD.print("C_H=" ,80+90+16+16+16+16+16+16, 457);//498
|
||||||
|
|
||||||
|
if (hdatc<10)
|
||||||
|
{myGLCD.printNumI(hdatc ,314+16+16, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.printNumI(hdatc ,314+16, 457);//pos*16
|
||||||
|
}
|
||||||
|
myGLCD.print("," ,314+16+16+16, 457); |
||||||
|
myGLCD.printNumI(hdatd ,314+16+16+16+16, 457); |
||||||
|
|
||||||
|
myGLCD.print("%_U=" ,314+16+16+16+16+16, 457);//610
|
||||||
|
myGLCD.printNumI(vdat/100 ,458-16, 457); |
||||||
|
myGLCD.print("," ,458, 457); |
||||||
|
myGLCD.printNumI(vdat%100 ,458+16, 457); |
||||||
|
myGLCD.print("v " ,458+64-16, 457); |
||||||
|
|
||||||
|
if (hourd<10) |
||||||
|
{myGLCD.print("0" ,474+64, 457); |
||||||
|
myGLCD.printNumI(hourd,474+64+16, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.printNumI(hourd,474+64, 457); |
||||||
|
} |
||||||
|
myGLCD.print(":",474+64+32, 457); |
||||||
|
if (mind<10) |
||||||
|
{myGLCD.print("0",474+64+32+16, 457); |
||||||
|
myGLCD.printNumI(mind,474+64+32+32, 457); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.printNumI(mind,474+64+32+16, 457); |
||||||
|
} |
||||||
|
delay (1000); |
||||||
|
} |
||||||
@ -0,0 +1,314 @@ |
|||||||
|
void saveminmax() |
||||||
|
{
|
||||||
|
char* strd[] = {"01.txt","02.txt","03.txt","04.txt","05.txt","06.txt","07.txt","08.txt","09.txt","10.txt","11.txt","12.txt","13.txt","14.txt","15.txt","16.txt","17.txt","18.txt","19.txt","20.txt","21.txt","22.txt","23.txt","24.txt","25.txt","26.txt","27.txt","28.txt","29.txt","30.txt","31.txt"}; |
||||||
|
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"}; |
||||||
|
|
||||||
|
|
||||||
|
//*******************************************
|
||||||
|
//вычисление минимального и масимального значеия массива work2[n]
|
||||||
|
//************************************************
|
||||||
|
|
||||||
|
word Tmax; |
||||||
|
|
||||||
|
word Tmin; |
||||||
|
int Tcr=500;// значение нуля для средней темп
|
||||||
|
word td=0; |
||||||
|
boolean znmin;//0-+ 1-- min max Знак начальной мин и макс температуры для сравнение
|
||||||
|
boolean znmax;//0-+ 1-- min max Знак начальной мин и макс температуры для сравнение
|
||||||
|
boolean zn;//0-+ 1-- tsr знак средней температуры
|
||||||
|
byte i; |
||||||
|
if (temul[0]>999) |
||||||
|
{Tmax=temul[0]-1000; |
||||||
|
Tmin=Tmax; |
||||||
|
znmin=1;//-
|
||||||
|
znmax=1;//-
|
||||||
|
} |
||||||
|
else |
||||||
|
{Tmax=temul[0]; |
||||||
|
Tmin=Tmax; |
||||||
|
znmin=0;//+
|
||||||
|
znmax=0;//+
|
||||||
|
} |
||||||
|
|
||||||
|
for ( byte i=0; i<24; i++)//Tu
|
||||||
|
{ |
||||||
|
if (temul[i]>999) |
||||||
|
{ td=temul[i]-1000; |
||||||
|
zn=1;//-
|
||||||
|
} |
||||||
|
else |
||||||
|
{td=temul[i]; |
||||||
|
zn=0;//+
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if (zn==0) |
||||||
|
{Tcr=Tcr+td; |
||||||
|
} |
||||||
|
else |
||||||
|
{Tcr=Tcr-td; |
||||||
|
} |
||||||
|
//****************** + + ****************
|
||||||
|
if((zn==0)&&(znmax==0))
|
||||||
|
{ if (td>Tmax) |
||||||
|
{Tmax=td; |
||||||
|
znmax=0; |
||||||
|
} |
||||||
|
} |
||||||
|
//****************** + - ******
|
||||||
|
if((zn==0)&&(znmax==1))
|
||||||
|
{
|
||||||
|
Tmax=td; |
||||||
|
znmax=0; |
||||||
|
} |
||||||
|
//****************** - - ******
|
||||||
|
if((zn==1)&&(znmax==1))
|
||||||
|
{ if (td<Tmax) |
||||||
|
{Tmax=td; |
||||||
|
znmax=1; |
||||||
|
} |
||||||
|
}
|
||||||
|
//****************** - + ******
|
||||||
|
if((zn==1)&&(znmax==0))
|
||||||
|
{
|
||||||
|
//Tmax=Tmax;
|
||||||
|
znmax=0; |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//****************** + + ****************
|
||||||
|
if((zn==0)&&(znmin==0))
|
||||||
|
{ if (td<Tmin) |
||||||
|
{Tmin=td; |
||||||
|
znmin=0; |
||||||
|
} |
||||||
|
}
|
||||||
|
//****************** - - ****************
|
||||||
|
if((zn==1)&&(znmin==1))
|
||||||
|
{ if (td>Tmin) |
||||||
|
{Tmin=td; |
||||||
|
znmin=1; |
||||||
|
} |
||||||
|
}
|
||||||
|
//****************** - + ****************
|
||||||
|
if((zn==1)&&(znmin==0))
|
||||||
|
{
|
||||||
|
Tmin=td; |
||||||
|
znmin=1; |
||||||
|
|
||||||
|
}
|
||||||
|
//****************** + - ****************
|
||||||
|
if((zn==0)&&(znmin==1))
|
||||||
|
{
|
||||||
|
//Tmin=Tmin;
|
||||||
|
znmin=1; |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
//******************************
|
||||||
|
|
||||||
|
if (Tcr<500) |
||||||
|
{ Tcr=(500-Tcr)/24; |
||||||
|
zn=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{Tcr=(Tcr-500)/24; |
||||||
|
zn=0; |
||||||
|
} |
||||||
|
//**********************************************
|
||||||
|
int Hcr=0; |
||||||
|
for ( byte i=0; i<24; i++)//Tu
|
||||||
|
{ |
||||||
|
Hcr=Hcr+hug[i]; |
||||||
|
} |
||||||
|
Hcr=Hcr/24; |
||||||
|
//***************************************************
|
||||||
|
word Pcr=0; |
||||||
|
|
||||||
|
for ( byte i=0; i<24; i++)//Tu
|
||||||
|
{ |
||||||
|
Pcr=Pcr+pres[i]-700; |
||||||
|
} |
||||||
|
Pcr=700+Pcr/24; |
||||||
|
//**************************************************
|
||||||
|
word Thcr=0; |
||||||
|
for ( byte i=0; i<24; i++)//Tu
|
||||||
|
{ |
||||||
|
Thcr=Thcr+temdom[i]; |
||||||
|
} |
||||||
|
Thcr=Thcr/24; |
||||||
|
//**************************************************
|
||||||
|
|
||||||
|
t = rtc.getTime(); |
||||||
|
char* name; |
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
sd.chdir("tempul"); |
||||||
|
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); |
||||||
|
byte m=t.mon;// месяц
|
||||||
|
word yea=t.year; |
||||||
|
byte d=t.date; |
||||||
|
delay (100); |
||||||
|
if(dd==1) |
||||||
|
{if (t.date>1) |
||||||
|
{ d=t.date-1; |
||||||
|
} |
||||||
|
else |
||||||
|
{m=t.mon-1; |
||||||
|
d=31;//****************************
|
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{d=t.date; |
||||||
|
} |
||||||
|
myFile.open("minmax.txt", O_RDWR | O_CREAT | O_AT_END); |
||||||
|
delay (50); |
||||||
|
//****запись данных в файл в формате: 01.09.14 Tmax=30.4C Tmin=15.5C Tucr=22,5C Hucr=62,8% Pmm=756 Thcr=26,2C
|
||||||
|
if (d<10) |
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(d); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myFile.print(d); |
||||||
|
} |
||||||
|
myFile.print("."); |
||||||
|
|
||||||
|
if (m<10) |
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(m); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myFile.print(m); |
||||||
|
} |
||||||
|
myFile.print("."); |
||||||
|
myFile.print(yea-2000); |
||||||
|
if (znmax==0) |
||||||
|
{ myFile.print(" Tma=+"); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myFile.print(" Tma=-"); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if ((Tmax<100)&&(Tmax>9)) |
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(Tmax/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.print(Tmax%10); |
||||||
|
} |
||||||
|
if (Tmax<10) |
||||||
|
{myFile.print("00,"); |
||||||
|
myFile.print(Tmax); |
||||||
|
} |
||||||
|
|
||||||
|
if (Tmax>99) |
||||||
|
{ myFile.print(Tmax/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.print(Tmax%10); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
myFile.print(" Tmi="); |
||||||
|
if (znmin==1) |
||||||
|
{ myFile.print("-"); |
||||||
|
} |
||||||
|
else |
||||||
|
{myFile.print("+"); |
||||||
|
} |
||||||
|
|
||||||
|
if ((Tmin<100)&&(Tmin>9)) |
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(Tmin/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.print(Tmin%10); |
||||||
|
} |
||||||
|
if (Tmin<10) |
||||||
|
{myFile.print("00,"); |
||||||
|
myFile.print(Tmin); |
||||||
|
} |
||||||
|
if (Tmin>99)
|
||||||
|
{ myFile.print(Tmin/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.print(Tmin%10); |
||||||
|
}
|
||||||
|
myFile.print(" Tsr=");
|
||||||
|
if (zn==1) |
||||||
|
{ myFile.print("-"); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{myFile.print("+"); |
||||||
|
} |
||||||
|
|
||||||
|
if ((Tcr<100)&&(Tcr>9)) |
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(Tcr/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.print(Tcr%10); |
||||||
|
} |
||||||
|
if (Tcr<10) |
||||||
|
{myFile.print("00,"); |
||||||
|
myFile.print(Tcr); |
||||||
|
} |
||||||
|
if (Tcr>99)
|
||||||
|
{ myFile.print(Tcr/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.print(Tcr%10); |
||||||
|
}
|
||||||
|
|
||||||
|
myFile.print("C Hcr="); |
||||||
|
if (Hcr/10<10) |
||||||
|
{myFile.print("0"); |
||||||
|
myFile.print(Hcr/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.print(Hcr%10); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myFile.print(Hcr/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.print(Hcr%10); |
||||||
|
} |
||||||
|
|
||||||
|
myFile.print("% Pcr="); |
||||||
|
myFile.print (Pcr); |
||||||
|
|
||||||
|
myFile.print(" Thcr="); |
||||||
|
myFile.print(Thcr/10); |
||||||
|
myFile.print(","); |
||||||
|
myFile.println(Thcr%10); |
||||||
|
//myFile.println("%");
|
||||||
|
|
||||||
|
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//********************
|
||||||
|
|
||||||
|
} |
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,613 @@ |
|||||||
|
void drawUpButton(int x, int y) |
||||||
|
{ |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
myGLCD.fillRoundRect(x, y, 32*2+x, 25*2+y); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(x, y, 32*2+x, 25*2+y); |
||||||
|
myGLCD.setColor(128, 128, 255); |
||||||
|
for (int i=0; i<2*15; i++) |
||||||
|
myGLCD.drawLine(6*2+x+(i/1.5), 20*2+y-i, 27*2+x-(i/1.5), 20*2+y-i); |
||||||
|
} |
||||||
|
|
||||||
|
void drawDownButton(int x, int y) |
||||||
|
{ |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
myGLCD.fillRoundRect(x, y,32*2+x, 25*2+y); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(x, y,32*2+x, 25*2+y); |
||||||
|
myGLCD.setColor(128, 128, 255); |
||||||
|
for (int i=0; i<15*2; i++) |
||||||
|
myGLCD.drawLine(6*2+x+(i/1.5), y+10+i, 27*2+x-(i/1.5), y+10+i); |
||||||
|
} |
||||||
|
|
||||||
|
void showDOW(byte dow) |
||||||
|
{ |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
char* str[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"}; |
||||||
|
|
||||||
|
myGLCD.setColor(128, 128, 255); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
myGLCD.print(str[dow-1], 2*26, 2*167); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
byte validateDate(byte d, byte m, word y) |
||||||
|
{ |
||||||
|
byte mArr[12] = {31,0,31,30,31,30,31,31,30,31,30,31}; |
||||||
|
byte od; |
||||||
|
|
||||||
|
if (m==2) |
||||||
|
{ |
||||||
|
if ((y % 4)==0) |
||||||
|
{ |
||||||
|
if (d==30) |
||||||
|
od=1; |
||||||
|
else if (d==0) |
||||||
|
od=29; |
||||||
|
else |
||||||
|
od=d; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if (d==29) |
||||||
|
od=1; |
||||||
|
else if (d==0) |
||||||
|
od=28; |
||||||
|
else |
||||||
|
od=d; |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if (d==0) |
||||||
|
od=mArr[m-1]; |
||||||
|
else if (d==(mArr[m-1]+1)) |
||||||
|
od=1; |
||||||
|
else |
||||||
|
od=d; |
||||||
|
} |
||||||
|
|
||||||
|
return od; |
||||||
|
} |
||||||
|
|
||||||
|
byte validateDateForMonth(byte d, byte m, word y) |
||||||
|
{ |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
byte mArr[12] = {31,0,31,30,31,30,31,31,30,31,30,31}; |
||||||
|
byte od; |
||||||
|
boolean dc=false; |
||||||
|
|
||||||
|
if (m==2) |
||||||
|
{ |
||||||
|
if ((y % 4)==0) |
||||||
|
{ |
||||||
|
if (d>29) |
||||||
|
{ |
||||||
|
d=29; |
||||||
|
dc=true; |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{
|
||||||
|
if (d>28) |
||||||
|
{ |
||||||
|
d=28; |
||||||
|
dc=true; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if (d>mArr[m-1]) |
||||||
|
{ |
||||||
|
d=mArr[m-1]; |
||||||
|
dc=true; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (dc) |
||||||
|
{ |
||||||
|
if (d<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 122*2, 140*2); |
||||||
|
myGLCD.printNumI(d, 138*2-8, 140*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(d, 122*2, 140*2); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return d; |
||||||
|
} |
||||||
|
|
||||||
|
void setClock() |
||||||
|
{ |
||||||
|
// Time t_temp;
|
||||||
|
int x, y; |
||||||
|
int res = 0; |
||||||
|
boolean ct=false; |
||||||
|
boolean cd=false; |
||||||
|
|
||||||
|
waitForTouchRelease();
|
||||||
|
|
||||||
|
myGLCD.clrScr(); |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
|
||||||
|
// Draw Save button
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
myGLCD.fillRoundRect(2*165, 2*200, 2*319, 2*239); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(2*165, 2*200, 2*319, 2*239); |
||||||
|
myGLCD.setBackColor(64, 64, 128); |
||||||
|
myGLCD.print("SAVE", 2*210, 2*212); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
// Draw Cancel button
|
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
myGLCD.fillRoundRect(0, 2*200, 2*154, 2*239); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(0, 2*200, 2*154, 2*239); |
||||||
|
myGLCD.setBackColor(64, 64, 128); |
||||||
|
myGLCD.print("CANCEL", 2*29, 2*212); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
|
||||||
|
// Draw frames
|
||||||
|
myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.drawRoundRect(0, 0, 319*2, 96*2); |
||||||
|
myGLCD.drawRoundRect(0, 100*2, 319*2, 196*2); |
||||||
|
myGLCD.print("TIME:", 10*2, 40*2); |
||||||
|
myGLCD.print(":", 154*2, 40*2); |
||||||
|
myGLCD.print(":", 202*2, 40*2); |
||||||
|
myGLCD.print("DATE:", 10*2, 140*2); |
||||||
|
myGLCD.print(".", 154*2, 140*2); |
||||||
|
myGLCD.print(".", 202*2, 140*2); |
||||||
|
|
||||||
|
// Draw Buttons
|
||||||
|
drawUpButton(122*2, 10*2); |
||||||
|
drawUpButton(170*2, 10*2); |
||||||
|
drawUpButton(218*2, 10*2); |
||||||
|
drawDownButton(122*2, 61*2); |
||||||
|
drawDownButton(170*2, 61*2); |
||||||
|
drawDownButton(218*2, 61*2); |
||||||
|
drawUpButton(122*2, 110*2); |
||||||
|
drawUpButton(170*2, 110*2); |
||||||
|
drawUpButton(234*2, 110*2); |
||||||
|
drawDownButton(122*2, 161*2); |
||||||
|
drawDownButton(170*2, 161*2); |
||||||
|
drawDownButton(234*2, 161*2); |
||||||
|
|
||||||
|
// Print current time and date
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
// t_temp = rtc.getTime();
|
||||||
|
if (t.date==0) |
||||||
|
{ |
||||||
|
rtc.setTime(15, 11, 0); |
||||||
|
rtc.setDate(28, 12, 2015); |
||||||
|
} |
||||||
|
|
||||||
|
if (t.hour<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 122*2, 40*2); |
||||||
|
myGLCD.printNumI(t.hour, 138*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.hour, 122*2, 40*2); |
||||||
|
} |
||||||
|
if (t.min<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 170*2, 40*2); |
||||||
|
myGLCD.printNumI(t.min, 186*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.min, 170*2, 40*2); |
||||||
|
} |
||||||
|
if (t.sec<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 218*2, 40*2); |
||||||
|
myGLCD.printNumI(t.sec, 234*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.sec, 218*2, 40*2); |
||||||
|
} |
||||||
|
if (t.date<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 122*2, 140*2); |
||||||
|
myGLCD.printNumI(t.date, 138*2-8, 140*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.date, 122*2, 140*2); |
||||||
|
} |
||||||
|
if (t.mon<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 170*2, 140*2); |
||||||
|
myGLCD.printNumI(t.mon, 186*2-8, 140*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.mon, 170*2, 140*2); |
||||||
|
} |
||||||
|
myGLCD.printNumI(t.year, 218*2, 140*2); |
||||||
|
// showDOW(t_temp.dow);
|
||||||
|
hour1=t.hour; |
||||||
|
min1=t.min; |
||||||
|
sec= t.sec; |
||||||
|
date=t.date; |
||||||
|
mon= t.mon; |
||||||
|
year1 =t.year; |
||||||
|
dow= t.dow;
|
||||||
|
while (res==0) |
||||||
|
{ |
||||||
|
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
x=myTouch.getX(); |
||||||
|
y=myTouch.getY(); |
||||||
|
if ((y>=10*2) && (y<=35*2)) // Buttons: Time UP
|
||||||
|
{ |
||||||
|
if ((x>=122*2) && (x<=154*2)) |
||||||
|
{ |
||||||
|
buttonWait(122*2, 10*2); |
||||||
|
hour1+=1; |
||||||
|
if (hour1==24) |
||||||
|
hour1=0; |
||||||
|
if (hour1<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 122*2, 40*2); |
||||||
|
myGLCD.printNumI(hour1, 138*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(hour1, 122*2, 40*2); |
||||||
|
} |
||||||
|
if (ct==false) |
||||||
|
{ |
||||||
|
ct=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
// myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 10*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
} |
||||||
|
} |
||||||
|
else if ((x>=170*2) && (x<=202*2)) |
||||||
|
{ |
||||||
|
buttonWait(170*2, 10*2); |
||||||
|
min1+=1; |
||||||
|
if (min1==60) |
||||||
|
min1=0; |
||||||
|
if (min1<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 170*2, 40*2); |
||||||
|
myGLCD.printNumI(min1, 186*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(min1, 170*2, 40*2); |
||||||
|
} |
||||||
|
if (ct==false) |
||||||
|
{ |
||||||
|
ct=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
//myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 10*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
} |
||||||
|
} |
||||||
|
else if ((x>=218*2) && (x<=250*2)) |
||||||
|
{ |
||||||
|
buttonWait(218*2, 10*2); |
||||||
|
sec+=1; |
||||||
|
if (sec==60) |
||||||
|
sec=0; |
||||||
|
if (sec<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 218*2, 40*2); |
||||||
|
myGLCD.printNumI(sec, 234*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(sec, 218*2, 40*2); |
||||||
|
} |
||||||
|
if (ct==false) |
||||||
|
{ |
||||||
|
ct=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
// myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 10*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
else if ((y>=61*2) && (y<=86*2)) // Buttons: Time DOWN
|
||||||
|
{ |
||||||
|
if ((x>=122*2) && (x<=154*2)) |
||||||
|
{ |
||||||
|
buttonWait(122*2, 61*2); |
||||||
|
hour1-=1; |
||||||
|
if (hour1==255) |
||||||
|
hour1=23; |
||||||
|
if (hour1<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 122*2, 40*2); |
||||||
|
myGLCD.printNumI(hour1, 138*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(hour1, 122*2, 40*2); |
||||||
|
} |
||||||
|
if (ct==false) |
||||||
|
{ |
||||||
|
ct=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
//myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 10*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
} |
||||||
|
} |
||||||
|
else if ((x>=170*2) && (x<=202*2)) |
||||||
|
{ |
||||||
|
buttonWait(170*2, 61*2); |
||||||
|
min1-=1; |
||||||
|
if (min1==255) |
||||||
|
min1=59; |
||||||
|
if (min1<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 170*2, 40*2); |
||||||
|
myGLCD.printNumI(min1, 186*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(min1, 170*2, 40*2); |
||||||
|
} |
||||||
|
if (ct==false) |
||||||
|
{ |
||||||
|
ct=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
//myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 10*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
} |
||||||
|
} |
||||||
|
else if ((x>=218*2) && (x<=250*2)) |
||||||
|
{ |
||||||
|
buttonWait(218*2, 61*2); |
||||||
|
sec-=1; |
||||||
|
if (sec==255) |
||||||
|
sec=59; |
||||||
|
if (sec<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 218*2, 40*2); |
||||||
|
myGLCD.printNumI(sec, 234*2-8, 40*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(sec, 218*2, 40*2); |
||||||
|
} |
||||||
|
if (ct==false) |
||||||
|
{ |
||||||
|
ct=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
//myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 10*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
if ((y>=110*2) && (y<=135*2)) // Buttons: Date UP
|
||||||
|
{ |
||||||
|
if ((x>=122*2) && (x<=154*2)) |
||||||
|
{ |
||||||
|
buttonWait(122*2, 110*2); |
||||||
|
date+=1; |
||||||
|
date=validateDate(date, mon, year1); |
||||||
|
if (date<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 122*2, 140*2); |
||||||
|
myGLCD.printNumI(date, 138*2-8, 140*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(date, 122*2, 140*2); |
||||||
|
} |
||||||
|
if (cd==false) |
||||||
|
{ |
||||||
|
cd=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
// myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 110*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
} |
||||||
|
} |
||||||
|
else if ((x>=170*2) && (x<=202*2)) |
||||||
|
{ |
||||||
|
buttonWait(170*2, 110*2); |
||||||
|
mon+=1; |
||||||
|
if (mon==13) |
||||||
|
mon=1; |
||||||
|
if (mon<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 170*2, 140*2); |
||||||
|
myGLCD.printNumI(mon, 186*2-8, 140*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(mon, 170*2, 140*2); |
||||||
|
} |
||||||
|
date=validateDateForMonth(date, mon, year1); |
||||||
|
// rtc_clock.set_date(date, mon, year);
|
||||||
|
if (cd==false) |
||||||
|
{ |
||||||
|
cd=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
// myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 110*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
} |
||||||
|
} |
||||||
|
else if ((x>=218*2) && (x<=250*2)) |
||||||
|
{ |
||||||
|
buttonWait(234*2, 110*2); |
||||||
|
year1+=1; |
||||||
|
if (year1==2100) |
||||||
|
year1=2000; |
||||||
|
myGLCD.printNumI(year1, 218*2, 140*2); |
||||||
|
date=validateDateForMonth(date, mon, year1); |
||||||
|
// rtc_clock.set_date(date, mon, year);
|
||||||
|
if (cd==false) |
||||||
|
{ |
||||||
|
cd=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
//myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 110*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
} |
||||||
|
} |
||||||
|
dow=calcDOW(date, mon, year1); |
||||||
|
showDOW(dow); |
||||||
|
} |
||||||
|
else if ((y>=161*2) && (y<=186*2)) // Buttons: Date DOWN
|
||||||
|
{ |
||||||
|
if ((x>=122*2) && (x<=154*2)) |
||||||
|
{ |
||||||
|
buttonWait(122*2, 161*2); |
||||||
|
date-=1; |
||||||
|
date=validateDate(date, mon, year1); |
||||||
|
if (date<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 122*2, 140*2); |
||||||
|
myGLCD.printNumI(date, 138*2-8, 140*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(date, 122*2, 140*2); |
||||||
|
} |
||||||
|
if (cd==false) |
||||||
|
{ |
||||||
|
cd=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
//myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 110*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
} |
||||||
|
} |
||||||
|
else if ((x>=170*2) && (x<=202*2)) |
||||||
|
{ |
||||||
|
buttonWait(170*2, 161*2); |
||||||
|
mon-=1; |
||||||
|
if (mon==0) |
||||||
|
mon=12; |
||||||
|
if (mon<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, 170*2, 140*2); |
||||||
|
myGLCD.printNumI(mon, 186*2-8, 140*2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(mon, 170*2, 140*2); |
||||||
|
} |
||||||
|
date=validateDateForMonth(date, mon, year1); |
||||||
|
if (cd==false) |
||||||
|
{ |
||||||
|
cd=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
//myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 110*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
} |
||||||
|
} |
||||||
|
else if ((x>=218*2) && (x<=250*2)) |
||||||
|
{ |
||||||
|
buttonWait(234*2, 161*2); |
||||||
|
year1-=1; |
||||||
|
if (year1==1999) |
||||||
|
year1=2099; |
||||||
|
myGLCD.printNumI(year1, 218*2, 140*2); |
||||||
|
date=validateDateForMonth(date, mon, year1); |
||||||
|
if (cd==false) |
||||||
|
{ |
||||||
|
cd=true; |
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
//myGLCD.setFont(SmallFont);
|
||||||
|
myGLCD.print("Changed!", 10*2, 110*2); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
} |
||||||
|
} |
||||||
|
dow=calcDOW(date, mon, year1); |
||||||
|
showDOW(dow); |
||||||
|
} |
||||||
|
else if ((y>=200*2) && (y<=239*2)) // Buttons: CANCEL / SAVE
|
||||||
|
{ |
||||||
|
if ((x>=165*2) && (x<=319*2)) |
||||||
|
{ |
||||||
|
res=1; |
||||||
|
myGLCD.setColor (255, 0, 0); |
||||||
|
myGLCD.drawRoundRect(165*2, 200*2, 319*2, 239*2); |
||||||
|
} |
||||||
|
else if ((x>=0) && (x<=154*2)) |
||||||
|
{ |
||||||
|
res=2; |
||||||
|
myGLCD.setColor (255, 0, 0); |
||||||
|
myGLCD.drawRoundRect(0, 200*2, 154*2, 239*2); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
//************************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
waitForTouchRelease(); |
||||||
|
|
||||||
|
if (res==1) |
||||||
|
{ |
||||||
|
if (ct) |
||||||
|
//rtc.setTime(t_temp.hour, t_temp.min, t_temp.sec);
|
||||||
|
rtc.setTime(hour1, min1 , sec); |
||||||
|
// if (cd)
|
||||||
|
// {
|
||||||
|
//rtc.setDate(t_temp.date, t_temp.mon, t_temp.year1);
|
||||||
|
rtc.setDate(date, mon, year1); |
||||||
|
dow=calcDOW(date, mon, year1); |
||||||
|
rtc.setDOW(dow); |
||||||
|
//rtc.setDOW(t_temp.dow);
|
||||||
|
// }
|
||||||
|
} |
||||||
|
if( t.hour<7 ) |
||||||
|
{night=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{night=0; |
||||||
|
} |
||||||
|
q=1; |
||||||
|
clok(); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
// drawDisplay();
|
||||||
|
// printDate();
|
||||||
|
} |
||||||
@ -0,0 +1,6 @@ |
|||||||
|
|
||||||
|
void uart() |
||||||
|
{ |
||||||
|
peredat(); |
||||||
|
delay(100); |
||||||
|
} |
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,40 @@ |
|||||||
|
char uCase(char c) |
||||||
|
{ |
||||||
|
if ((c>='a') && (c<='z')) |
||||||
|
return (c-0x20); |
||||||
|
else |
||||||
|
return c; |
||||||
|
} |
||||||
|
|
||||||
|
void buttonWait(int x, int y) |
||||||
|
{ |
||||||
|
myGLCD.setColor(255, 0, 0); |
||||||
|
myGLCD.drawRoundRect(x, y,32*2+x, 25*2+y); |
||||||
|
waitForTouchRelease(); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(x, y, 32*2+x, 25*2+y); |
||||||
|
} |
||||||
|
|
||||||
|
byte calcDOW(byte d, byte m, int y) |
||||||
|
{ |
||||||
|
int dow; |
||||||
|
byte mArr[12] = {6,2,2,5,0,3,5,1,4,6,2,4}; |
||||||
|
|
||||||
|
dow = (y % 100); |
||||||
|
dow = dow*1.25; |
||||||
|
dow += d; |
||||||
|
dow += mArr[m-1]; |
||||||
|
if (((y % 4)==0) && (m<3)) |
||||||
|
dow -= 1; |
||||||
|
while (dow>7) |
||||||
|
dow -= 7; |
||||||
|
|
||||||
|
return dow; |
||||||
|
} |
||||||
|
|
||||||
|
void waitForTouchRelease() |
||||||
|
{ |
||||||
|
// Wait for release
|
||||||
|
while (myTouch.dataAvailable()==true) |
||||||
|
myTouch.read(); |
||||||
|
} |
||||||
@ -0,0 +1,587 @@ |
|||||||
|
void win() |
||||||
|
{ |
||||||
|
char* S1[]={"utleto.raw","dleto.raw","veleto.raw","letorain.raw","utroos.raw","dosen.raw","veosen.raw","osenrain.raw","utyzim.raw","dzima.raw","vzima.raw","utyzimsn.raw","dzima2.raw","new.raw","dvesna.raw","vevesna.raw","vesnarun.raw","dvesnar.raw","dvesnaun.raw","rain.raw"};//19
|
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
byte q=0; |
||||||
|
|
||||||
|
mon1=t.mon; |
||||||
|
hour1=t.hour; |
||||||
|
days1=t.date; |
||||||
|
if ((mon1==12) || (mon1==1) || (mon1==2))//zima
|
||||||
|
{
|
||||||
|
|
||||||
|
if (hour1<10) |
||||||
|
{q=8; |
||||||
|
} |
||||||
|
if ((hour1>9)&&(hour1<17)) |
||||||
|
{q=9; |
||||||
|
} |
||||||
|
if ((hour1>18)&&(hour1<24)) |
||||||
|
{q=10; |
||||||
|
if ((mon1==12)&&(days1>25)) |
||||||
|
q=13; |
||||||
|
if ((mon1==1)&&(days1<8)) |
||||||
|
q=13; |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if (mon1==3)//mart
|
||||||
|
{
|
||||||
|
|
||||||
|
if (hour1<9) |
||||||
|
{q=8; |
||||||
|
} |
||||||
|
if ((hour1>8)&&(hour1<15)) |
||||||
|
{q=17; |
||||||
|
} |
||||||
|
if ((hour1>14)&&(hour1<19)) |
||||||
|
{q=18; |
||||||
|
} |
||||||
|
|
||||||
|
if ((hour1>18)&&(hour1<24)) |
||||||
|
{q=16; |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((mon1==4) || (mon1==5)) |
||||||
|
{
|
||||||
|
|
||||||
|
if (hour1<9) |
||||||
|
{q=4; |
||||||
|
} |
||||||
|
if ((hour1>8)&&(hour1<19)) |
||||||
|
{q=14; |
||||||
|
} |
||||||
|
if ((hour1>18)&&(hour1<24)) |
||||||
|
{q=15; |
||||||
|
if (hu>96) {q=19;} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if ((mon1==6) || (mon1==7) || (mon1==8))//leto
|
||||||
|
{
|
||||||
|
|
||||||
|
if (hour1<8) |
||||||
|
{q=0; |
||||||
|
} |
||||||
|
if ((hour1>7)&&(hour1<20)) |
||||||
|
{q=1; |
||||||
|
if (hu>90) {q=3;} |
||||||
|
} |
||||||
|
if ((hour1>19)&&(hour1<24)) |
||||||
|
{q=2; |
||||||
|
if (hu>96) {q=19;} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if ((mon1==9) || (mon1==10) || (mon1==11))//leto
|
||||||
|
{
|
||||||
|
|
||||||
|
if (hour1<8) |
||||||
|
{q=4; |
||||||
|
} |
||||||
|
if ((hour1>7)&&(hour1<20)) |
||||||
|
{q=5; |
||||||
|
if (hu>90) {q=7;} |
||||||
|
} |
||||||
|
if ((hour1>19)&&(hour1<24)) |
||||||
|
{q=6; |
||||||
|
if ((hu>96)&&(tu>10)) {q=19;} |
||||||
|
} |
||||||
|
} |
||||||
|
//pressure hu tu
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
sd.chdir("win");//установка раб директории
|
||||||
|
delay (50);
|
||||||
|
|
||||||
|
//myFiles.loadBitmap(0, 0, 640, 480, S1[q]);
|
||||||
|
|
||||||
|
|
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open(S1[q], O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m1=0; |
||||||
|
int w; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m1, 640, 1, pic1, 1); |
||||||
|
m1=m1+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50);
|
||||||
|
|
||||||
|
myGLCD.setFont( SevenSegNumFont);
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
|
||||||
|
if (pressure>759) |
||||||
|
myGLCD.setColor(255,50,50); |
||||||
|
|
||||||
|
if (pressure<746) |
||||||
|
myGLCD.setColor(0,0,255); |
||||||
|
|
||||||
|
if ((pressure>745)&&(pressure<760)) |
||||||
|
myGLCD.setColor(7,120,34); |
||||||
|
|
||||||
|
myGLCD.printNumI(pressure,183-24,30+13);// myGLCD.print(":",cx+32+32, cy);
|
||||||
|
// myGLCD.setColor(0,0,255);
|
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
|
||||||
|
|
||||||
|
// myGLCD.print("mm",183-24+22, 30+16+20+24);
|
||||||
|
|
||||||
|
if (pres[0]>pres[1]) |
||||||
|
myGLCD.print("*",183-24+35,30+13-30);
|
||||||
|
|
||||||
|
if (pres[0]<pres[1]) |
||||||
|
myGLCD.print("*",183-24+35, 30+16+20+26); |
||||||
|
|
||||||
|
// myGLCD.setFont( BigFont);
|
||||||
|
|
||||||
|
if (pres[1]>759) |
||||||
|
myGLCD.setColor(255,200,200); |
||||||
|
|
||||||
|
if (pres[1]<746) |
||||||
|
myGLCD.setColor(200,200,255); |
||||||
|
|
||||||
|
if ((pres[1]>745)&&(pres[1]<760)) |
||||||
|
myGLCD.setColor(200,255,200); |
||||||
|
|
||||||
|
myGLCD.printNumI(pres[1],183-24+2-8+24,30+16+20+64);
|
||||||
|
|
||||||
|
if (pres[2]>759) |
||||||
|
myGLCD.setColor(255,200,200); |
||||||
|
|
||||||
|
if (pres[2]<746) |
||||||
|
myGLCD.setColor(200,200,255); |
||||||
|
|
||||||
|
if ((pres[2]>745)&&(pres[2]<760)) |
||||||
|
myGLCD.setColor(200,255,200); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.printNumI(pres[2],183-24+2-8+24,30+16+20+100); |
||||||
|
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*********TEMPUL**************************************
|
||||||
|
// myGLCD.setColor(255,142,21);
|
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
if (zn<2) |
||||||
|
{myGLCD.setColor(0,0,255);//обводка
|
||||||
|
myGLCD.print("-",21-2, 235+15-2); |
||||||
|
myGLCD.print("-",21+2, 235+15+2); |
||||||
|
myGLCD.print("-",21-2, 235+15+2); |
||||||
|
myGLCD.print("-",21+2, 235+15-2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(VGA_RED); |
||||||
|
myGLCD.print("+",21-2, 235+15-2); |
||||||
|
myGLCD.print("+",21+2, 235+15+2); |
||||||
|
myGLCD.print("+",21-2, 235+15+2); |
||||||
|
myGLCD.print("+",21+2, 235+15-2); |
||||||
|
} |
||||||
|
myGLCD.setColor(VGA_RED); |
||||||
|
//myGLCD.print(",",0+88-2, 235+24-2);
|
||||||
|
// myGLCD.print(",",0+88+2, 235+24+2);
|
||||||
|
myGLCD.print("C",16+88+28-2, 227-2); |
||||||
|
myGLCD.print("C",16+88+28+2, 227+2); |
||||||
|
|
||||||
|
|
||||||
|
//*********TEMPUL**************************************
|
||||||
|
// myGLCD.setColor(255,142,21);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
if (zn<2) |
||||||
|
{myGLCD.print("-",21, 235+15); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.print("+",21, 235+15); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (tu<10) |
||||||
|
{ myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.printNumI(tu,16+24+32-20,235);// myGLCD.print(":",cx+32+32, cy);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(",",16+78-20, 235+24); |
||||||
|
myGLCD.print("C",16+88+28, 227); |
||||||
|
myGLCD.printNumI(tud,16+88+10-20,235+50-30);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.printNumI(tu,16+24,235); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(",",16+78, 235+24); |
||||||
|
myGLCD.print("C",16+88+28, 227); |
||||||
|
myGLCD.printNumI(tud,16+88+10,235+50-30);
|
||||||
|
|
||||||
|
} |
||||||
|
//***********************************************************
|
||||||
|
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) |
||||||
|
myGLCD.print("*",24+32+35-18,235+58);
|
||||||
|
|
||||||
|
if (Tm/10<Tm1) |
||||||
|
myGLCD.print("*",24+32+35-18,235-27); |
||||||
|
|
||||||
|
|
||||||
|
//myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.setColor(255,200,200); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
if (temul[0]>=1000) |
||||||
|
{ Tm=temul[0]-1000; |
||||||
|
myGLCD.setColor(150,200,255); |
||||||
|
myGLCD.print("-" ,100-24, 235+90+12); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("+" ,100-24, 235+90+12); |
||||||
|
Tm=temul[0]; |
||||||
|
myGLCD.setColor(255,200,200); |
||||||
|
} |
||||||
|
if (temul[0]<100) |
||||||
|
{ myGLCD.print("," ,100+24-8, 235+90+12); |
||||||
|
myGLCD.printNumI(Tm/10,100,235+90+12); |
||||||
|
|
||||||
|
myGLCD.printNumI(Tm%10,100+48-15,235+90+12); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("," ,100+48-8, 235+90+12); |
||||||
|
myGLCD.printNumI(Tm/10,100,235+90+12); |
||||||
|
|
||||||
|
myGLCD.printNumI (Tm%10,100+48+24-15,235+90+12); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (temul[1]>=1000) |
||||||
|
{ Tm=temul[1]-1000; |
||||||
|
myGLCD.print("-" ,30, 235+60+80+12); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("+" ,30, 235+60+80+12); |
||||||
|
Tm=temul[1]; |
||||||
|
} |
||||||
|
if (temul[1]<100) |
||||||
|
{ myGLCD.print("," ,30+24+24-8, 235+60+80+12); |
||||||
|
myGLCD.printNumI(Tm/10,30+24,235+60+80+12); |
||||||
|
|
||||||
|
myGLCD.printNumI(Tm%10,30+24+48,235+60+80+12); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("," ,30+24+48-8, 235+60+80+12); |
||||||
|
myGLCD.printNumI(Tm/10,30+24,235+60+80+12); |
||||||
|
|
||||||
|
myGLCD.printNumI (Tm%10,30+24+48+24-15,235+60+80+12); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//*********HUG**************************************
|
||||||
|
myGLCD.setColor(129,239,255); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
|
||||||
|
myGLCD.print("%",255+88, 235+24);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.printNumI(hu,255+24,235); |
||||||
|
//myGLCD.printNumI(hud,255+88+20,240);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
|
||||||
|
if (hug[0]/10>hug[1]/10) |
||||||
|
myGLCD.print("*",255+24+24,235-27);
|
||||||
|
|
||||||
|
if (hug[0]/10<hug[1]/10) |
||||||
|
myGLCD.print("*",255+24+24,235+53);
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(200,200,255); |
||||||
|
myGLCD.printNumI(hug[1]/10,255+24+44,235+90+12); |
||||||
|
myGLCD.print("%",255+24+44+48, 235+90+12); |
||||||
|
|
||||||
|
myGLCD.printNumI(hug[2]/10,245,235+60+80+12); |
||||||
|
myGLCD.print("%",245+48, 235+60+80+12); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*********************min max************************************************
|
||||||
|
// myGLCD.setBackColor(8,101,192);
|
||||||
|
myGLCD.setColor(255, 55, 55); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
int px=25; |
||||||
|
int py=437; |
||||||
|
byte hh; |
||||||
|
byte mm; |
||||||
|
byte d; |
||||||
|
byte m; |
||||||
|
word y; |
||||||
|
//*************max****************************************
|
||||||
|
if (temul[24]>600) |
||||||
|
{readmax(); |
||||||
|
} |
||||||
|
d=time1[24]/1000; |
||||||
|
m=(time1[24]%1000)/10; |
||||||
|
y=((time1[24]%1000)%10)*10; |
||||||
|
hh=time1[25]/1000; |
||||||
|
mm=(time1[25]%1000)/10; |
||||||
|
y=y+((time1[25]%1000)%10); |
||||||
|
myGLCD.setBackColor(255,255,255);
|
||||||
|
myGLCD.print("Tmax=+" ,px, py); |
||||||
|
myGLCD.printNumI(temul[24]/10, px+16*6, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(temul[24]%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print(":" ,px-4+16*2, py+16); |
||||||
|
if(hh<10) |
||||||
|
{ myGLCD.print("0" ,px, py+16); |
||||||
|
myGLCD.printNumI(hh, px+16, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(hh, px, py+16); |
||||||
|
} |
||||||
|
//myGLCD.print(":" ,px+16*2, py+16);
|
||||||
|
|
||||||
|
if(mm<10) |
||||||
|
{ myGLCD.print("0" ,px+16*3-8, py+16); |
||||||
|
myGLCD.printNumI(mm, px+16*4-8, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(mm, px+16*3-8, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(" " ,px+16*5, py+16);
|
||||||
|
myGLCD.print("." ,px+16*7-4, py+16); |
||||||
|
if(d<10) |
||||||
|
{ myGLCD.print("0" ,px+16*5, py+16); |
||||||
|
myGLCD.printNumI(d, px+16*6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(d, px+16*5, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.print("." ,px+16*10-10, py+16); |
||||||
|
if(m<10) |
||||||
|
{ myGLCD.print("0" ,px+16*8-6, py+16); |
||||||
|
myGLCD.printNumI(m, px+16*9-6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(m, px+16*8-6, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print("." ,px+16*11-12, py+16);
|
||||||
|
|
||||||
|
myGLCD.printNumI(y, px+16*11-14, py+16); |
||||||
|
|
||||||
|
//*************min ***********************************************
|
||||||
|
myGLCD.setColor(55, 55, 255); |
||||||
|
myGLCD.setBackColor(255,255,255);
|
||||||
|
d=time1[26]/1000; |
||||||
|
m=(time1[26]%1000)/10; |
||||||
|
y=((time1[26]%1000)%10)*10; |
||||||
|
hh=time1[27]/1000; |
||||||
|
mm=(time1[27]%1000)/10; |
||||||
|
y=y+((time1[27]%1000)%10); |
||||||
|
// int Tm;
|
||||||
|
|
||||||
|
py=437; |
||||||
|
px=240; |
||||||
|
if (temul[25]>1000) |
||||||
|
{ Tm=temul[25]-1000; |
||||||
|
|
||||||
|
if(Tm<100) |
||||||
|
{myGLCD.print("Tmin= -" ,px, py); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("Tmin=-" ,px, py); |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
Tm=temul[25]; |
||||||
|
if(Tm<100) |
||||||
|
{myGLCD.print("Tmin= +" ,px, py); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("Tmin=+" ,px, py); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if(Tm<100)
|
||||||
|
{ // myGLCD.print(" " ,px+16*6, py);
|
||||||
|
myGLCD.printNumI(Tm/10, px+16*7, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(Tm%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
}
|
||||||
|
else |
||||||
|
{ myGLCD.printNumI(Tm/10, px+16*6, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(Tm%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
}
|
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print(":" ,px-4+16*2, py+16); |
||||||
|
if(hh<10) |
||||||
|
{ myGLCD.print("0" ,px, py+16); |
||||||
|
myGLCD.printNumI(hh, px+16, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(hh, px, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(":" ,px+16*2, py+16);
|
||||||
|
|
||||||
|
if(mm<10) |
||||||
|
{ myGLCD.print("0" ,px+16*3-8, py+16); |
||||||
|
myGLCD.printNumI(mm, px+16*4-8, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(mm, px+16*3-8, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(" " ,px+16*5, py+16);
|
||||||
|
myGLCD.print("." ,px+16*7-4, py+16); |
||||||
|
if(d<10) |
||||||
|
{ myGLCD.print("0" ,px+16*5, py+16); |
||||||
|
myGLCD.printNumI(d, px+16*6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(d, px+16*5, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.print("." ,px+16*10-10, py+16); |
||||||
|
|
||||||
|
if(m<10) |
||||||
|
{ myGLCD.print("0" ,px+16*8-6, py+16); |
||||||
|
myGLCD.printNumI(m, px+16*9-6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(m, px+16*8-6, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.printNumI(y, px+16*11-14, py+16); |
||||||
|
|
||||||
|
if(bt==0)
|
||||||
|
{ int xb=510;//390
|
||||||
|
barometr(xb);
|
||||||
|
bt=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{int xtd=510;//512;
|
||||||
|
termdom(xtd); |
||||||
|
bt=0; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//***************************************************************************
|
||||||
|
//****************************************************************************
|
||||||
|
void readmax() |
||||||
|
{ |
||||||
|
byte reader[47];//23:00 T=+25,8C Pmm=756 H=25% Tu=+25,6C Hu=75,6%
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
myFile.open("rab.txt", O_READ); |
||||||
|
|
||||||
|
// пропускаем ненужные данные в файле rab.txt
|
||||||
|
for (int n =0 ; n < 24; n = n++)// колво строк в файле
|
||||||
|
{
|
||||||
|
for (int i =0 ; i < 47; i = i++) // колво байт в строку
|
||||||
|
{ byte b= myFile.read(); |
||||||
|
} |
||||||
|
byte b= myFile.read()-48;//возврат коретки 2 байта
|
||||||
|
b= myFile.read()-48; |
||||||
|
}
|
||||||
|
//**************************************************************
|
||||||
|
|
||||||
|
//читаем время и температуру максимальную с карты памяти в массив
|
||||||
|
for (int n =0 ; n < 3; n = n+2)// колво строк в файле
|
||||||
|
{
|
||||||
|
for (int i =0 ; i < 26; i = i++) // колво байт в строку
|
||||||
|
{ byte b= myFile.read(); |
||||||
|
if (b<48) |
||||||
|
{reader[i]=b; |
||||||
|
} |
||||||
|
else |
||||||
|
{ b=b-48;//получение цифры из байта
|
||||||
|
|
||||||
|
reader[i]=b; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
time1[n+24]=reader[0]*10000+reader[1]*1000+reader[3]*100+reader[4]*10+reader[6];//max 16.08. 1 16081
|
||||||
|
time1[n+1+24]=reader[9]*10000+reader[10]*1000+reader[12]*100+reader[13]*10+reader[7];//12:00 4 12004
|
||||||
|
|
||||||
|
if (reader[20]==45) |
||||||
|
{temul[24+n/2]=reader[21]*100+reader[22]*10+reader[24]+1000; |
||||||
|
} |
||||||
|
else |
||||||
|
{temul[24+n/2]=reader[21]*100+reader[22]*10+reader[24]; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
byte b= myFile.read()-48;//возврат коретки 2 байта
|
||||||
|
b= myFile.read()-48; |
||||||
|
|
||||||
|
myFile.close();
|
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,901 @@ |
|||||||
|
void flower1() |
||||||
|
|
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("weat");//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("fl1.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 640, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
//**************************************************
|
||||||
|
myGLCD.setBackColor(VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(VGA_RED);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("+" ,60, 56); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont);
|
||||||
|
myGLCD.printNumI(tfl ,80, 46); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_AQUA);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("%" ,122, 410); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont); |
||||||
|
myGLCD.printNumI(vfl ,59, 385);
|
||||||
|
|
||||||
|
// myGLCD.setFont(Ubuntubold);
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
//myGLCD.printNumI(osv ,440, 43);
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(dfl ,65, 455);
|
||||||
|
myGLCD.print(":00",77+16, 455);
|
||||||
|
|
||||||
|
//********************************************************
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
//**************************************
|
||||||
|
// myGLCD.setColor(0,38,92);
|
||||||
|
// myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
// myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
// myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
// info();
|
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
|
||||||
|
graflawer(); |
||||||
|
grafflm(); |
||||||
|
|
||||||
|
//******************************************************************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//********************************************************************************************************************
|
||||||
|
void graflawer() |
||||||
|
//*******рисуем график *********************************
|
||||||
|
{ myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(215, 0, 635, 475);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(215, 0, 635, 475);//прямоугольник с обводкой
|
||||||
|
int z=80; |
||||||
|
int s=220; |
||||||
|
myGLCD.setColor(30,55,90); |
||||||
|
myGLCD.fillRoundRect(s+55, 5, s+55+15, 440-z);//рисуем синий пр-к1
|
||||||
|
myGLCD.setColor(45,55,105); |
||||||
|
myGLCD.fillRoundRect(s+55+15, 5, s+55+30, 440-z);//рисуем синий пр-к2
|
||||||
|
myGLCD.setColor(60,55,110); |
||||||
|
myGLCD.fillRoundRect(s+55+30, 5, s+55+45, 440-z);//рисуем синий пр-к3
|
||||||
|
myGLCD.setColor(75,55,115); |
||||||
|
myGLCD.fillRoundRect(s+55+45, 5, s+55+60, 440-z);//рисуем синий пр-к4
|
||||||
|
|
||||||
|
myGLCD.setColor(82,40,137); |
||||||
|
myGLCD.fillRoundRect(s+55+60,5 , s+55+60+15, 440-z);//рисуем синий пр-к5
|
||||||
|
myGLCD.setColor(97,35,139); |
||||||
|
myGLCD.fillRoundRect(s+55+60+15,5 , s+55+60+30, 440-z);//рисуем синий пр-к6
|
||||||
|
myGLCD.setColor(125,32,141); |
||||||
|
myGLCD.fillRoundRect(s+55+60+30,5 , s+55+60+45, 440-z);//рисуем синий пр-к7
|
||||||
|
myGLCD.setColor(145,27,143); |
||||||
|
myGLCD.fillRoundRect(s+55+60+45,5 , s+55+60+60, 440-z);//рисуем синий пр-к8
|
||||||
|
|
||||||
|
myGLCD.setColor(163,25,146); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60,5 , s+55+60+60+15, 440-z);//рисуем синий пр-к9
|
||||||
|
myGLCD.setColor(173,35,136); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+15,5 , s+55+60+60+30, 440-z);//рисуем синий пр-к10
|
||||||
|
myGLCD.setColor(187,45,120); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+30,5 , s+55+60+60+45, 440-z);//рисуем синий пр-к11
|
||||||
|
myGLCD.setColor(195,55,106); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+45,5 , s+55+60+60+60, 440-z);//рисуем синий пр-к 12
|
||||||
|
|
||||||
|
myGLCD.setColor(200,64,97); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+60,5 , s+55+60+60+60+15, 440-z);//рисуем синий пр-к13
|
||||||
|
myGLCD.setColor(195,75,92); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+60+15,5 , s+55+60+60+60+30, 440-z);//рисуем синий пр-к14
|
||||||
|
myGLCD.setColor(190,85,87); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+60+30,5 , s+55+60+60+60+45, 440-z);//рисуем синий пр-к15
|
||||||
|
myGLCD.setColor(180,95,82); |
||||||
|
myGLCD.fillRoundRect(s+55+60+60+60+45,5 , s+55+60+60+60+60, 440-z);//рисуем синий пр-к 16
|
||||||
|
|
||||||
|
myGLCD.setColor(171,103,76); |
||||||
|
myGLCD.fillRoundRect(s+55+240,5 , s+55+240+15, 440-z);//рисуем синий пр-к 17
|
||||||
|
myGLCD.setColor(151,93,86); |
||||||
|
myGLCD.fillRoundRect(s+55+240+15,5 , s+55+240+30, 440-z);//рисуем синий пр-к 18
|
||||||
|
myGLCD.setColor(131,83,96); |
||||||
|
myGLCD.fillRoundRect(s+55+240+30,5 , s+55+240+45, 440-z);//рисуем синий пр-к 19
|
||||||
|
myGLCD.setColor(101,73,116); |
||||||
|
myGLCD.fillRoundRect(s+55+240+45,5 , s+55+300, 440-z);//рисуем синий пр-к 20
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(82,40,137); |
||||||
|
myGLCD.fillRoundRect(s+55+300,5 , s+55+315, 440-z);//рисуем синий пр-к 21
|
||||||
|
myGLCD.setColor(60,55,110); |
||||||
|
myGLCD.fillRoundRect(s+55+315,5 , s+55+330, 440-z);//рисуем синий пр-к 22
|
||||||
|
myGLCD.setColor(30,55,90); |
||||||
|
myGLCD.fillRoundRect(s+55+330,5 , s+55+345, 440-z);//рисуем синий пр-к 23
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.drawLine(s+55, 10, s+55, 450-z);// ось у
|
||||||
|
myGLCD.drawLine(s+400, 10, s+400, 440-z);//ось у давление
|
||||||
|
myGLCD.drawLine(s+55, 90+180-z, s+400, 90+180-z);// ось х темп
|
||||||
|
myGLCD.drawLine(s+55, 440-z, s+400, 440-z);//ось х влажность
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(35,173,255); |
||||||
|
//myGLCD.drawLine(s+55, 270-80, s+400, 270-80);// ось 0
|
||||||
|
myGLCD.setColor(200,64,97); |
||||||
|
myGLCD.drawLine(s+55, 270-200, s+400, 70);// ось 30
|
||||||
|
myGLCD.drawLine(s+55, 270-220, s+400, 50);// ось 35
|
||||||
|
myGLCD.drawLine(s+55, 440-30-z, s+400, 440-30-z);// ось 30
|
||||||
|
myGLCD.drawLine(s+55, 440-15-z, s+400, 440-15-z);// ось 30
|
||||||
|
myGLCD.setColor(45,112,56); |
||||||
|
myGLCD.drawLine(s+55, 270-180, s+400, 270-180);// ось 25
|
||||||
|
myGLCD.drawLine(s+55, 270-160, s+400, 270-160);// ось 20
|
||||||
|
myGLCD.drawLine(s+55, 270-120, s+400, 270-120);// ось 10
|
||||||
|
myGLCD.drawLine(s+55, 270-100, s+400, 270-100);// ось 5
|
||||||
|
myGLCD.drawLine(s+55, 270-140, s+400, 270-140);// ось 15
|
||||||
|
myGLCD.drawLine(s+55, 440-105-z, s+400, 440-105-z);// ось 70
|
||||||
|
myGLCD.drawLine(s+55, 440-90-z, s+400, 440-90-z);// ось 60
|
||||||
|
myGLCD.drawLine(s+55, 440-75-z, s+400, 440-75-z);// ось 50
|
||||||
|
myGLCD.drawLine(s+55, 440-60-z, s+400, 440-60-z);// ось 40
|
||||||
|
myGLCD.drawLine(s+55, 440-45-z, s+400, 440-45-z);// ось 30
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
// myGLCD.drawLine(s+55, 270-60, s+400, 270-60);// ось -5
|
||||||
|
// myGLCD.drawLine(s+55, 270-40, s+400, 270-40);// ось -10
|
||||||
|
// myGLCD.drawLine(s+55, 270-20, s+400, 270-20);// ось -15
|
||||||
|
myGLCD.drawLine(s+55, 440-135-z, s+400, 440-135-z);// ось 90
|
||||||
|
myGLCD.drawLine(s+55, 440-120-z, s+400, 440-120-z);// ось 80
|
||||||
|
myGLCD.setColor(255,75,29); |
||||||
|
myGLCD.drawLine(s+55, 270-240, s+400, 270-240);// ось 40
|
||||||
|
myGLCD.drawLine(s+55, 270-260, s+400, 270-260);// ось 45
|
||||||
|
|
||||||
|
|
||||||
|
byte k=0; |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
for (int i =80 ; i < 270; i = i+4) //температура шкала цифры
|
||||||
|
{
|
||||||
|
myGLCD.drawLine(s+55, 90+180-i, s+52, 90+180-i); |
||||||
|
myGLCD.drawLine(s+400, 90+180-i, s+403, 90+180-i); |
||||||
|
k=k+1; |
||||||
|
if((k==6)||(k==1))//верт метки tu td
|
||||||
|
{ |
||||||
|
if ((i/4-20)>29) |
||||||
|
{myGLCD.setColor(255,62,62); |
||||||
|
myGLCD.printNumI(i/4-20, s+5, 90+180-8-i); |
||||||
|
} |
||||||
|
if ((i/4-20)>0 && (i/4-20)<30) |
||||||
|
{myGLCD.setColor(10,255,60); |
||||||
|
myGLCD.printNumI(i/4-20, s+5, 90+180-8-i); |
||||||
|
} |
||||||
|
|
||||||
|
if ((i/4-20)<1) |
||||||
|
{myGLCD.setColor(35,173,255); |
||||||
|
myGLCD.printNumI(i/4-20, s+5, 90+180-8-i); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.drawLine(s+55, 90+180-i, s+55-9, 90+180-i); |
||||||
|
myGLCD.drawLine(s+400, 90+180-i, s+400+9, 90+180-i); |
||||||
|
k=1;} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
k=0; |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
for (int i =0 ; i < 150; i = i+3) //влажность
|
||||||
|
{ //myGLCD.drawLine(55, 440, 400, 440);//ось х давление
|
||||||
|
//myGLCD.drawLine(55, 10, 55, 450);// ось у
|
||||||
|
myGLCD.drawLine(s+55, 440-i-z, s+52, 440-i-z); |
||||||
|
k=k+1; |
||||||
|
|
||||||
|
if((k==6)||(k==1))//верт метки tu td
|
||||||
|
{ |
||||||
|
if (i>119) |
||||||
|
{myGLCD.setColor(35,173,255); |
||||||
|
myGLCD.printNumI(i*2/3, s+5, 440-8-i-z); |
||||||
|
} |
||||||
|
if (i>31 && i<119) |
||||||
|
{myGLCD.setColor(10,255,60); |
||||||
|
myGLCD.printNumI(i*2/3, s+5, 440-8-i-z); |
||||||
|
} |
||||||
|
|
||||||
|
if (i<31) |
||||||
|
{myGLCD.setColor(255,255,0); |
||||||
|
myGLCD.printNumI(i*2/3, s+5, 440-8-i-z); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.drawLine(s+55, 440-i-z, s+55-9, 440-i-z); |
||||||
|
k=1;} |
||||||
|
|
||||||
|
} |
||||||
|
//*************************************
|
||||||
|
// int z=80;
|
||||||
|
k=0; |
||||||
|
for (int i =0 ; i < 360; i = i+11) //гориз метки и шкала days
|
||||||
|
{ |
||||||
|
//for (byte n =0 ; n < 5; n = n++)
|
||||||
|
myGLCD.drawLine(s+55+i, 90+180-z, s+55+i, 90+180-z+5); |
||||||
|
myGLCD.drawLine(s+55+i, 440-z, s+55+i, 440+5-z); |
||||||
|
|
||||||
|
|
||||||
|
k=k+1; |
||||||
|
if((k==6)||(k==1)) |
||||||
|
{myGLCD.printNumI(i/11, s+55+i-12, 90+180+10-z); |
||||||
|
myGLCD.printNumI(i/11, s+55+i-12, 440+10-z); |
||||||
|
myGLCD.drawLine(s+55+i, 90+180-z, s+55+i, 90+180+9-z); |
||||||
|
myGLCD.drawLine(s+55+i, 440-z, s+55+i, 440+9-z); |
||||||
|
k=1;} |
||||||
|
} |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(255,62,62); |
||||||
|
myGLCD.print("T C" ,s+59, 10); |
||||||
|
myGLCD.print("T C" ,s+61, 10); |
||||||
|
myGLCD.print("T C" ,s+60, 11); |
||||||
|
myGLCD.print("T C" ,s+60, 9); |
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.print("T C" ,s+60, 10); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// myGLCD.setColor(10,255,60);
|
||||||
|
// myGLCD.print("750" ,352, 250-8);
|
||||||
|
// myGLCD.print("755" ,352, 230-8);
|
||||||
|
// myGLCD.print("760" ,352, 210-8);
|
||||||
|
// myGLCD.print("765" ,352, 190-8);
|
||||||
|
// myGLCD.print("770" ,352, 170-8);
|
||||||
|
// myGLCD.setColor(0,38,92);
|
||||||
|
// myGLCD.print("Pmm" ,353, 170-35);
|
||||||
|
// myGLCD.print("Pmm" ,351, 170-35);
|
||||||
|
// myGLCD.print("Pmm" ,352, 171-35);
|
||||||
|
// myGLCD.print("Pmm" ,352, 169-35);
|
||||||
|
// myGLCD.setColor(VGA_WHITE);
|
||||||
|
// myGLCD.print("Pmm" ,352, 170-35);
|
||||||
|
|
||||||
|
myGLCD.setColor(35,173,255);
|
||||||
|
myGLCD.print("H%" ,s+61, 290-z); |
||||||
|
myGLCD.print("H%" ,s+59, 290-z); |
||||||
|
myGLCD.print("H%" ,s+60, 291-z); |
||||||
|
myGLCD.print("H%" ,s+60, 289-z); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.print("H%" ,s+60, 290-z); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
//***************************************************************
|
||||||
|
void grafflm() |
||||||
|
{ |
||||||
|
boolean datm=1; |
||||||
|
boolean daty=1; |
||||||
|
int m=t.mon;//месяц
|
||||||
|
int ye=t.year; //год
|
||||||
|
// knopki******************************
|
||||||
|
byte dat16=0;//16:00 date yes or no
|
||||||
|
|
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255, 255, 0);//цвет
|
||||||
|
myGLCD.print("M" ,235, 395);//выделение месяца цветом 440 203
|
||||||
|
|
||||||
|
// myGLCD.setBackColor(8,101,192);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255, 255, 0);//цвет 440 243
|
||||||
|
myGLCD.print("Y" ,235, 435); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(275, 391, 400, 434-5);//рисуем синий пр-к M
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(275, 391, 400, 434-5);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(275, 431, 400, 474-5);//рисуем синий пр-к Y
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(275, 431, 400, 474-5);//прямоугольник с обводкой
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
|
||||||
|
if (mon1<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
|
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
myGLCD.print(">" ,312+63, 395); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(430, 391, 500, 434-5);//рисуем синий пр-к RS
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(430, 391, 500, 434-5);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92);
|
||||||
|
myGLCD.fillRoundRect(520, 391, 590, 434-5);//прямоугольник с обводкой OK
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(520, 391, 590, 434-5);//прямоугольник с обводкой OK
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92);
|
||||||
|
myGLCD.drawRoundRect(430, 431, 590, 474-5);//прямоугольник с обводкой OK
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(430, 431, 590, 474-5);//прямоугольник с обводкой OK
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
myGLCD.setColor(255, 97, 237);//цвет
|
||||||
|
myGLCD.print("QUIT" ,460, 435); |
||||||
|
myGLCD.setColor(255, 255, 255);//цвет
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************
|
||||||
|
graff: |
||||||
|
|
||||||
|
byte dm=31;// макс день месяца
|
||||||
|
if (m==2) |
||||||
|
dm=28; |
||||||
|
|
||||||
|
if ((m==4)||(m==6)||(m==9)||(m==11)) |
||||||
|
dm=30; |
||||||
|
|
||||||
|
if(ye==t.year)//проверка на наличае данных
|
||||||
|
{if(m==t.mon) |
||||||
|
{ dm=t.date-1; |
||||||
|
} |
||||||
|
} |
||||||
|
//*************************GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG*******************************************************
|
||||||
|
word work[31]={100,250,250,244,245,246,240,248,249,245,250,249,250,250,250,244,245,246,250,248,250,250,250,249,250,250,250,250,250,250,249};
|
||||||
|
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");//23:00 T=+27,8C Hu=33,2%
|
||||||
|
delay (100); |
||||||
|
name= stry[ye-2014]; |
||||||
|
|
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку год
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
name= strm[m-1]; |
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку месяц
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*************************************************************************
|
||||||
|
myFile.open("poliv.txt", O_READ); |
||||||
|
char s; |
||||||
|
char token[] = "date:";
|
||||||
|
char token1[] = "16:00";
|
||||||
|
int n1=0; |
||||||
|
int p=0;
|
||||||
|
int j=0;
|
||||||
|
int w=0; |
||||||
|
for (int d=0; d<dm ;d++){ |
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
//s=myFile.read();//пробел
|
||||||
|
w=10*(myFile.read()-48);//десятки даты
|
||||||
|
|
||||||
|
w=w+(myFile.read()-48);//единицы даты
|
||||||
|
|
||||||
|
|
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token1[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
dat16=1; |
||||||
|
for (j=0; j<8 ;j++) |
||||||
|
{ s=myFile.read();//пропуск 9 символов
|
||||||
|
//delay(10);
|
||||||
|
} |
||||||
|
work[w-1]=10*(myFile.read()-48);//десятки t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312-24, 10);
|
||||||
|
work[w-1]=work[w-1]+(myFile.read()-48);//единицы t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312+48, 10);
|
||||||
|
work[w-1]=work[w-1]*10; |
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}//while
|
||||||
|
if (dat16==0) |
||||||
|
{ |
||||||
|
if (w>1){ work[w-1]=work[w-2];} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
myGLCD.setColor(255, 0, 0); |
||||||
|
int y1; |
||||||
|
int y2; |
||||||
|
//****************Рисуем графики T***************************
|
||||||
|
|
||||||
|
// цвет графиа
|
||||||
|
if(colorgraf>3) |
||||||
|
colorgraf=0; |
||||||
|
if(colorgraf==0)//выбор цвета графика
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
if(colorgraf==1) |
||||||
|
myGLCD.setColor(35,173,255); |
||||||
|
if(colorgraf==2) |
||||||
|
myGLCD.setColor(255, 255, 0); |
||||||
|
if(colorgraf==3) |
||||||
|
myGLCD.setColor(10,255,60); |
||||||
|
for ( byte x =1 ; x < dm; x = x+1) //****************темп дома постр графика
|
||||||
|
{
|
||||||
|
y1=190-(work[x-1]*4/10); |
||||||
|
y2=190-(work[x]*4/10); |
||||||
|
myGLCD.drawLine(275+x*11, y1, 275+11*(x+1), y2);
|
||||||
|
myGLCD.drawLine(275+x*11, y1-1, 275+11*(x+1), y2-1);
|
||||||
|
|
||||||
|
} |
||||||
|
//********************************************************************************
|
||||||
|
//****************************влажность
|
||||||
|
strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; |
||||||
|
stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("flower");//23:00 T=+27,8C Hu=33,2%
|
||||||
|
delay (100); |
||||||
|
// name= stry[years1-2014];
|
||||||
|
name= stry[ye-2014];
|
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку год
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
name= strm[m-1]; |
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку месяц
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myFile.open("poliv.txt", O_READ); |
||||||
|
w=0; |
||||||
|
for (int d=0; d<dm ;d++){ |
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
|
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
//s=myFile.read();//пробел
|
||||||
|
|
||||||
|
w=10*(myFile.read()-48);//десятки даты
|
||||||
|
|
||||||
|
|
||||||
|
w=w+(myFile.read()-48);//единицы даты
|
||||||
|
|
||||||
|
|
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
dat16=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token1[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
dat16=1; |
||||||
|
s=myFile.read();//пропуск
|
||||||
|
s=myFile.read();//пропуск
|
||||||
|
s=myFile.read();//пропуск
|
||||||
|
|
||||||
|
work[w-1]=10*(myFile.read()-48);//десятки t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312-24, 250);
|
||||||
|
work[w-1]=work[w-1]+(myFile.read()-48);//единицы t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312+48, 250);
|
||||||
|
work[w-1]=work[w-1]*10; |
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dat16==0) |
||||||
|
{ |
||||||
|
if (w>1){ work[w-1]=work[w-2];} |
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
|
||||||
|
for ( byte x =1 ; x < dm; x = x+1) //******************************************влажность ул постр графика
|
||||||
|
{
|
||||||
|
y1=360-(work[x-1]*15/100); |
||||||
|
y2=360-(work[x]*15/100); |
||||||
|
myGLCD.drawLine(275+x*11, y1, 275+11*(x+1), y2);
|
||||||
|
myGLCD.drawLine(275+x*11, y1-1, 275+11*(x+1), y2-1);
|
||||||
|
} |
||||||
|
delay (100);
|
||||||
|
sd.chdir("/");
|
||||||
|
//****************************************************************************
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
|
||||||
|
if ((sec==0)||(sec==20)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==45) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*********************************TOUCH********************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
// myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
// myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
flower1(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((y>=400) && (y<=430)) //
|
||||||
|
{ |
||||||
|
if ((x>=280) && (x<=300))//<M
|
||||||
|
{datm=1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126);
|
||||||
|
|
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
//myGLCD.print(">" ,312+63, 395);
|
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
m=m-1; |
||||||
|
if (m==0) |
||||||
|
m=12; |
||||||
|
if(ye==t.year) |
||||||
|
{if(m>t.mon) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(ye<2016) |
||||||
|
{if(m<9) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (m<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
delay (300);
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=370) && (x<=390))//>M
|
||||||
|
{datm=1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126);
|
||||||
|
|
||||||
|
//myGLCD.print("<" ,312-32, 395);
|
||||||
|
myGLCD.print(">" ,312+63, 395); |
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
m=m+1; |
||||||
|
if (m==13) |
||||||
|
m=1; |
||||||
|
if(ye==t.year) |
||||||
|
{if(m>t.mon) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(ye<2016) |
||||||
|
{if(m<9) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (m<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
delay (300);
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print(">" ,312+63, 395);
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=435) && (x<=500))//RS
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
if(daty+datm==2)
|
||||||
|
{myGLCD.setColor(0,255,0); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
//GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
graflawer(); |
||||||
|
grafflm();
|
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
} |
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if ((x>=525) && (x<=590))//OK
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
if(daty+datm==2)
|
||||||
|
{myGLCD.setColor(0,255,0); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
delay(300); |
||||||
|
colorgraf++; |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
goto graff; |
||||||
|
} |
||||||
|
//*******GGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
} |
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=440) && (y<=470)) //
|
||||||
|
{ |
||||||
|
if ((x>=280) && (x<=300))//<Y
|
||||||
|
{daty=1; |
||||||
|
ye=ye-1; |
||||||
|
if(ye<2015) |
||||||
|
ye=2015; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
if((ye<2015) || (ye>t.year)) |
||||||
|
{ myGLCD.setColor(255,0,0); |
||||||
|
daty=0; |
||||||
|
} |
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
delay(300); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=370) && (x<=390))//>Y
|
||||||
|
{daty=1; |
||||||
|
ye=ye+1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
if((ye<2015) || (ye>t.year)) |
||||||
|
{ myGLCD.setColor(255,0,0); |
||||||
|
daty=0; |
||||||
|
} |
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
delay(300); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=435) && (x<=590))//QUIT
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(59, 251, 104);//цвет
|
||||||
|
myGLCD.print("QUIT" ,460, 435); |
||||||
|
delay(500); |
||||||
|
flower(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}//touch
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,681 @@ |
|||||||
|
void flower2() |
||||||
|
|
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("weat");//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("fl2.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 640, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
//**************************************************
|
||||||
|
myGLCD.setBackColor(VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(VGA_RED);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("+" ,60, 56); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont);
|
||||||
|
myGLCD.printNumI(tfl2 ,80, 46); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_AQUA);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("%" ,122, 410); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont); |
||||||
|
myGLCD.printNumI(vfl2 ,59, 385);
|
||||||
|
|
||||||
|
// myGLCD.setFont(Ubuntubold);
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
//myGLCD.printNumI(osv ,440, 43);
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(dfl2 ,65, 455);
|
||||||
|
myGLCD.print(":00",77+16, 455);
|
||||||
|
|
||||||
|
//********************************************************
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
//**************************************
|
||||||
|
// myGLCD.setColor(0,38,92);
|
||||||
|
// myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
// myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
// myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
// info();
|
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
|
||||||
|
graflawer(); |
||||||
|
grafflm2(); |
||||||
|
|
||||||
|
//******************************************************************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//***************************************************************
|
||||||
|
void grafflm2() |
||||||
|
{ |
||||||
|
boolean datm=1; |
||||||
|
boolean daty=1; |
||||||
|
int m=t.mon;//месяц
|
||||||
|
int ye=t.year; //год
|
||||||
|
// knopki******************************
|
||||||
|
byte dat16=0;//16:00 date yes or no
|
||||||
|
|
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255, 255, 0);//цвет
|
||||||
|
myGLCD.print("M" ,235, 395);//выделение месяца цветом 440 203
|
||||||
|
|
||||||
|
// myGLCD.setBackColor(8,101,192);
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255, 255, 0);//цвет 440 243
|
||||||
|
myGLCD.print("Y" ,235, 435); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(275, 391, 400, 434-5);//рисуем синий пр-к M
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(275, 391, 400, 434-5);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(275, 431, 400, 474-5);//рисуем синий пр-к Y
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(275, 431, 400, 474-5);//прямоугольник с обводкой
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
|
||||||
|
if (mon1<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
|
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
myGLCD.print(">" ,312+63, 395); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(430, 391, 500, 434-5);//рисуем синий пр-к RS
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(430, 391, 500, 434-5);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92);
|
||||||
|
myGLCD.fillRoundRect(520, 391, 590, 434-5);//прямоугольник с обводкой OK
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(520, 391, 590, 434-5);//прямоугольник с обводкой OK
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92);
|
||||||
|
myGLCD.drawRoundRect(430, 431, 590, 474-5);//прямоугольник с обводкой OK
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(430, 431, 590, 474-5);//прямоугольник с обводкой OK
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
myGLCD.setColor(255, 97, 237);//цвет
|
||||||
|
myGLCD.print("QUIT" ,460, 435); |
||||||
|
myGLCD.setColor(255, 255, 255);//цвет
|
||||||
|
|
||||||
|
|
||||||
|
//******************************************************************
|
||||||
|
graff2: |
||||||
|
|
||||||
|
byte dm=31;// макс день месяца
|
||||||
|
if (m==2) |
||||||
|
dm=28; |
||||||
|
|
||||||
|
if ((m==4)||(m==6)||(m==9)||(m==11)) |
||||||
|
dm=30; |
||||||
|
|
||||||
|
if(ye==t.year)//проверка на наличае данных
|
||||||
|
{if(m==t.mon) |
||||||
|
{ dm=t.date-1; |
||||||
|
} |
||||||
|
} |
||||||
|
//*************************GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG*******************************************************
|
||||||
|
word work[31]={100,250,250,244,245,246,240,248,249,245,250,249,250,250,250,244,245,246,250,248,250,250,250,249,250,250,250,250,250,250,249};
|
||||||
|
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");//23:00 T=+27,8C Hu=33,2%
|
||||||
|
delay (100); |
||||||
|
name= stry[ye-2014]; |
||||||
|
|
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку год
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
name= strm[m-1]; |
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку месяц
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*************************************************************************
|
||||||
|
myFile.open("poliv2.txt", O_READ); |
||||||
|
char s; |
||||||
|
char token[] = "date:";
|
||||||
|
char token1[] = "16:00";
|
||||||
|
int n1=0; |
||||||
|
int p=0;
|
||||||
|
int j=0;
|
||||||
|
int w=0; |
||||||
|
for (int d=0; d<dm ;d++){ |
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
//s=myFile.read();//пробел
|
||||||
|
w=10*(myFile.read()-48);//десятки даты
|
||||||
|
|
||||||
|
w=w+(myFile.read()-48);//единицы даты
|
||||||
|
|
||||||
|
|
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token1[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
dat16=1; |
||||||
|
for (j=0; j<8 ;j++) |
||||||
|
{ s=myFile.read();//пропуск 9 символов
|
||||||
|
//delay(10);
|
||||||
|
} |
||||||
|
work[w-1]=10*(myFile.read()-48);//десятки t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312-24, 10);
|
||||||
|
work[w-1]=work[w-1]+(myFile.read()-48);//единицы t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312+48, 10);
|
||||||
|
work[w-1]=work[w-1]*10; |
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}//while
|
||||||
|
if (dat16==0) |
||||||
|
{ |
||||||
|
if (w>1){ work[w-1]=work[w-2];} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
myGLCD.setColor(255, 0, 0); |
||||||
|
int y1; |
||||||
|
int y2; |
||||||
|
//****************Рисуем графики T***************************
|
||||||
|
|
||||||
|
// цвет графиа
|
||||||
|
if(colorgraf>3) |
||||||
|
colorgraf=0; |
||||||
|
if(colorgraf==0)//выбор цвета графика
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
if(colorgraf==1) |
||||||
|
myGLCD.setColor(35,173,255); |
||||||
|
if(colorgraf==2) |
||||||
|
myGLCD.setColor(255, 255, 0); |
||||||
|
if(colorgraf==3) |
||||||
|
myGLCD.setColor(10,255,60); |
||||||
|
for ( byte x =1 ; x < dm; x = x+1) //****************темп дома постр графика
|
||||||
|
{
|
||||||
|
y1=190-(work[x-1]*4/10); |
||||||
|
y2=190-(work[x]*4/10); |
||||||
|
myGLCD.drawLine(275+x*11, y1, 275+11*(x+1), y2);
|
||||||
|
myGLCD.drawLine(275+x*11, y1-1, 275+11*(x+1), y2-1);
|
||||||
|
|
||||||
|
} |
||||||
|
//********************************************************************************
|
||||||
|
//****************************влажность
|
||||||
|
strm = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; |
||||||
|
stry = {"2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024","2025","2026","2027","2028","2029","2030","2031","2032","2033","2034","2035"}; |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("flower");//23:00 T=+27,8C Hu=33,2%
|
||||||
|
delay (100); |
||||||
|
// name= stry[years1-2014];
|
||||||
|
name= stry[ye-2014];
|
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку год
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
name= strm[m-1]; |
||||||
|
if (!sd.chdir(name))//проверка наличая папки на флешке
|
||||||
|
{sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
delay (100); |
||||||
|
sd.chdir(name);// заходим в папку месяц
|
||||||
|
delay (100); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myFile.open("poliv2.txt", O_READ); |
||||||
|
w=0; |
||||||
|
for (int d=0; d<dm ;d++){ |
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
|
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
//s=myFile.read();//пробел
|
||||||
|
|
||||||
|
w=10*(myFile.read()-48);//десятки даты
|
||||||
|
|
||||||
|
|
||||||
|
w=w+(myFile.read()-48);//единицы даты
|
||||||
|
|
||||||
|
|
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
p=0; |
||||||
|
j=0; |
||||||
|
n1=0; |
||||||
|
dat16=0; |
||||||
|
while (j<165) { |
||||||
|
|
||||||
|
if (p==0){s = myFile.read();} |
||||||
|
if (s == token1[n1]) |
||||||
|
{s = myFile.read(); |
||||||
|
n1++; |
||||||
|
p=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{p=0; |
||||||
|
n1=0; |
||||||
|
} |
||||||
|
j++; |
||||||
|
if (n1==5){ |
||||||
|
dat16=1; |
||||||
|
s=myFile.read();//пропуск
|
||||||
|
s=myFile.read();//пропуск
|
||||||
|
s=myFile.read();//пропуск
|
||||||
|
|
||||||
|
work[w-1]=10*(myFile.read()-48);//десятки t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312-24, 250);
|
||||||
|
work[w-1]=work[w-1]+(myFile.read()-48);//единицы t
|
||||||
|
// myGLCD.printNumI( work[w-1], 312+48, 250);
|
||||||
|
work[w-1]=work[w-1]*10; |
||||||
|
j=167; |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dat16==0) |
||||||
|
{ |
||||||
|
if (w>1){ work[w-1]=work[w-2];} |
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
|
||||||
|
for ( byte x =1 ; x < dm; x = x+1) //******************************************влажность ул постр графика
|
||||||
|
{
|
||||||
|
y1=360-(work[x-1]*15/100); |
||||||
|
y2=360-(work[x]*15/100); |
||||||
|
myGLCD.drawLine(275+x*11, y1, 275+11*(x+1), y2);
|
||||||
|
myGLCD.drawLine(275+x*11, y1-1, 275+11*(x+1), y2-1);
|
||||||
|
} |
||||||
|
delay (100);
|
||||||
|
sd.chdir("/");
|
||||||
|
//****************************************************************************
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
|
||||||
|
if ((sec==0)||(sec==20)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==45) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*********************************TOUCH********************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
// myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
// myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
flower2(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((y>=400) && (y<=430)) //
|
||||||
|
{ |
||||||
|
if ((x>=280) && (x<=300))//<M
|
||||||
|
{datm=1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126);
|
||||||
|
|
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
//myGLCD.print(">" ,312+63, 395);
|
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
m=m-1; |
||||||
|
if (m==0) |
||||||
|
m=12; |
||||||
|
if(ye==t.year) |
||||||
|
{if(m>t.mon) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(ye<2016) |
||||||
|
{if(m<9) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (m<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
delay (300);
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print("<" ,312-32, 395);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=370) && (x<=390))//>M
|
||||||
|
{datm=1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(218,231,250);// myGLCD.setColor(31,70,126);
|
||||||
|
|
||||||
|
//myGLCD.print("<" ,312-32, 395);
|
||||||
|
myGLCD.print(">" ,312+63, 395); |
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
m=m+1; |
||||||
|
if (m==13) |
||||||
|
m=1; |
||||||
|
if(ye==t.year) |
||||||
|
{if(m>t.mon) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
if(ye<2016) |
||||||
|
{if(m<9) |
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
datm=0; |
||||||
|
} |
||||||
|
} |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
if (m<10) |
||||||
|
{myGLCD.print("0" ,312, 395); |
||||||
|
myGLCD.printNumI(m, 312+24, 395); |
||||||
|
} |
||||||
|
else |
||||||
|
myGLCD.printNumI(m, 312, 395);
|
||||||
|
delay (300);
|
||||||
|
myGLCD.setColor(31,70,126); |
||||||
|
myGLCD.print(">" ,312+63, 395);
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=435) && (x<=500))//RS
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
if(daty+datm==2)
|
||||||
|
{myGLCD.setColor(0,255,0); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
//GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
graflawer(); |
||||||
|
grafflm2();
|
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
} |
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("RS" ,440, 395); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if ((x>=525) && (x<=590))//OK
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
if(daty+datm==2)
|
||||||
|
{myGLCD.setColor(0,255,0); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
delay(300); |
||||||
|
colorgraf++; |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
goto graff2; |
||||||
|
} |
||||||
|
//*******GGGGGGGGGGGGGGGGGGGGGGGGG
|
||||||
|
|
||||||
|
|
||||||
|
else
|
||||||
|
{myGLCD.setColor(255,0,0); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
} |
||||||
|
delay(300); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.print("OK" ,530, 395); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=440) && (y<=470)) //
|
||||||
|
{ |
||||||
|
if ((x>=280) && (x<=300))//<Y
|
||||||
|
{daty=1; |
||||||
|
ye=ye-1; |
||||||
|
if(ye<2015) |
||||||
|
ye=2015; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
if((ye<2015) || (ye>t.year)) |
||||||
|
{ myGLCD.setColor(255,0,0); |
||||||
|
daty=0; |
||||||
|
} |
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
delay(300); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=370) && (x<=390))//>Y
|
||||||
|
{daty=1; |
||||||
|
ye=ye+1; |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
if((ye<2015) || (ye>t.year)) |
||||||
|
{ myGLCD.setColor(255,0,0); |
||||||
|
daty=0; |
||||||
|
} |
||||||
|
myGLCD.printNumI(ye, 292, 435);
|
||||||
|
delay(300); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=435) && (x<=590))//QUIT
|
||||||
|
{myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setColor(59, 251, 104);//цвет
|
||||||
|
myGLCD.print("QUIT" ,460, 435); |
||||||
|
delay(500); |
||||||
|
flower(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
}//touch
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,151 @@ |
|||||||
|
void flower3() |
||||||
|
|
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("weat");//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("fl3.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 640, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
//**************************************************
|
||||||
|
myGLCD.setBackColor(VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(VGA_RED);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("+" ,60, 56); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont);
|
||||||
|
myGLCD.printNumI(tfl3 ,80, 46); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_AQUA);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("%" ,122, 410); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont); |
||||||
|
myGLCD.printNumI(vfl3 ,59, 385);
|
||||||
|
|
||||||
|
// myGLCD.setFont(Ubuntubold);
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
//myGLCD.printNumI(osv ,440, 43);
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(dfl3 ,65, 455);
|
||||||
|
myGLCD.print(":00",77+16, 455);
|
||||||
|
|
||||||
|
//********************************************************
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
//**************************************
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
info(); |
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
kalend(); |
||||||
|
clc(); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
|
||||||
|
if ((sec==0)||(sec==20)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==42) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==55) || (sec==25) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//*********************************TOUCH********************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print("x= " , 650, 32); |
||||||
|
myGLCD.printNumI(x , 700, 32);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print("y= " ,650 , 72); |
||||||
|
myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
flower3(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
flower(); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
}//touch
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,186 @@ |
|||||||
|
void flower() |
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
sd.chdir("weat");//установка раб директории
|
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("fl.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 307200; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>639){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 640, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
//**************************************************
|
||||||
|
myGLCD.setBackColor(VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(VGA_RED);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("+" ,60, 56); |
||||||
|
myGLCD.print("+" ,260, 56); |
||||||
|
myGLCD.print("+" ,522, 56); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont);
|
||||||
|
myGLCD.printNumI(tfl ,80, 46); |
||||||
|
myGLCD.printNumI(tfl2 ,280, 46); |
||||||
|
myGLCD.printNumI(tfl3 ,542, 46); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_AQUA);
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.print("%" ,122, 410); |
||||||
|
myGLCD.print("%" ,318, 410); |
||||||
|
myGLCD.print("%" ,565, 410); |
||||||
|
|
||||||
|
myGLCD.setFont(SevenSegNumFont); |
||||||
|
myGLCD.printNumI(vfl ,59, 385); |
||||||
|
myGLCD.printNumI(vfl2 ,255, 385);
|
||||||
|
myGLCD.printNumI(vfl3 ,500, 385);
|
||||||
|
|
||||||
|
myGLCD.setFont(Ubuntubold); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(osv ,443, 43);
|
||||||
|
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.printNumI(dfl ,65, 455);
|
||||||
|
myGLCD.printNumI(dfl2 ,261, 455);
|
||||||
|
myGLCD.printNumI(dfl3 ,506, 455);
|
||||||
|
myGLCD.print(":00",77+16, 455);
|
||||||
|
myGLCD.print(":00",273+16, 455);
|
||||||
|
myGLCD.print(":00",518+16, 455);
|
||||||
|
|
||||||
|
//********************************************************
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (50); |
||||||
|
//**************************************
|
||||||
|
if (rawp==1) |
||||||
|
{delay (1000); |
||||||
|
rawp=0; |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
info(); |
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
// kalend();
|
||||||
|
clc(); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
sec=t.sec; |
||||||
|
|
||||||
|
if ((sec==0)||(sec==20)||(sec==40)) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==45) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//*********************************TOUCH********************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
// myGLCD.setBackColor(255,255,255);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
// myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
// myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
if ((y>=130) && (y<=450)) // Upper row
|
||||||
|
{ if ((x>=40) && (x<=200)) |
||||||
|
{ flower1(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=230) && (x<=400)) |
||||||
|
{ flower2(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=480) && (x<=620)) |
||||||
|
{ flower3(); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
flower(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
}//touch
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -0,0 +1,160 @@ |
|||||||
|
void Serialread() |
||||||
|
{ |
||||||
|
|
||||||
|
char c ; |
||||||
|
int xt, yt; |
||||||
|
int x1, y1; |
||||||
|
bool ter = 0; |
||||||
|
x1 = 30; |
||||||
|
y1 = 40; |
||||||
|
|
||||||
|
myGLCD.fillScr(0, 0, 0); |
||||||
|
// myGLCD.fillScr(BIRD_BG);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(VGA_BLACK); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.print("SERIAL 9600", CENTER, 10); |
||||||
|
myGLCD.setColor(0, 0, 255); |
||||||
|
|
||||||
|
myGLCD.fillRect(20, 30, 390, 450); //1 ter
|
||||||
|
myGLCD.fillRect(410, 30, 780, 450); //2 ter
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawRect(25, 35, 385, 445);//1ter obv
|
||||||
|
myGLCD.drawRect(415, 35, 775, 445);//2 ter obv
|
||||||
|
myGLCD.setBackColor(0, 0, 255); |
||||||
|
digitalWrite(18, LOW); |
||||||
|
delay(3000); |
||||||
|
digitalWrite(18, HIGH);//reset WIFI
|
||||||
|
myGLCD.print(" reset " , 280, 457); |
||||||
|
delay(5000); |
||||||
|
myGLCD.print(" redy " , 280, 457); |
||||||
|
while (1) |
||||||
|
{ |
||||||
|
//*********** T O U C H ********************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
{ //myGLCD.fillScr(0, 0, 0);
|
||||||
|
myTouch.read(); |
||||||
|
xt = myTouch.getX(); |
||||||
|
yt = myTouch.getY(); |
||||||
|
// Serial.print("xt=");
|
||||||
|
// Serial.println(xt);
|
||||||
|
// Serial.print("yt=");
|
||||||
|
// Serial.println(yt);
|
||||||
|
myGLCD.drawPixel(xt, yt); |
||||||
|
if ((xt >= 600) && (xt <= 800)) // Upper row
|
||||||
|
{ if ((yt >= 0) && (yt <= 30)) menu(); // Exit
|
||||||
|
if ((yt >= 50) && (yt <= 150)) |
||||||
|
{ Serial2.print("7"); // Exit
|
||||||
|
myGLCD.print(" touch 7 " , 280, 457); |
||||||
|
delay(1000); |
||||||
|
} |
||||||
|
if ((yt >= 200) && (yt < 300)) |
||||||
|
{ Serial2.print("1");; // Exit
|
||||||
|
myGLCD.print(" touch 1 " , 280, 457); |
||||||
|
delay(1000); |
||||||
|
} |
||||||
|
if ((yt >= 350) && (yt < 400)) |
||||||
|
{ Serial2.print("2");; // Exit
|
||||||
|
myGLCD.print(" touch 2 " , 280, 457); |
||||||
|
delay(1000); |
||||||
|
} |
||||||
|
} |
||||||
|
if ((xt >= 0) && (xt <= 100)) // Upper row
|
||||||
|
{ //if ((yt >= 0) && (yt <= 30)) menu(); // Exit
|
||||||
|
if ((yt >= 50) && (yt <= 150)) |
||||||
|
{ //Serial2.print("7");; // Exit
|
||||||
|
digitalWrite(18, LOW); |
||||||
|
delay(3000); |
||||||
|
digitalWrite(18, HIGH);//reset WIFI
|
||||||
|
myGLCD.print(" reset " , 280, 457); |
||||||
|
//delay(5000);
|
||||||
|
} |
||||||
|
if ((yt >= 200) && (yt < 300)) |
||||||
|
{ |
||||||
|
myGLCD.print(" touch " , 280, 457); |
||||||
|
} |
||||||
|
if ((yt >= 350) && (yt < 400)) |
||||||
|
{ |
||||||
|
myGLCD.print(" touch " , 280, 457); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
//delay(500);
|
||||||
|
if (Serial2.available()) { |
||||||
|
|
||||||
|
c = Serial2.read(); |
||||||
|
|
||||||
|
if (c == '\r') |
||||||
|
{ |
||||||
|
|
||||||
|
} |
||||||
|
else if (c == '\n') |
||||||
|
{ y1 = y1 + 20; |
||||||
|
|
||||||
|
if (y1 > 430) |
||||||
|
{ y1 = 40; |
||||||
|
if (ter == 0) |
||||||
|
{ myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.fillRect(410, 30, 780, 450); //2 ter
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawRect(415, 35, 775, 445); |
||||||
|
// myGLCD.print(String(c) ,420, y1);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.fillRect(20, 30, 390, 450); //1 ter
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawRect(25, 35, 385, 445);//1ter obv
|
||||||
|
// myGLCD.print(String(c) ,30, 40);
|
||||||
|
} |
||||||
|
ter = !ter; |
||||||
|
} |
||||||
|
if (ter == 0)x1 = 30; |
||||||
|
if (ter == 1)x1 = 420; |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print(String(c) , x1, y1); |
||||||
|
x1 = x1 + 15; |
||||||
|
if (ter == 0) |
||||||
|
{ if (x1 > 365) |
||||||
|
{ x1 = 30; |
||||||
|
y1 = y1 + 20; |
||||||
|
} |
||||||
|
if (y1 > 430) |
||||||
|
{ y1 = 40; |
||||||
|
myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.fillRect(410, 30, 780, 450); //2 ter
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawRect(415, 35, 775, 445); |
||||||
|
ter = 1; |
||||||
|
//myGLCD.print(String(c) ,420, y1);
|
||||||
|
x1 = 420; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ if (x1 > 755) |
||||||
|
{ x1 = 420; |
||||||
|
y1 = y1 + 20; |
||||||
|
} |
||||||
|
if (y1 > 430) |
||||||
|
{ y1 = 40; |
||||||
|
myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.fillRect(20, 30, 390, 450); //1 ter
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawRect(25, 35, 385, 445);//1ter obv
|
||||||
|
ter = 0; |
||||||
|
// myGLCD.print(String(c) ,30, y1);
|
||||||
|
x1 = 30; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,341 @@ |
|||||||
|
|
||||||
|
// This program requires the UTFT library.
|
||||||
|
|
||||||
|
#define imagedatatype unsigned short |
||||||
|
//#include <UTFT_Buttons.h>
|
||||||
|
#include <UTouch.h> |
||||||
|
#include <UTFT.h> |
||||||
|
//#include <UTFT_tinyFAT.h>
|
||||||
|
#include <SdFat.h> |
||||||
|
//#include <SdFatUtil.h>
|
||||||
|
SdFat sd; |
||||||
|
SdFile myFile; |
||||||
|
//#include <Time.h>
|
||||||
|
//#include <rtc_clock.h>
|
||||||
|
#include <MP1090S.h> |
||||||
|
#include <Wire.h> |
||||||
|
//RTC_clock rtc_clock(XTAL);
|
||||||
|
|
||||||
|
//*********************RTC*************************************************************
|
||||||
|
#include <DS3231.h> |
||||||
|
// Init the DS3231 using the hardware interface
|
||||||
|
DS3231 rtc(A2, A3); |
||||||
|
|
||||||
|
// Init a Time-data structure
|
||||||
|
Time t; |
||||||
|
|
||||||
|
|
||||||
|
//**************BMP085****************************************************************
|
||||||
|
#define BMP085_ADDRESS 0x77 // I2C address of BMP085
|
||||||
|
|
||||||
|
const unsigned char OSS = 0; // Oversampling Setting
|
||||||
|
|
||||||
|
//float temperatur;
|
||||||
|
float pressure; |
||||||
|
boolean rawp=0; |
||||||
|
// Calibration values of BMP085:
|
||||||
|
short ac1; |
||||||
|
short ac2;
|
||||||
|
short ac3;
|
||||||
|
unsigned short ac4; |
||||||
|
unsigned short ac5; |
||||||
|
unsigned short ac6; |
||||||
|
short b1;
|
||||||
|
short b2; |
||||||
|
short mb; |
||||||
|
short mc; |
||||||
|
short md; |
||||||
|
long b5;
|
||||||
|
// temul[24]max t
|
||||||
|
// temul[25]min t
|
||||||
|
//*****************************************************************************
|
||||||
|
word temdom[24]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249}; |
||||||
|
word temul[26]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249,490,152};// max t=49.0 min 15.2
|
||||||
|
word pres[24]={756,754,760,764,765,766,770,768,759,755,750,749,756,754,760,764,765,766,770,768,759,755,750,749}; |
||||||
|
word time1[28]={1000,1100,1200,1300,1400,1500,1600,1700,1800,1900,2000,2100,2200,2300,0,100,200,300,400,500,600,700,800,900,16081,12004,20021,6454};//max 16.08.14 12:00 min 2.02.14 6:45
|
||||||
|
word hug[24]={756,754,760,764,765,766,770,768,759,755,750,749,756,754,760,764,765,766,770,768,759,755,750,749}; |
||||||
|
byte h[24]={25,25,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,25,25}; |
||||||
|
byte sun[24]={0,0,0,0,0,0,0,0,20,20,20,20,20,20,20,20,20,20,20,20,20,0,0,0}; |
||||||
|
word t1[24]={201,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word t2[24]={202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word t3[24]={203,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word t4[24]={204,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word t5[24]={205,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202,202}; |
||||||
|
word bat[5]={300,300,300,300,300}; |
||||||
|
byte h1[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
byte h2[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
byte h3[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
byte h4[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
byte h5[24]={10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10}; |
||||||
|
//word temul[24]={256,254,260,264,265,266,270,268,259,255,250,249,256,254,260,264,265,266,270,268,259,255,250,249};
|
||||||
|
//*********************************************************************************
|
||||||
|
|
||||||
|
extern uint8_t SevenSegNumFont[]; |
||||||
|
extern uint8_t SmallFont[]; |
||||||
|
extern uint8_t BigFont[]; |
||||||
|
|
||||||
|
extern uint8_t Ubuntubold[]; |
||||||
|
|
||||||
|
|
||||||
|
extern imagedatatype aandelen[]; |
||||||
|
extern imagedatatype fotos[]; |
||||||
|
extern imagedatatype instellingen[]; |
||||||
|
extern imagedatatype radio[]; |
||||||
|
extern imagedatatype klok[]; |
||||||
|
extern imagedatatype cl[]; |
||||||
|
extern imagedatatype pr[]; |
||||||
|
extern imagedatatype le[]; |
||||||
|
extern imagedatatype xf[]; |
||||||
|
extern imagedatatype ad[]; |
||||||
|
extern imagedatatype mi[]; |
||||||
|
extern imagedatatype jar[]; |
||||||
|
extern imagedatatype wer[]; |
||||||
|
extern imagedatatype open[];//40
|
||||||
|
extern imagedatatype del[];//40
|
||||||
|
extern imagedatatype flr[];//40
|
||||||
|
extern imagedatatype ints[];//40
|
||||||
|
extern imagedatatype clokk[];//40
|
||||||
|
extern imagedatatype dom1[]; |
||||||
|
byte volume=7; |
||||||
|
byte rad=0; |
||||||
|
long StationFrequency; |
||||||
|
int vetzav;//napr vetra
|
||||||
|
int vetczav;//skorost vetra
|
||||||
|
int vetdzav;//skorost vetra dr
|
||||||
|
int preszav; |
||||||
|
int vet;//napr vetra
|
||||||
|
int vetc;//skorost vetra
|
||||||
|
int vetd;//skorost vetra dr
|
||||||
|
byte q=1; |
||||||
|
byte hour1; |
||||||
|
byte hourp;//время пропуска данных massiv 623
|
||||||
|
byte dd=0;// флаг перехода времени через 00
|
||||||
|
byte min1; |
||||||
|
byte sec; |
||||||
|
byte date; |
||||||
|
byte mon; |
||||||
|
word year1; |
||||||
|
byte dow ; |
||||||
|
byte night; |
||||||
|
int clockCenterX=300; |
||||||
|
int clockCenterY=230; |
||||||
|
int oldsec=0; |
||||||
|
char* str[] = {"MON","TUE","WED","THU","FRI","SAT","SUN"}; |
||||||
|
const int chipSelect = 10; |
||||||
|
byte ptoday=0;//погода сегодня 0-солн 1-перемен обл 2-пасмурно 3-дождь 4- снег 5- туман 6-гроза
|
||||||
|
byte pzav=0; //pogoda zavtra
|
||||||
|
byte tu; |
||||||
|
//**********************************
|
||||||
|
byte ntdat;//номер датчика
|
||||||
|
byte zndat;//знак температуры 0+
|
||||||
|
int hourd1;//время прихода данных час
|
||||||
|
int mind1;//мин
|
||||||
|
int hourd2=2;//время прихода данных час
|
||||||
|
int mind2=2;//мин
|
||||||
|
int hourd3;//время прихода данных час
|
||||||
|
int mind3;//мин
|
||||||
|
int hourd4=4;//время прихода данных час
|
||||||
|
int mind4=4;//мин
|
||||||
|
int hourd5=5;//время прихода данных час
|
||||||
|
int mind5=5;//мин
|
||||||
|
boolean fh=0;// флаг данных одного часа записываются данные в файл только один раз в час
|
||||||
|
|
||||||
|
int hourdu=77;//время прихода данных час
|
||||||
|
int mindu=77;//мин
|
||||||
|
|
||||||
|
word h11=100; |
||||||
|
word h12=100; |
||||||
|
word h13=100; |
||||||
|
word h14=100; |
||||||
|
word h15=100; |
||||||
|
word t11=202; |
||||||
|
word t12=202; |
||||||
|
word t13=202; |
||||||
|
word t14=202; |
||||||
|
word t15=202; |
||||||
|
//********************************************
|
||||||
|
byte tud; |
||||||
|
byte hu; |
||||||
|
byte hud; |
||||||
|
int volt; |
||||||
|
byte zn; |
||||||
|
byte znzav; |
||||||
|
byte tuzav; |
||||||
|
byte tudzav; |
||||||
|
unsigned long currentMillis = millis(); |
||||||
|
unsigned long previousMillis = 0;
|
||||||
|
int tab=0; |
||||||
|
boolean graf=0; |
||||||
|
byte colorgraf=0; |
||||||
|
byte mon1; |
||||||
|
word years1; |
||||||
|
byte days1; |
||||||
|
int w=0;//счетчик строк при чтении из файла
|
||||||
|
String bufer=""; |
||||||
|
char* name;
|
||||||
|
boolean fa=0;//флаг изменения макс темп
|
||||||
|
boolean fi=0;//флаг изменения мин темп
|
||||||
|
boolean bt=0;//флаг показа барометра
|
||||||
|
//boolean priemt=0;//флаг приема данных
|
||||||
|
long interval; // interval at which to blink (milliseconds)
|
||||||
|
|
||||||
|
//UTFT myGLCD(ITDB50,38,39,40,41); // Remember to change the model parameter to suit your display module!
|
||||||
|
UTFT myGLCD(TFT01_70,38,39,40,41); |
||||||
|
UTouch myTouch(42,43,44,45,46);//TCLK, TCS, TDIN, TDOUT и IRQ.Папа
|
||||||
|
//UTouch myTouch(59,61,60,15,14);//TCLK, TCS, TDIN, TDOUT и IRQ.Вова
|
||||||
|
//UTouch myTouch(19,16,17,15,14);//TCLK, TCS, TDIN, TDOUT и IRQ.Вова
|
||||||
|
//UTFT_Buttons myButtons(&myGLCD, &myTouch);
|
||||||
|
//int x,y;
|
||||||
|
//UTFT_tinyFAT myFiles(&myGLCD);
|
||||||
|
|
||||||
|
unsigned short pic1[0x320]; |
||||||
|
|
||||||
|
|
||||||
|
int color = 0; |
||||||
|
word colorlist[] = {VGA_WHITE, VGA_BLACK, VGA_RED, VGA_BLUE, VGA_GREEN, VGA_FUCHSIA, VGA_YELLOW, VGA_AQUA}; |
||||||
|
int bsize = 4; |
||||||
|
//unsigned short pic2[0x6400];
|
||||||
|
//unsigned short pic3[0x6400];
|
||||||
|
byte brightness=0; |
||||||
|
byte br; |
||||||
|
byte constbr=100; |
||||||
|
boolean c=0; |
||||||
|
boolean fcl=0;//флаг закрытия файла
|
||||||
|
|
||||||
|
// int pressed_button;
|
||||||
|
boolean default_colors = true; |
||||||
|
|
||||||
|
boolean fsec=1; |
||||||
|
//**************************DHT11**********************************
|
||||||
|
//#include "DHT.h"
|
||||||
|
//#define DHTPIN 3 // what pin we're connected to
|
||||||
|
//#define DHTTYPE DHT22 // DHT 22 (AM2302)
|
||||||
|
//int humidity=50;
|
||||||
|
//DHT dht(DHTPIN, DHTTYPE);
|
||||||
|
int tdc=20; |
||||||
|
int tdd=0; |
||||||
|
int hdc=50; |
||||||
|
int hdd=0; |
||||||
|
//**************************************************************
|
||||||
|
//#define SSID "VOVA-47" // введите ваш SSID
|
||||||
|
//#define PASS "vovak26102003" // введите ваш пароль
|
||||||
|
//#define DST_IP "188.226.224.148" //api.openweathermap.org
|
||||||
|
boolean raw1=0; |
||||||
|
byte wifi=0; |
||||||
|
boolean fwifi=1; |
||||||
|
byte wifih=10;// час обновления данных
|
||||||
|
byte wifim=15;// минуты
|
||||||
|
//****************************************************************
|
||||||
|
int per=1;//номер передачи
|
||||||
|
//****************************************
|
||||||
|
int hour9; |
||||||
|
int min9; |
||||||
|
int t9; |
||||||
|
int h9; |
||||||
|
int osv9; |
||||||
|
boolean zn9=0; |
||||||
|
//****************************************
|
||||||
|
int tfl=25;// temp flower
|
||||||
|
int vfl=50;// vlaga flower
|
||||||
|
int osv=37;// svet flower
|
||||||
|
int dfl=12;// time flower
|
||||||
|
|
||||||
|
int tfl2=26;// temp flower
|
||||||
|
int vfl2=55;// vlaga flower
|
||||||
|
int dfl2=13;// time flower
|
||||||
|
|
||||||
|
int tfl3=27;// temp flower
|
||||||
|
int vfl3=52;// vlaga flower
|
||||||
|
int dfl3=14;// time flower
|
||||||
|
|
||||||
|
//************************************
|
||||||
|
|
||||||
|
void setup() |
||||||
|
{
|
||||||
|
rtc.begin(); |
||||||
|
Wire.begin(); |
||||||
|
Serial.begin(9600); // скорость обмена по уарт
|
||||||
|
|
||||||
|
Serial3.begin(9600); // скорость обмена по уарт
|
||||||
|
// delay(200);
|
||||||
|
Serial2.begin(9600); // скорость обмена по уарт WIFI
|
||||||
|
//Serial2.begin(115200); // скорость обмена по уарт WIFI
|
||||||
|
delay(1000); |
||||||
|
Serial2.setTimeout(5000); |
||||||
|
bmp085Calibration(); |
||||||
|
delay(1000); |
||||||
|
pinMode(65, OUTPUT);
|
||||||
|
digitalWrite(65, LOW);
|
||||||
|
Serial3.print(1);
|
||||||
|
|
||||||
|
pinMode(18, OUTPUT);// reset WIFI
|
||||||
|
digitalWrite(18, LOW); |
||||||
|
delay(100); |
||||||
|
digitalWrite(18, HIGH); |
||||||
|
pinMode(53, OUTPUT);// reset nrf
|
||||||
|
digitalWrite(53, LOW); |
||||||
|
delay(100); |
||||||
|
digitalWrite(53, HIGH); |
||||||
|
// dumpRegisters();
|
||||||
|
//dps.dumpCalData();
|
||||||
|
// uart();
|
||||||
|
pinMode(12, OUTPUT); |
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, 0); |
||||||
|
|
||||||
|
delay(800); // catch Due reset problem
|
||||||
|
pinMode(10, OUTPUT); |
||||||
|
myGLCD.InitLCD(); |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
myGLCD.fillScr(VGA_BLUE); |
||||||
|
//sd.begin(chipSelect, SPI_FULL_SPEED );
|
||||||
|
sd.begin(chipSelect, SPI_HALF_SPEED ); |
||||||
|
// file system
|
||||||
|
SdFat sd; |
||||||
|
|
||||||
|
myTouch.InitTouch(); |
||||||
|
myTouch.setPrecision(PREC_HI); |
||||||
|
// dht.begin();
|
||||||
|
dtu21(); |
||||||
|
// rtc_clock.init();
|
||||||
|
//readmasclok();
|
||||||
|
readmasrab();
|
||||||
|
//// rtc.setTime(12, 39, 0); // Set the time to 12:00:00 (24hr format)
|
||||||
|
//rtc.setDate(29, 11, 2015); // Set the date to January 1st, 2014
|
||||||
|
//rtc.setDOW(THURSDAY);
|
||||||
|
|
||||||
|
t = rtc.getTime(); |
||||||
|
years1=t.year; |
||||||
|
days1=t.date; |
||||||
|
mon1=t.mon; |
||||||
|
// dow=calcDOW(days1, mon1, years1);
|
||||||
|
// rtc.setDOW(dow);
|
||||||
|
dow=t.dow ; |
||||||
|
hour1=t.hour; |
||||||
|
min1=t.min;
|
||||||
|
delay(100); |
||||||
|
|
||||||
|
// myButtons.setTextFont(BigFont);
|
||||||
|
// myButtons.setSymbolFont(Dingbats1_XL);
|
||||||
|
//dtu21();
|
||||||
|
// esp8266();
|
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, br); |
||||||
|
} |
||||||
|
|
||||||
|
//myFiles.loadBitmap(0, 0, 320, 240, "33.raw");
|
||||||
|
|
||||||
|
void loop() |
||||||
|
{ |
||||||
|
if (t.date==0) |
||||||
|
{ |
||||||
|
setClock(); |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
menu(); |
||||||
|
} |
||||||
@ -0,0 +1,529 @@ |
|||||||
|
|
||||||
|
|
||||||
|
void drawDisplay() |
||||||
|
{ |
||||||
|
//t = rtc.getTime();
|
||||||
|
// t.hour=rtc_clock.get_hours();
|
||||||
|
// t.min=rtc_clock.get_minutes()
|
||||||
|
// sec=t.sec;
|
||||||
|
t = rtc.getTime(); |
||||||
|
min1= t.min; |
||||||
|
hour1=t.hour; |
||||||
|
drawSec(t.sec); |
||||||
|
oldsec=t.sec; |
||||||
|
if (t.sec==0) |
||||||
|
{ |
||||||
|
if(( t.hour>5)&&( t.hour<7)&&(t.min>29)) |
||||||
|
{night=0; |
||||||
|
savefld();//запись новой даты в файлы полива цветов
|
||||||
|
} |
||||||
|
else |
||||||
|
{night=1; |
||||||
|
} |
||||||
|
|
||||||
|
drawMin(t.min); |
||||||
|
drawHour(t.hour, t.min); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
// myGLCD.print(rtc_clock.get_hours(), clockCenterX+92+111+32, clockCenterY-8-20);
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(192, 192, 255); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255,255, 255); |
||||||
|
|
||||||
|
}
|
||||||
|
if (t.hour<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+340, clockCenterY-8-20); |
||||||
|
myGLCD.printNumI(t.hour, clockCenterX+340+32, clockCenterY-8-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.hour,clockCenterX+340, clockCenterY-8-20); |
||||||
|
} |
||||||
|
if (t.min<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+340+96, clockCenterY-8-20); |
||||||
|
myGLCD.printNumI(t.min, clockCenterX+340+128, clockCenterY-8-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.min, clockCenterX+340+96, clockCenterY-8-20); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
if (q==1) |
||||||
|
{ drawMin(t.min); |
||||||
|
drawHour(t.hour, t.min); |
||||||
|
printDate(); |
||||||
|
} |
||||||
|
if( (hour1==0) && (min1==0)) |
||||||
|
{
|
||||||
|
printDate(); |
||||||
|
} |
||||||
|
} |
||||||
|
//****************************************************************************
|
||||||
|
void drawMark(int h) |
||||||
|
{ |
||||||
|
float x1, y1, x2, y2; |
||||||
|
|
||||||
|
h=h*30; |
||||||
|
h=h+270; |
||||||
|
|
||||||
|
x1=2*110*cos(h*0.0175); |
||||||
|
y1=2*110*sin(h*0.0175); |
||||||
|
x2=2*100*cos(h*0.0175); |
||||||
|
y2=2*100*sin(h*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
} |
||||||
|
|
||||||
|
void drawSec(int s) |
||||||
|
{ |
||||||
|
float x1, y1, x2, y2; |
||||||
|
int ps = s-1; |
||||||
|
|
||||||
|
myGLCD.setColor(0, 0, 0); |
||||||
|
if (ps==-1) |
||||||
|
ps=59; |
||||||
|
ps=ps*6; |
||||||
|
ps=ps+270; |
||||||
|
|
||||||
|
x1=2*95*cos(ps*0.0175); |
||||||
|
y1=2*95*sin(ps*0.0175); |
||||||
|
x2=2*80*cos(ps*0.0175); |
||||||
|
y2=2*80*sin(ps*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
|
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
s=s*6; |
||||||
|
s=s+270; |
||||||
|
|
||||||
|
x1=2*95*cos(s*0.0175); |
||||||
|
y1=2*95*sin(s*0.0175); |
||||||
|
x2=2*80*cos(s*0.0175); |
||||||
|
y2=2*80*sin(s*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
} |
||||||
|
|
||||||
|
void drawMin(int m) |
||||||
|
{ |
||||||
|
float x1, y1, x2, y2, x3, y3, x4, y4; |
||||||
|
int pm = m-1; |
||||||
|
|
||||||
|
myGLCD.setColor(0, 0, 0); |
||||||
|
if (pm==-1) |
||||||
|
pm=59; |
||||||
|
pm=pm*6; |
||||||
|
pm=pm+270; |
||||||
|
|
||||||
|
x1=2*80*cos(pm*0.0175); |
||||||
|
y1=2*80*sin(pm*0.0175); |
||||||
|
x2=2*5*cos(pm*0.0175); |
||||||
|
y2=2*5*sin(pm*0.0175); |
||||||
|
x3=2*30*cos((pm+4)*0.0175); |
||||||
|
y3=2*30*sin((pm+4)*0.0175); |
||||||
|
x4=2*30*cos((pm-4)*0.0175); |
||||||
|
y4=2*30*sin((pm-4)*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY); |
||||||
|
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY); |
||||||
|
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY); |
||||||
|
|
||||||
|
myGLCD.setColor(0, 255, 0); |
||||||
|
m=m*6; |
||||||
|
m=m+270; |
||||||
|
|
||||||
|
x1=2*80*cos(m*0.0175); |
||||||
|
y1=2*80*sin(m*0.0175); |
||||||
|
x2=2*5*cos(m*0.0175); |
||||||
|
y2=2*5*sin(m*0.0175); |
||||||
|
x3=2*30*cos((m+4)*0.0175); |
||||||
|
y3=2*30*sin((m+4)*0.0175); |
||||||
|
x4=2*30*cos((m-4)*0.0175); |
||||||
|
y4=2*30*sin((m-4)*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY); |
||||||
|
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY); |
||||||
|
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY); |
||||||
|
} |
||||||
|
|
||||||
|
void drawHour(int h, int m) |
||||||
|
{ |
||||||
|
float x1, y1, x2, y2, x3, y3, x4, y4; |
||||||
|
int ph = h; |
||||||
|
|
||||||
|
myGLCD.setColor(0, 0, 0); |
||||||
|
if (m==0) |
||||||
|
{ |
||||||
|
ph=((ph-1)*30)+((m+59)/2); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
ph=(ph*30)+((m-1)/2); |
||||||
|
} |
||||||
|
ph=ph+270; |
||||||
|
|
||||||
|
x1=2*60*cos(ph*0.0175); |
||||||
|
y1=2*60*sin(ph*0.0175); |
||||||
|
x2=2*5*cos(ph*0.0175); |
||||||
|
y2=2*5*sin(ph*0.0175); |
||||||
|
x3=2*20*cos((ph+5)*0.0175); |
||||||
|
y3=2*20*sin((ph+5)*0.0175); |
||||||
|
x4=2*20*cos((ph-5)*0.0175); |
||||||
|
y4=2*20*sin((ph-5)*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY); |
||||||
|
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY); |
||||||
|
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY); |
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 0); |
||||||
|
h=(h*30)+(m/2); |
||||||
|
h=h+270; |
||||||
|
|
||||||
|
x1=2*60*cos(h*0.0175); |
||||||
|
y1=2*60*sin(h*0.0175); |
||||||
|
x2=2*5*cos(h*0.0175); |
||||||
|
y2=2*5*sin(h*0.0175); |
||||||
|
x3=2*20*cos((h+5)*0.0175); |
||||||
|
y3=2*20*sin((h+5)*0.0175); |
||||||
|
x4=2*20*cos((h-5)*0.0175); |
||||||
|
y4=2*20*sin((h-5)*0.0175); |
||||||
|
|
||||||
|
myGLCD.drawLine(x1+clockCenterX, y1+clockCenterY, x3+clockCenterX, y3+clockCenterY); |
||||||
|
myGLCD.drawLine(x3+clockCenterX, y3+clockCenterY, x2+clockCenterX, y2+clockCenterY); |
||||||
|
myGLCD.drawLine(x2+clockCenterX, y2+clockCenterY, x4+clockCenterX, y4+clockCenterY); |
||||||
|
myGLCD.drawLine(x4+clockCenterX, y4+clockCenterY, x1+clockCenterX, y1+clockCenterY); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//**************************************************
|
||||||
|
void printDate() |
||||||
|
{ |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
// Time t_temp;
|
||||||
|
|
||||||
|
//t_temp = rtc.getTime();
|
||||||
|
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(142, 142, 200);//ночной календарь
|
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.setBackColor(255, 255, 255); |
||||||
|
}
|
||||||
|
dow= t.dow; |
||||||
|
|
||||||
|
myGLCD.print(str[dow-1], 272+450-80, 24); |
||||||
|
// myGLCD.print(rtc.getDOWStr(FORMAT_SHORT), 256+450, 8);
|
||||||
|
if (t.date<10) |
||||||
|
myGLCD.printNumI(t.date, 272+450-50, 58); |
||||||
|
else |
||||||
|
myGLCD.printNumI(t.date, 264+450-50, 58); |
||||||
|
myGLCD.printNumI(t.mon, 256+450-50, 92); |
||||||
|
myGLCD.printNumI(t.year, 248+450-50, 126); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
} |
||||||
|
|
||||||
|
void clearDate() |
||||||
|
{ |
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor (0,38,92); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255, 255, 255); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.fillRect(240+450-80, 15, 319+450, 166); |
||||||
|
// myGLCD.fillRoundRect(240+450-80, 0, 319+450, 85+80);
|
||||||
|
} |
||||||
|
//*************************************************************************
|
||||||
|
//******************************************************************
|
||||||
|
void clok() |
||||||
|
|
||||||
|
{ //t = rtc.getTime();
|
||||||
|
int a=0; |
||||||
|
q=1; |
||||||
|
int x, y; |
||||||
|
do |
||||||
|
{ |
||||||
|
t = rtc.getTime(); |
||||||
|
|
||||||
|
if( night==1 ) |
||||||
|
{constbr=20; |
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, br);
|
||||||
|
} |
||||||
|
else |
||||||
|
{constbr=200; |
||||||
|
br=constbr+brightness; |
||||||
|
analogWrite(12, br); |
||||||
|
if (rawp==1) |
||||||
|
{rawp=0; |
||||||
|
myGLCD.fillScr(VGA_AQUA);//выход утром в RAW
|
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
int w;
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
myFile.open("33.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 96000; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>399){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, 2*m, 400, 1, pic1, 2); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
}
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
kalend();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
raw(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if (q==1) |
||||||
|
{ |
||||||
|
|
||||||
|
// Clear screen
|
||||||
|
myGLCD.clrScr(); |
||||||
|
|
||||||
|
// Draw Clockface
|
||||||
|
myGLCD.setColor(0, 0, 255); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
for (int i=0; i<5; i++) |
||||||
|
{ |
||||||
|
myGLCD.drawCircle(clockCenterX, clockCenterY, 230-i);//119-i
|
||||||
|
} |
||||||
|
for (int i=0; i<5; i++) |
||||||
|
{ |
||||||
|
myGLCD.drawCircle(clockCenterX, clockCenterY, 2*i); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.setColor(192, 192, 255); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.print("3", clockCenterX+92+111-16, clockCenterY-8-20); |
||||||
|
myGLCD.print("6", clockCenterX-32+12, clockCenterY+95+111-30); |
||||||
|
myGLCD.print("9", clockCenterX-109-111, clockCenterY-8-20); |
||||||
|
myGLCD.print("12", clockCenterX-32, clockCenterY-109-111); |
||||||
|
for (int i=0; i<12; i++) |
||||||
|
{ |
||||||
|
if ((i % 3)!=0) |
||||||
|
drawMark(i); |
||||||
|
} |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
|
||||||
|
// Draw calendar
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(0,38,92); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255, 255, 255); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
myGLCD.fillRoundRect(240+450-80, 0, 319+450, 85+80); |
||||||
|
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(255, 255, 255); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(0, 0, 0); |
||||||
|
|
||||||
|
}
|
||||||
|
// myGLCD.setColor(0, 0, 0);
|
||||||
|
|
||||||
|
for (int i=0; i<14; i++) |
||||||
|
{ |
||||||
|
myGLCD.drawLine(249+450-80+(i*10), 0, 248+450-80+(i*10), 7); |
||||||
|
myGLCD.drawLine(250+450-80+(i*10), 0, 249+450-80+(i*10), 7); |
||||||
|
myGLCD.drawLine(251+450-80+(i*10), 0, 250+450-80+(i*10), 7); |
||||||
|
} |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
// Draw SET button
|
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
myGLCD.fillRoundRect(260+450, 200+200, 319+450, 239+200); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(260+450, 200+200, 319+450, 239+200); |
||||||
|
myGLCD.setBackColor(64, 64, 128); |
||||||
|
myGLCD.print("SET", 266+450, 212+200); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
// Draw exit button
|
||||||
|
myGLCD.setColor(64, 64, 128); |
||||||
|
myGLCD.fillRoundRect(260+450, 200+150, 319+450, 239+150); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(260+450, 200+150, 319+450, 239+150); |
||||||
|
myGLCD.setBackColor(64, 64, 128); |
||||||
|
myGLCD.print("EXT", 266+450, 212+150); |
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
|
||||||
|
|
||||||
|
if (night==1)
|
||||||
|
{ myGLCD.setColor(192, 192, 255); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.setColor(255,255, 255); |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0, 0, 0); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
|
||||||
|
t = rtc.getTime(); |
||||||
|
if (t.hour<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+340, clockCenterY-8-20); |
||||||
|
myGLCD.printNumI(t.hour, clockCenterX+340+32, clockCenterY-8-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.hour,clockCenterX+340, clockCenterY-8-20); |
||||||
|
} |
||||||
|
myGLCD.print(":",clockCenterX+340+64, clockCenterY-8-20); |
||||||
|
if (t.min<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,clockCenterX+340+96, clockCenterY-8-20); |
||||||
|
myGLCD.printNumI(t.min, clockCenterX+340+128, clockCenterY-8-20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.min, clockCenterX+340+96, clockCenterY-8-20); |
||||||
|
} |
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (t.date==0) |
||||||
|
{ |
||||||
|
setClock(); |
||||||
|
} |
||||||
|
|
||||||
|
drawDisplay(); |
||||||
|
// printDate();
|
||||||
|
q=0; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
x=myTouch.getX(); |
||||||
|
y=myTouch.getY(); |
||||||
|
if (((y>=200+200) && (y<=239+200)) && ((x>=260+450) && (x<=319+450))) |
||||||
|
{ |
||||||
|
myGLCD.setColor (255, 0, 0); |
||||||
|
myGLCD.drawRoundRect(260+450, 200+200, 319+450, 239+200); |
||||||
|
setClock(); |
||||||
|
} |
||||||
|
if (((y>=200+150) && (y<=239+150)) && ((x>=260+450) && (x<=319+450))) |
||||||
|
{ |
||||||
|
if (c==1) |
||||||
|
{ |
||||||
|
menu(); |
||||||
|
} |
||||||
|
myGLCD.setColor (255, 0, 0); |
||||||
|
myGLCD.drawRoundRect(260+450, 200+150, 319+450, 239+150); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
//**********TOUCH
|
||||||
|
delay(10); |
||||||
|
t = rtc.getTime(); |
||||||
|
// rawp=1 ;
|
||||||
|
if (rawp==1)
|
||||||
|
{ if (t.sec==17) |
||||||
|
{ prognoz(); |
||||||
|
q=1; |
||||||
|
delay(5000); |
||||||
|
}
|
||||||
|
if (t.sec==37) |
||||||
|
{ nightgraf(); |
||||||
|
q=1; |
||||||
|
delay(5000); |
||||||
|
}
|
||||||
|
if ((sec==10) || (sec==29) ) |
||||||
|
{ |
||||||
|
if(Serial.available()) {
|
||||||
|
priem(); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
//**************************massiv******************
|
||||||
|
// t = rtc.getTime();
|
||||||
|
if (t.min==0) |
||||||
|
{ |
||||||
|
if ((t.sec==0)||(t.sec==1)) |
||||||
|
{ |
||||||
|
// printmassiv();
|
||||||
|
if (fsec==1) |
||||||
|
{uart(); |
||||||
|
bmp085(); |
||||||
|
uart(); |
||||||
|
savemastd(); |
||||||
|
|
||||||
|
|
||||||
|
fsec=0; //delay (300);
|
||||||
|
if(t.hour==23) |
||||||
|
{sdwrite(); |
||||||
|
savemasclok(); |
||||||
|
saveminmax();//запись макс мин и средних значений датчиков за день
|
||||||
|
}
|
||||||
|
if((t.hour>=0)||(t.hour<23)) |
||||||
|
{ |
||||||
|
savemasclok();//запись времени на sd 12:56 15/05/14 и массива rab
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
} |
||||||
|
} |
||||||
|
//*****************************************************
|
||||||
|
if (t.min>3) |
||||||
|
{fsec=1; |
||||||
|
} |
||||||
|
//*****************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} while (a<1); |
||||||
|
} |
||||||
@ -0,0 +1,189 @@ |
|||||||
|
void bar(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(0,0,255); |
||||||
|
myGLCD.fillRoundRect(x-5, y-5, l+x+5, h+y+5);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect(x, y, l+x, h+y);//с белой обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
myGLCD.fillRoundRect(x, y, pos*l/100+x, h+y); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.print("BRIGHT", x-48+(l/2), y-25); |
||||||
|
myGLCD.printNumI(abs(pos), x-10+(l/2), y+2);// уровень в процентах
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void bright() |
||||||
|
{ |
||||||
|
int x=200; |
||||||
|
int y=200; |
||||||
|
int pos; |
||||||
|
int h=20;//высота шкалы
|
||||||
|
int l=300;//длинна шкалы
|
||||||
|
|
||||||
|
|
||||||
|
//*****************
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawBitmap (x+l-30, y-37, 30, 30, xf); |
||||||
|
myGLCD.drawRoundRect (x+l-30, y-37, x+l-30+30, y-37+30);// Aandelend
|
||||||
|
// myGLCD.setColor(255, 0, 0);
|
||||||
|
// myGLCD.fillRoundRect ( x+l-30, y-37, x+l-30+30, y-37+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(255,0,0);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
// myGLCD.drawRoundRect ( x+l-30, y-37, x+l-30+30, y-37+30); //X
|
||||||
|
// myGLCD.print("X", x+l-30+8, y-37+7);
|
||||||
|
//***********************************
|
||||||
|
//*****************
|
||||||
|
// myGLCD.setColor(0, 0, 255);
|
||||||
|
// myGLCD.fillRoundRect ( x+l-30, y+26, x+l-30+30, y+26+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.drawBitmap (x+l-30, y+26, 30, 30, pr); |
||||||
|
myGLCD.drawRoundRect ( x+l-30, y+26, x+l-30+30, y+26+30); //>>
|
||||||
|
// myGLCD.print(">", x+l-30+8, y+26+7);
|
||||||
|
//***********************************
|
||||||
|
//*****************
|
||||||
|
// myGLCD.setColor(0, 0, 255);
|
||||||
|
// myGLCD.fillRoundRect ( x+l-60, y+26, x+l-60+30, y+26+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.drawBitmap (x+l-60, y+26, 30, 30, ad); |
||||||
|
myGLCD.drawRoundRect ( x+l-60, y+26, x+l-60+30, y+26+30); //+
|
||||||
|
// myGLCD.print("+", x+l-60+8, y+26+7);
|
||||||
|
//***********************************
|
||||||
|
myGLCD.drawBitmap (x, y+26, 30, 30, le); |
||||||
|
myGLCD.drawRoundRect ( x, y+26, x+30, y+26+30); //<
|
||||||
|
//*****************
|
||||||
|
// myGLCD.setColor(0, 0, 255);
|
||||||
|
// myGLCD.fillRoundRect ( x+30, y+26, x+30+30, y+26+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
myGLCD.drawBitmap (x+30, y+26, 30, 30, mi);
|
||||||
|
myGLCD.drawRoundRect ( x+30, y+26, x+30+30, y+26+30); //-
|
||||||
|
// myGLCD.print("-", x+30+8, y+26+7);
|
||||||
|
//***********************************
|
||||||
|
//*****************
|
||||||
|
// myGLCD.setColor(0, 0, 255);
|
||||||
|
// myGLCD.fillRoundRect ( x, y+26, x+30, y+26+30);
|
||||||
|
// myGLCD.setColor(255, 255, 255);
|
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
|
||||||
|
// myGLCD.print("<", x+8, y+26+7);
|
||||||
|
//***********************************
|
||||||
|
|
||||||
|
pos=100*br/255;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
|
||||||
|
interval = 5000; |
||||||
|
previousMillis =millis(); |
||||||
|
while(1) |
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
currentMillis = millis(); |
||||||
|
|
||||||
|
if(currentMillis - previousMillis >= interval)
|
||||||
|
{ |
||||||
|
// save the last time you blinked the LED
|
||||||
|
previousMillis = currentMillis; |
||||||
|
interval = 10000; |
||||||
|
previousMillis=0; |
||||||
|
return; |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x1=myTouch.getX(); |
||||||
|
int y1=myTouch.getY(); |
||||||
|
|
||||||
|
if ((y1>=y-37) && (y1<=y-37+30)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x1>= x+l-30) && (x1<= x+l-30+30)) // Aandelend
|
||||||
|
{waitForIt1( x+l-30, y-37, x+l-30+30, y-37+30); |
||||||
|
interval = 10000; |
||||||
|
previousMillis=0; |
||||||
|
return; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((y1>=y+26) && (y1<=y+26+30)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x1>= x+l-30) && (x1<= x+l-30+30)) //>
|
||||||
|
{brightness=brightness+25; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br>255) |
||||||
|
{br=255; |
||||||
|
brightness=55; |
||||||
|
} |
||||||
|
waitForIt1( x+l-30, y+26, x+l-30+30, y+26+30); |
||||||
|
pos=100*br/255 ;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
analogWrite(12, br); |
||||||
|
|
||||||
|
} |
||||||
|
if ((x1>= x+l-60) && (x1<= x+l-60+30)) // +
|
||||||
|
{brightness=brightness+1; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br>255) |
||||||
|
{br=255; |
||||||
|
brightness=55; |
||||||
|
} |
||||||
|
waitForIt1( x+l-60, y+26, x+l-60+30, y+26+30); |
||||||
|
pos=100*br/255 ;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
analogWrite(12, br); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((x1>= x+30) && (x1<= x+30+30)) //-
|
||||||
|
{brightness=brightness-1; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br<1) |
||||||
|
{br=1; |
||||||
|
} |
||||||
|
waitForIt1 ( x+30, y+26, x+30+30, y+26+30); |
||||||
|
pos=100*br/255;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
analogWrite(12, br); |
||||||
|
}
|
||||||
|
|
||||||
|
if ((x1>= x) && (x1<= x+30)) //<
|
||||||
|
{brightness=brightness-25; |
||||||
|
br=constbr+brightness; |
||||||
|
if (br<1) |
||||||
|
{br=1; |
||||||
|
} |
||||||
|
waitForIt1 ( x, y+26, x+30, y+26+30); |
||||||
|
pos=100*br/255;
|
||||||
|
bar(x,y, pos,l,h); |
||||||
|
analogWrite(12, br); |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
previousMillis = currentMillis;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
@ -0,0 +1,181 @@ |
|||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
void bmp085() |
||||||
|
{float temperature; |
||||||
|
temperature = bmp085GetTemperature(bmp085ReadUT()); |
||||||
|
pressure = bmp085GetPressure(bmp085ReadUP())*10.023/1333; |
||||||
|
// pressureNN = pressure / pressureCorrection;
|
||||||
|
|
||||||
|
|
||||||
|
// Serial.print("Temperature: ");
|
||||||
|
// Serial.print(temperature,1);
|
||||||
|
// Serial.print(" C, Pressure: ");
|
||||||
|
// Serial.print(pressure,1);
|
||||||
|
// Serial.print(" hPa in 103m height above sea level, Pressure-NN: ");
|
||||||
|
// Serial.print(pressureNN,1);
|
||||||
|
// Serial.println(" hPa");
|
||||||
|
delay(500); |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Stores all of the bmp085's calibration values into global variables
|
||||||
|
// Calibration values are required to calculate temp and pressure
|
||||||
|
// This function should be called at the beginning of the program
|
||||||
|
void bmp085Calibration() |
||||||
|
{ |
||||||
|
ac1 = bmp085ReadInt(0xAA); |
||||||
|
ac2 = bmp085ReadInt(0xAC); |
||||||
|
ac3 = bmp085ReadInt(0xAE); |
||||||
|
ac4 = bmp085ReadInt(0xB0); |
||||||
|
ac5 = bmp085ReadInt(0xB2); |
||||||
|
ac6 = bmp085ReadInt(0xB4); |
||||||
|
b1 = bmp085ReadInt(0xB6); |
||||||
|
b2 = bmp085ReadInt(0xB8); |
||||||
|
mb = bmp085ReadInt(0xBA); |
||||||
|
mc = bmp085ReadInt(0xBC); |
||||||
|
md = bmp085ReadInt(0xBE); |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Calculate temperature given ut.
|
||||||
|
// Value returned will be in units of 0.1 deg C
|
||||||
|
short bmp085GetTemperature(unsigned short ut) |
||||||
|
{ |
||||||
|
long x1, x2; |
||||||
|
|
||||||
|
x1 = (((long)ut - (long)ac6)*(long)ac5) >> 15; |
||||||
|
x2 = ((long)mc << 11)/(x1 + md); |
||||||
|
b5 = x1 + x2; |
||||||
|
|
||||||
|
return ((b5 + 8)>>4);
|
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Calculate pressure given up
|
||||||
|
// calibration values must be known
|
||||||
|
// b5 is also required so bmp085GetTemperature(...) must be called first.
|
||||||
|
// Value returned will be pressure in units of Pa.
|
||||||
|
long bmp085GetPressure(unsigned long up) |
||||||
|
{ |
||||||
|
long x1, x2, x3, b3, b6, p; |
||||||
|
unsigned long b4, b7; |
||||||
|
|
||||||
|
b6 = b5 - 4000; |
||||||
|
// Calculate B3
|
||||||
|
x1 = (b2 * (b6 * b6)>>12)>>11; |
||||||
|
x2 = (ac2 * b6)>>11; |
||||||
|
x3 = x1 + x2; |
||||||
|
b3 = (((((long)ac1)*4 + x3)<<OSS) + 2)>>2; |
||||||
|
|
||||||
|
// Calculate B4
|
||||||
|
x1 = (ac3 * b6)>>13; |
||||||
|
x2 = (b1 * ((b6 * b6)>>12))>>16; |
||||||
|
x3 = ((x1 + x2) + 2)>>2; |
||||||
|
b4 = (ac4 * (unsigned long)(x3 + 32768))>>15; |
||||||
|
|
||||||
|
b7 = ((unsigned long)(up - b3) * (50000>>OSS)); |
||||||
|
if (b7 < 0x80000000) |
||||||
|
p = (b7<<1)/b4; |
||||||
|
else |
||||||
|
p = (b7/b4)<<1; |
||||||
|
|
||||||
|
x1 = (p>>8) * (p>>8); |
||||||
|
x1 = (x1 * 3038)>>16; |
||||||
|
x2 = (-7357 * p)>>16; |
||||||
|
p += (x1 + x2 + 3791)>>4; |
||||||
|
|
||||||
|
return p; |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Read 1 byte from the BMP085 at 'address'
|
||||||
|
char bmp085Read(unsigned char address) |
||||||
|
{ |
||||||
|
unsigned char data; |
||||||
|
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(address); |
||||||
|
Wire.endTransmission(); |
||||||
|
|
||||||
|
Wire.requestFrom(BMP085_ADDRESS, 1); |
||||||
|
while(!Wire.available()) |
||||||
|
; |
||||||
|
|
||||||
|
return Wire.read(); |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Read 2 bytes from the BMP085
|
||||||
|
// First byte will be from 'address'
|
||||||
|
// Second byte will be from 'address'+1
|
||||||
|
short bmp085ReadInt(unsigned char address) |
||||||
|
{ |
||||||
|
unsigned char msb, lsb; |
||||||
|
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(address); |
||||||
|
Wire.endTransmission(); |
||||||
|
|
||||||
|
Wire.requestFrom(BMP085_ADDRESS, 2); |
||||||
|
while(Wire.available()<2) |
||||||
|
; |
||||||
|
msb = Wire.read(); |
||||||
|
lsb = Wire.read(); |
||||||
|
|
||||||
|
return (short) msb<<8 | lsb; |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Read the uncompensated temperature value
|
||||||
|
unsigned short bmp085ReadUT() |
||||||
|
{ |
||||||
|
unsigned short ut; |
||||||
|
|
||||||
|
// Write 0x2E into Register 0xF4
|
||||||
|
// This requests a temperature reading
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(0xF4); |
||||||
|
Wire.write(0x2E); |
||||||
|
Wire.endTransmission(); |
||||||
|
|
||||||
|
// Wait at least 4.5ms
|
||||||
|
delay(10); |
||||||
|
|
||||||
|
// Read two bytes from registers 0xF6 and 0xF7
|
||||||
|
ut = bmp085ReadInt(0xF6); |
||||||
|
return ut; |
||||||
|
} |
||||||
|
|
||||||
|
//----------------------------------------------------------------------------------------------------------
|
||||||
|
// Read the uncompensated pressure value
|
||||||
|
unsigned long bmp085ReadUP() |
||||||
|
{ |
||||||
|
unsigned char msb, lsb, xlsb; |
||||||
|
unsigned long up = 0; |
||||||
|
|
||||||
|
// Write 0x34+(OSS<<6) into register 0xF4
|
||||||
|
// Request a pressure reading w/ oversampling setting
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(0xF4); |
||||||
|
Wire.write(0x34 + (OSS<<6)); |
||||||
|
Wire.endTransmission(); |
||||||
|
|
||||||
|
// Wait for conversion, delay time dependent on OSS
|
||||||
|
delay(2 + (3<<OSS)); |
||||||
|
|
||||||
|
// Read register 0xF6 (MSB), 0xF7 (LSB), and 0xF8 (XLSB)
|
||||||
|
Wire.beginTransmission(BMP085_ADDRESS); |
||||||
|
Wire.write(0xF6); |
||||||
|
Wire.endTransmission(); |
||||||
|
Wire.requestFrom(BMP085_ADDRESS, 3); |
||||||
|
|
||||||
|
// Wait for data to become available
|
||||||
|
while(Wire.available() < 3) ; |
||||||
|
msb = Wire.read(); |
||||||
|
lsb = Wire.read(); |
||||||
|
xlsb = Wire.read(); |
||||||
|
|
||||||
|
up = (((unsigned long) msb << 16) | ((unsigned long) lsb << 8) | (unsigned long) xlsb) >> (8-OSS); |
||||||
|
|
||||||
|
return up; |
||||||
|
} |
||||||
|
//---------------------------------------------------------------------------------------------------------
|
||||||
@ -0,0 +1,101 @@ |
|||||||
|
void dtu21() |
||||||
|
{ //Set the address of the HTU21D. This detail is hidden at the bototm of page 10 of the datasheet.
|
||||||
|
const int I2C_address = 0x40; // I2C write address. Note that 'const' has been declared. If you try to write to this variable
|
||||||
|
// anywhere else in your code you'll get a compilation error. This prevents you from doing silly things.
|
||||||
|
|
||||||
|
const int TempCode = 0xE3; // A temperature measurement is executed with this command code. See page 11 of datasheet.
|
||||||
|
const int HumidCode = 0xE5; // A humidity measurement is executed with this command code. See page 11 of datasheet.
|
||||||
|
|
||||||
|
long Temperature; //Perform our calculation using LONG to prevent overflow at high measuremetn values when using 14bit mode.
|
||||||
|
long Humidity;
|
||||||
|
|
||||||
|
float TemperatureFL; //Variable to store our final calculated temperature measurement
|
||||||
|
float HumidityFL;
|
||||||
|
|
||||||
|
delay(100); // a short delay to let everything stabilise
|
||||||
|
|
||||||
|
|
||||||
|
delay(10); //add a small delay to slow things down
|
||||||
|
|
||||||
|
RequestMeas(I2C_address, TempCode); //Request the current temperature
|
||||||
|
Temperature = ReadMeas(I2C_address); //read the result
|
||||||
|
|
||||||
|
//We must now convert our temp measurement into an actual proper temperature value
|
||||||
|
//According to page 15, the conversion equation is: Temp = -46.85 + 175.72 x TeampMeas / 2^16
|
||||||
|
//Becasue the result will have decimal places in the result we must use a Float datatype.
|
||||||
|
// TemperatureFL = (Temperature/65536.0)*175.72-46.85 ;
|
||||||
|
TemperatureFL = (Temperature/65536.0)*175.72-46.85-1.1 ;
|
||||||
|
|
||||||
|
delay(100); //add a small delay to slow things down
|
||||||
|
|
||||||
|
RequestMeas(I2C_address, HumidCode); //Request the current humidity
|
||||||
|
Humidity = ReadMeas(I2C_address); //read the result
|
||||||
|
|
||||||
|
//We must now convert our humidity measurement into an actual proper humidity value
|
||||||
|
//According to page 15, the conversion equation is: Humidity = 6 + 125 x TeampMeas / 2^16
|
||||||
|
//Becasue the result will have decimal places in the result we must use a Float datatype.
|
||||||
|
//HumidityFL = -6 + 125*(Humidity/pow(2, 16));
|
||||||
|
HumidityFL =(Humidity/65536.0)*125.0-6.0;
|
||||||
|
|
||||||
|
|
||||||
|
tdc=TemperatureFL; |
||||||
|
tdd=abs(TemperatureFL*10-tdc*10); |
||||||
|
hdc=HumidityFL; |
||||||
|
hdd=HumidityFL*10-hdc*10; |
||||||
|
if(hdc>99) |
||||||
|
{hdc=99; |
||||||
|
hdd=9; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void RequestMeas(int Address, int CommandCode) |
||||||
|
{ |
||||||
|
Wire.beginTransmission(Address); // The HTU21D will respond to its address
|
||||||
|
Wire.write(CommandCode); // request the measurement, ie temperature or humidity
|
||||||
|
Wire.endTransmission(); |
||||||
|
return; |
||||||
|
} |
||||||
|
|
||||||
|
long ReadMeas(int Address) |
||||||
|
{ |
||||||
|
//A measurement from the HTU21D is returned in 3 consecutive bytes. See page 11 of the datasheet
|
||||||
|
//the order of returend data is: [DATA (Most Sig Byte)], [DATA (Least Sig Byte)], [Checksum]
|
||||||
|
//We will ignore the checksum to save computation time and complexity. Page 14 of the datasheet details how to calculate the checksum
|
||||||
|
|
||||||
|
byte DataHIGH; //The location to store the high measurement byte
|
||||||
|
byte DataLOW; //The low measurement byte
|
||||||
|
byte CRC; //If you want to compute the CRC feel free to do so.
|
||||||
|
|
||||||
|
long Data; //The temporary memory location we are storing our data in as we receive it from the HTU21D
|
||||||
|
//Each packet of data is only 8bits in length, but if we do a bit shift we can store the 2 packets of
|
||||||
|
//measurement data in a variable. Remember you can only return 1 variable when a function finishes.
|
||||||
|
//Ideally, we'd use an int to store the result, however, at high measurement values in 14bit mode, an int overflows.
|
||||||
|
//To prevent overflow, we must use a single long (32bits).
|
||||||
|
|
||||||
|
Wire.requestFrom(Address, 3); //We are requesting data from the HTU21D and there will be 3x bytes that must be read.
|
||||||
|
while(Wire.available()) // Check for data from the HTU21D
|
||||||
|
{ |
||||||
|
DataHIGH = Wire.read(); // Read high byte
|
||||||
|
DataLOW = Wire.read(); // Read low byte
|
||||||
|
CRC = Wire.read(); // Read the CRC byte
|
||||||
|
}
|
||||||
|
|
||||||
|
//OK, so now we are going to 'pack' our 2x bytes of data measuremetns into a single int so only 1 variable is returned.
|
||||||
|
//To do this, we will use the left bitshift operator '&lt;&lt;'. What this does is push all the bits across to the left.
|
||||||
|
//FUN FACT: performing a left bit shift is equivalent to multiplication by 2 for each shift. The reverse is true for right
|
||||||
|
//bitshift which is equivalent to dividing by 2. This is a far more efficient method to perform multiply or divide by 2.
|
||||||
|
|
||||||
|
Data = DataHIGH; //The data sits in the low byte of 'int Data'.
|
||||||
|
//Ie, Data = [00000000][00000000][00000000][8 bits of DataHIGH]
|
||||||
|
//data[1] &lt;&lt; 8
|
||||||
|
//Data = Data &lt;&lt; 8; //Shift all the bits to the left for 8 bits. The old locations fill with zeros.
|
||||||
|
Data = Data<<8; |
||||||
|
//Ie, Data = [00000000][00000000][8 bits of DataHIGH][00000000]
|
||||||
|
Data = Data + DataLOW; //Now simply add the low byte of data to the int.
|
||||||
|
//Ie, Data = [00000000][00000000][8 bits of DataHIGH][8 bits of DataLOW]
|
||||||
|
|
||||||
|
return Data; //return our measurement.
|
||||||
|
} |
||||||
@ -0,0 +1,124 @@ |
|||||||
|
void readfile() |
||||||
|
{w=0; |
||||||
|
bufer=""; |
||||||
|
int a=0,b=0; |
||||||
|
byte st=0; |
||||||
|
int cardSize; |
||||||
|
|
||||||
|
myGLCD.setColor(22,18,70);
|
||||||
|
|
||||||
|
myGLCD.fillRoundRect (380,145, 630, 475); |
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.drawRoundRect (380,145, 630, 475);
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setFont(SmallFont); |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
|
||||||
|
|
||||||
|
clc(); |
||||||
|
|
||||||
|
myGLCD.setBackColor(22,18,70);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay(100); |
||||||
|
myFile.open(name, O_READ); |
||||||
|
cardSize=myFile.fileSize(); |
||||||
|
// myGLCD.print("cardSize=",10,10);
|
||||||
|
// myGLCD.printNumI(cardSize,10,30);
|
||||||
|
st=0; |
||||||
|
w=0; |
||||||
|
for (int i=0 ; i < cardSize; i = i++) |
||||||
|
{ char ByteRead=myFile.read(); //чтение данных с порта
|
||||||
|
if (ByteRead==char(13))//окончание строки
|
||||||
|
{ analyzer(); //передача данных на обработку
|
||||||
|
myFile.read(); |
||||||
|
bufer=""; |
||||||
|
st=0; |
||||||
|
}
|
||||||
|
else { |
||||||
|
bufer=bufer+char(ByteRead); |
||||||
|
st++; |
||||||
|
if(st>28) |
||||||
|
{st=0; |
||||||
|
analyzer(); |
||||||
|
bufer=""; |
||||||
|
} |
||||||
|
} ///накопление данных в буфер
|
||||||
|
if (fcl==1) |
||||||
|
{fcl=0; |
||||||
|
goto clos; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
analyzer(); //передача данных на обработку
|
||||||
|
clos: |
||||||
|
myFile.close(); |
||||||
|
|
||||||
|
myGLCD.setColor(22,18,70);
|
||||||
|
myGLCD.setBackColor(VGA_WHITE);
|
||||||
|
myGLCD.print(" pres exit to return ",393,463); |
||||||
|
myGLCD.setBackColor(22,18,70);
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
//**************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void analyzer() |
||||||
|
{ myGLCD.setFont(SmallFont); |
||||||
|
myGLCD.setBackColor(22,18,70);
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
|
||||||
|
w++; |
||||||
|
myGLCD.print(bufer,385,147-12+12*w); |
||||||
|
delay(100); |
||||||
|
boolean b=0; |
||||||
|
if(w>25) |
||||||
|
{w=0; |
||||||
|
myGLCD.setColor(22,18,70);
|
||||||
|
myGLCD.setBackColor(VGA_WHITE);
|
||||||
|
myGLCD.print(" pres touch to continion ",393,463); |
||||||
|
myGLCD.setBackColor(22,18,70);
|
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
while(b<1) |
||||||
|
{delay(200); |
||||||
|
if (myTouch.dataAvailable())
|
||||||
|
{
|
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
if ((x>=380) && (x<=630)) // open
|
||||||
|
{
|
||||||
|
if ((y>=150) && (y<=470)) // 640, 240, 680, 280); //open
|
||||||
|
|
||||||
|
{ b=2; |
||||||
|
myGLCD.setColor(22,18,70);
|
||||||
|
|
||||||
|
myGLCD.fillRoundRect (380,145, 630, 475); |
||||||
|
myGLCD.setColor(VGA_WHITE);
|
||||||
|
myGLCD.drawRoundRect (380,145, 630, 475);
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x<380) || (x>630)) // open
|
||||||
|
{fcl=1; |
||||||
|
b=2; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,295 @@ |
|||||||
|
void internet() |
||||||
|
{ //Serial2.setTimeout(5000);
|
||||||
|
char* name; |
||||||
|
char* name1; |
||||||
|
boolean bad = 0; |
||||||
|
int i; |
||||||
|
char c7 ; |
||||||
|
char c8 ; |
||||||
|
// esp8266();
|
||||||
|
//doo:
|
||||||
|
while(Serial2.available()) { |
||||||
|
|
||||||
|
c8=Serial2.read(); |
||||||
|
//c7=Serial2.peek();
|
||||||
|
// Serial.print(String(c8));
|
||||||
|
delay(2); |
||||||
|
|
||||||
|
} |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0, 172, 238); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
|
||||||
|
digitalWrite(18, LOW); |
||||||
|
delay(3000); |
||||||
|
digitalWrite(18, HIGH);//reset WIFI
|
||||||
|
myGLCD.print(" openweather " , 280, 457); |
||||||
|
delay(3000); |
||||||
|
// myGLCD.print(" connecting " , 280, 457);
|
||||||
|
//***************************
|
||||||
|
while(Serial2.available()) { |
||||||
|
if (Serial2.find("hi")) |
||||||
|
{
|
||||||
|
myGLCD.print("WiFi connected" ,280, 457);
|
||||||
|
} |
||||||
|
} |
||||||
|
//**************************************
|
||||||
|
Serial2.print("7");//проверка подключения к точке доступа если ответ больше 0 то подключились
|
||||||
|
delay(1000); |
||||||
|
//myGLCD.print(" read server " ,280, 457);
|
||||||
|
//***************************
|
||||||
|
i=0; |
||||||
|
while (i<900) |
||||||
|
{ |
||||||
|
i++; |
||||||
|
if(Serial2.available()) { |
||||||
|
if (Serial2.find("IP")) |
||||||
|
{Serial2.read(); |
||||||
|
// myGLCD.print(" NTP " ,280, 457);
|
||||||
|
int ip1 = Serial2.parseInt(); |
||||||
|
|
||||||
|
int ip2 = Serial2.parseInt(); |
||||||
|
|
||||||
|
int ip3 = Serial2.parseInt(); |
||||||
|
|
||||||
|
int ip4 = Serial2.parseInt(); |
||||||
|
|
||||||
|
// Serial1.read();
|
||||||
|
String data1 = "IP:" + String(ip1) + "." + String(ip2) + "." + String(ip3) + "." + String(ip4) + " "; |
||||||
|
// String data1;
|
||||||
|
// data1 += ip1;
|
||||||
|
// data1 += ".";
|
||||||
|
// data1 += ip2;
|
||||||
|
// data1 += ".";
|
||||||
|
// data1 += ip3;
|
||||||
|
// data1 += ".";
|
||||||
|
// data1 += ip4;
|
||||||
|
// data1 += " "
|
||||||
|
myGLCD.print(data1 , 240, 457); |
||||||
|
} |
||||||
|
// myGLCD.print("available" , 240, 457);
|
||||||
|
|
||||||
|
// myGLCD.print(String(c2) ,520, 457);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if(i>0)delay (10);
|
||||||
|
} |
||||||
|
//**************************************
|
||||||
|
Serial2.print("1");//проверка подключения к точке доступа если ответ больше 0 то подключились
|
||||||
|
delay(1000); |
||||||
|
//***************************
|
||||||
|
myGLCD.print(" read server " , 240, 457); |
||||||
|
i = 0; |
||||||
|
//while (i<900)
|
||||||
|
// {
|
||||||
|
// i++;
|
||||||
|
// if(Serial2.available()) {
|
||||||
|
// i=0;
|
||||||
|
// if (Serial2.find("1+"))
|
||||||
|
// {myGLCD.print(" read server " ,280, 457);
|
||||||
|
// i=1000;
|
||||||
|
// }
|
||||||
|
|
||||||
|
// }
|
||||||
|
// if(i>0)delay (10);
|
||||||
|
// }
|
||||||
|
//**************************************
|
||||||
|
//****************************SD**********************
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
sd.chdir("progn"); |
||||||
|
delay (100); |
||||||
|
if (sd.exists("prognoz.txt")) |
||||||
|
{ name = "prognoz1.txt"; |
||||||
|
name1 = "prognoz.txt"; |
||||||
|
}//установка раб директории
|
||||||
|
else |
||||||
|
{ name = "prognoz.txt"; |
||||||
|
name1 = "prognoz1.txt"; |
||||||
|
} |
||||||
|
|
||||||
|
// myFile.remove();
|
||||||
|
delay (50); |
||||||
|
myFile.open(name, O_RDWR | O_CREAT | O_AT_END); |
||||||
|
delay (50); |
||||||
|
|
||||||
|
//******************************************************
|
||||||
|
|
||||||
|
i = 0; //счетчик времени
|
||||||
|
int n = 1; // счетчик символов
|
||||||
|
int st = 0; |
||||||
|
char c ; |
||||||
|
//Serial2.setTimeout(2000);
|
||||||
|
i = 0; |
||||||
|
myGLCD.print(" read inform " , 280, 457); |
||||||
|
while (i < 600) { |
||||||
|
if (Serial2.available()) { |
||||||
|
|
||||||
|
c = Serial2.read(); |
||||||
|
|
||||||
|
myFile.print(c); |
||||||
|
|
||||||
|
i = 0; |
||||||
|
}//gotov
|
||||||
|
if (i > 0)delay (10); |
||||||
|
i++; |
||||||
|
|
||||||
|
|
||||||
|
}//while
|
||||||
|
|
||||||
|
delay (500); |
||||||
|
// myGLCD.print(" read inform 2 " , 280, 457);
|
||||||
|
i = 0; |
||||||
|
while (i < 600) { |
||||||
|
if (Serial2.available()) { |
||||||
|
|
||||||
|
c = Serial2.read(); |
||||||
|
|
||||||
|
myFile.print(c); |
||||||
|
|
||||||
|
i = 0; |
||||||
|
}//gotov
|
||||||
|
if (i > 0)delay (10); |
||||||
|
i++; |
||||||
|
|
||||||
|
}//while
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.print(" ", 118, 457); |
||||||
|
myGLCD.print(" end read inform " , 280, 457); |
||||||
|
int cardSize = myFile.fileSize(); |
||||||
|
//myGLCD.printNumI(st ,150, 230);
|
||||||
|
// myGLCD.printNumI(i ,180, 230);
|
||||||
|
myFile.close(); |
||||||
|
delay (1000); |
||||||
|
myGLCD.print(" ", 118, 457); |
||||||
|
myGLCD.print(" verifying " , 280, 457); |
||||||
|
delay (1000); |
||||||
|
myGLCD.print(" ", 118, 457); |
||||||
|
myGLCD.print("file size=" , 280, 457); |
||||||
|
myGLCD.printNumI(cardSize, 280 + 160, 457); |
||||||
|
//************proverka file **********************************************
|
||||||
|
|
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (1000); |
||||||
|
sd.chdir("progn"); |
||||||
|
delay (100); |
||||||
|
myFile.open(name, O_READ); |
||||||
|
char symbol; |
||||||
|
i = 0; |
||||||
|
char token[] = "weatherdata"; |
||||||
|
n = 1; |
||||||
|
while ( n < 8000) //размер считанного с сайта файла проверяем на наличае в конце </weatherdata>
|
||||||
|
{ symbol = myFile.read(); |
||||||
|
if (n > 1000) |
||||||
|
{ if (symbol == token[i]) |
||||||
|
{ i = i + 1; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
i = 0; |
||||||
|
} |
||||||
|
} |
||||||
|
if (i > 9) { |
||||||
|
break; |
||||||
|
} |
||||||
|
n = n + 1; |
||||||
|
} |
||||||
|
if (cardSize > 5000) //измерение размера файла если размер больше то считали все
|
||||||
|
{ if (i > 9) { // если есть в конце </weatherdata>
|
||||||
|
wifi = 0; |
||||||
|
myGLCD.print(" good file W= " , 280, 457); |
||||||
|
myGLCD.printNumI(i, 280 + 256, 457); |
||||||
|
wifih = t.hour; // час обновления данных
|
||||||
|
wifim = t.min; // минуты
|
||||||
|
} |
||||||
|
else// // если нет в конце </weatherdata> то error
|
||||||
|
{ myGLCD.print(" bad file W= " , 280, 457); |
||||||
|
myGLCD.printNumI(i, 280 + 256, 457); |
||||||
|
wifi = 9; |
||||||
|
bad = 1; |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
else//размер меньше то считали не все error
|
||||||
|
{ myGLCD.print(" bad file " , 280, 457); |
||||||
|
wifi = 9; |
||||||
|
bad = 1; |
||||||
|
} |
||||||
|
myFile.close(); |
||||||
|
delay (1000); |
||||||
|
sd.chdir("/");//установка раб директории
|
||||||
|
delay (1000); |
||||||
|
sd.chdir("progn"); |
||||||
|
delay (100); |
||||||
|
if (bad == 1) |
||||||
|
{ if (sd.exists("Err.txt")) |
||||||
|
{ myFile.open("Err.txt", O_RDWR | O_CREAT | O_AT_END); |
||||||
|
delay (100); |
||||||
|
myFile.remove(); |
||||||
|
} |
||||||
|
delay (100); |
||||||
|
sd.rename(name, "Err.txt"); |
||||||
|
delay (100); |
||||||
|
|
||||||
|
} |
||||||
|
else { |
||||||
|
myFile.open(name1, O_RDWR | O_CREAT | O_AT_END); |
||||||
|
delay (100); |
||||||
|
myFile.remove(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (2000); |
||||||
|
// myGLCD.print(" end read inform " ,260, 460);
|
||||||
|
myGLCD.print(" ", 250, 457); |
||||||
|
clc(); |
||||||
|
digitalWrite(65, LOW); |
||||||
|
/* return;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//****Для отладки***************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
if ((x>=0) && (x<=799)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((y>=10) && (y<=479)) // яркость
|
||||||
|
{ |
||||||
|
menu(); |
||||||
|
} |
||||||
|
} |
||||||
|
}//touch
|
||||||
|
sec=rtc_clock.get_seconds(); |
||||||
|
if (sec==0) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
|
||||||
|
}//while
|
||||||
|
// dbgSerial.println(json);
|
||||||
|
//***********************************************************************************
|
||||||
|
*/ |
||||||
|
} |
||||||
|
//***********************************************
|
||||||
@ -0,0 +1,299 @@ |
|||||||
|
void intime() |
||||||
|
{ |
||||||
|
char c7 ; |
||||||
|
char c8 ; |
||||||
|
int i = 0; |
||||||
|
int h1, m1, s1, day1, month1, year1; |
||||||
|
int cl1 = 0; |
||||||
|
int save = 0; |
||||||
|
int x, y; |
||||||
|
int x1 = 170; |
||||||
|
int y1 = 200; |
||||||
|
//doo:
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0, 172, 238); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
|
||||||
|
|
||||||
|
while (Serial2.available()) { //очистка порта
|
||||||
|
|
||||||
|
c8 = Serial2.read(); |
||||||
|
//c7=Serial2.peek();
|
||||||
|
//Serial.print(String(c8));
|
||||||
|
delay(2); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
digitalWrite(18, LOW); |
||||||
|
delay(3000); |
||||||
|
// Serial2.flush();
|
||||||
|
digitalWrite(18, HIGH);//reset WIFI
|
||||||
|
myGLCD.print(" NTP " , 280, 457); |
||||||
|
|
||||||
|
delay(3000); |
||||||
|
//myGLCD.print(" connecting " ,280, 457);
|
||||||
|
//delay(500);
|
||||||
|
//***************************
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//****************************************************************************
|
||||||
|
i = 0; |
||||||
|
while (Serial2.available()) { |
||||||
|
if (Serial2.find("hi")) |
||||||
|
{ |
||||||
|
myGLCD.print("WiFi connected" , 280, 457); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//**************************************
|
||||||
|
Serial2.print("7");//проверка подключения к точке доступа если ответ больше 0 то подключились
|
||||||
|
delay(1000); |
||||||
|
myGLCD.print(" read server " , 280, 457); |
||||||
|
//***************************
|
||||||
|
i = 0; |
||||||
|
while (i < 600) |
||||||
|
{ |
||||||
|
i++; |
||||||
|
if (Serial2.available()) { |
||||||
|
if (Serial2.find("IP")) |
||||||
|
{ Serial2.read(); |
||||||
|
|
||||||
|
int ip1 = Serial2.parseInt(); |
||||||
|
|
||||||
|
int ip2 = Serial2.parseInt(); |
||||||
|
|
||||||
|
int ip3 = Serial2.parseInt(); |
||||||
|
|
||||||
|
int ip4 = Serial2.parseInt(); |
||||||
|
|
||||||
|
// Serial2.read();
|
||||||
|
String data1 = "IP:" + String(ip1) + "." + String(ip2) + "." + String(ip3) + "." + String(ip4) + " "; |
||||||
|
// String data1;
|
||||||
|
// data1 += ip1;
|
||||||
|
// data1 += ".";
|
||||||
|
// data1 += ip2;
|
||||||
|
// data1 += ".";
|
||||||
|
// data1 += ip3;
|
||||||
|
// data1 += ".";
|
||||||
|
// data1 += ip4;
|
||||||
|
// data1 += " "
|
||||||
|
myGLCD.print(data1 , 240, 457); |
||||||
|
} |
||||||
|
Serial2.print("2");//проверка подключения к точке доступа если ответ больше 0 то подключились
|
||||||
|
delay(1000); |
||||||
|
if (Serial2.find("2+")) |
||||||
|
{ myGLCD.print(" read ntp " , 240, 457); |
||||||
|
cl1 = 1; |
||||||
|
i=601; |
||||||
|
myGLCD.setColor(155, 155, 155); |
||||||
|
myGLCD.fillRect(160, 140, 660, 390); //тень
|
||||||
|
myGLCD.setColor(0, 0, 155); |
||||||
|
myGLCD.fillRect(150, 130, 650, 380); //поле
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawRect(160, 140, 640, 370); //обводка
|
||||||
|
|
||||||
|
myGLCD.drawRect(190, 320, 370, 360); //YES
|
||||||
|
myGLCD.drawRect(430, 320, 610, 360); //NO
|
||||||
|
myGLCD.setBackColor(0, 0, 155); //фон цифр
|
||||||
|
myGLCD.print("YES" , 255, 335); |
||||||
|
myGLCD.print("NO" , 500, 335); |
||||||
|
myGLCD.print("Set NTP Time" , 300, 140); |
||||||
|
h1 = Serial2.parseInt(); |
||||||
|
m1 = Serial2.parseInt(); |
||||||
|
s1 = Serial2.parseInt(); |
||||||
|
day1 = Serial2.parseInt(); |
||||||
|
month1 = Serial2.parseInt() * (-1); |
||||||
|
year1 = Serial2.parseInt() * (-1); |
||||||
|
//myGLCD.print(" end read NTP " , 280, 457);
|
||||||
|
if ( year1 == 1970) |
||||||
|
{ |
||||||
|
Serial2.print("2"); |
||||||
|
delay(1000); |
||||||
|
|
||||||
|
if (Serial2.find("2+")) |
||||||
|
{ |
||||||
|
myGLCD.print(" read NTP2 " , 280, 457); |
||||||
|
delay(1000); |
||||||
|
h1 = Serial2.parseInt(); |
||||||
|
m1 = Serial2.parseInt(); |
||||||
|
s1 = Serial2.parseInt(); |
||||||
|
day1 = Serial2.parseInt(); |
||||||
|
month1 = Serial2.parseInt() * (-1); |
||||||
|
year1 = Serial2.parseInt() * (-1); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
if (i > 0)delay (10); |
||||||
|
} |
||||||
|
|
||||||
|
//**************************************
|
||||||
|
if (cl1 == 1 ) |
||||||
|
{ myGLCD.setBackColor(0, 0, 155); //фон цифр
|
||||||
|
//***********************************************************************************************************
|
||||||
|
while (1) |
||||||
|
{ t = rtc.getTime(); |
||||||
|
//*********** T O U C H ********************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
{ //myGLCD.fillScr(0, 0, 0);
|
||||||
|
myTouch.read(); |
||||||
|
x = myTouch.getX(); |
||||||
|
y = myTouch.getY(); |
||||||
|
// Serial.print("xt=");
|
||||||
|
// Serial.println(xt);
|
||||||
|
// Serial.print("yt=");
|
||||||
|
// Serial.println(yt);
|
||||||
|
myGLCD.drawPixel(x, y); |
||||||
|
|
||||||
|
if ((y >= 320) && (y <= 360)) |
||||||
|
{ if ((x >= 200) && (x <= 350)) // Upper row
|
||||||
|
{ myGLCD.setColor(100, 255, 100); |
||||||
|
myGLCD.drawRect(190, 320, 370, 360); //YES
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.print("YES" , 255, 335); //The time is set
|
||||||
|
save = 1; |
||||||
|
|
||||||
|
} |
||||||
|
if ((x >= 450) && (x = 600)) // Upper row
|
||||||
|
{ myGLCD.setColor(255, 50, 0); |
||||||
|
myGLCD.drawRect(430, 320, 610, 360); //NO
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.print("NO" , 500, 335); //time is not set
|
||||||
|
save = 2; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (t.sec != oldsec) |
||||||
|
{ oldsec = t.sec; |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
String data = String(day1) + "/" + String(month1) + "/" + String(year1); |
||||||
|
myGLCD.print(data , 330, 175); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
s1++; |
||||||
|
if (s1 > 59) { |
||||||
|
s1 = 0; |
||||||
|
m1++; |
||||||
|
if (m1 > 59) { |
||||||
|
h1++; |
||||||
|
m1 = 0; |
||||||
|
if (h1 > 23)h1 = 0; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
int clockCenterX = 270; |
||||||
|
int clockCenterY = 220; |
||||||
|
if (h1 < 10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, clockCenterX, clockCenterY - 20); |
||||||
|
myGLCD.printNumI(h1, clockCenterX + 32, clockCenterY - 20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(h1, clockCenterX, clockCenterY - 20); |
||||||
|
} |
||||||
|
myGLCD.print(":", clockCenterX + 64, clockCenterY - 20); |
||||||
|
if (m1 < 10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, clockCenterX + 96, clockCenterY - 20); |
||||||
|
myGLCD.printNumI(m1, clockCenterX + 128, clockCenterY - 20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(m1, clockCenterX + 96, clockCenterY - 20); |
||||||
|
} |
||||||
|
myGLCD.print(":", clockCenterX + 160, clockCenterY - 20); |
||||||
|
if (s1 < 10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0, clockCenterX + 96 * 2, clockCenterY - 20); |
||||||
|
myGLCD.printNumI(s1, clockCenterX + 96 * 2 + 32, clockCenterY - 20); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(s1, clockCenterX + 96 * 2, clockCenterY - 20); |
||||||
|
} |
||||||
|
if (save == 2) |
||||||
|
{ myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setColor(0, 0, 155); |
||||||
|
myGLCD.fillRect(170, 280, 630, 368); //поле
|
||||||
|
myGLCD.setColor(255, 50, 0); |
||||||
|
myGLCD.print("The time is not set" , 250, 310); |
||||||
|
delay(3000); |
||||||
|
return; |
||||||
|
} |
||||||
|
if (save == 1) |
||||||
|
{ myGLCD.setFont(BigFont); |
||||||
|
rtc.setTime(h1, m1, s1); // Set the time to 12:00:00 (24hr format)
|
||||||
|
rtc.setDate(day1, month1, year1); // Set the date to January 1st, 2014
|
||||||
|
dow = calcDOW(day1, month1, year1); |
||||||
|
rtc.setDOW(dow); |
||||||
|
myGLCD.setColor(0, 0, 155); |
||||||
|
myGLCD.fillRect(170, 280, 630, 368); //поле
|
||||||
|
myGLCD.setColor(100, 255, 100); |
||||||
|
myGLCD.print("The time is set" , 280, 310); |
||||||
|
delay(3000); |
||||||
|
return; |
||||||
|
} |
||||||
|
} |
||||||
|
delay(500); |
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
//****************************************************************
|
||||||
|
void vrem() |
||||||
|
{ //t19:05d29/0915/
|
||||||
|
// peredacha vremeni drugim ds1307
|
||||||
|
min1 = t.min; |
||||||
|
hour1 = t.hour; |
||||||
|
|
||||||
|
Serial.print("t"); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (hour1 > 9) |
||||||
|
{ |
||||||
|
Serial.print(hour1); |
||||||
|
} |
||||||
|
else |
||||||
|
{ Serial.print("0"); |
||||||
|
Serial.print(hour1); |
||||||
|
} |
||||||
|
Serial.print(":"); |
||||||
|
if (min1 > 9) |
||||||
|
{ |
||||||
|
Serial.print(min1); |
||||||
|
} |
||||||
|
else |
||||||
|
{ Serial.print("0"); |
||||||
|
Serial.print(min1); |
||||||
|
} |
||||||
|
Serial.print("d"); |
||||||
|
if (date > 9) |
||||||
|
{ Serial.print(date); |
||||||
|
} |
||||||
|
else |
||||||
|
{ Serial.print("0"); |
||||||
|
Serial.print(date); |
||||||
|
} |
||||||
|
Serial.print("/"); |
||||||
|
if (mon > 9) |
||||||
|
{ Serial.print(mon); |
||||||
|
} |
||||||
|
else |
||||||
|
{ Serial.print("0"); |
||||||
|
Serial.print(mon); |
||||||
|
} |
||||||
|
Serial.print(t.year - 2000); |
||||||
|
Serial.print("/"); |
||||||
|
} |
||||||
|
|
||||||
@ -0,0 +1,297 @@ |
|||||||
|
|
||||||
|
void kalendar(int days, int mon, word years) |
||||||
|
//void kalen()
|
||||||
|
{ |
||||||
|
char* strm[] = {"JAN","FEBR","MARCH","APRIL","MAY","JUNE","JULY","AUG","SEPT","OCT","NOV","DEC"}; |
||||||
|
char* strw[] = {"MO","TU","WE","TH","FR","SA","SU"}; |
||||||
|
int mon1; |
||||||
|
// int days;
|
||||||
|
int dmax; |
||||||
|
word years1; |
||||||
|
byte dow; |
||||||
|
|
||||||
|
|
||||||
|
//*****************************************************************************************
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.fillRoundRect(80, 35, 632, 420); |
||||||
|
myGLCD.setColor(255,114,0); |
||||||
|
myGLCD.fillRoundRect(80, 35, 632, 87); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(strm[mon-1], 250, 50); |
||||||
|
myGLCD.printNumI(years, 420, 50); |
||||||
|
myGLCD.setColor(0, 0, 100); |
||||||
|
dmax=validmax(days, mon, years); |
||||||
|
for(int i=0;i<7;i++)//вывод дней недели
|
||||||
|
{ |
||||||
|
if (i>4) |
||||||
|
{myGLCD.setColor(255, 0, 0); //вывод красным выходных дней
|
||||||
|
} |
||||||
|
myGLCD.print(strw[i], 104+i*72, 89); |
||||||
|
} |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
myGLCD.setColor(0, 0, 255); |
||||||
|
days=1; |
||||||
|
int yk=0; |
||||||
|
dow=calcDOW1(days, mon, years); |
||||||
|
|
||||||
|
for (days=1;days<dmax+1;days++)//вывод чисел календаря
|
||||||
|
{ |
||||||
|
|
||||||
|
if (mon==t.mon)// текущая дата
|
||||||
|
{ |
||||||
|
if ( years==t.year) |
||||||
|
{ |
||||||
|
if ( days==t.date) |
||||||
|
{ |
||||||
|
// myGLCD.setColor(200, 200, 200);
|
||||||
|
// myGLCD.fillRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170);
|
||||||
|
|
||||||
|
if (dow>5) |
||||||
|
{ |
||||||
|
myGLCD.setColor(250, 198, 239); |
||||||
|
myGLCD.fillRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170); |
||||||
|
myGLCD.setColor(255, 0, 0); |
||||||
|
myGLCD.drawRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170); |
||||||
|
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(182, 217, 252); |
||||||
|
myGLCD.fillRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170); |
||||||
|
myGLCD.setColor(0, 0, 255);
|
||||||
|
myGLCD.drawRoundRect((dow-1)*72+95, yk*50+125, (dow-1)*72+160, yk*50+170); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// myGLCD.printNumI(days, (dow-1)*72+104, yk*50+135);
|
||||||
|
} |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if (dow>5) |
||||||
|
{myGLCD.setColor(255, 0, 0);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(0, 0, 255);
|
||||||
|
} |
||||||
|
myGLCD.printNumI(days, (dow-1)*72+104, yk*50+135);//вывод чисел календаря
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (dow>6) |
||||||
|
{dow=0; |
||||||
|
yk=yk+1; |
||||||
|
} |
||||||
|
|
||||||
|
dow=dow+1; |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
days=1; |
||||||
|
if (mon==12) |
||||||
|
{mon1=1; |
||||||
|
years1=years+1; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
mon1=mon+1; |
||||||
|
years1=years; |
||||||
|
} |
||||||
|
dow=calcDOW1(days, mon1, years1);
|
||||||
|
myGLCD.setColor(100, 100, 100); //*********************************
|
||||||
|
for (days=1;dow<8;days++) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(days, (dow-1)*72+104, yk*50+135);
|
||||||
|
dow=dow+1; |
||||||
|
} |
||||||
|
|
||||||
|
if (mon==1) |
||||||
|
{mon1=12; |
||||||
|
years1=years-1; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
mon1=mon-1; |
||||||
|
years1=years; |
||||||
|
} |
||||||
|
dmax=validmax(days, mon1, years1); |
||||||
|
days=dmax; |
||||||
|
dow=calcDOW1(days, mon1, years1);
|
||||||
|
if(dow<7) |
||||||
|
{ |
||||||
|
myGLCD.setColor(100, 100, 100); //*************************
|
||||||
|
for (days=dmax;dow>0;days--) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(days, (dow-1)*72+104, 135);
|
||||||
|
dow=dow-1; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
//******************************kalendar*******************************************************************
|
||||||
|
void kalendarset()
|
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int days=t.date; |
||||||
|
int mon=t.mon; |
||||||
|
word years=t.year;
|
||||||
|
|
||||||
|
kalendar(days, mon, years);
|
||||||
|
|
||||||
|
|
||||||
|
// myButtons.setButtonColors(VGA_WHITE,VGA_AQUA,VGA_WHITE,VGA_YELLOW,VGA_RED);
|
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
// myButtons.setSymbolFont(Dingbats1_XL);
|
||||||
|
drawButkal(); |
||||||
|
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
if ((y>=390) && (y<=390+30)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x>= 588) && (x<= 588+30)) //X
|
||||||
|
{waitForIt( 588, 390, 588+30, 390+30); |
||||||
|
return; |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
if ((y>=40) && (y<=40+30)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((x>= 588) && (x<= 588+30)) //+
|
||||||
|
{waitForIt( 588, 40, 588+30, 40+30);
|
||||||
|
mon=mon+1; |
||||||
|
if (mon>12) |
||||||
|
{mon=1; |
||||||
|
} |
||||||
|
kalendar(days, mon, years); |
||||||
|
drawButkal(); |
||||||
|
} |
||||||
|
if ((x>= 90) && (x<= 90+30)) //-
|
||||||
|
{waitForIt( 90, 40, 90+30, 40+30);
|
||||||
|
mon=mon-1; |
||||||
|
if (mon<1) |
||||||
|
{mon=12; |
||||||
|
} |
||||||
|
kalendar(days, mon, years);
|
||||||
|
drawButkal(); |
||||||
|
} |
||||||
|
if ((x>= 545) && (x<= 545+30)) //>
|
||||||
|
{waitForIt( 545, 40, 545+30, 40+30);
|
||||||
|
years=years+1; |
||||||
|
if (years>2099) |
||||||
|
{years=2000; |
||||||
|
} |
||||||
|
kalendar(days, mon, years); |
||||||
|
drawButkal(); |
||||||
|
} |
||||||
|
if ((x>= 135) && (x<= 135+30)) //<
|
||||||
|
{waitForIt( 135, 40, 135+30, 40+30);
|
||||||
|
years=years-1; |
||||||
|
if (years<2000) |
||||||
|
{years=2099; |
||||||
|
} |
||||||
|
kalendar(days, mon, years); |
||||||
|
drawButkal(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
sec=t.sec; |
||||||
|
if (sec==0) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
byte validmax(byte d, byte m, word y) |
||||||
|
{ |
||||||
|
byte mArr[12] = {31,0,31,30,31,30,31,31,30,31,30,31}; |
||||||
|
byte dmax; |
||||||
|
|
||||||
|
if (m==2) |
||||||
|
{ |
||||||
|
if ((y % 4)==0) |
||||||
|
{ |
||||||
|
dmax=29; |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
dmax=28; |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
dmax=mArr[m-1]; |
||||||
|
} |
||||||
|
|
||||||
|
return dmax; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
byte calcDOW1(byte d, byte m, int y) |
||||||
|
{ |
||||||
|
int dow; |
||||||
|
byte mArr[12] = {6,2,2,5,0,3,5,1,4,6,2,4}; |
||||||
|
|
||||||
|
dow = (y % 100); |
||||||
|
dow = dow*1.25; |
||||||
|
dow += d; |
||||||
|
dow += mArr[m-1]; |
||||||
|
if (((y % 4)==0) && (m<3)) |
||||||
|
dow -= 1; |
||||||
|
while (dow>7) |
||||||
|
dow -= 7; |
||||||
|
|
||||||
|
return dow; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void drawButkal()// календарь на месяц
|
||||||
|
{ |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawBitmap (588, 390, 30, 30, xf); |
||||||
|
myGLCD.drawRoundRect (588, 390, 588+30, 390+30);//X
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (588, 40, 30, 30, ad); |
||||||
|
myGLCD.drawRoundRect ( 588, 40, 618, 70); //+
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (90, 40, 30, 30, mi);
|
||||||
|
myGLCD.drawRoundRect ( 90, 40, 120, 70); //-
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (545, 40, 30, 30, pr); |
||||||
|
myGLCD.drawRoundRect ( 545, 40, 545+30, 40+30);//>
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (135, 40, 30, 30, le); |
||||||
|
myGLCD.drawRoundRect ( 135, 40, 135+30, 40+30);//<
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,420 @@ |
|||||||
|
//********************************************************************************
|
||||||
|
void menu() |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
byte bait2; |
||||||
|
byte bait3; |
||||||
|
//long address;
|
||||||
|
int i; |
||||||
|
int w; |
||||||
|
int w1; |
||||||
|
int w2; |
||||||
|
int q=0; |
||||||
|
int x,y; |
||||||
|
if( t.hour<7 ) |
||||||
|
{night=1; |
||||||
|
} |
||||||
|
else |
||||||
|
{night=0; |
||||||
|
} |
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
sd.chdir("/"); |
||||||
|
delay (100); |
||||||
|
//myFiles.loadBitmap(0, 0, 800, 480, "33a.raw");
|
||||||
|
myFile.open("33.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (i =0 ; i < 96000; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>399){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, 2*m, 400, 1, pic1, 2); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
|
||||||
|
|
||||||
|
// myGLCD.fillScr(VGA_BLUE);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
|
||||||
|
myGLCD.drawBitmap (100, 100, 80, 80, flr); |
||||||
|
myGLCD.drawRoundRect (100, 100, 180, 180);// fl
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (100, 190, 80, 80, dom1);//******************************
|
||||||
|
myGLCD.drawRoundRect (100, 190, 180, 270);// dom1
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 10, 80, 80, aandelen); |
||||||
|
myGLCD.drawRoundRect (10, 10, 90, 90);// Aandelend
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (100, 10, 80, 80, clokk); |
||||||
|
myGLCD.drawRoundRect (100, 10, 180, 90);// internet
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 100, 80, 80,ints); |
||||||
|
myGLCD.drawRoundRect (10, 100, 90, 180); //Radio
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 190, 80, 80,wer); |
||||||
|
myGLCD.drawRoundRect (10, 190, 90, 270); //Klok
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 280, 80, 80, fotos); |
||||||
|
myGLCD.drawRoundRect (10, 280, 90, 360); //Foto
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (10, 370, 80, 80, instellingen); |
||||||
|
myGLCD.drawRoundRect (10, 370, 90, 450); //Install
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
|
||||||
|
myGLCD.drawBitmap (769, 449, 30, 30, jar); |
||||||
|
myGLCD.drawRoundRect (769, 449, 769+30, 449+30);// яркость
|
||||||
|
kalend(); |
||||||
|
clc(); |
||||||
|
c=0;
|
||||||
|
|
||||||
|
while(1) |
||||||
|
{
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
x=myTouch.getX(); |
||||||
|
y=myTouch.getY(); |
||||||
|
|
||||||
|
if ((x>=769) && (x<=799)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((y>=449) && (y<=479)) // яркость
|
||||||
|
{ |
||||||
|
waitForIt1(769, 449, 799, 479); |
||||||
|
bright(); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
if ((x>=100) && (x<=180)) // Upper row
|
||||||
|
{ |
||||||
|
if ((y>=10) && (y<=90)) // Aandelend
|
||||||
|
{waitForIt1(100, 10, 180, 90); |
||||||
|
|
||||||
|
intime(); |
||||||
|
menu(); |
||||||
|
// grafik();
|
||||||
|
//paint();
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=100) && (y<=180)) //Radio
|
||||||
|
{waitForIt1(100, 100, 180, 180); |
||||||
|
//radio2();
|
||||||
|
Serialread(); |
||||||
|
// flower();
|
||||||
|
menu(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=190) && (y<=270)) //HOME
|
||||||
|
{waitForIt1(100, 190, 180, 270); |
||||||
|
//radio2();
|
||||||
|
initial(); |
||||||
|
home1(); |
||||||
|
menu(); |
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ((x>=10) && (x<=90)) // Upper row
|
||||||
|
{ |
||||||
|
|
||||||
|
if ((y>=10) && (y<=90)) // Aandelend
|
||||||
|
{waitForIt1(10, 10, 90, 90); |
||||||
|
initial(); |
||||||
|
grafik(); |
||||||
|
//paint();
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=100) && (y<=180)) //Radio
|
||||||
|
{waitForIt1(10, 100, 90, 180); |
||||||
|
//radio2();
|
||||||
|
internet(); |
||||||
|
menu(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=190) && (y<=270)) //(10, 190, 90, 270); //Klok
|
||||||
|
{waitForIt1(10, 190, 90, 270); |
||||||
|
initial(); |
||||||
|
pogoda(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=280) && (y<=360)) //(10, 280, 90, 360); //Foto
|
||||||
|
{ |
||||||
|
waitForIt1(10, 280, 90, 360); |
||||||
|
initial(); |
||||||
|
raw(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Install
|
||||||
|
{waitForIt1(10, 370, 90, 450); |
||||||
|
sdlist(); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
vrem(); |
||||||
|
clok(); |
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
//*****************************************
|
||||||
|
|
||||||
|
t = rtc.getTime(); |
||||||
|
// sec=t.sec;
|
||||||
|
if (raw1==0) |
||||||
|
{raw1=1; |
||||||
|
raw(); |
||||||
|
} |
||||||
|
if (t.sec==0) |
||||||
|
{ |
||||||
|
delay(800); |
||||||
|
clc(); |
||||||
|
} |
||||||
|
if ((t.sec==5) || (t.sec==20) || (t.sec==35)|| (t.sec==50)) |
||||||
|
{
|
||||||
|
priem(); |
||||||
|
} |
||||||
|
if ((t.sec==14) || (t.sec==42) ) |
||||||
|
{ |
||||||
|
dtu21(); |
||||||
|
|
||||||
|
bmp085(); |
||||||
|
|
||||||
|
uart(); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
//*******************************************************************************
|
||||||
|
void kalend() |
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
//long address;
|
||||||
|
|
||||||
|
int w; |
||||||
|
int i; |
||||||
|
int q=0; |
||||||
|
// char* S1[]={"fam1.txt","fam.txt","fam2.txt","fam3.txt"};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myFile.open("Kalendar.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
//160*160=25600
|
||||||
|
for (i =0 ; i < 25600; i = i++) { |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>159){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (640, m, 160, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close(); |
||||||
|
} |
||||||
|
//************************************************************************************
|
||||||
|
|
||||||
|
void clc()
|
||||||
|
{ char* strm[] = {" JAN","FEBR","MARCH","APRIL"," MAY","JUNE","JULY"," AUG","SEPT"," OCT"," NOV"," DEC"}; |
||||||
|
int cx=640; |
||||||
|
int cy=383; |
||||||
|
int month1; |
||||||
|
//**********CLOK*******************************************************************************
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(0,38,92); |
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
t = rtc.getTime(); |
||||||
|
if (t.hour<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,cx, cy); |
||||||
|
myGLCD.printNumI(t.hour, cx+32, cy); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.hour,cx, cy); |
||||||
|
} |
||||||
|
myGLCD.print(":",cx+64, cy); |
||||||
|
if (t.min<10) |
||||||
|
{ |
||||||
|
myGLCD.printNumI(0,cx+96, cy); |
||||||
|
myGLCD.printNumI(t.min, cx+128, cy); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.printNumI(t.min, cx+96, cy); |
||||||
|
} |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setFont(BigFont);
|
||||||
|
|
||||||
|
myGLCD.setColor(0,0,155); |
||||||
|
myGLCD.setBackColor(255,114,0); |
||||||
|
month1=t.mon; |
||||||
|
myGLCD.print(strm[month1-1], 663, 18); |
||||||
|
|
||||||
|
// **********WIFI work ********************************************************************
|
||||||
|
if(t.hour>7) |
||||||
|
{ |
||||||
|
if (t.min==7)
|
||||||
|
{if (fwifi==1) |
||||||
|
{fwifi=0; |
||||||
|
internet(); |
||||||
|
} |
||||||
|
}
|
||||||
|
if (wifi>0) //если была ошибка подключения
|
||||||
|
{if (t.min==23) |
||||||
|
{ |
||||||
|
internet(); |
||||||
|
|
||||||
|
}
|
||||||
|
} |
||||||
|
}
|
||||||
|
|
||||||
|
//**************************опрос всех датчиков каждый час и запись всех данных в massiv 23:00 ******************
|
||||||
|
if (t.min==0) |
||||||
|
{ |
||||||
|
|
||||||
|
// printmassiv();
|
||||||
|
if (fsec==1) |
||||||
|
{uart(); |
||||||
|
bmp085(); |
||||||
|
uart(); |
||||||
|
savemastd();//запись данных датчиков в рабочий массив
|
||||||
|
|
||||||
|
digitalWrite(53, LOW);//reset NRF
|
||||||
|
delay(100); |
||||||
|
digitalWrite(53, HIGH); |
||||||
|
|
||||||
|
fsec=0; //delay (300);
|
||||||
|
if(t.hour==23) |
||||||
|
{sdwrite();//запись данных в файлы по месяцам и дням директориии улица и дом Temul i Temdom
|
||||||
|
savemasclok();//запись времени на sd 12:56 15/05/14 и массива rab
|
||||||
|
saveminmax();//запись макс мин и средних значений датчиков за день
|
||||||
|
}
|
||||||
|
|
||||||
|
if((t.hour>=0)||(t.hour<23)) |
||||||
|
{ |
||||||
|
savemasclok();//запись времени на sd 12:56 15/05/14 и массива rab
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if (t.min>30) |
||||||
|
{fsec=1; |
||||||
|
fwifi=1; |
||||||
|
} |
||||||
|
//*****************************************************************
|
||||||
|
|
||||||
|
// myGLCD.print(rtc.getDOWStr(FORMAT_SHORT), 256+450, 8);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.setColor(0,0,155); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
if (t.date<10) |
||||||
|
myGLCD.printNumI(t.date, 710, 56); |
||||||
|
else |
||||||
|
myGLCD.printNumI(t.date, 695, 56); |
||||||
|
// myGLCD.setFont(BigFont);
|
||||||
|
// myGLCD.setBackColor(180,180,180);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
dow= t.dow; |
||||||
|
myGLCD.print(str[dow-1], 690,110); |
||||||
|
/// myGLCD.printNumI(rtc_clock.get_months(), 695, 122);
|
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.setBackColor(180,180,180); |
||||||
|
myGLCD.printNumI(t.year, 694, 143); |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor(0,0,55); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
void waitForIt1(int x1, int y1, int x2, int y2) |
||||||
|
{ |
||||||
|
myGLCD.setColor(255, 232, 13); |
||||||
|
myGLCD.drawRoundRect (x1, y1, x2, y2); |
||||||
|
while (myTouch.dataAvailable()) |
||||||
|
myTouch.read(); |
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.drawRoundRect (x1, y1, x2, y2); |
||||||
|
} |
||||||
@ -0,0 +1,233 @@ |
|||||||
|
void nightgraf() |
||||||
|
{ |
||||||
|
|
||||||
|
mon1=t.mon; |
||||||
|
years1=t.year; |
||||||
|
days1=t.date; |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(0, 0, 635, 475);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(0, 0, 635, 475);//прямоугольник с обводкой
|
||||||
|
|
||||||
|
pikgrafik(); |
||||||
|
colorgraf=0; |
||||||
|
picgraftoday(); |
||||||
|
myGLCD.setFont( SevenSegNumFont);//myGLCD.setFont(BigFont);Ubuntubold
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
|
||||||
|
myGLCD.setColor(255,242, 0); |
||||||
|
myGLCD.printNumI(pressure,430,205);// myGLCD.print(":",cx+32+32, cy);
|
||||||
|
myGLCD.setFont( Ubuntubold);
|
||||||
|
myGLCD.print("MM",430+103, 205+24); |
||||||
|
|
||||||
|
|
||||||
|
//*********TEMPUL**************************************
|
||||||
|
// myGLCD.setColor(255,142,21);
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT); |
||||||
|
if (zn<2) |
||||||
|
{myGLCD.print("-",420, 65+8); |
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.print("+",420, 65+8); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.print(",",420+88, 65+24); |
||||||
|
myGLCD.print("C",420+88+20+32+10, 68); |
||||||
|
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
if (tu<10) |
||||||
|
{ myGLCD.printNumI(tu,420+24+32,65);// myGLCD.print(":",cx+32+32, cy);
|
||||||
|
} |
||||||
|
else |
||||||
|
{myGLCD.printNumI(tu,420+24,65); |
||||||
|
} |
||||||
|
myGLCD.printNumI(tud,420+88+20,65);
|
||||||
|
//*********HUG**************************************
|
||||||
|
myGLCD.setColor(129,239,255); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print(",",420+88, 300+24);
|
||||||
|
myGLCD.print("%",420+88+20+32+10, 300+24);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.printNumI(hu,420+24,300); |
||||||
|
myGLCD.printNumI(hud,420+88+20,300); |
||||||
|
//*************tdom*******************************
|
||||||
|
myGLCD.setColor(5,252,46); |
||||||
|
|
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.print("+",420, 395+8);
|
||||||
|
myGLCD.print(",",420+88, 395+27); |
||||||
|
myGLCD.print("C",420+88+20+32+10, 395);
|
||||||
|
myGLCD.setFont( SevenSegNumFont); |
||||||
|
myGLCD.printNumI(tdc,420+24,395); |
||||||
|
//int tem = temperatur;
|
||||||
|
myGLCD.printNumI(tdd,420+88+20,395); |
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
//*********************min max************************************************
|
||||||
|
// myGLCD.setBackColor(8,101,192);
|
||||||
|
myGLCD.setColor(255, 55, 55); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
int px=430; |
||||||
|
int py=80+50; |
||||||
|
byte hh; |
||||||
|
byte mm; |
||||||
|
byte d; |
||||||
|
byte m; |
||||||
|
word y; |
||||||
|
//*************max****************************************
|
||||||
|
d=time1[24]/1000; |
||||||
|
m=(time1[24]%1000)/10; |
||||||
|
y=((time1[24]%1000)%10)*10; |
||||||
|
hh=time1[25]/1000; |
||||||
|
mm=(time1[25]%1000)/10; |
||||||
|
y=y+((time1[25]%1000)%10); |
||||||
|
myGLCD.setBackColor(255,255,255);
|
||||||
|
myGLCD.print("Tmax=+" ,px, py); |
||||||
|
myGLCD.printNumI(temul[24]/10, px+16*6, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(temul[24]%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print(":" ,px-4+16*2, py+16); |
||||||
|
if(hh<10) |
||||||
|
{ myGLCD.print("0" ,px, py+16); |
||||||
|
myGLCD.printNumI(hh, px+16, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(hh, px, py+16); |
||||||
|
} |
||||||
|
//myGLCD.print(":" ,px+16*2, py+16);
|
||||||
|
|
||||||
|
if(mm<10) |
||||||
|
{ myGLCD.print("0" ,px+16*3-8, py+16); |
||||||
|
myGLCD.printNumI(mm, px+16*4-8, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(mm, px+16*3-8, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(" " ,px+16*5, py+16);
|
||||||
|
myGLCD.print("." ,px+16*7-4, py+16); |
||||||
|
if(d<10) |
||||||
|
{ myGLCD.print("0" ,px+16*5, py+16); |
||||||
|
myGLCD.printNumI(d, px+16*6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(d, px+16*5, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.print("." ,px+16*10-10, py+16); |
||||||
|
if(m<10) |
||||||
|
{ myGLCD.print("0" ,px+16*8-6, py+16); |
||||||
|
myGLCD.printNumI(m, px+16*9-6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(m, px+16*8-6, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print("." ,px+16*11-12, py+16);
|
||||||
|
|
||||||
|
myGLCD.printNumI(y, px+16*11-14, py+16); |
||||||
|
|
||||||
|
//*************min ***********************************************
|
||||||
|
myGLCD.setColor(55, 55, 255); |
||||||
|
myGLCD.setBackColor(255,255,255);
|
||||||
|
d=time1[26]/1000; |
||||||
|
m=(time1[26]%1000)/10; |
||||||
|
y=((time1[26]%1000)%10)*10; |
||||||
|
hh=time1[27]/1000; |
||||||
|
mm=(time1[27]%1000)/10; |
||||||
|
y=y+((time1[27]%1000)%10); |
||||||
|
int Tm;
|
||||||
|
py=py+35; |
||||||
|
if (temul[25]>1000) |
||||||
|
{ Tm=temul[25]-1000; |
||||||
|
|
||||||
|
if(Tm<100) |
||||||
|
{myGLCD.print("Tmin= -" ,px, py); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("Tmin=-" ,px, py); |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
Tm=temul[25]; |
||||||
|
if(Tm<100) |
||||||
|
{myGLCD.print("Tmin= +" ,px, py); |
||||||
|
} |
||||||
|
else |
||||||
|
{ myGLCD.print("Tmin=+" ,px, py); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if(Tm<100)
|
||||||
|
{ // myGLCD.print(" " ,px+16*6, py);
|
||||||
|
myGLCD.printNumI(Tm/10, px+16*7, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(Tm%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
}
|
||||||
|
else |
||||||
|
{ myGLCD.printNumI(Tm/10, px+16*6, py);
|
||||||
|
myGLCD.print("," ,px+16*8, py); |
||||||
|
myGLCD.printNumI(Tm%10, px+16*9, py); |
||||||
|
myGLCD.print("C " ,px+16*10, py); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print(":" ,px-4+16*2, py+16); |
||||||
|
if(hh<10) |
||||||
|
{ myGLCD.print("0" ,px, py+16); |
||||||
|
myGLCD.printNumI(hh, px+16, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(hh, px, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(":" ,px+16*2, py+16);
|
||||||
|
|
||||||
|
if(mm<10) |
||||||
|
{ myGLCD.print("0" ,px+16*3-8, py+16); |
||||||
|
myGLCD.printNumI(mm, px+16*4-8, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(mm, px+16*3-8, py+16); |
||||||
|
} |
||||||
|
// myGLCD.print(" " ,px+16*5, py+16);
|
||||||
|
myGLCD.print("." ,px+16*7-4, py+16); |
||||||
|
if(d<10) |
||||||
|
{ myGLCD.print("0" ,px+16*5, py+16); |
||||||
|
myGLCD.printNumI(d, px+16*6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(d, px+16*5, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.print("." ,px+16*10-10, py+16); |
||||||
|
|
||||||
|
if(m<10) |
||||||
|
{ myGLCD.print("0" ,px+16*8-6, py+16); |
||||||
|
myGLCD.printNumI(m, px+16*9-6, py+16); |
||||||
|
} |
||||||
|
else
|
||||||
|
{myGLCD.printNumI(m, px+16*8-6, py+16); |
||||||
|
} |
||||||
|
|
||||||
|
myGLCD.printNumI(y, px+16*11-14, py+16); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//delay(8000);
|
||||||
|
|
||||||
|
} |
||||||
@ -0,0 +1,130 @@ |
|||||||
|
//***************************************************************************************************
|
||||||
|
void paint() |
||||||
|
{ |
||||||
|
|
||||||
|
myGLCD.clrScr(); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawLine(32,0,32,myGLCD.getDisplayYSize()-1); |
||||||
|
myGLCD.drawLine(myGLCD.getDisplayXSize()-32,0,myGLCD.getDisplayXSize()-32,myGLCD.getDisplayYSize()-1); |
||||||
|
myGLCD.print("C", myGLCD.getDisplayXSize()-24, 8); |
||||||
|
myGLCD.print("L", myGLCD.getDisplayXSize()-24, 24); |
||||||
|
myGLCD.print("E", myGLCD.getDisplayXSize()-24, 40); |
||||||
|
myGLCD.print("A", myGLCD.getDisplayXSize()-24, 56); |
||||||
|
myGLCD.print("R", myGLCD.getDisplayXSize()-24, 72); |
||||||
|
myGLCD.print("+", myGLCD.getDisplayXSize()-24, 136); |
||||||
|
myGLCD.print("-", myGLCD.getDisplayXSize()-24, 200); |
||||||
|
// myButtons.drawButton(but7);
|
||||||
|
myGLCD.fillRect(myGLCD.getDisplayXSize()-32,96,myGLCD.getDisplayXSize()-1,128); |
||||||
|
myGLCD.drawLine(myGLCD.getDisplayXSize()-32,160,myGLCD.getDisplayXSize()-1,160); |
||||||
|
myGLCD.drawLine(myGLCD.getDisplayXSize()-32,192,myGLCD.getDisplayXSize()-1,192); |
||||||
|
myGLCD.drawLine(myGLCD.getDisplayXSize()-32,224,myGLCD.getDisplayXSize()-1,224); |
||||||
|
for (int i=0; i<8; i++) |
||||||
|
{ |
||||||
|
myGLCD.setColor(colorlist[i]); |
||||||
|
myGLCD.fillRect(0, (i*30), 24, (((i+1)*30)-1)); |
||||||
|
} |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
int x; |
||||||
|
int y; |
||||||
|
int a=0; |
||||||
|
do |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
while (myTouch.dataAvailable() == true) |
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
x = myTouch.getX(); |
||||||
|
y = myTouch.getY(); |
||||||
|
// if ((x>300) and (y>230))
|
||||||
|
//{a=1;
|
||||||
|
//}
|
||||||
|
if ((x<700) and (y>400))
|
||||||
|
{a=1; |
||||||
|
} |
||||||
|
if ((x!=-1) and (y!=-1)) |
||||||
|
{ |
||||||
|
if (x>(31+bsize) and (x<myGLCD.getDisplayXSize()-(31+bsize))) |
||||||
|
{ |
||||||
|
if (bsize==1) |
||||||
|
myGLCD.drawPixel(x, y); |
||||||
|
else |
||||||
|
myGLCD.fillCircle(x, y, bsize); |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if (x<(30+bsize)) |
||||||
|
{ |
||||||
|
if (y<240) |
||||||
|
{ |
||||||
|
color = y / 30; |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
while (myTouch.dataAvailable()) {}; |
||||||
|
delay(50); |
||||||
|
} |
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
if (y<96) |
||||||
|
{ |
||||||
|
myGLCD.setColor(VGA_BLACK); |
||||||
|
myGLCD.fillRect(33, 0, myGLCD.getDisplayXSize()-33, myGLCD.getDisplayYSize()-1); |
||||||
|
myGLCD.setColor(colorlist[color]); |
||||||
|
} |
||||||
|
if ((y>128) and (y<160)) |
||||||
|
{ |
||||||
|
if (bsize<7) |
||||||
|
{ |
||||||
|
bsize++; |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
while (myTouch.dataAvailable()) {}; |
||||||
|
delay(50); |
||||||
|
} |
||||||
|
} |
||||||
|
if ((y>160) and (y<192)) |
||||||
|
{ |
||||||
|
bsize=4; |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
while (myTouch.dataAvailable()) {}; |
||||||
|
delay(50); |
||||||
|
} |
||||||
|
if ((y>192) and (y<224)) |
||||||
|
{ |
||||||
|
if (bsize>1) |
||||||
|
{ |
||||||
|
bsize--; |
||||||
|
drawColorMarkerAndBrushSize(color); |
||||||
|
while (myTouch.dataAvailable()) {}; |
||||||
|
delay(50); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
} while (a<1); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
|
||||||
|
void drawColorMarkerAndBrushSize(int col) |
||||||
|
|
||||||
|
{ |
||||||
|
myGLCD.setColor(VGA_BLACK); |
||||||
|
myGLCD.fillRect(25, 0, 31, 239); |
||||||
|
myGLCD.fillRect(myGLCD.getDisplayXSize()-31, 161, myGLCD.getDisplayXSize()-1, 191); |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.drawPixel(25, (col*30)+15); |
||||||
|
for (int i=1; i<7; i++) |
||||||
|
myGLCD.drawLine(25+i, ((col*30)+15)-i, 25+i, ((col*30)+15)+i); |
||||||
|
|
||||||
|
if (color==1) |
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
else |
||||||
|
myGLCD.setColor(colorlist[col]); |
||||||
|
if (bsize==1) |
||||||
|
myGLCD.drawPixel(myGLCD.getDisplayXSize()-15, 177); |
||||||
|
else |
||||||
|
myGLCD.fillCircle(myGLCD.getDisplayXSize()-15, 177, bsize); |
||||||
|
|
||||||
|
myGLCD.setColor(colorlist[col]); |
||||||
|
} |
||||||
@ -0,0 +1,46 @@ |
|||||||
|
void pictrad() |
||||||
|
{ |
||||||
|
byte bait; |
||||||
|
byte bait1; |
||||||
|
|
||||||
|
//long address;
|
||||||
|
long i; |
||||||
|
int w; |
||||||
|
int w1; |
||||||
|
int w2; |
||||||
|
int q=0; |
||||||
|
|
||||||
|
myGLCD.setFont( BigFont); |
||||||
|
|
||||||
|
// myGLCD.fillScr(200,200,200);
|
||||||
|
|
||||||
|
myFile.open("rad.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (i =0 ; i < 384000; i = i++) |
||||||
|
{ |
||||||
|
n=n+1; |
||||||
|
bait = myFile.read(); |
||||||
|
|
||||||
|
bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>799){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
// myGLCD.drawBitmap (0, 2*m, 320, 1, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (0, m, 800, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:d
|
||||||
|
myFile.close();
|
||||||
|
} |
||||||
@ -0,0 +1,393 @@ |
|||||||
|
void pogoda() |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_WHITE); |
||||||
|
myGLCD.setBackColor(VGA_BLUE); |
||||||
|
myGLCD.setFont(BigFont); |
||||||
|
myGLCD.fillScr(VGA_BLUE);
|
||||||
|
kalend(); |
||||||
|
|
||||||
|
//*************************************************************************
|
||||||
|
myGLCD.drawBitmap (639, 370, 160, 80, cl); |
||||||
|
myGLCD.drawRoundRect (639, 370, 799, 450); //Clok
|
||||||
|
|
||||||
|
clc(); |
||||||
|
|
||||||
|
myGLCD.setColor(0,38,92); |
||||||
|
myGLCD.fillRoundRect(645, 155, 797, 367);//рисуем синий пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255);//цвет обводки
|
||||||
|
myGLCD.drawRoundRect(645, 155, 797, 367);//прямоугольник с обводкой
|
||||||
|
info();
|
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
|
||||||
|
|
||||||
|
//int pos=(10*temperature/90)+42;
|
||||||
|
|
||||||
|
//*****************************************************************************************
|
||||||
|
int xtd=10; |
||||||
|
termdom(xtd); |
||||||
|
int xb=140; |
||||||
|
barometr(xb); |
||||||
|
int xtu=270; |
||||||
|
termul(xtu); |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//************************************************************************************************************************************************************
|
||||||
|
while(1) |
||||||
|
{ |
||||||
|
|
||||||
|
|
||||||
|
sec=t.sec; |
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
// myGLCD.setBackColor(255,255,255);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.printNumI(sec , 700, 160);
|
||||||
|
|
||||||
|
if ((sec==0) ||(sec==15) || (sec==30) || (sec==45)) |
||||||
|
{ |
||||||
|
// myGLCD.setBackColor(0,0,255);
|
||||||
|
// myGLCD.drawBitmap (769, 339, 30, 30, jar);
|
||||||
|
|
||||||
|
|
||||||
|
delay(800); |
||||||
|
|
||||||
|
clc(); |
||||||
|
bmp085(); |
||||||
|
|
||||||
|
myGLCD.setColor(VGA_BLUE); |
||||||
|
myGLCD.setBackColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
int tem = tdc*10+tdd;
|
||||||
|
int pos=(10*tem/50);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barvert(xtd+58,42, pos,10,340); |
||||||
|
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
pos=(100*(pressure-730)/50); |
||||||
|
barbarom(xb+58,42, pos,10,340);
|
||||||
|
int tem1=tdc*10+tdd; |
||||||
|
pos=(10*(tem1+340)/85);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
|
||||||
|
int tempul=tu*10+tud;
|
||||||
|
pos=(10*(tempul+340)/85);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barult(xtu+58,42, pos,10,340);
|
||||||
|
//barvert(xtu+58,42, pos,10,340);
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==11) || (sec==42) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
} |
||||||
|
|
||||||
|
if ((sec==55) || (sec==25) ) |
||||||
|
{ |
||||||
|
|
||||||
|
info();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//*****************************************************************
|
||||||
|
if (myTouch.dataAvailable()) |
||||||
|
|
||||||
|
{ |
||||||
|
myTouch.read(); |
||||||
|
int x=myTouch.getX(); |
||||||
|
int y=myTouch.getY(); |
||||||
|
|
||||||
|
// myGLCD.setColor(VGA_BLUE);
|
||||||
|
// myGLCD.setBackColor(255,255,255);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("x= " , 650, 32);
|
||||||
|
// myGLCD.printNumI(x , 700, 32);
|
||||||
|
// myGLCD.setFont( Ubuntubold);
|
||||||
|
// myGLCD.print("y= " ,650 , 72);
|
||||||
|
// myGLCD.printNumI(y , 700, 72);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if ((x>=640) && (x<=799)) // Upper row
|
||||||
|
{
|
||||||
|
|
||||||
|
if ((y>=10) && (y<=150)) //(10, 370, 90, 450); //Install
|
||||||
|
{ |
||||||
|
kalendarset(); |
||||||
|
pogoda(); |
||||||
|
} |
||||||
|
|
||||||
|
if ((y>=370) && (y<=450)) //(10, 370, 90, 450); //Clok
|
||||||
|
{waitForIt1(639, 370, 799, 450); |
||||||
|
prognoz(); |
||||||
|
menu(); |
||||||
|
} |
||||||
|
}
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
} |
||||||
|
//***************************************************************************************************************************************************
|
||||||
|
void termdom(int xtd)// xtd- координата начала вывода term dom по х
|
||||||
|
{ |
||||||
|
myFile.open("termd.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 58086; i = i++) { |
||||||
|
n=n+1; |
||||||
|
byte bait = myFile.read(); |
||||||
|
|
||||||
|
byte bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
int w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>125){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (xtd, m+8, 126, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close();
|
||||||
|
int tem=tdc*10+tdd; |
||||||
|
int pos=(10*tem/50);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barvert(xtd+58,42, pos,10,340);
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void barvert(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(150,150,150); |
||||||
|
|
||||||
|
myGLCD.fillRoundRect(x-2, y-2, l+x+2, h+y+2);//рисуем серый пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.fillRoundRect(x, y, l+x, h+y);//с белой обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
if (tdc>27) |
||||||
|
{ myGLCD.setColor(255,50,50); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//уровень
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor( 255,0,0);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(7,120,34); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//уровень
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor( 7,120,34);
|
||||||
|
} |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print("+" , x-48 , 380+30); |
||||||
|
myGLCD.print("." ,x-48+24+40, 380+30); |
||||||
|
myGLCD.printNumI(tdc, x-48+24, 380+30); |
||||||
|
|
||||||
|
//int tdes=temperatur;
|
||||||
|
myGLCD.printNumI(tdd , x-48+24+40+20, 380+30); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
//**********************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
void barometr(int xb)// xb- координата начала вывода бар по х
|
||||||
|
{ |
||||||
|
myFile.open("barometr.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 58086; i = i++) { |
||||||
|
n=n+1; |
||||||
|
byte bait = myFile.read(); |
||||||
|
|
||||||
|
byte bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
int w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>125){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (xb, m+8, 126, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close();
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
|
||||||
|
int pos=(100*(pressure-730)/50);
|
||||||
|
barbarom(xb+58,42, pos,10,340);
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
void barbarom(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(150,150,150); |
||||||
|
|
||||||
|
myGLCD.fillRoundRect(x-2, y-2, l+x+2, h+y+2);//рисуем серый пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.fillRoundRect(x, y, l+x, h+y);//с белой обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
if (pressure<743) |
||||||
|
{ myGLCD.setColor(0,70,167); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//син
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor(0,70,167);
|
||||||
|
} |
||||||
|
if ((pressure<755)&&(pressure>742)) |
||||||
|
{ myGLCD.setColor(60,212,209); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//бир
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor(60,212,209);
|
||||||
|
} |
||||||
|
if ((pressure<768)&&(pressure>754)) |
||||||
|
{ myGLCD.setColor(230,94,32); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//ор
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor(230,94,32);
|
||||||
|
} |
||||||
|
|
||||||
|
if (pressure>767) |
||||||
|
{ |
||||||
|
myGLCD.setColor(250,221,8); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//ж
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor(250,221,8);
|
||||||
|
} |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
myGLCD.printNumI(pressure , x-30, 380+30);
|
||||||
|
//myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
//myGLCD.print("+" ,20+58 , 380+30);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void termul(int xtu)// xtu- координата начала вывода term dom по х
|
||||||
|
{ |
||||||
|
myFile.open("termu.raw", O_READ); |
||||||
|
|
||||||
|
int n=0; |
||||||
|
int m=0; |
||||||
|
for (int i =0 ; i < 58086; i = i++) { |
||||||
|
n=n+1; |
||||||
|
byte bait = myFile.read(); |
||||||
|
|
||||||
|
byte bait1 =myFile.read(); |
||||||
|
|
||||||
|
// w1= (bait - 48) << 4 | (bait1 - 48);
|
||||||
|
// w2= (bait2 - 48) << 4 | (bait3 - 48);
|
||||||
|
int w= bait<<8|bait1; |
||||||
|
|
||||||
|
pic1[n]=w; |
||||||
|
//3199
|
||||||
|
if (n>125){ |
||||||
|
n=0;
|
||||||
|
// myGLCD.drawBitmap (0, 20*m, 320, 10, pic1, 2);
|
||||||
|
myGLCD.drawBitmap (xtu, m+8, 126, 1, pic1, 1); |
||||||
|
m=m+1; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// close the file:
|
||||||
|
myFile.close();
|
||||||
|
int tempul=tu*10+tud;
|
||||||
|
int pos=(10*(tempul+340)/85);
|
||||||
|
//bar(x,y, pos,l,h);
|
||||||
|
barult(xtu+58,42, pos,10,340);
|
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
//*******************************************************************************************
|
||||||
|
void barult(int x,int y,int pos,int l,int h)//kalendar(days, mon, years); l-длинна шкалы pos-позиция метки положения h-высота |
||||||
|
{ |
||||||
|
|
||||||
|
//int h=40;//высота шкалы
|
||||||
|
myGLCD.setBackColor(0,0,255); |
||||||
|
myGLCD.setColor(150,150,150); |
||||||
|
|
||||||
|
myGLCD.fillRoundRect(x-2, y-2, l+x+2, h+y+2);//рисуем серый пр-к
|
||||||
|
myGLCD.setColor(255, 255, 255); |
||||||
|
myGLCD.fillRoundRect(x, y, l+x, h+y);//с белой обводкой
|
||||||
|
//myGLCD.setColor(255,114,0);
|
||||||
|
//myGLCD.fillRoundRect(80, 35, 632, 87);
|
||||||
|
if (tdc>27) |
||||||
|
{ myGLCD.setColor(255,50,50); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//уровень
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor( 255,0,0);
|
||||||
|
} |
||||||
|
else |
||||||
|
{ |
||||||
|
myGLCD.setColor(7,120,34); |
||||||
|
myGLCD.fillRoundRect(x+1, y+h-1, l+x-1, h+y-(pos*h/100));//уровень
|
||||||
|
myGLCD.fillCircle (l/2+x,y+h+40+3,40); |
||||||
|
myGLCD.setBackColor( 7,120,34);
|
||||||
|
} |
||||||
|
myGLCD.setColor(255,255,255); |
||||||
|
myGLCD.setFont( Ubuntubold); |
||||||
|
//myGLCD.setBackColor( VGA_TRANSPARENT);
|
||||||
|
myGLCD.print("+" , x-48 , 380+30); |
||||||
|
myGLCD.print("." ,x-48+24+40, 380+30); |
||||||
|
myGLCD.printNumI(tu , x-48+24, 380+30); |
||||||
|
|
||||||
|
//int tempul=tu*10+tud;
|
||||||
|
//int tdes=tempul;
|
||||||
|
myGLCD.printNumI(tud , x-48+24+40+20, 380+30); |
||||||
|
|
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//******************************DHT11***********************************
|
||||||
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue