Как стать автором
Обновить

Комментарии 30

Подробно и наглядно! Супер! Спасибо!

я так понял, WiFi нет? странный подход производителей... Но ладно, пусть так.

Как это нет Wi-Fi? :) Это же ESP32, Wi-Fi само собой есть, просто в статье я рассматривал программирование специфических для платы ESP32-EVB вещей.

Что за ETH.h у вас и зачем ему NRST ?

Кстати пробовали сделать что-то большее чем просто открыть хост? Например UDP запросы?

Пробовал :) На аналогичном железе даже запускал сервер на двух интерфейсах:

https://habr.com/ru/post/547044/

плотно «посажены» на нестандартные GPIO

что значит на нестандартные gpio?

В ESP32 есть дефолтное распределение GPIO для HSPI и VSPI. На плате ESP32-EVB распределение GPIO не совпадает с дефолтным, что заставляет делать лишние телодвижения и переопределять GPIO, чтобы всё работало.

Тоже касается i2C подключений на плате и прочего.

А «плотно» потому, что на плате вообще нет свободных GPIO (это видно на распиновке).

В ESP32 есть дефолтное распределение GPIO для HSPI и VSPI

Так это не дефолтное, а минуя матрицу ввода-вывода (которая кстати ограничивает скорость переключения ног, что если и критично то скорее только для SPI экранов).

что заставляет делать лишние телодвижения и переопределять GPIO, чтобы всё работало

Эм, я так понимаю что бы работало в среде ардуино для определенных библиотек? Просто в esp-idf (Development Framework от самой эспрессиф) при инициализации периферии в обязательном порядке передаются номера ног.

Так что то, что авторы библиотек для ардуино и разработчики ESP32-EVB используют разные номера ног не делает подключение нестандартным.

Совершенно верно - чтобы работало в среде Ардуино. В статье все примеры для Ардуино.

Про нативный еsp-idf - это совсем другая история.

В тестовом скетче мы примем инфракрасный сигнал от пульта управления, идентифицируем его (производителя оборудования, частоту сигнала, протокол управления и код нажатой клавиши), а также пошлём в эфир записанный нами сигнал, нажимая на функциональную кнопку контроллера ESP32-EVB.

А подробнее можно , особенно про частоту сигнала. Как вам ее удалось получить, ведь аппаратной поддержки такой возможности нет.

Я ничего не выдумывал и использовал только библиотечные функции. Подробнее сейчас сказать не могу (в дороге).

частоту сигнала

ИК посылки невозможно определить ни какими библиотеками и программными способами , так для ES, ардуино , Флиппер и тому подобным не заложено аппаратно.

Уважаемый smart_pic, я ни в коем случае не спорю с вами (скрее всего вы правы), просто для ответа по существу нужно предметно разбираться с кодом - помотрю чуть позже.

Интересно было бы услышать один-два сценария применения, учитывая то, что какая-нибудь Orange Pi куда распространённее, а по периферии - не хуже, учитывая то, что за цену Апельсинки можно обвешать любым набором - и релюшки и датчики и прочее. Энергопотребление? Спорное преимущество, учитывая наличие LAN, предполагающего стационарность.

Это извечная проблема всех микро-ПК - поддержка и цена. Если ни то ни другое - не конукурентноспособны, то есть сомнения в перспективах.

Поэтому народ и юзает во всяких Smart-Home и IoT либо Малинки, либо Апельсинки, либо вообще всякие ширпотребные роутеры, андроид-приставки, БУ-шные смарты, планшеты, которые вообще - за копейки. Либо БУшные же платформы х86.

Интересно было бы услышать один-два сценария применения

Ну, тут два определяющих фактора: либо фантазия DIY-щика, либо совпадение конкретной задачи с ТТХ какого-то (в данном случае ESP32-EVB) контроллера.

Поэтому народ и юзает во всяких Smart-Home и IoT либо Малинки, либо Апельсинки

Это не тот народ. У меня уже несколько лет пылятся на полке Pi3 и Orange Pi Zero и нет никакого желания их оттуда доставать. Но это долгий разговор о предпочтениях в IoT архитектуре.

Причём пылятся не фигурально, а в прямом смысле слова.

Малинки-Апельсинки-Бананки - это все-таки Linux. А если надо RTOS, то FreeRTOS ближе к железу и реал-тайму.

ну и 100хBananaPi существенно дороже, чем 100хESP32

Я думаю большинству читателей интересней УД в плане автоматизации своего быта. Банально сеть датчиков и сеть исполняющих устройств. RTOS - это всё-таки больше из мира промки, а не дома.

Про Бананы я и не говорил - они вроде как и подороже и с коммьюнити хуже.

Меня вообще - в связи с поднятой темой статьи - больше интересовали именно решения на базе LAN. Беспроводные - не люблю. А тянуть сигнальные линии от хаты с сервером куда-нибудь в гараж - не феншуйно. Итого мне виделась система УД для частного дома в виде HA-сервера на базе Андроида/Линукса с непосредственно подчинённой - ближайшей - периферией, располагающейся тут же в стойке или щитке и сетью удалённых устройств, общающихся-питающихся по LAN. И вот слэйвы в виде 10-долларовых Апельсинок сюда хорошо подходят. Дешевле только LAN-шилды для микроконтроллеров - типа 5100.

