Введение

Очень много вопросов задают по поводу того, как правильно «прошить» ESP-модуль прошивкой ShIoTiny5 и как его настроить.

Это не удивительно, так как параметров конфигурации немало. Да и разных модулей — тоже.

Действительно, есть уже несколько статей по программированию устройств ShIotiny5, но нет ни одной, где описаны способы установки ПО - программного обеспечения - ShIotiny5 на ESP-модуль и по его системным настройкам.

Также есть вопросы по поводу того, почему ShIoTiny5 такая какая есть, а не «вот такая».

Попробую ответить на эти вопросы.

Кому интересны только практические вопросы — могут пропустить первый раздел и перейти сразу к «прошивке» и «настройке».

В этой статье нет ничего о программировании ShIotiny5. Она целиком посвящена прошивке программного обеспечения и его конфигурации.

Концепция построения ShIoTiny5

Начнём, с небольшого историко-философского экскурса.

Сегодня, такие понятия как IoT, «умный дом», «умные вещи» стали настолько избитыми, что несколько смазались. Но если взглянуть в корень проблемы — то любая «умная вещь» призвана повысить комфорт её использования путём наделения её неким «интеллектом».

И разработка таких вещей началась задолго до появления электроники как таковой. Возьмём, например, обычный сливной бачок, что имеется в каждом доме. Он — тоже «умная вещь». Следит за уровнем воды. Наполняет, если её мало в бачке. Закрывает клапан, если воды много. Функционально, ничуть не хуже какого-нибудь автомата «умного включения света». И никакой электроники!

Если взглянуть на книги и журналы времён СССР — даже 30х, 40х, 50х годов — то там есть масса всяких «умных вещей». Те же автоматы включения света, полива, нагрева и прочее и прочее.

Конечно, это всё реализовывалось на электронной и электромеханической базе того времени. Но оно работало. И выполняло свои функции совсем неплохо.

К чему это я всё пишу? А к тому, что подавляющая часть задач в области «умных вещей» сформулирована довольно давно.

Конечно, крайняя дешевизна электроники, лёгкость объединения таких вещей в сети, смартфоны, интернет — всё это придало новый виток развития «умного быта». Но…

Но главные задачи в быту остались теми же, как и 30-40 лет назад:

  • управление освещением для экономии энергии и ресурса ламп;

  • управление поливом растений по расписанию;

  • управление нагревом помещений;

  • управление вентиляцией;

  • и так далее, можно найти ещё несколько старых-старых тем.

Замечу, что всё, что я перечислил не требует обязательного подключения к интернету. Сеть, конечно, даёт огромные возможности по удобству управления и мониторинга. Но она не обязательна для выполнения основной функции данных устройств.

Поэтому, я всегда рассматривал наличие сети не как основу умных вещей, а как дополнительное удобство. То есть умная вещь, по моему мнению, должна выполнять свою основную функцию и без связи с интернетом. Это один из принципов, который я положил в основу ShIoTiny5. Там есть режим - «Single Mode» - в котором сеть не используется вообще.

Раньше, во времена больших транзисторов МП42Б, вся логика работы устройства программировалась путём её реализации на аппаратном уровне.

Помню, когда я учился в третьем классе, я сделал свой первый автомат — бегущие огни. Они были сделаны на 110-вольтовых реле. Ни ламп, ни транзисторов, ни тем более микросхем в них не было. Реле были 110-вольтовые, потому что я их нашёл на свалке соседнего завода и много. Если их соединить последовательно по два таких реле — то как раз можно использовать на 220В. Это были самые шумные бегущие огни в моей жизни. При переключении эти реле довольно сильно стучали. А время переключения реле - скорость бега огней - регулировалось с помощью RC-цепочек.

Тем не менее — это был первый конечный автомат, который я сделал.

И сегодня, делая всякие управляющие устройства «для дома для семьи» или на работе — я заметил, что почти все задачи, решаемые ими, сводятся к понятию «конечный автомат».

