• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Помогите создать сценарий

glory24

Member
У меня Телеграм Бот следит за одной из переменных на 4ch (режим котла) и за датчиком температуры, если не получает ответа 3 минуты, то подает сигнал тревоги.

Посмотреть вложение 9452

Это происходит один раз на старте, потому что на старте ТБ не сразу связывается с другим устройством , и потом при каждом получении данных с другого устройства.
А что это за переменная
1592910212980.png
для чего она служит?
 

PeterPK

Active member
А что это за переменная
Посмотреть вложение 9459
для чего она служит?
Это сценарий управления котлом рассчитывает должен ли котел работать вообще - типа если температура на улице близка к желаемой в доме (или больше), то отопление выключается (или включается если похолодало). И заодно эта переменная_6 ставится в соответствующее положение 1 или 0.

А Телеграмм Бот следит за этой переменной и сообщает мне в чат о включении выключении котла.

Я это еще для отладки использую. ТБ следит за всеми отладочными переменными и при их изменении транслирует их в чат. А я потом утром смотрю что как менялось, в какое время что сценарий насчитал и потом сделал, и понимаю, где я накосячил.
 

glory24

Member
Собрал модуль в сценарий по образцу от Петра.
Пока не получилось. Что именно не получилось описал тут :)
 

glory24

Member
В общем, получилось так
1592934780404.png
добавил время жизни сигналу, а то насыпал в телеграм лишние уведомления, о том что сигнал отвалился.
1592934867786.png
 

glory24

Member
Ну вот снова нужна помощь в создании сценария.
Вышла новая прошивка для ворот/роллет версия 1593929229578.png , пока еще на "тестирование", то есть в "Загрузках" ее еще нет.
Так вот у меня с ней проблемка которую сложно описать текстом, слишком много буковок написать придется :) , снял для этого ролик.
Рассчитываю на Вашу помощь :)
 

valeraba

Moderator
Команда форума
Ну вот снова нужна помощь в создании сценария.
В прошивке для роллет на запись из сценария доступен лишь один сигнал "setup". Для записи в сигнал "down" нужно дописывать прошивку.
Может нужен не абстрактный цифровой вход, а цифровой вход для штатных концевиков, со своей встроенной защитной логикой? Правда нужно два концевика (на закрытие и открытие).
Хотя ранее ты говорил, что концевики тебе не нужны.
 

glory24

Member
В прошивке для роллет на запись из сценария доступен лишь один сигнал "setup". Для записи в сигнал "down" нужно дописывать прошивку.
Может нужен не абстрактный цифровой вход, а цифровой вход для штатных концевиков, со своей встроенной защитной логикой? Правда нужно два концевика (на закрытие и открытие).
Хотя ранее ты говорил, что концевики тебе не нужны.
У мотора есть свои концевики. Мне их достаточно.
Существует такая проблема:
время открытия ворот короче чем время их закрытия. Это обусловлено особенностью их установки (створка чуть наклонена и гравитация помогает открываться)
Если мы открываем ворота настежь то проблемы нет, мы просто устанавливаем время работы 1593960436128.png по по времени необходимому для закрытия ворот и ворота закрываются полностью.
Но если мы приоткрываем ворота (режим калитки) то при нажатии кнопки doun
1593960602732.png
ворота полностью не закрываются.
Я надеялся решить эту проблему с помощью DI.
То есть, ворота закрываются не до позиции 0%, а до состояния, пока не наступит DI=0
Кроме это с помощью DI можно было бы решить проблему "аварийной остановки", если на него повесить еще и датчик движения или пересечения луча.
Ну и явно, теперь, не хватает парочки переменных
1593961214071.png
Я бы на одну из них повесил кнопку и присвоил ей имя "калитка" так что бы при нажатии на нее ворота открывались на определенный процент.
А на другой циклическую работу: так чтобы они после открытия ждали определенное время, а портом самостоятельно закрывались.
Тогда все это можно будет реализовать сценарием.
 

glory24

