You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
340 lines
10 KiB
340 lines
10 KiB
|
|
// 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();
|
|
}
|
|
|