Поэтому, в основу ShIoTiny5 положен второй принцип: алгоритм - это конечный автомат плюс события, которые им управляют. Конечно, имеется возможность подключить датчики по разным шинам и интерфейсам. Имеется возможность передать и принять данные по сети. Но основной алгоритм — это по сути конечный автомат. А конечный автомат очень хорошо описывается простыми логическими операциями на языке электронных схем, который и стал основой описания алгоритмов в ShIoTiny5.

Третий принцип из которого я исходил — это простота ввода алгоритма в устройство. Я рассматривал разные подходы: языки программирования, блок-схемы. Но победил подход, подсмотренный мной в системе NodeRed, который очень хорошо сочетался с описанием конечных автоматов на языке электронных схем — рисование схем-программ.

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

Модули серии ESP выбраны для реализации всего этого "великолепия" по тем причинам, что они крайне дёшевы, широко распространены, имеют WiFi на борту, что позволяет в качестве средства настройки и программирования использовать стандартный WEB-браузер.

И это четвёртый принцип, положенный в концепцию построения ShIoTiny5: использование по возможности только стандартных программных средств.

Минимальный объем FLASH-памяти для системы ShIoTiny5 определён экспериментально — он оказался равным 1Мбайт, если не реализовывать OTA — программирование по воздуху.

Итак, принципы сформулированы. Но это всё голая теория. Практически, с учётом имеющейся материально-технической базы, все эти принципы вылились в архитектуру ShIotiny5.

Архитектура ShIoTiny5

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

Сверху рисунка условно показана аппаратная часть. По сути это бинарные линии ввода-ввода GPIOxx и вход встроенного АЦП 0..1В.

В зависимости от конфигурации устройств в схеме, линии ввода-вывода GPIOxx могут выполнять разные функции — просто линии ввода или вывода бинарного сигнала или одно- или многопроводные шины.

Замечание о ногах.

В большинстве модулей на базе ESP8266 «задние ноги» (с GPIO6 по GPIO11) подключены к встроенной FLASH и их нельзя использовать в схемах-программах!

Прежде, чем использовать эти ноги — поинтересуйтесь, можно ли их свободно использовать в вашем модуле!

Программная часть условно состоит из следующих компонентов:

  • хранилища FLASH, в котором содержатся конфигурационные параметры и описание схемы-программы, а также содержимое WEB-страниц;

  • системной управляющей части System Control, отвечающей за инициализацию системы и переключение режимов работы, запуск и остановку виртуальной машины;

  • WEB-сервера, который позволяет соединяться с устройством посредством стандартного WEB-браузера;

  • виртуальной машины SchemeVM, которая загружает схему-программу из хранилища, инициализирует объекты и затем выполняет алгоритм, описанный в схеме-программе.

Веб-сервер представляет пользователю три сайта-вкладки:

  • основную страницу информации ShIoTiny Info;

  • страницу системной конфигурации Configure;

  • страницу-редактор схем-программ ShIoTiny ElDraw.

На рисунке не показана сетевая часть, управляющая WiFi. Она входит в состав системной управляющей части System Control.

Веб-сервер - опциональная вещь. Пользователь может его отключить. Тогда никто не сможет изменить программу работающего устройства без доступа к нему. Это хорошо для параноидального уровня безопасности.

Ниже подробно расписаны режимы работы устройства ShIoTiny5 и их возможности и ограничения.

Но сначала разберём чисто практический вопрос — как установить прошивку ShIoTiny5 на ESP-модуль.

Установка ПО ShIoTiny5 на ESP-модуль (прошивка)

Что такое ESP-модуль?

Итак, что такое ESP-модуль? ESP-модулем будем называть устройство, в основе которого лежит чип ESP8266.

ПО ShIoTiny5 было опробовано на различных модулях — ESP07, ESP12, ESP14 и даже на ESP-M1.

Главное условие — чтобы на модуле было установлено не менее 1МБайта FLASH. Иначе программное обеспечение туда просто не влезет.

Где взять прошивку ShIoTiny5?

На сайте проекта, в разделе посвящённом ShIoTiny5.

