Модули на основе ESP8266, пожалуй, мои безусловные фавориты, если речь идет об автоматизации с применением подключения по Wi-Fi. Модули обладают достаточной производительностью, чтобы работать в качестве самостоятельного контроллера, стабильны и дешевы. В основном я использую платки WeMos D1 Mini различных модификаций (просто Mini, Mini Lite, Mini Pro). В чем их преимущество кроме всего вышеперечисленного? Платки Mini невелики размером и программировать их можно просто подключив USB-кабелем к компьютеру. Но ведь не весь свет клином сошелся на WeMos, в природе существуют и другие производители, не менее популярные, например, Ai-Thinker.
Китайская компания Ai-Thinker точно так же, как и WeMos, подсела на модули ESP. В ее линейке на текущий момент не менее пятка модулей только на ESP8266, не говоря уже о более совершенных ESP32, да прочих GPS/LoRa устройств. Все они так же, как и продукция WeMos, дешевы и крохотного размера. Но есть у модулей от Ai-Thinker и определенные пользовательские недостатки. Они используют нестандартный шаг для ножек и никак не совместимы с распространенными штыревыми макетными платами. Более того, модули не имеют на борту интерфейса USB для легкого и безболезненного подключения к персональному компьютеру. Оба этих фактора вызывают мучительную боль, не дающую нормально сосредоточиться именно на разработке, вместо этого приходится заниматься сборкой программатора и прилаживанием контактов. Разумеется, производитель предлагает схему и способы подключения своих модулей, но очень не хочется изобретать каждый раз все заново. Тем более что у меня так и не запустилась предлагаемая схема.
Но оказывается, есть способ куда интереснее. Наши китайские товарищи разработали специальные платы для программирования и отладки модулей от Ai-Thinker. Такие платы позволяют устанавливать модули Ai-Thinker без пайки, подключать к вводам-выводам модулей обычными макетными проводами прочие устройства и, самое важное, программировать платы с компьютера по USB. Шастая по просторам AliExpress я обнаружил целых двух производителей сих чудных девайсов. Зелененькие платы с кодовым наименованием Frogo Pins от IOT Bakery мне попались только для модулей на основе ESP8266, а вот черненькие с QR-кодом от неизвестного производителя, дающего только ссылку на GitHub, попадаются еще и для wroom и wroomer реализаций на ESP32.
Мне не удалось выявить какое-то единообразное наименование этих плат, но в общем случае стоит их искать по ключевому слову "esp-downloader". Я приобрел платы обоих видов, дабы иметь возможность их сравнить. Плюс, мне хотелось получить такое же удобство работы с Ai-Thinker, как с WeMos. Но, по спецификации Ai-Thinker, для программирования их модулей следует подавать на модуль специальный сигнал, а в случае собранного программатора нажимать на кнопку. Не очень удобная «фича», особенно когда программу приходиться перезагружать каждые три минуты, пытаясь отладить хитровывернутый алгоритм управления внешним датчиком. У устройства Frogo Pins прямо заявляется поддержка программирования без нажатия кнопки. Более того, на плате есть только кнопка сброса и общего включения. У черненькой же платы дополнительно к кнопкам включения и сброса добавлена кнопка программирования. В теории, кнопка не требуется, если поддерживается сигнал Data Terminal Ready (DTR), но тут уж не угадаешь поддерживается она или нет. Ну, что же, стоит попробовать оба устройства в деле.
И та и другая плата, подключились к моему компьютеру под управлением Win10 без каких-либо проблем. Испытания я начал с зеленой платы от IOT Bakery. Среда Arduino IDE моментально обнаружила соответствующий COM-порт и с установленной платой ESP-07 я смог без особого труда залить на нее свой скетч. Никаких дополнительных действий не потребовалось, вся процедура произошла автоматически и безболезненно. Далее я подключил к ПК черненькую безызвестную платку. Она так же автоматически опозналась системой, Arduino IDE увидела порт, и загрузка скетча произошла не в менее автоматическом режиме, чем на Frogo Pins. Никаких кнопок для программирования мне нажимать не потребовалось.
Так есть ли разница между платами? Если подойти с точки зрения обывателя, то зеленая плата немного больше черной, на ней все пины выведены в один ряд, когда на черной, из-за экономии места, они реализованы в два ряда. С периферией обе платы работают одинаково. Все пины подписаны и надписи хорошо читаемы. Что еще? Сами подпружиненные терминалы для установки платок Ai-Thinker у черной платы сделаны интереснее. Они очень хорошо пружинят, установка модулей, и особенно их снятие, с черной платой осуществляется легче, чем с жесткими терминалами на зеленой. Хотя, пожалуй, это и несущественное отличие.
А существенное будет другим. На платах применяются различные USB-интерфейсы. На черной плате использован чип SIL 2104 отвечающий, собственно, за подключение к ПК по USB. На модулях WeMos D1 mini применяется чип того же семейства. На зеленой плате применяется USB-UART чип CH340G. В силу того, что оба устройства одинаково хорошо выполняют заявленные задачи, выбрать какое-то одно — не просто. Но, в случае приобретения нового устройства, мой выбор пал бы все же на плату от неизвестного производителя в черном цвете, хотя бы в силу более продвинутого и более интегрированного USB-UART моста. Но и зеленая плата не так уж и плоха, различия между ними для обычного потребителя, скорее чисто косметические, нежели заметные на практике.
Вывод? Брать можно и ту, и другую платы.