Несколько лет назад я писал о системе визуального программирования 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 - показано на рисунке ниже.
Как видим, от бесконечно длинной палитры элементов редактора ShIoTiny не осталось и следа. Компактная группировка узлов по назначению сокращает время поиска нужного узла в разы.
Все параметры узлов теперь находятся внутри самого узла. Например узел ADC (АЦП). Все его параметры на виду: сразу видно, что измеренное значение умножается на 100 (пороговую влажность можно задать от 0% до 100%).
Все, что можно изменить в узлах - выделено синим цветом. Всё что изменить нельзя - черным.
Это очень удобно. Видишь синюю надпись - ткни мышкой. Или выпадет меню или выведется строка редактирования.
Ножки, привязанные к узлам по-прежнему выводятся над узлами красным цветом. Но выбор производится из контекстного меню.
Если параметр задаётся как число или строка - то при клике мышкой на синий элемент узла выводится строка редактирования.
Узлы теперь зависимы друг от друга.
Например, если узел 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. Прошивка ПО ShIoTiny5 полностью аналогична прошивке ПО ShIoTiny.
Вопросы, пожелания и предложения можно писать на почту: shiotiny@yandex.ru - она указана так же на сайте https://shiotiny.ru/?mod=contacts.
И, как говорится, простите автору его ошибки!
Всё-таки это ещё Alpha-версия ShIoTiny5.