ShIoTiny5 — новые веяния
Несколько лет назад я писал о системе визуального программирования ShIoTiny для модулей на базе микроконтроллера ESP8266. Поэтому, чтобы не повторяться, для тех, кто «не в теме» — сразу отсылаю к моей первой статье на Хабре: https://habr.com/ru/articles/463107/.
Замечу только, что система ShIoTiny родилась почти случайно, но выросла в целую концепцию визуального программирования микроконтроллеров. Собственно, с этого и начались мои публикации на Хабре. И развитие системы ShIoTiny во многом обязано именно тому, что люди с Хабра писали свои отзывы в комментариях и на мне почту.
Система ShIoTiny получилась довольно интересная, но, как и все новорожденные проекты, обладала массой недостатков — начиная от неудобства интерфейса и кончая ошибками используемых библиотек и моих кривых рук. Но, несмотря на всё это, люди проявляли к ней интерес и я завёл сайт https://shiotiny.ru/, где выкладывал и выкладываю информацию о проекте.
Так как всем, кому больше трёх лет известно, что жизнь — штука неожиданная и полная сюрпризов, то неудивительно, что проект на некоторое время забуксовал. Некоторые товарищи даже интересовались в почте — жив ли я ещё и не плюнул ли на свои забавы с микроконтроллерами.
Чтобы ответить на письма всем и разом, я решил написать эту короткую статью. Надеюсь, только первую, в серии статей о новом ShIoTiny5. Здесь я расскажу о том, что произошло в плане разработки системы ShIoTiny с момента последней публикации на Хабре о ней.
Отвечаю всем и сразу: я жив, относительно здоров, у меня пополнилось семейство ещё одним маленьким человеком, живу по-прежнему в Сибири (да, медведи в городе ходят, один в прошлом году точно по центру Томска бегал, видео есть). И интерес к микроконтроллерам я не потерял. Но, к сожалению, большая семья, работа и прочие дела требуют немало времени. Поэтому некоторое время мне было просто «не до того».
Кроме того, мерзкий хостинг «Hostinger», где находился сайт https://shiotiny.ru/, внезапно запретил туда доступ. Поэтому пришлось ждать пока домен благополучно умрёт и создать сайт https://shiotiny.ru/ на другом, более приятном хостинге «Sprinthost».
Но, как бы там ни было, приятные сюрпризы, равно как и неприятные, остались в прошлом и жизнь устаканилась в новой колее. Очень радует то, что люди не забыли мои потуги на ниве создания систем программирования микроконтроллеров и периодически писали в почту, указывая на недостатки моего ПО, на ошибки и высказывания пожелания по его улучшению.
Но нет худа без добра. Достаточно большой перерыв в написании кода помог посмотреть на проект по-новому. Помог выделить основные недостатки и кривые места в интерфейсе, пользователя и в самой концепции визуального программирования.
И вот, наконец, я засел за код и выдал новую версию ПО, которую назвал ShIoTiny5. Это пока Alpha-версия! Поэтому упор сделан на переработке основных функций, а часть узлов, которые были ShIoTiny, пока отсутствует.
Итак, что нового?
Полностью переработано ядро системы, выполняемое на микроконтроллере. Использованы новые версии библиотек с прицелом на перенос системы на ESP32. Изменена событийная модель, введены приоритеты. Этого не видно «сверху», но стабильность работы устройства значительно возросла. Конечно, надо прогнать тест в течении хотя бы месяца без выключения. Это впереди.
Изменился принцип настройки устройства. На странице конфигурации остались только настройки подключения к WiFi сети и безопасных режимов работы. Все остальные настройки (связь с сервером MQTT, настойки шин и т.д. и т.п) выполняются теперь в виде специальных узлов. То есть интерфейс избавлен от лишних элементов.
Появились «безопасные режимы», позволяющие автоматически менять режим доступа к устройству в случае пропадания связи с точкой доступа WiFi. Это очень удобно, так как позволяет обходиться во многих случаях без неудобной процедуры перевода устройства в режим конфигурации.
Исправлены ошибки редактора, приводившие к исчезновению связи между узлами на схеме. В своё оправдание скажу, что ошибка была не моя, а библиотеки. И исправилась буквально парой строчек. Но найти её было очень непросто.
Изменился внешний вид редактора. Если раньше «палитра узлов» была сплошной и очень длинной, то теперь узлы сгруппированы по тематике и выводятся на разворачивающихся вкладках. Это гораздо удобнее.
Появились узлы с переменным числом входов и выходов. Это очень удобно для таких узлов, например, как мультиплексор или «разбиение на биты». Правда, для этих узлов не очень корректно пока работает функция отмены :(Но это не очень страшно. Возможно, что удастся победить и этот недостаток.
Исчезли все диалоговые окна настройки узлов. Теперь все параметры узла находятся прямо в нём самом и там же редактируются. Это очень удобно, так как всё на виду и для просмотра параметров не надо делать лишних движений.
Появилась куча новых математических и битовых операций и функций: минимумы-максимумы, линейные функции и проч. и проч.
Появились узлы операций с константой. Этого очень не хватало.
Счетчики теперь умеют считать во все стороны и можно задать ограничения счёта.
Публикация и получение данных MQTT теперь возможна в нескольких режимах — просто данные или данные с привязкой к временной метке. Кроме того, можно публиковать полную информацию об устройстве, такую как его IP-адрес, название и псевдоним.
Появились узлы ШИМ.
Режимы работы входов и выходов GPIO теперь можно задать как «прямой» или «инверсный».
и ещё куча мелких изменений.
Чего пока нет?
Нет ряда узлов датчиков, которые я ещё не перенёс из ShIoTiny в ShIoTiny5.
Нет протокола RLink UDP.
Нет поддержки SSL для протокола MQTT. Но она запланирована и скоро появится.
Нет узлов сохранения данных во FLASH-память. Тоже скоро появится.
Несмотря, на то, что того и этого ещё нет, программным обеспечением ShIoTiny5 уже можно пользоваться, играться с ним, выявлять ошибки.
Немного о редакторе ElDraw5
Редактор ElDraw — это базовый элемент, вокруг которого вращается вся концепция визуального программирования в системе ShIoTiny5.
От удобства работы с ним зависит удобство работы с системой. посмотрим на новый редактор ElDraw5, входящий в состав ПО ShIoTiny5.
Как выглядит новый редактор ShIoTiny5 — ElDraw5 — показано на рисунке ниже.
Новый редактор ElDraw5 со схемой управления вентилятором.
Как видим, от бесконечно длинной палитры элементов редактора ShIoTiny не осталось и следа. Компактная группировка узлов по назначению сокращает время поиска нужного узла в разы.
Все параметры узлов теперь находятся внутри самого узла. Например узел ADC (АЦП). Все его параметры на виду: сразу видно, что измеренное значение умножается на 100 (пороговую влажность можно задать от 0% до 100%).
Все, что можно изменить в узлах — выделено синим цветом. Всё что изменить нельзя — черным.
Это очень удобно. Видишь синюю надпись — ткни мышкой. Или выпадет меню или выведется строка редактирования.
Контекстное меню выбора функции узла
Ножки, привязанные к узлам по-прежнему выводятся над узлами красным цветом. Но выбор производится из контекстного меню.
Контекстное меню привязки GPIO-ножки к узлу
Если параметр задаётся как число или строка — то при клике мышкой на синий элемент узла выводится строка редактирования.
Узлы теперь зависимы друг от друга.
Например, если узел MQTT-клиента «Mqtt Config» не установлен в схему — то узлы «MqttPub» и «MqttDesc» установить невозможно.
Нельзя выбрать зависимые узлы, пока не установлен тот узел, от которого они зависят
Все эти удобства редактора реально облегчают жизнь.
Конечно, это далеко не всё, что нового появилось в редакторе ElDraw5 по сравнению с ElDraw. Но у меня нет цели переписывать тут всю инструкцию. Для понимания принципов работы этого достаточно.
Заключение
Тем, кому интересна тема визуального программирования микроконтроллеров — предлагаю загрузить ShIoTiny5 в модуль ESP8266 и попробовать сделать что-то самому.
Несколько полезных ссылок:
Страница проекта: https://shiotiny.ru/
Страница документации ShIoTiny5: https://shiotiny.ru/? mod=shiotiny-soft5 — там же ссылки на образы прошивок и инструкцию (изменяются по мере разработки).
Кому интересно, вот старый репозитарий прошивок ShIoTiny (НЕ ShIoTiny5!!!): https://github.com/shiotiny/ShIoTinyBin/ — там же расположена инструкция по прошивке модуля ESP8266.
Вопросы, пожелания и предложения можно писать на почту: shiotiny@yandex.ru — она указана так же на сайте https://shiotiny.ru/? mod=contacts.
И, как говорится, простите автору его ошибки!
Всё-таки это ещё Alpha-версия ShIoTiny5.