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 со схемой управления вентилятором.

Новый редактор ElDraw5 со схемой управления вентилятором.

Как видим, от бесконечно длинной палитры элементов редактора ShIoTiny не осталось и следа. Компактная группировка узлов по назначению сокращает время поиска нужного узла в разы.

Все параметры узлов теперь находятся внутри самого узла. Например узел ADC (АЦП). Все его параметры на виду: сразу видно, что измеренное значение умножается на 100 (пороговую влажность можно задать от 0% до 100%).

Все, что можно изменить в узлах — выделено синим цветом. Всё что изменить нельзя — черным.

Это очень удобно. Видишь синюю надпись — ткни мышкой. Или выпадет меню или выведется строка редактирования.

Контекстное меню выбора функции узла

Контекстное меню выбора функции узла

Ножки, привязанные к узлам по-прежнему выводятся над узлами красным цветом. Но выбор производится из контекстного меню.

Контекстное меню привязки GPIO-ножки к узлу

Контекстное меню привязки GPIO-ножки к узлу

Если параметр задаётся как число или строка — то при клике мышкой на синий элемент узла выводится строка редактирования.

a8dd6d79927e0e6173bfd7c4d29a4904.png

Узлы теперь зависимы друг от друга.

Например, если узел 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.

© Habrahabr.ru