Там есть ссылка на последнюю актуальную прошивку, которая так и называется «СКАЧАТЬ ПРОШИВКУ». Кликните на неё — и прошивка ваша. Кстати, там же, рядом лежит ссылка «СКАЧАТЬ ИНСТРУКЦИЮ». Но на неё почему-то мало обращают внимания.

Как подключить ESP-модуль к ПК?

Однозначный ответ — по USB.

Остальное зависит от того, какой у вас модуль.

Если это NodeMCU, WemosD1 или ещё какой-то модуль, в который уже встроен USB-UART преобразователь и на модуле имеется USB-разъём — то всё просто.

Достаточно взять кабель и одним концом воткнуть его в модуль, а другим — в ваш компьютер. И всё. Питание модуля обычно подаётся по тому же USB-кабелю. И этот же кабель служит для передачи данных на консоль терминала, если вам нужна отладочная информация.

Если в вашем модуле нет USB-UART преобразователя, то вам нужен другой кабель, с USB-UART преобразователем, вроде того, что на рисунке ниже.

Как видим, с одной стороны у него USB-разъём, а с другой четыре провода. Как правило, красный и чёрный — это +5В и «земля», а зелёный и белый — линии TxD и RxD UART.
Но, чтобы не спалить свой модуль — лучше проверьте какого цвета какая линия на вашем кабеле.
Если вы хотите питать ваш модуль от USB-UART преобразователя, то для этого надо подать +5В преобразователя на вход +5В модуля, а «землю» преобразователя соединить с «землёй» модуля.
Линии TxD и RxD надо соединять крест-накрест. То есть линию TxD преобразователя надо присоединить к RxD модуля, а линию RxD преобразователя - к TxD модуля.
Кроме того, если вы используете USB-UART преобразователь, то вам придётся вручную переводить модуль в режим программирования. Это не сложно. Достаточно замкнуть GPIO0 на землю и нажать кнопку reset модуля. Или просто выключить-включить питание модуля, если такой кнопки нет.

Если модуль не подаёт признаков жизни, то убедитесь, что его ножки правильно подтянуты через резисторы сопротивлением 1К — 5,1К к питанию и «земле» как показано в таблице.

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

Когда вы подключите свой модуль к компьютеру, то у вас появится новое устройство — последовательный порт.

Под Linux это будет что-то вроде /dev/ttyUSB0, /dev/ttyUSB1.

А под Windows — COM1, СOM2 или что-то подобное.

Как соединить ShIotiny5 с терминалом?

Терминал — очень нужная вещь для начального этапа работы с любым микроконтроллером.

Он позволяет проверить «жив» ли микроконтроллер, посмотреть параметры и так далее.

В качестве терминала можно использовать кросплатфоремнный универсальный терминал PuTTY.

В настройках терминала PuTTY выбираем тип сессии «Serial» «RAW». Указываем ваш последовательный порт в строке «Serial Line».

Во вкладке «Serial» указываем скорость 115200, бит данных 8, количество стоп-бит 1.

И ещё надо обязательно утановить поля «Parity» и «Flow Control» в значение «None».

Для того, чтобы вывод был красивым, во вкладке «Terminal» устанавливаем галочки «Implict CR in every LF» и «Implict LF in every CR».

После этого можно жать кнопочку «Open» и любоваться окном терминала.

Помните, что терминал при «прошивке» устройства надо закрывать!

Если всё подключено правильно, то при нажатии кнопки «RESET» вашего не прошитого модуля, в терминал будет валиться «мусор».

Также можете настроить в терминале PuTTY шрифты, которые вам нравятся.

Как прошивать ShIotiny5?

Прошивка — образ FLASH — ShIoTiny5, который вы скачали с сайта — это файл размером 1Мбайт.

Будем считать, что он называется esp-shiotiny.bin.

Прошивка выполняется с помощью утилиты esptool.py.

О том, как её установить — полно статей в интернете.

Например тут.

Будем считать, что с установкой утилиты esptool.py читатель справится самостоятельно.

Если в вашем модуле установлен 1Мбайт FLASH — то проблем нет, просто выполняете команды:

# esptool.py erase_flash
# esptool.py -b 115200 write_flash -ff 40m -fm qio -fs 1MB 0x000000 esp-shiotiny.bin

