Доброго времени суток. Подскажите, пожалуйста, есть ли возможность прочитать значение VPIN без его перезаписи? Можно сделать это через HTTP API метод GET, но может есть возможность прочитать как то по другому?
Добрый день. Да, можно. http://docs.blynk.cc/#blynk-main-operations-state-syncing
Blynk.syncVirtual(V0)
Blynk.syncAll();
Видать я что то не так делаю.
В V30 записано значение [“0.044”,“0.031”,“0.013”]
String en_tmp1,en_tmp2,en_tmp3;
BLYNK_CONNECTED() {
if (isFirstConnect) {
Serial.println("*** Sync All ? ***");
Blynk.syncAll();
isFirstConnect = false;
}
// Synchronize time on connection
rtc.begin();
Blynk.syncVirtual(V30);
Serial.println(en_tmp1+"------"+en_tmp2+"------"+en_tmp3);
}
BLYNK_WRITE(V30)
{
//restoring string value
String en_tmp1 = param[0].asString();
String en_tmp2 = param[1].asString();
String en_tmp3 = param[2].asString();
}
В итоге en_tmp1-en_tmp3 пустые… что не так?
Вы их принтите до того как они приходят.
Serial.println(en_tmp1+"------"+en_tmp2+"------"+en_tmp3);
должно быть в конце BLYNK_WRITE(V30)
пробовал и в конце BLYNK_WRITE(V30) и вставлял в loop
Blynk.syncVirtual(V30);
Serial.println(en_tmp1+"------"+en_tmp2+"------"+en_tmp3);
ничего…
я так понимаю что BLYNK_WRITE(V30) срабатывает когда изменяеш V30, но у меня он меняется раз в месяц, а вот узнать значение его нужно после каждого ребута есп, как быть?
Да, а так же когда вызывается syncVirtual
.
Вы уверены что в этом пине сейчас лежат значения?
значения точно есть. Вот ответ от запроса через HTTP API:
http://ip:8080/auth/get/v30
[“0.044”,“0.031”,“0.013”]
Значит выводятся не те переменные. У Вас есть как глобальные так и локальные с тем же именем.
видать так и было, изменил на
en_tmp1 = param[0].asFloat();
en_tmp2 = param[1].asFloat();
en_tmp3 = param[2].asFloat();
с объявленными только глобальными и все заработало. Спасибо большое за помощь.