Хабрахабр

ShIoTiny: обновления и уведомления

О чем эта статья

Продолжаем цикл статей о ShIoTiny — визуально программируемом контроллере на базе чипа ESP8266.

В этой статье рассказано о том, что изменилось со времени предыдущей прошивки ShIoTiny: как изменился интерфейс пользователя; как переназначить «ножки» и другие менее важные, но не менее долгожданные вещи.

Те, кто не заинтересовался этой моей разработкой могут со спокойной совестью эту статью пропустить. Статья представляет что-то вроде "информационного листка" о состоянии дел на поприще разработки прошивки ShIoTiny.

Те, кто не знает о чем речь, но хотят узнать — могут прочитать мои предыдущие статьи о прошивке ShIoTiny или обратится к документации.

Сайт проекта ShIoTiny

Онлайн-версия редактораElDraw — точно такая же как в прошивке, для ознакомления.

Ссылки на схемы, прошивку и прочее — на сайте ShIoTiny в разделе документация.

Предыдущие статьи о ShIoTiny и другие мои статьи

Вступление для успокоения почтенной публики

Так уж сложилось, что, четвертый квартал — это перманентный аврал. Поэтому некоторые товарищи уже начали хоронить проект ShIoTiny и писать мне на почту, дескать — «эй, автор, ты где?! чего не пишешь?! мы тут твою прошивку используем! а ты ни одной новой статьи!»
Разумеется, что это было в вежливой форме, но по смыслу именно так. Некоторые наоборот, писали предложения и замечания, чем очень помогали в ловле программных блох. Спасибо вам, ребята. Всегда приятно, что не варишься в собственном соку, а имеешь единомышленников.

Я напоминаю, что проект мой — хобби и кроме него у меня есть работа, жена и детишки. Друзья! Автор пишет как умеет и может:) Так что прошу вас: будьте снисходительны!

Я выловил довольно много блох из кода и кроме того переделал сайт проекта (правда ещё не до конца — набиваю сайт контентом). Спешу всех успокоить: проект не умер!

Даже наша вселенная эволюционирует. С точки зрения большинства философских учений в мире нет ничего постоянного. Что уж говорить о прошивке микроконтроллера или сайте проекта?

О них мы и поговорим. Ключевые изменения в прошивке ShIoTiny коснулись прежде всего двух вещей: возможности переопределения ножек и страницы состояния контроллера. Что касается нового дизайна сайта проекта — то я его тут касаться не буду: кому любопытно — зайдут, посмотрят и покритикуют.

Переопределение «ножек» ESP8266

Итак, ножки или они же — GPIO. Изначально, ножки микроконтроллера ESP866 переопределять не предполагалось. Они были жестко прибиты к входам и выходам платы ESP-07 (кому интересно — о ней все есть на сайте проекта).

Но внезапно обнаружилось, что моя прошивка безо всякой переделки идет не только на модуле ESP-07 с 1Мб FLASH, но и на ESP-01, ESP-12 и даже на ESP-8285!

Справедливо встал вопрос о том, что одному нужно 5 входов и один выход, другому — 6 выходов и ни одного входа, третьему — три термометра одновременно.

Жена уже готовилась вызвать мне санитаров со смертельной рубашкой… Но я оказался крепким орешком!
Стиснув зубы и выпив литра три кофе, я собрал остатки мозга, по случайности не пропитые в студенчестве и придумал — как реализовать фокус с переопределением ножек, чтобы всем стало хорошо. Волна писем от негодующей общественности чуть не помрачила остатки моего разума!

С точки зрения пользователя все выглядит предельно просто: он тыкает мышкой на узел, который связан с какой-либо ножкой GPIO модуля и выбирает из списка одну ножку из возможных. Я не буду утомлять читателя внутренней кухней программы. Примерно так, как показано на рисунке ниже.

Но такую схему можно выгрузить на диск, чтобы продолжить ее редактирование «когда-нибудь потом». N/A — означает, что ножка не выбрана.
Если в схеме есть узел с не выбранной ножкой N/A, то такую схему загрузить в устройство нельзя — не позволит редактор ElDraw.

Все очень просто, но есть нюансы.

То есть два раза выбрать одну ножку — невозможно. Во-первых, что очень на мой взгляд удобно, в списке отображаются только неиспользуемые ножки.

Простите, но иначе — никак… Во-вторых, ножка GPIO15 — зарезервирована под кнопку AP и её нельзя использовать для других целей.

Во-третьих — ножку GPIO16 нельзя использовать как обычный бинарный вход (узел Input).

На других модулях результат будет плачевный — полный зависон и бесконечный перезагрузон! В-четвертых — ножки GPIO9 и GPIO10 можно использовать только на модуле ESP-8285.

