Виртуальный модуль RTC для TelegramBot

Несколько ПБ, позволяющих в TelegramBot отказаться от аппаратного модуля часов реального времени RTC

Пользовательские блоки для коммкникации и связи GSM, GPRS, IR, Bluetooth и другие
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
ussrsrtru
Рядовой
Сообщения: 36
Зарегистрирован: 27.02.2018{, 14:33}
Репутация: 19
Имя: Sergey

Виртуальный модуль RTC для TelegramBot

#1

Сообщение ussrsrtru » 04.03.2018{, 14:04}

Предлагаю к рассмотрению:
- главный блок RTCvirtSRT_(CODE) для обращения на интернет-сервер реального времени
- вспомогательный блок DATEtoStrSRT_(CODE) для конвертации времени к строковому формату
- сервисный блок GetPeriodSRT_(FBD) для удобного расчета в проекте периода времени в часах и минутах.

Главный блок обязателен, а два других опциональны.
В прилагаемом примере обязательными становятся два блока, так как вся плата «Обработка глобального времени» взятая целиком, полностью имитирует наличие модуля RTC в проекте. Т.Е, если скопировать в свой проект всю плату, вы получите реальное время с регулярным "подведением" часов.
Я понимаю, что между корректировками времени может накопиться ошибка и весьма немалая, в виду того, что цикл обращения к интернету длинный и плохо влияет на все временные процессы в проекте. Но требования к точности хода в рамках бота не велики. Кроме того - вы всегда можете уменьшить время автономной работы по своему усмотрению, изменив параметр блока генератора "подвода" часов.
Оптимальный период между "подведениeм" часов в режиме - 1 минута.

