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.
308 lines
9.2 KiB
308 lines
9.2 KiB
void Sdreaddata()//чтение данных после откл питания или сброса
|
|
{ Serial.println ("read SD data");
|
|
strdat="";
|
|
|
|
myFile = SD.open("/thkom1.txt", FILE_READ);
|
|
while(myFile.available()) {
|
|
|
|
strdat+=char(myFile.read());
|
|
|
|
}
|
|
|
|
|
|
myFile.close();
|
|
jsonString2=strdat;
|
|
Serial.println (jsonString2);
|
|
// events.send(jsonString2.c_str(), "new_datatemp", millis());//обновление веба
|
|
JSONVar myObject = JSON.parse(strdat);
|
|
//{"tkom1":"","hkom1":"","batkom1":"","timekom1":"","tkom2":"25.1","hkom2":"50.1","batkom2":"4.0","timekom2":"22:00","tkor":"23.6","hkor":"45.7","batkor":"3.71","timekor":"21:55","tbal":"11.1","hbal":"56.3","batbal":"3.45","timebal":"21:47","tul1":"5.3","hul1":"99.9","osv1":"0%","timeul1":"22:01"}
|
|
|
|
if (myObject.hasOwnProperty("tkom1")) {
|
|
tkom1=((const char*) myObject["tkom1"]);}
|
|
if (myObject.hasOwnProperty("hkom1")) {
|
|
hkom1=((const char*) myObject["hkom1"]);}
|
|
if (myObject.hasOwnProperty("batkom1")) {
|
|
batkom1=((const char*) myObject["batkom1"]);}
|
|
if (myObject.hasOwnProperty("timekom1")) {
|
|
timekom1=((const char*) myObject["timekom1"]);}
|
|
|
|
if (myObject.hasOwnProperty("tkom2")) {
|
|
tkom2=((const char*) myObject["tkom2"]);}
|
|
if (myObject.hasOwnProperty("hkom2")) {
|
|
hkom2=((const char*) myObject["hkom2"]);}
|
|
if (myObject.hasOwnProperty("batkom2")) {
|
|
batkom2=((const char*) myObject["batkom2"]);}
|
|
if (myObject.hasOwnProperty("timekom2")) {
|
|
timekom2=((const char*) myObject["timekom2"]);}
|
|
|
|
|
|
if (myObject.hasOwnProperty("tkor")) {
|
|
tkor=((const char*) myObject["tkor"]);}
|
|
if (myObject.hasOwnProperty("hkor")) {
|
|
hkor=((const char*) myObject["hkor"]);}
|
|
if (myObject.hasOwnProperty("batkor")) {
|
|
batkor=((const char*) myObject["batkor"]);}
|
|
if (myObject.hasOwnProperty("timekor")) {
|
|
timekor=((const char*) myObject["timekor"]);}
|
|
|
|
if (myObject.hasOwnProperty("tbal")) {
|
|
tbal=((const char*) myObject["tbal"]);}
|
|
if (myObject.hasOwnProperty("hbal")) {
|
|
hbal=((const char*) myObject["hbal"]);}
|
|
if (myObject.hasOwnProperty("batbal")) {
|
|
batbal=((const char*) myObject["batbal"]);}
|
|
if (myObject.hasOwnProperty("timebal")) {
|
|
timebal=((const char*) myObject["timebal"]);}
|
|
|
|
if (myObject.hasOwnProperty("tul1")) {
|
|
tul1=((const char*) myObject["tul1"]);}
|
|
if (myObject.hasOwnProperty("hul1")) {
|
|
hul1=((const char*) myObject["hul1"]);}
|
|
if (myObject.hasOwnProperty("osv1")) {
|
|
osv1=((const char*) myObject["osv1"]);}
|
|
if (myObject.hasOwnProperty("timeul1")) {
|
|
timeul1=((const char*) myObject["timeul1"]);}
|
|
|
|
|
|
strdat="";
|
|
myFile = SD.open("/thku1.txt", FILE_READ);
|
|
while(myFile.available()) {
|
|
|
|
strdat+=char(myFile.read());
|
|
|
|
}
|
|
myFile.close();
|
|
jsonString=strdat;
|
|
Serial.println ("jsonString");
|
|
Serial.println (jsonString);
|
|
|
|
// events.send(jsonString.c_str(), "new_readings", millis());//обновление веба текущая температура
|
|
myObject = JSON.parse(jsonString);
|
|
if (myObject.hasOwnProperty("id")) {
|
|
String id=((const char*) myObject["id"]);}
|
|
if (myObject.hasOwnProperty("temperature")) {
|
|
ts=((const char*) myObject["temperature"]);}
|
|
|
|
if (myObject.hasOwnProperty("humidity")) {
|
|
hs=((const char*) myObject["humidity"]);}
|
|
|
|
if (myObject.hasOwnProperty("tim2")) {
|
|
tim2=((const char*) myObject["tim2"]);}
|
|
if (myObject.hasOwnProperty("tim3")) {
|
|
tim3=((const char*) myObject["tim3"]);}
|
|
if (myObject.hasOwnProperty("dataserv")) {
|
|
dataserv=((const char*) myObject["dataserv"]);}
|
|
if (myObject.hasOwnProperty("timev")) {
|
|
timev=((int) myObject["timev"]);}
|
|
if(ntp_on==0)//если NTP не пдключилось
|
|
{if (myObject.hasOwnProperty("EpochTime")) {
|
|
EpochTime=((long) myObject["EpochTime"]);}
|
|
}
|
|
//{"id":2,"temperature":9.6733450317382812,"humidity":50.41815185546875,"tim2":"12:02",
|
|
// "dataserv":"12","timeserv":"15:30","munthserv":"январь",weekserv:"среда","timev":0,"EpochTime":565}
|
|
/* hour1=stamp.hour;//число
|
|
min1=stamp.minute;//число
|
|
|
|
dataserv=stamp.day;//число
|
|
munthserv=strm[stamp.month-1] ;// строка
|
|
weekserv=strweek[stamp.dayOfWeek];// строка
|
|
tweekday=stamp.dayOfWeek;//1-7
|
|
*/
|
|
|
|
strdat="";
|
|
myFile = SD.open("/timerd.txt", FILE_READ);
|
|
while(myFile.available()) {
|
|
|
|
strdat+=char(myFile.read());
|
|
|
|
}
|
|
myFile.close();
|
|
timerdata=strdat;
|
|
Serial.println ("timerdata");
|
|
Serial.println (timerdata);
|
|
|
|
strdat="";
|
|
myFile = SD.open("/week.txt", FILE_READ);
|
|
while(myFile.available()) {
|
|
|
|
strdat+=char(myFile.read());
|
|
|
|
}
|
|
myFile.close();
|
|
timerweek=strdat;
|
|
Serial.println ("timerdata");
|
|
Serial.println (timerweek);
|
|
|
|
strdat="";
|
|
myFile = SD.open("/tdout.txt", FILE_READ);
|
|
while(myFile.available()) {
|
|
|
|
strdat+=char(myFile.read());
|
|
|
|
}
|
|
myFile.close();
|
|
timerout=strdat;
|
|
Serial.println ("timerout");
|
|
Serial.println (timerout);
|
|
|
|
strdat="";
|
|
myFile = SD.open("/akva.txt", FILE_READ);
|
|
while(myFile.available()) {
|
|
|
|
strdat+=char(myFile.read());
|
|
|
|
}
|
|
|
|
|
|
myFile.close();
|
|
jsonStringakva=strdat;
|
|
Serial.println (jsonStringakva);
|
|
myObject = JSON.parse(strdat);
|
|
|
|
if (myObject.hasOwnProperty("id")) {
|
|
String id=((const char*) myObject["id"]);}
|
|
if (myObject.hasOwnProperty("tempakv1")) {
|
|
takva1=((const char*) myObject["tempakv1"]);}
|
|
if (myObject.hasOwnProperty("light1")) {
|
|
light=((const char*) myObject["light1"]);}
|
|
if (myObject.hasOwnProperty("timakv1")) {
|
|
timeakva=((const char*) myObject["timakv1"]);}
|
|
if (myObject.hasOwnProperty("fan1")) {
|
|
fan1=((const char*) myObject["fan1"]);}
|
|
if (myObject.hasOwnProperty("tempakv2")) {
|
|
takva2=((const char*) myObject["tempakv2"]);}
|
|
if (myObject.hasOwnProperty("fan2")) {
|
|
fan2=((const char*) myObject["fan2"]);}
|
|
if (myObject.hasOwnProperty("tempakv3")) {
|
|
takva3=((const char*) myObject["tempakv3"]);}
|
|
if (myObject.hasOwnProperty("fan3")) {
|
|
fan3=((const char*) myObject["fan3"]);}
|
|
|
|
}
|
|
|
|
|
|
void Sdread()
|
|
{//jsonStringout= "{"id":"out","out1":"101"}";// 0-выкл 1-вкл
|
|
//получаем состояние выходов изаписывам их в gpio
|
|
strdat="";
|
|
myFile = SD.open("/output.txt", FILE_READ);
|
|
while(myFile.available()) {
|
|
|
|
strdat+=char(myFile.read());
|
|
|
|
}
|
|
myFile.close();
|
|
jsonStringout=strdat;
|
|
// gpio[3]={0,0,0};//выходы состояние {gpio 4, gpio 26, gpio 27,timer}{1,1,1,1}
|
|
Serial.println (jsonStringout);
|
|
JSONVar myObject = JSON.parse(jsonStringout);//парсинг JSON
|
|
String outGPIO;
|
|
if (myObject.hasOwnProperty("out1")) {
|
|
outGPIO=((const char*) myObject["out1"]);}
|
|
Serial.println (outGPIO);
|
|
Serial.println (outGPIO[2]);
|
|
if(outGPIO[0]=='1')
|
|
{ digitalWrite(4, HIGH);
|
|
gpio[0]=1;
|
|
}
|
|
else
|
|
{digitalWrite(4, LOW);
|
|
gpio[0]=0;
|
|
}
|
|
if(outGPIO[1]=='1')
|
|
{ digitalWrite(26, HIGH);
|
|
gpio[1]=1;
|
|
}
|
|
else
|
|
{digitalWrite(26, LOW);
|
|
gpio[1]=0;
|
|
}
|
|
if(outGPIO[2]=='1')
|
|
{ digitalWrite(27, HIGH);
|
|
gpio[2]=1;
|
|
}
|
|
else
|
|
{digitalWrite(27, LOW);
|
|
gpio[2]=0;
|
|
}
|
|
if(outGPIO[3]=='1')
|
|
{ //digitalWrite(27, HIGH);
|
|
gpio[3]=1;
|
|
}
|
|
else
|
|
{//digitalWrite(27, LOW);
|
|
gpio[3]=0;
|
|
}
|
|
timerconvert();
|
|
}
|
|
|
|
void readdata()
|
|
{delay(0);
|
|
//****************************************************
|
|
// формируем имя файла и путь к нему /TEMPUL/D-2022/FEBR/27/T1.txt
|
|
String name1="/TEMPUL"+ String(stryen[year1-2014])+String(strmen[month1-1])+String(strden[data1-1])+String(strdaten[nti]);
|
|
//String name1="/TEMPUL1/D-2025/FEBR/27/T5.txt";
|
|
char Buf[50];
|
|
name1.toCharArray(Buf, 50);
|
|
|
|
myFile = SD.open(Buf, FILE_READ);//открывам файл
|
|
while(myFile.available()) {
|
|
Serial.write(myFile.read());
|
|
}
|
|
Serial.println(" ");
|
|
// Узнаем размер файла:
|
|
Serial.print("File size: ");
|
|
// "Размер файла: "
|
|
Serial.println(myFile.size());
|
|
myFile.close();
|
|
|
|
strdat="";
|
|
|
|
Serial.println("/TEMPUL/D-2022/FEBR/27/T.txt");
|
|
myFile = SD.open(Buf, FILE_READ);
|
|
while(myFile.available()) {
|
|
strdat+=char(myFile.read());//считываем текс файла в строковую переменную
|
|
}
|
|
myFile.close();
|
|
delay(0);
|
|
esp_task_wdt_reset();//reset WDT
|
|
delay(0);
|
|
|
|
board1["tdata"] = strdat;
|
|
board1["dataserv"] = dataserv;
|
|
board1["timeserv"] = timeserv;
|
|
jsonString1 = JSON.stringify(board1);
|
|
// Serial.println (jsonString1);
|
|
// Serial.println ("strdat=");
|
|
//Serial.println (strdat);
|
|
delay(0);
|
|
// events.send(tempdat.c_str(), "readings", millis());//обновление веба
|
|
// events.send(strdat.c_str(), "readings", millis());//обновление веба
|
|
}
|
|
|
|
void readakva()
|
|
{delay(0);
|
|
//****************************************************
|
|
// формируем имя файла и путь к нему /AKVA/D-2022/FEBR/27/T10.txt
|
|
nti=9;
|
|
String name1="/AKVA"+ String(stryen[year1-2014])+String(strmen[month1-1])+String(strden[data1-1])+String(strdaten[nti]);
|
|
//String name1="/AKVA/D-2025/FEBR/27/T10.txt";
|
|
char Buf[50];
|
|
name1.toCharArray(Buf, 50);
|
|
|
|
|
|
|
|
strdat="";
|
|
|
|
myFile = SD.open(Buf, FILE_READ);
|
|
while(myFile.available()) {
|
|
strdat+=char(myFile.read());//считываем текс файла в строковую переменную
|
|
}
|
|
myFile.close();
|
|
delay(0);
|
|
esp_task_wdt_reset();//reset WDT
|
|
delay(0);
|
|
// Serial.println (strdat);
|
|
delay(0);
|
|
|
|
}
|
|
|