Если в вашем модуле установлено более 1Мбайт FLASH — то чтобы прошивка работала, ещё надо прошивать в первый и последний мегабайты FLASH. Примеры ниже.

Модуль с объёмом памяти 2Мб.

# esptool.py erase_flash
# esptool.py -b 115200 write_flash -ff 40m -fm qio -fs 2MB 0x000000 esp-shiotiny.bin
# esptool.py -b 115200 write_flash -ff 40m -fm qio -fs 2MB 0x100000 esp-shiotiny.bin

Модуль с объёмом памяти 4Мб.

# esptool.py erase_flash
# esptool.py -b 115200 write_flash -ff 40m -fm qio -fs 4MB 0x000000 esp-shiotiny.bin
# esptool.py -b 115200 write_flash -ff 40m -fm qio -fs 4MB 0x300000 esp-shiotiny.bin

Модуль с объёмом памяти 8Мб.

# esptool.py erase_flash
# esptool.py -b 115200 write_flash -ff 40m -fm qio -fs 8MB 0x000000 esp-shiotiny.bin
# esptool.py -b 115200 write_flash -ff 40m -fm qio -fs 8MB 0x700000 esp-shiotiny.bin

Если всё прошло успешно, то после прошивки, модуль можно перезагрузить, нажав на кнопочку RESET, если таковая имеется или просто выключив-включив его питание.

При этом, если запустить терминал, то после нажатия кнопки RESET модуля, на нём появится примерно такая информация.

Вывод ShIoTiny5 после прошивки модуля
Вывод ShIoTiny5 после прошивки модуля

Это значит, что прошивка ShIotiny5 запущена в режиме «Confg mode» и среди ваших WiFi сетей появилась открытая сеть с именем «esp_8266_dcf6f2».

Подключитесь к ней со своего ноутбука или смартфона и в браузере наберите адрес «http://192.168.4.1».

Если всё сделано правильно — то вы попадёте на главную страницу устройства ShIotiny5 - «ShIoTiny Info».
На ней отображается основная информация об устройстве. Но не будем на ней останавливаться - рассмотрим, как нам настроить устройство.

Для этого нажмите на кнопочку «Configure» - и попадёте на страницу конфигурации.

Страница конфигурации Configure

Страница конфигурации «Configure» разбита на два раздела.

Раздел «Network mode and accsess» определяет режим работы, подключение к точке доступа WiFi, конфигурацию встроенной точки доступа, а также блокировки WEB-сервера и терминала (линии TxD).

Раздел «Safe Mode» определяет параметры безопасного режима работы.

Режимы работы ShIoTiny5

ShIoTiny5 имеет пять режимов работы. Эти режимы отличаются по назначению, способу доступа к устройству и предоставляемым сетевым возможностям.

Собственно, основными режимами работы являются только два — это режим «Station mode» и «Single mode».

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

В таблице ниже показаны сводные характеристики режимов работы ShIoTiny5.

Столбец AP показывает включена ли в данном режиме точка доступа WiFi.

Столбец Sta показывает включена ли в данном режиме станция WiFi.

Столбец «Защита WiFi» показывает — защищён ли WiFi паролем в данном режиме.

Выбор режима работы производится на странице конфигурации в поле «ShIoTiny mode», как показано на рисунке.

Для перезапуска устройства в выбранном режиме, следует воспользоваться кнопкой «Save».
Но, прежде, чем жать «Save» - надо правильно выставить параметры нужного режима работы.

Режим «Config mode»

После того, как устройство первоначально «прошито» прошивкой ShIoTiny5, после включения оно переходит в режим конфигурации - «Config mode».

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

В режиме «Config mode» устройство представляет собой открытую точку доступа сети WiFi. К ней можно подключиться с любого смартфона или ноутбука и затем зайти на устройство с помощью браузера по фиксированному адресу 192.168.4.1.

Особенностью режима «Config mode» является то, что схема-программа, находящаяся в памяти не запускается автоматически на выполнение.

Кроме этого, в режиме «Config mode» всегда запускается WEB-сервер, вне зависимости от настройки его блокировки.