Ведь не хочется каждый раз перешивать контроллер, если неверно выбраны ножки! Последний пункт — зависание некоторых модулей при выборе ножек GPIO9 и GPIO10 заставил меня крепко задуматься. И я придумал модифицированный, новый способ перехода в режим конфигурации.

Новый способ перехода в режим конфигурации

Если кто читал мои предыдущие статьи, то помнит, что режим конфигурации прошивки ShIoTiny — это режим, когда чип ESP8266 становится открытой точкой доступа, а схема-программа после перезагрузки не запускается автоматически. А раз не запускается — то и не зависнет при выборе каких угодно ножек GPIO.

Но вот беда — попасть в режим конфигурации можно было только удерживая кнопку AP примерно 4 секунды! То есть в режиме конфигурации можно изменить проблемные ножки GPIO9 и GPIO10 на другие. А за это время контроллер успеет начать выполнять «кривую» схему-программу и зависнуть!

Если в течении 0. Для разрешения этой проблемы, я придумал ввести полусекундный защитный интервал после перезагрузки контроллера. При этом в течении полусекундного защитного интервала схема-программа не запускается. 5 сек после перезагрузки контроллера будет нажата кнопка AP, то контроллер немедленно перезагрузится в режиме конфигурации. А значит и не может повиснуть.

Плюсы куда солиднее — если выбраны «не те ножки» или схема-программа по каким-то иным причинам зависает, то всегда можно перейти в режим конфигурации и исправить ситуацию без перепрошивки контроллера. Минусы очевидны — программа стартует не сразу, а на полсекунды позже.

Сразу примерно на полсекунды загорается синий светодиод STATUS (если вы его, конечно, припаяли к GPIO0) и контроллер перезагрузится в режиме конфигурации. На практике все выглядит проще пареной репы: давим кнопку Reset и, отпустив кнопку Reset тут же, не мешкая, давим кнопку AP.

Если схема-программа работает нормально — то можно всегда перейти в режим конфигурации «старым» способом — нажав и удерживая кнопку AP примерно 4 секунды (пока не загорится синий светодиод STATUS).

Страница состояния ShIoTiny

Возможность подключения ножек по воле пользователя привела к пересмотру главной информационной страницы прошивки ShIoTiny.

После тяжелых раздумий, я пришел к выводу, что страница должна быть а) информативной и б)не содержать лишнего.

То, что у меня получилось показано на рисунке ниже.

Рассмотрим их подробнее. На главной информационной странице два раздела: Info — общая информация и Used GPIOs — информация о использовании ножек ввода-вывода.

Раздел Info

Name: esp_8266_155da4 — уникальное имя устройства. Оно генерируется автоматически и изменить его нельзя.

Ver: 2019-10-22 22:54:51 +0700 6b5ee82 clean — версия прошивки (дата сборки и идентификатор коммита).

168. MQTT: Connected to: 192. 2:21064, SSL — соединение с сервером MQTT. 1. Помните, что если в схеме-программе нет узлов работы с MQTT — то и соединение устанавливаться никогда не будет! показан IP-адрес или URL сервера, порт сервера и режим SSL, если используется защищенное соединение.

168. WiFi: STA ip: 192. 134. — режим работы WiFi ESP8266: STA — станция, AP — точка доступа. 1. Могут быть одновременно выбраны оба режима с различными IP-адресами.

Показано только есть время установлено узлом Set Time! Now: Wed Oct 30 2019 21:49:28 GMT+0700 — текущее время. Иначе будет указано, что время не синхронизировано и не установлено.

Раздел Used GPIOs

В этом разделе показаны все используемые в схеме-программе ножки модуля и их текущее состояние.

Формат вывода очевиден: GPIO <номер ножки> (функция): состояние
Номер ножки — число или, для АЦП — вместо номера будет надпись adc.
Функция: Input — бинарный вход; Relay — бинарный выход; ADC — АЦП или тип датчика: DS182x или DHTxx.

Поле «состояние» — зависит от назначения ножки.
Для бинарных входов и выходов — 0 или 1.
Для датчиков — температура, влажность.
Для АЦП — его показания, пересчитанные по заданной формуле (смотрите описание работы с АЦП в инструкции).

На мой взгляд главная страница содержит всю необходимую информацию о работе контроллера.

Заключение

Вот, собственно, и все главные изменения в прошивке на сегодняшний день. Кроме этих новшеств было исправлено ещё десятков пять мелких ошибок.

Как обычно — подробная инструкция на сайте ShIoTiny в разделе документация или тут.

Предложения, пожелания, критику, деньги, подарки и так далее — присылайте мне в комментарии или на почту: shiotiny@yandex.ru.

Жду отзывов и предложений.

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть