GyverPortal

SCHMaster

✩✩✩✩✩✩✩
20 Дек 2022
14
2
@ASM, Спасибо, но это не совсем то.
GP.ONLINE_CHECK() - это уже, я так понимаю, загруженная страница проверяет, есть ли связь с ESP.
Как на скрине: страница загружена - ESP отключена.
1671487889284.png
В моем же случае - ESP проверяет - подключен кто-то к ESP или нет. И передает результат на основную плату (MEGA 2560).
Соответственно, если ни кто не подключен, данные не передаются с основной платы на ESP.
 

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@SCHMaster,
C++:
GP.PAGE_TITLE(текст);               // переименовать окно в браузере [строка]
GP.PAGE_TITLE(текст, имя);          // + имя для update. Текст из ответа на update станет заголовком окна [строка]

// пример demos/pageTitle
 
  • Лойс +1
Реакции: pingemall и SCHMaster

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@allexnero2, конечно! Вот абстрактный пример
C++:
GPtime t = ui.getSystemTime();
ds3231.setHour(t.hour);
ds3231.setMinute(t.minute);
ds3231.setSecond(t.second);
 

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@SCHMaster, речь о режиме точки доступа? Тогда можно только посмотреть, сколько клиентов подключено, по крайней мере в реализации Arduino
C++:
WiFi.softAPgetStationNum()
 
  • Лойс +1
Реакции: SoftFelix и SCHMaster

ASM

★★★★★✩✩
26 Окт 2018
1,599
311
Вот абстрактный пример
типа такого?)
C++:
    DateTime now = rtc.now(); //считываем данные с RTC
    ntp.hour().setHour(now.hour()); //запрашиваем и записываем часы из ntp в RTC
Код:
request for member 'setHour' in 'ntp.GyverNTP::hour()', which is of non-class type 'uint8_t {aka unsigned char}'
 

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@ASM, это какое то нагромождение точек и скобок, см примеры к gyverntp
 

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@SCHMaster, а как получить доступ к порталу с "мира"? В любом случае, подключение существует только в момент передачи данных, это ведь просто http. Соединение закрывается после отправки/принятия данных
 

ASM

★★★★★✩✩
26 Окт 2018
1,599
311
@AlexGyver, в примерах только мигание сд каждые пол секунды.
В стандартных примерах к rtc только два варианта записи, при компиляции с пк и вручную прописав дату и время в момент загрузки скетча.
п.с. нашел пример записи по сериал, попробую придумать что-то)
 

SCHMaster

✩✩✩✩✩✩✩
20 Дек 2022
14
2
...а как получить доступ к порталу с "мира"?...
Через переброску портов. IP-шник роутера:порт. В настройках роутера - делаем переброску по определенному порту к MCU.
IP-шник у роутера статичный ("белый"). Так что это не проблема.

... В любом случае, подключение существует только в момент передачи данных ...
По тому я и писал - все, что касается вэб-программирования - "кто- там? я сам открою...". ;)
Но, на самом деле, это не есть большая проблема. Ну, в крайнем случае, переделаю, чтобы основная плата все время передавала данные. Это если не найду решения. У Blynk эта история работала... Правда там все через сервер ихний шло...
В любом случае - время еще есть. До весны далеко - железяка управляет автоматическим поливом в селе (цветочки, клубничка, огород и т.п.).
 

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@SCHMaster, я в обновлении сделаю возможность проверять "онлайн" со стороны есп. То есть компонент ONLINE_CHECK будет работать в две стороны, сигналить и в браузере, и в программе.

IP-шник у роутера статичный ("белый")
для проброса портов нужен белый IP? Я тоже в вебе новичок
 
  • Красота! +2
Реакции: SCHMaster

SCHMaster

✩✩✩✩✩✩✩
20 Дек 2022
14
2
Ну тут не совсем веб-программирование... Скорее администрирование...
...для проброса портов нужен белый IP? Я тоже в вебе новичок
Не... Для переброски - пофиг.
Но IP-шник дает провайдер.
Т.е. адрес роутера в глобальной сети сейчас может быть один, а через час (день-неделю-месяц) другой.
А для того, чтобы "достучаться" в свою локальную сеть из "любой точки мира", нужно точно знать IP-шник своего роутера.
А дальше уже - через переброску портов.
Тут есть несколько способов...
Самые простые
1 .Некоторые производители роутеров предоставляют услугу - типа "свой домен". Типа. "bla-nla-bla.d-link.сom", где "bla-nla-bla" - твой уникальный идентификатор. И уже сервак на "d-link.сom" делает переадресацию на твой адрес.
Но, во-первых, последние годы я что-то не встречал в новых роутерах таких фишек (разве что в о-о-о-о-очень дорогих моделях), во-вторых - не всегда работает - "чего-то-там.сom" бывает висит.
2."Белый" IP. Дополнительная услуга у провайдера.
Пользуюсь 2-м вариантом уже много лет.
И FTP-поднять можно, и вообще - что угодно... Удобно.
 

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@ASM, ну документацию открой.
C++:
uint8_t second();               // получить секунды
uint8_t minute();               // получить минуты
uint8_t hour();                 // получить часы
uint8_t day();                  // получить день месяца
uint8_t month();                // получить месяц
uint16_t year();                // получить год
Эти функции возвращают числа. А ты к ним применяешь какие то методы, откуда вообще это взялось?
C++:
ntp.hour().setHour(now.hour());
Если нужно передать время в RTC, нужно просто сделать
C++:
DateTime now(ntp.year(), ntp.month(), ntp.day(), ntp.hour(), ntp.minute(), ntp.second());
rtc.adjust(now);
 
  • Лойс +1