Как перейти в «Config mode»?

Часто есть необходимость перейти в режим конфигурации, чтобы ввести новую схему или исправить существующую.

В модуле ESP предусмотрен вывод GPIO15, предназначенный для перевода модуля под управлением ПО ShIoTiny5 в режим «Config mode».

Способ требует некоторой быстроты. Сразу после «сброса» модуля подачей сигнала низкого уровня на вывод RESET (например на модулях NodeMCU для этого есть кнопка), необходимо в течении времени не более 1сек после отпускания кнопки RESET, замкнуть вывод GPIO15 на напряжение питания Vсс. После этого модуль должен перезагрузиться в режиме «Config mode».

Лучше всего делать это при помощи двух кнопок. Первая кнопка при нажатии замыкает RESET на GND. Вторая кнопка при нажатии замыкает GPIO15 на Vcc.

На практике выглядит это так:

  • жмем кнопку RESET;

  • отпускаем кнопку RESET и тут же, как можно скорее, замыкаем GPIO15 на Vсс с помощью второй кнопки и держим её нажатой не менее 1сек.

Кроме этого, для режимов «Station mode» и «AP+Station mode» предусмотрены так называемые «безопасные режимы» или «Safe mode» (см.ниже).

Режим «Station mode»

Это рабочий режим, в котором устройство предоставляет собой станцию WiFi, подключаемую к какой-либо точке доступа.

Параметры доступа к сети WiFi задаются в полях «Name (SSID)» и «Password» на странице конфигурации устройства, показанных на рисунке ниже.

Чтобы посмотреть какие точки доступа включены в данный момент, можно воспользоваться кнопкой «Scan WiFi».

Параметры подключения к точке доступа WiFi в режиме Station mode
Параметры подключения к точке доступа WiFi в режиме Station mode

После того, как выбран режим «Station mode» и устройство перезагружено, оно будет пытаться соединиться с указанной в поле «Name (SSID)» точкой доступа.

При успешном соединении, IP-адрес устройства будет получен от точки доступа.

Если не включена блокировка WEB-сервера (см.ниже), то сервер будет запущен и устройство ShIoTiny5 будет доступно в локальной сети по этому адресу.

Режим «AP mode»

Это рабочий режим, в котором устройство предоставляет собой защищённую точку доступа WiFi.

В отличие от режима «Config mode», в «AP mode» должны быть заданы (см. рисунок ниже) название точки доступа в поле «AP Name (SSID)» и пароль для доступа к ней в поле «AP Password». Учтите, что пароль должен быть НЕ МЕНЬШЕ 8 символов длиной!

Кроме того, можно задать IP-адрес точки доступа «AP IP address» (по умолчанию 192.168.4.1).

Параметры точки доступа WiFi в режиме AP mode
Параметры точки доступа WiFi в режиме AP mode

Режим «AP+Station mode»

Режим «AP+Station mode» это одновременное включение режимов «Station mode» и «AP mode».

То есть устройство сразу доступно и как точка доступа и пытается подключиться к указанной другой точке доступа.

Этот режим рекомендуется для целей отладки и экспериментов, но не желателен для рабочего, «боевого» применения.

Режим «Single mode»

В этом режиме сеть WiFi отключена вообще. Устройство работает как отдельный микроконтроллер.

Этот режим самый "неудобный" в том плане, что иначе как переводом в «Config mode» вручную, с помощью GPIO15 - до его программы не добраться.

С другой стороны - это самый "защищённый от хакеров" режим.

Если у вас есть "одинокое устройство без сети", но вы не страдаете лютой паранойей, то вместо «Single mode» лучше использовать «AP mode». Есть защита паролем и возможность попасть в настройки устройства без кордебалета с кнопками.

Безопасный режим «Safe Mode»

Безопасный режим имеет смысл только для режимов работы «Station mode» и «AP+Station mode».

Суть «безопасного режима» заключается в том, что если пропадает связь с точкой доступа, то устройство ShIoTiny5 через некоторое время автоматически переходит в другой режим работы - «AP mode» или «Config mode».

