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