Реакции: SoftFelix

AlexGyver

★★★★★★✩
Команда форума
30 Июл 2018
359
573
@ASM, RTClib не менее нормальная, если изучать доку и не писать просто от балды функции и скобки
 

ASM

★★★★★✩✩
26 Окт 2018
1,599
311
@AlexGyver, компилятору не нравилось, что в rtc.adjust подсовывают что-то другое, а не числа, как указано в доках.
П.С. мне тут подсказали, что твоя microDS подходит на есп, попробую её)
 
Изменено:

aidar_i

✩✩✩✩✩✩✩
1 Май 2021
64
8
@aidar_i, я поставил иконку-кнопку, всё ок)
Скетч можете прислать? Можно в личку, у меня что то не получается! Что то не так делаю, что ли.
C++:
#include <WiFi.h>
#include <GyverPortal.h>
GyverPortal portal;
void setup()
{
    WiFi.mode(WIFI_STA);
    WiFi.begin("MTS", "98703782");
    portal.attachBuild(build);
    portal.attach(action);
    portal.start();
}
void build()
{
    GP.BUILD_BEGIN();
    GP.THEME(GP_DARK);
    GP.ICON_SUPPORT();
    GP.ICON("car");
    GP.BUILD_END();
}
void loop()
{
    portal.tick();
}
void action()
{
}
 
Изменено:

ASM

★★★★★✩✩
26 Окт 2018
1,599
311
@aidar_i, работает так)
C++:
GP.LABEL(GP.ICON("car"));
ребят, почему так происходит?) записываю верную дату, а при чтении она не такая уже)
пробовал уже различные варианты и с ntp.
проверил в сериал, записывается правильно, но только дата не так) библиотека microDS3231...
C++:
if (ui.click("sync")) {
      DateTime now;
      GPtime t;
      GPdate d;
      t = ui.getSystemTime();
      d = ui.getSystemDate();
      now.hour = t.hour;
      now.minute = t.minute;
      now.second = t.second;
      now.year = d.year;
      now.month = d.month;
      now.day = d.day;
      Serial.print(now.day);  //выводит верно 23
      rtc.setTime(now);
      Serial.print(rtc.getDateString());  //выводит 00.12.2022
Аналогично
C++:
      DateTime now;
      ntp.updateNow();
      now.hour = ntp.hour();
      now.minute = ntp.minute();
      now.second = ntp.second();
      now.year = ntp.year();
      now.month = ntp.month();
      now.day = ntp.day();
      rtc.setTime(now);
 
Изменено:

allexnero2

✩✩✩✩✩✩✩
18 Дек 2022
3
1
@ASM,Есть небольшая путаница с именами в библиотеке, сам у себя заметил такое же. В microDS3231 now.day это день недели, а в GyverPortal дата (число) это тоже day. Получается что в день недели устанавливали дату, а изначальную дату не трогали вот она и показывает 00
надо просто сделать чуть другую конструкцию установки даты.
now.date = d.day;
 
Изменено:
  • Лойс +1
Реакции: ASM

ASM

★★★★★✩✩
26 Окт 2018
1,599
311
@allexnero2, была такая мысль, когда был вне пк, но за пк не вспомнил) или не стал проверять... все ок) Саня, может добавить в библиотеку setTime(unixTime)? и может как-то переназвать эти две переменные?)
 

Роман_Л

✩✩✩✩✩✩✩
23 Фев 2021
5
0
Добрый день! Поймал очень странный, но периодически повторяющийся баг. На веб морде имеются два графика AJAX PLOT. Через время, может быть через час, может через несколько дней, появляется ошибка
Безымянный.jpg
Прошу прощения за качество фото (делал на работе на тапок)
И графики не появляются пока не перезальешь.
Есть какие-то идеи? Спасибо