Из сказанного ясно, что для режимов работы «AP mode» и «Single mode» безопасный режим смысла не имеет и не включается.

По умолчанию безопасный режим отключён.

Настройка безопасного режима — «Safe Mode» - находится там же, на странице конфигурации, см. рисунок ниже.

Тип переключения в безопасный режим определяется полем «Select safe mode». Первое значение «No safe» - означает, что режим отключён.
Значение «Switch to Config mode» означает, то при исчезновении связи с точкой доступа, по прошествии заданного времени, произойдёт автоматическое переключение в режим «Config mode».
И, наконец, значение «Switch to AP mode» означает, то при исчезновении связи с точкой доступа, по прошествии заданного времени, произойдёт автоматическое переключение в режим «AP mode».

Время, которое должно пройти без связи с точкой доступа для перехода в безопасный режим задаётся полем «Time to switch to safe mode». На выбор несколько значений от 1минуты до 1часа.
Если в течении этого времени связь с точкой доступа восстановится, то перехода в заданный «безопасный режим» не произойдёт.

И, наконец, последний параметр определяющий работу «безопасного режима» - время, которое устройство будет оставаться в заданном режиме до новой попытки соединения с точкой доступа. Оно задаётся в поле «Time to stay in safe mode». Тут также есть значения на выбор — от 5мин до 1ч.
Особый случай — значение «Always (to reset)». Если выставлено это значение — то устройство, перейдя в заданный «безопасный режим» будет находится в нём до выключения питания или получения сигнала «RESET». В остальных случаях, по прошествии заданного времени, устройство вновь вернётся к попыткам соединиться с точкой доступа.

Пример настройки безопасного режима

Рассмотрим пример. Предположим, наше устройство сконфигурировано так, как показано на рисунке ниже.

Разумеется, параметры режима «AP mode» - название вашей точки доступа и пароль - тоже заданы и известны.

Пример настройки безопасного режима с переходом в "AP mode"
Пример настройки безопасного режима с переходом в "AP mode"

В нормальном состоянии устройство работает в режиме «Station mode». Это самый популярный режим работы контроллеров ShIoTiny5 при подключении их к WiFi-сети.

Пока есть связь устройства с точкой доступа, то "безопасный режим" не включается. Даже если связь устройства с точкой доступа кратковременно - на время не более 5 минут — прерывается, то ничего не происходит, устройство остаётся в режиме «Station mode».

Но если вдруг связь прервётся на время более 5-и минут (см. настройки), то устройство автоматически перейдёт в режим «AP mode», как это указано в настройках. Далее устройство в течении 30 минут (см. настройки) будет находится в режиме «AP mode». В течении этих 30 минут, зная пароль можно подключиться к этому устройству как точке доступа и изменить его параметры нужным образом.

По прошествии указанных 30 минут, устройство вновь перейдёт в режим «Station mode» на 5 минут и попытается восстановить связь с точкой доступа. Если это удастся, то работа устройства продолжится в режиме «Station mode». Если за эти 5 минут связь с точкой доступа не появится, то устройство вновь автоматически перейдёт в режим «AP mode» на 30минут. И так далее.

Указанные настройки очень удобны на практике. Предположим, у вас есть несколько устройств ShIoTiny5, которые работают в сети WiFi, которая создаётся вашей точкой доступа.

И в один прекрасный момент вы захотели поменять параметры какого-то из устройств, но не знаете его IP-адрес.

Самый простой способ — это просто выключить питание вашего WiFI-роутера, к которому подключены устройства ShIoTiny5.

Через 5 минут, как в нашем примере, все эти устройства станут точками доступа. Подключайтесь к ним с ноутбука или смартфона, вводите пароль — и меняйте параметры.

Блокировка ВЕБ-сервера

Во всех режимах, кроме «Config mode» и «Safe Mode» в целях безопасности можно заблокировать запуск WEB-сервера.

В этом случае, вы не сможете зайти на WEB-страницу устройства и что-либо там изменить. Также не сможет сделать это и злоумышленник.

Чтобы заблокировать запуск WEB-сервера, необходимо установить галочку «Lock Web in Station mode», как показано на рисунке ниже.