/******************************************
04/03/2018 Изменен проект-пример: обнаружена неточность, был заблокирован автономный ход. Исправлено.
05/03/2018 Изменен проект-пример: Изменен вывод даты и времени строкой в плате реального времени
13/03/2018 Кардинально переработан бок: исключено отставание часов из-за пауз при обращении в интернет. Точность хода идеальная. Предусмотрен вывод "часа суток" и "минут в часе" в виде целочисленного значения. Легко строить будильники и суточные командоаппараты. Обновился состав прилагаемых файлов. Шаблон примера на FLP обновился полностью. Рекомендую использовать именно его.
/*******************************************
Пример и видеоинструкция прилагаются.
Вложения
ТелеграмБот_RTC_EEPROM.rar
шаблон проекта с примером блока RTC (плата 4)
(259.77 КБ) 107 скачиваний
RTCvirtSRT_(CODE).ubi
собственно измененный ПБ
(45.71 КБ) 107 скачиваний
GetPeriodSRT_(FBD).ubi
(92.69 КБ) 116 скачиваний
DATEtoStrSRT_(CODE).ubi
(13.63 КБ) 135 скачиваний
Последний раз редактировалось ussrsrtru 13.03.2018{, 22:31}, всего редактировалось 3 раза.
"Зри в корень!" К. Прутков.

whitevip
Лейтенант
Сообщения: 492
Зарегистрирован: 01.04.2017{, 20:25}
Репутация: 5
Имя: Имя

Виртуальный модуль RTC для TelegramBot

#2

Сообщение whitevip » 04.03.2018{, 20:36}

ussrsrtru, блоки для ардуино уно подходят или только для esp?
:smile37:

Аватара пользователя
Phazz
Полковник
Сообщения: 2558
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Виртуальный модуль RTC для TelegramBot

#3

Сообщение Phazz » 04.03.2018{, 20:38}

whitevip, это только для esp

Аватара пользователя
ussrsrtru
Рядовой
Сообщения: 36
Зарегистрирован: 27.02.2018{, 14:33}
Репутация: 19
Имя: Sergey

Виртуальный модуль RTC для TelegramBot

#4

Сообщение ussrsrtru » 05.03.2018{, 12:00}

Лично я выход в интернет использую только с esp. Как работает в инете ардуино не разбирался. Но по тексту блока видно, что WiFi упоминается один раз в функции void timeSynch(int zone) : при проверке наличия подключения.
if (WiFi.status() == WL_CONNECTED) {
// Настройка соединения с NTP сервером
configTime(zone * 3600, 0, TimeServer1 , TimeServer2 );
int i = 0;
Serial.println("\nWaiting for time");

Если кто-то имеет шилд ардуино и знает, как проверить там наличие подключения - перепишите первую строку и можно проверять.
"Зри в корень!" К. Прутков.

Аватара пользователя
ussrsrtru
Рядовой
Сообщения: 36
Зарегистрирован: 27.02.2018{, 14:33}
Репутация: 19
Имя: Sergey

Виртуальный модуль RTC для TelegramBot

#5

Сообщение ussrsrtru » 13.03.2018{, 22:31}

Коллеги - обновлен ПБ и пример.
"Зри в корень!" К. Прутков.

31april
Рядовой
Сообщения: 9
Зарегистрирован: 27.10.2016{, 18:15}
Репутация: 0
Откуда: Обнинск
Имя: Игорь

Виртуальный модуль RTC для TelegramBot

#6

Сообщение 31april » 15.03.2018{, 18:02}

ussrsrtru писал(а):
13.03.2018{, 22:31}
Коллеги - обновлен ПБ и пример.
Спасибо! Да, теперь точность действительно хорошая. Со старым блоком RTCvirtSRT при задании запроса времени с ntp сервера 1 раз в полчаса, у меня было отставание в несколько минут (7-9). Сейчас - сказка!

Аватара пользователя
ussrsrtru
Рядовой
Сообщения: 36
Зарегистрирован: 27.02.2018{, 14:33}
Репутация: 19
Имя: Sergey

Виртуальный модуль RTC для TelegramBot

#7

Сообщение ussrsrtru » 15.03.2018{, 23:01}

Да, обращение к интернет останавливало основной цикл и таймеры FLP просто безбожно врали.
Пришлось в блоке перейти на millis() и теперь корректировать ход можно раз в час - идут как атомные :)))
"Зри в корень!" К. Прутков.

Brand2
Лейтенант
Сообщения: 415
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 42
Откуда: Haifa
Имя: Alex

Виртуальный модуль RTC для TelegramBot

#8

Сообщение Brand2 » 24.03.2018{, 22:02}

Можно ли использвать блок RTCvirtSRT_(CODE).ubi не с Телеграм ботом а например с RemoteXY ?
Подключение RemoteXY через облако.

Аватара пользователя
Phazz
Полковник
Сообщения: 2558
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 367
Откуда: Сургут
Имя: Анатолий

Виртуальный модуль RTC для TelegramBot

#9

Сообщение Phazz » 25.03.2018{, 06:11}

Brand2, да вообще не пролема, но только remoteXY ESP не поддерживается в flprog.

Brand2
Лейтенант
Сообщения: 415
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 42
Откуда: Haifa
Имя: Alex

Виртуальный модуль RTC для TelegramBot

#10

Сообщение Brand2 » 25.03.2018{, 07:50}

ESP12 можно програмировать в FLProg ,задав в REMOTE XY конфигурацию как ARDUINO UNO(MEGA) +ESP01,загрузить полученный код в FLProg, а потом перед
компиляцией в самом скетче вместо
1 #define REMOTEXY_MODE__ESP8266_HARDSERIAL_CLOUD
прописать
1 #define REMOTEXY_MODE__ESP8266WIFI_LIB_CLOUD
#include <ESP8266WiFi.h>
и загрузить в ESP12

Аватара пользователя
ussrsrtru
Рядовой
Сообщения: 36
Зарегистрирован: 27.02.2018{, 14:33}
Репутация: 19
Имя: Sergey

Виртуальный модуль RTC для TelegramBot

#11

Сообщение ussrsrtru » 26.03.2018{, 12:47}

Phazz писал(а):
25.03.2018{, 06:11}
Brand2, да вообще не пролема, но только remoteXY ESP не поддерживается в flprog.
Присоединяюсь - ограничений работы часов нет.
"Зри в корень!" К. Прутков.

Brand2
Лейтенант
Сообщения: 415
Зарегистрирован: 26.02.2018{, 21:27}
Репутация: 42
Откуда: Haifa
Имя: Alex

Виртуальный модуль RTC для TelegramBot

#12

Сообщение Brand2 » 26.03.2018{, 13:02}

Странно,почему то в Telegram bot блок RTCvirtSRT_(CODE).ubi работает,с Remote XY нет,выдает 0,данные посылаю в UART и на Remote XY одновременно.

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Виртуальный модуль RTC для TelegramBot

#13

Сообщение Сергей » 28.03.2018{, 03:02}

ussrsrtru, доброй ночи. Подскажите есть ли у Вас в планах сделать возможность настроить подключение к wifi esp-шки без прошивки? К примеру, как в роутерах, кнопка-режим точки доступа - через веб морду вводим название сети/пароль и переходим в рабочий режим... Как то так?

Отправлено спустя 11 минут 3 секунды:
Просто, конечные пользователи не всегда смогут перепрошить себе еспху.
Пока видится вариант, подключить к ней еще и блютуз. В проекте из Вашего блока вывести два строковых входа с логином и паролем от вайфая. И через сторонние приложения, типа remotexy вводить имя сети и пароль, с телефона... Но это все костыли костыли.

Аватара пользователя
ussrsrtru
Рядовой
Сообщения: 36
Зарегистрирован: 27.02.2018{, 14:33}
Репутация: 19
Имя: Sergey

Виртуальный модуль RTC для TelegramBot

#14

Сообщение ussrsrtru » 29.03.2018{, 22:50}

Не вижу проблем с этим. Я задавал себе вопрос "а сможет ли пользователь каким - то образом ввести логин и пароль" и, признаться, не видел ответа. Поэтому решил прошивать в параметрах блока. Но ничего не стоит вывести два входа к блоку и все. С помощью коллег мы уже модернизировали ПБ и он теперь переключается на ту точку, которая доступна из списка в нем. Если будет время - сделаем и ваше предложение.
"Зри в корень!" К. Прутков.

Аватара пользователя
grin-mpx
Лейтенант
Сообщения: 477
Зарегистрирован: 17.07.2017{, 18:39}
Репутация: 55
Откуда: Днепр. UA
Имя: Григорий

Виртуальный модуль RTC для TelegramBot

#15

Сообщение grin-mpx » 29.03.2018{, 23:31}

В идеале было-бы удобно задавать параметры соединения внешними переменными, а не изменениями внутри блока. Тогда была-бы возможность без перепрошивки подключаться к любой точке доступа. У меня к сожалению, на это мозгов пока не хватает. Пока положил проект в ящик, но с ботом таки побаловался. Спасибо авторам за блок.
Я про это:
Вложения
Telegramm.jpg

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Виртуальный модуль RTC для TelegramBot

#16

Сообщение Сергей » 30.03.2018{, 00:00}

ussrsrtru писал(а):
29.03.2018{, 22:50}
Но ничего не стоит вывести два входа к блоку и все. С помощью коллег мы уже модернизировали ПБ и он теперь переключается на ту точку, которая доступна из списка в нем. Если будет время - сделаем и ваше предложение.
Вывести, данные подключения к файфаю, из блока не проблема. Вопрос в том как бы сделать ввод имени сети и пароля (либо без него, если в точке доступа исп. фильтрация по МАКам) в готовое устройство. В идеале это кнопка на устройстве для переключения его в режим точки доступа с известными параметрами и обращение к ней через веб браузер для ввода имени вайфая и сохранению его в еепром. От куда потом Ваш блок будет брать эти параметры... Для этого надо код блока доработать.
Костыльный способ это прикручивать блютуз и через например ремотеXY вводить эти строки. Каскада для этих целей не подойдет.

Аватара пользователя
ussrsrtru
Рядовой
Сообщения: 36
Зарегистрирован: 27.02.2018{, 14:33}
Репутация: 19
Имя: Sergey

Виртуальный модуль RTC для TelegramBot

#17

Сообщение ussrsrtru » 30.03.2018{, 18:35}

Подумаем. Но это вопрос не этого топика. Здесь тема про часы :)))

Отправлено спустя 1 минуту 15 секунд:
grin-mpx писал(а):
29.03.2018{, 23:31}
В идеале было-бы удобно задавать параметры соединения внешними переменными, а не изменениями внутри блока. Тогда была-бы возможность без перепрошивки подключаться к любой точке доступа. У меня к сожалению, на это мозгов пока не хватает. Пока положил проект в ящик, но с ботом таки побаловался. Спасибо авторам за блок.
Я про это:
Сделаем...
"Зри в корень!" К. Прутков.

Ответить

Вернуться в «Коммуникация и связь»