Member
Нужен сценарий для устройства, которое будет измерять расстояние с помощью акустического дальномера.
Схема устройства
ESP8285+фоторезистор+датчик движения+4 x ds18b20+дальномер_bb.jpg
его панель управления
Как с ним обходится arduino.cc и образец кода - тут
Как я понимаю, в сценарии нам нужен создать цикл
1596782246452.png
раз цикл, то обязательно пауза после него
1596784941805.png
А теперь, я так понимаю внутрь цикла нужно поместить отправку, прием акустического сигнала, расчет расстояния в зависимости от скорости возврата сигнала и запись в переменную 1, к примеру.
И как все это сделать?
 

glory24

Member
Нужен сценарий для устройства, которое будет измерять расстояние с помощью акустического дальномера.
Схема устройства
Посмотреть вложение 9691
его панель управления
Как с ним обходится arduino.cc и образец кода - тут
Как я понимаю, в сценарии нам нужен создать цикл
Посмотреть вложение 9692
раз цикл, то обязательно пауза после него
Посмотреть вложение 9693
А теперь, я так понимаю внутрь цикла нужно поместить отправку, прием акустического сигнала, расчет расстояния в зависимости от скорости возврата сигнала и запись в переменную 1, к примеру.
И как все это сделать?
Кстати тут нашел внятное объяснение, как он работает :)
Ну и первый вопрос:
как сформировать отправку сигнала с GPIO12 длительностью от 10 до 15 микросекунд и поместить ее внутрь цикла?
 

valeraba

Moderator
Команда форума
Нужен сценарий для устройства, которое будет измерять расстояние с помощью акустического дальномера.
Мне не на чем проверить этот сценарий, попробуй сам. Желательно осциллографом подогнать 10 мкс задержку на D1. Точность измерения конечно будет небольшой, но для твоей задачи сгодится.
2020-08-07_16-29-04.png
 

glory24

Member
Мне не на чем проверить этот сценарий, попробуй сам. Желательно осциллографом подогнать 10 мкс задержку на D1. Точность измерения конечно будет небольшой, но для твоей задачи сгодится.
Посмотреть вложение 9696
А с помощью этих блоков
1596794735273.png

задать продолжительность задержки никак нельзя?
 

valeraba

Moderator
Команда форума
А с помощью этих блоков
Посмотреть вложение 9697

задать продолжительность задержки никак нельзя?
Можно, просто требуемая длительность импульса довольно мала, не переборщить бы. Мне кажется я в своём примере и так уже переборщил с задержкой, поэтому пробуй убрать лишние блоки.

2020-08-07_17-17-15.png
 

glory24

Member
Сделал такую сборку
1596797096115.png
как теперь рассчитать длину импульса F ?

1596796920526.png
и как подбирать этот коэффициент? Что он означает?
1596797257296.png
 

glory24

Member
В общем, благодаря Валере, собрали и отладили сценарий. Теперь он имеет такой вид
Посмотреть вложение 9708
Согласно этого сценария устройство устанавливает GPIO12 логический ноль, а после этого в Переменную_1 записывает результат расчета, полученный в результате выполнения функции HC-SR04
Сама же функция состоит из отправки короткого импульса на GPIO12 ( это вход "Trig" Ультразвукового датчик расстояния HC-SR04 Датчик CH-SR04_1.jpg)
и прослушивания ответа с GPIO5, (который приходит с ножки "Echo" датчика HC-SR04 Датчик CH-SR04_2.jpg)
Ответ на GPIO5 с датчика HC-SR04 приходит уже пересчитанный в сантиметрах, но не соответствующий фактическому расстоянию от датчика до препятствия.
Так на фактическом расстоянии 100 см. датчик выдает значение 284 см.
Для того что бы привести в соответствие, выдаваемое датчиком значение к фактическому, вводим коэффициент пересчета равный 0,35211268
1596994840131.png
В результате на панели управления получаем верное значение расстояние от датчика до препятствия.
1596995182542.png
 

Вложения

Сверху Снизу