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.
 
 
 
Play/WebSocket3Aqva/Sdread.ino

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);
}