Сабж тут - ни туда-ни сюда.

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

Я сторонник распределённой IoT архитектуры, где каждый контроллер ("умный" и самодостаточный) сочетает в себе и логику и управление и веб-интерфейс и коммуникационные возможности, а Linux миникомпьютер обслуживает только функции высшего уровня типа агрегации данных со всей системы, их хранения в SQL базе, визуализации и т. п.

При таком подходе систему трудно вывести из строя, а поломка или остановка на профилактику "главного" Linux компьютера никак не сказывается на работоспособности системы.

Вот пример реализации такого сервера в одном из моих проектов:

https://hi-lab.ru/arduino-mega-server/ams-pro/projects/main-server

Меня вообще - в связи с поднятой темой статьи - больше интересовали именно решения на базе LAN.

И они есть , только за потоком инфы про ESP, малинки и ардуино их не видят.

Почему все предлагают решения на базе ESP ? - потому что это раскручено , у всех на слуху сочетание знакомых букв, а по факту все это DIY наборы предназначенные для любителей что то себе попрограммировать, и практически не интересуют интеграторов оборудования направления УД , да и не только. И это сильно видно особенно в сегменте решений на базе ПРОВОДНОГО LAN . То что к ESP стали прикручивать проводной LAN в дополнение к Wi-Fi, говорит от том что в этом сегменте есть большой потенциал и очень мало универсальных контроллеров с проводным LAN. Но DIY решения когда нужно допрограммировать (и представленная плата из статьи в том числе) не интересна для интеграторов, и их нельзя из коробки использовать как универсальное решение для широкого круга задач автоматизации.

Так весь мой блог посвящён поиску нормального контроллера для DIY. Выпускается всё, что угодно, кроме того, что нужно.

Я под акронимом LAN подразумевал именно проводной её вариант. Беспроводной обычно все так и кличут - Wi-Fi. Только вот "проводной" мод ESP-шки - т.е. герой статьи - вынужден конкурировать с упомянутыми минимальными версиями Апельсинки, стоящими 10 Евро. Сабж - от 20 Евро. Спрашивается, "а смысл"? Потому и попросил обрисовать вариант, когда переплата вдвое была бы оправдана.

Смысл здесь в предпочтениях. ESP32— это невероятно мощная вещь, которая может реализовать и управление оборудованием, и веб-интерфейс, и многослойную логику, и хранение данных, и их визуализацию, и коммуникации по Ethernet, Wi-Fi, Bluetooth, LoRa, nRF24 и ещё по куче протоколов и интерфейсов, причём делать это одновременно.

И при этом это МИКРОКОНТРОЛЛЕР, а не миникомпьютер (со всеми его достоинствами и недостатками).

Другими словами, Linux компьютер просто НЕ НУЖЕН в 99% случаев, но если он вам нравится — используйте на здоровье.

Да при чём тут "нравится - не нравится"? Я же написал - этот ваш Олимекс в два раза дороже Апельсинки. Вот и всё. CPU там или MCU - не суть важно. Чуть большее потребление Апельсинки уравновешивается её бОльшей универсальностью.

Мне была бы интересна версия на базе ESP и проводного LAN, но БЕЗ прочего обвеса. Это было бы прежде всего дешевле. А то два обязательных набортных реле - где-то мало, а где-то вообще не нужно. Не сомневаюсь, что на базе сабжа можно в каком-то конкретном случае состряпать конечное решение. Ну например домофон - ту тебе релюшка на управление замком и релюшка на освещение подъезда. ИК для ПДУ возможно. Но в целом - двойственное впечатление. Не зря все многочисленные микро-ПК всё-таки в виде конструкторов выпускают - база+шилды. А не монолитом.

OLIMEX такой же мой, как и ваш :)

По поводу применимости я уже раза два написал, что это вопрос предпочтений и конкретной задачи.

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

Кстати, да:

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

Вот, кстати, да — почему бы на этой плате не сделать PoE?

Дело в том, что кроме разработчиков OLIMEX этого никто не может сделать (поскольку это их плата), а эти разработчики, как и все железячники, находятся "на своей волне" и воплощают в железе своё понимание того, как это должно быть.

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

Кстати, если я правильно помню курсы ОСРВ из универа, то эту самую RTOS можно и из Линукса и из Винды сделать — вопрос лишь в том, насколько глубоко мы должны погрузиться по уровням абстракции от железа. Так-то аппаратные прерывания, в т.ч. по таймеру — они в любой ОС есть.

Прочитал статью, но так и не понял, что тут запрограммировано из "непрограммируемого".

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

Пока я разбирался с финтами этой платы типа режима 1BIT доступа к SD карте памяти - мне это совсем не казалось лёгким занятием.

Но ведь такова участь эмбедеров, не так ли?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий