Привет всем. в этом коде есть проблема. Я добавил фунйцию каторое разрешает мне изменить даные val и val1 в офлаын режиме. все работал хорашо пока я не подключился к интернету. измененыые даные val и val1 не появились на платформе blynk. в blynk сохранились даные до патерии итернета а при востанавлении интернета измененые даные val и val1 не выводились. Как можно решить эту проблему
/***********Blynk***********/
#define BLYNK_TEMPLATE_ID "Tdy"
#define BLYNK_TEMPLATE_NAME "Quate"
#define BLYNK_AUTH_TOKEN "pYKEp"
#define BLYNK_PRINT Serial //Прокомментируйте это, чтобы отключить печать и сэкономить место ;)
char ssid[] = "Sil";
char pass[] = "mushex077petr";
/**********Library**********/
#include <WiFi.h>
#include <WiFiClient.h>
#include <BlynkSimpleEsp32.h>
#include <GyverEncoder.h>
#include <EEPROM.h>
#include <OneWire.h>
#include <DallasTemperature.h>
/***********DS18B20*********/
#define ONE_WIRE_BUS 15 // Пин для DS18B20
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
/***********Ky-040**********/
#define CLK_PIN 23
#define DT_PIN 22
#define CLK_PIN1 21
#define DT_PIN1 19
Encoder enc(CLK_PIN, DT_PIN);
Encoder enc1(CLK_PIN1, DT_PIN1);
float val = 0;
float val1 = 0;
/**отправка данных на Blynk*/
BlynkTimer timer;
void myTimerEvent() //Эта функция ежесекундно отправляет время безотказной работы Arduino на виртуальный вывод 2.
{
Blynk.virtualWrite(V2, millis() / 1000);
Blynk.virtualWrite(V1, val); // Assuming V1 is the virtual pin for val
Blynk.virtualWrite(V3, val1); // Assuming V3 is the virtual pin for val1
// Чтение температуры с DS18B20
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
Blynk.virtualWrite(V4, temperature); // Замените V4 на номер вашего виджета в Blynk
}
/************Rele***********/
#define Rele_1 12 //GV
#define Rele_3 13 //GN
#define Rele_2 2 //MV
#define Rele_4 4 //MN
bool isConnectedToInternet = false;
void setup()
{
delay(1500);
Serial.begin(9600);
pinMode(Rele_1, OUTPUT);
pinMode(Rele_2, OUTPUT);
pinMode(Rele_3, OUTPUT);
pinMode(Rele_4, OUTPUT);
digitalWrite(Rele_1, LOW);
digitalWrite(Rele_2, LOW);
digitalWrite(Rele_3, LOW);
digitalWrite(Rele_4, LOW);
digitalWrite(Rele_1, HIGH);
digitalWrite(Rele_2, HIGH);
digitalWrite(Rele_3, HIGH);
digitalWrite(Rele_4, HIGH);
/////////////////-Blynk-/////////////////
Blynk.begin(BLYNK_AUTH_TOKEN, ssid, pass);
// Настройте функцию, которая будет вызываться каждую секунду
timer.setInterval(1000L, myTimerEvent);
enc.setType(TYPE2);
enc1.setType(TYPE2);
// Инициализация DS18B20
sensors.begin();
}
void loop()
{
// Чтение температуры с DS18B20
sensors.requestTemperatures();
float temperature = sensors.getTempCByIndex(0);
/* Вывод температуры на монитор порта
Serial.print("Температура: ");
Serial.println(temperature);*/
if (isConnectedToInternet) {
Blynk.run();
timer.run();
}
/*перезагрузка
if (!isConnectedToInternet) {
Serial.println("Потеряно подключение к Интернету. Перезапуск...");
ESP.restart(); // Перезагрузка устройства
}*/
enc.tick();
enc1.tick();
if (enc.isTurn()) {
if (enc.isRight()) {
val +=0.5;
if (val > 100) {
val = 100;
}
}
if (enc.isLeft()) {
val -=0.5;
if (val < 0) {
val = 0;
}
}
Serial.print("Ky-1...");
Serial.println(val);
}
if (enc1.isTurn()) {
if (enc1.isRight()) {
val1+=0.5;
if (val1 > 100) {
val1 = 100;
}
}
if (enc1.isLeft()) {
val1-=0.5;
if (val1 < 0) {
val1 = 0;
}
}
Serial.print("Ky-2...");
Serial.println(val1);
}
}
BLYNK_CONNECTED() {
Blynk.syncVirtual(V1);
Blynk.syncVirtual(V3);
isConnectedToInternet = true; // При подключении к интернету устанавливаем флаг в true
}
BLYNK_DISCONNECTED() {
isConnectedToInternet = false; // При отключении от интернета устанавливаем флаг в false
}
BLYNK_WRITE(V1) {
val = param.asFloat();
}
BLYNK_WRITE(V3) {
val1 = param.asFloat();
}