Отметим, что в безопасном режиме - WEB-сервер запускается и WEB-страница доступна.
Поэтому, если вы хотите обеспечить безопасность подключения в «Safe Mode» - то выбирайте в качестве «безопасного» режима — «AP mode», поскольку он защищён паролем.

Блокировка TxD и вывода информационных сообщений в консоль

Системный UART выведен на GPIO1 (TxD) и GPIO3 (RxD). Так как ввод системной консоли не используется, то GPIO3 всегда доступен в схеме как обычный вывод GPIO.

Что касается GPIO1 — то может возникать необходимость просмотреть в консоли отладочный вывод.

С этой целью на странице введена галочка «Lock TxD (GPIO1) pin» на странице «Configure».

Установка этой галочки означает блокировку вывода на линию TxD (GPIO1), то есть вывода в системную консоль (терминал).

По умолчанию эта галочка сброшена — вывод сообщений в системную консоль разрешён. Это значит, что мы можем прочитать системные сообщения в консоли: режим работы, имя устройства, IP-адреса и т.д. - всю ту информацию, которая появляется при подключении модуля ESP к сети.

Если галочка «Lock TxD (GPIO1) pin» снята - то использовать GPIO1 в схеме нельзя. Результат будет непредсказуем.

Если вы хотите использовать вывод TxD (GPIO1) в схеме, то надо установить эту галочку как показано на рисунке и сохранить конфигурацию устройства кнопкой «Save».
После чего вывод в консоль ведётся только при работе загрузчика и можно использовать вывод TxD (GPIO1) в своих схемах как обычный вывод GPIO.

Помните, что короткое время (около 0.2 сек) после включения питания, на выводе TxD (GPIO1) появляется информация загрузчика и это не зависит от состояния галочки «Lock TxD (GPIO1) pin».

Поэтому вывод TxD нельзя использовать для критичных применений (например для управления силовым реле).

Рекомендуемая конфигурация для отладки программ

Наиболее часто для отладки используется конфигурация, показанная на рисунке ниже.

Такая конфигурация позволяет подключаться к вашей локальной сети — не забудьте указать имя точки доступа и пароль доступа к ней.

IP-адрес устройства ShIotiny5 в вашей локальной сети можно посмотреть в терминале, так как TxD (GPIO1) разрешён.

В случае потери связи с точкой доступа более, чем на 1 минуту, устройство переходит на 15 мин в режим Config Mode.

Когда программа отлажена и находится в работе — в качестве безопасного режима следует выбрать AP mode, как более безопасный. Не забудьте задать название точки доступа и пароль для AP mode.

Заключение

Надеюсь, эта статья поможет вам прошить ShIoTiny5 в имеющийся у вас ESP-модуль и разобраться в том, как его настроить.

После того, как вы прошьёте свой модуль и настроите его так как вам нужно — можно приступать к его программированию.

Для этого нажмите на любой из страниц кнопку ElDraw — и переходите в редактор.

О том, как им пользоваться, можно почитать в инструкции или в других статьях о системе визуального программирования микроконтроллеров - ShIoTiny5.

Конечно, как всегда, я даю несколько полезных ссылок.

Предыдущие статьи тут и тут.

Если хотите высказать предложения и пожелания - пишите письма: shiotiny@yandex.ru

Комментарии (4)


  1. Jury_78
    09.11.2023 17:11

    Если памяти 1Мб, то сколько для программ остаётся?


  1. shiotiny Автор
    09.11.2023 17:11

    В этот 1мб в том числе и пространство для программ пользователя включено. 1мб это минимальный объем Flash для работы всей системы.

    Собственно описание схемы там занимает очень мало. Схема в сто узлов. Это очень много. Менее 10кбайт занимает.


    1. Jury_78
      09.11.2023 17:11

      Что на счет быстродействия, например в сравнении с Micropython?


  1. shiotiny Автор
    09.11.2023 17:11

    А как сравнить "быстродействие" с микропитоном?

    Я не представляю.

    Для своих задач вроде сбора данных, приёма-передачи их по сети и включения-выключения реле или управления шим - более, чем достаточно.