Search
Write a publication
Pull to refresh
17
0
Дмитрий @9a75sd

Пользователь

Send message

А если некоторые антенны на нижних уровнях разместить? Типа, устройства просматривают верх, некоторые - низ

Есть еще идея: детекция присутствия в комнате, при этом отличая человека от кошки

+взять, например, ESP32S3, и собрать проект с поддержкой USB-хабов, и собирать эти данные. Поддержку хабов вроде как завезли в ESP-IDF v5.5

В Buildroot external tree в файле external.mk прописал следующую строку:
```include $(sort $(wildcard $(BR2_EXTERNAL_BananaPi_Serial_Logger_PATH)/package/*/*.mk))```
Причем, BananaPi_Serial_Logger - это имя, которое должно совпадать с external.desc, поле name, и убрать кавычки, хабр съел звездочки

Много причин

Вот некоторые из которых, чего нет в ESP32, всей серии:

  • Надо много пинов, и с минимальной задержкой доступа (например, управление асинхронным двигателем)

  • Те же асинхронники, тоебуется процессор со встроенным модулем для вычислений с плавающей точкой

  • Нужно подключить esp32 как модем к микропроцессору, например, к Allwinner H3 (на это есть esp-hosted)

  • Уже есть готовые платы у компании, и там есть разъем под модуль расширения, и они выпускаются серийно

Это уже может быть в AT-командах прошивки ESP. Это называется "прозрачный режим". Он еще есть в модемах вроде SIM800

Еще как пример: морда для умного дома, но это надо заморочиться. Интерфейс либо в браузер выводить, либо делать свой интерфейс на базе LVGL или Qt

Как раз мой случай

Мне понадобилось записать логи с последовательного порта устройства, чтобы отловить программную проблему, но при подключении к компьютеру и подключении терминальной программы давался сигнал сброса на устройство, и багу при таких обстоятельствах не отловить. Плюс, ноутбук оставлять в укромном месте, чтобы только собирал логи - жирно и неудобно. В итоге на одноплатнике запустил 3 bash-скрипта и 2 udev-правила.

Один скрипт - собственно логирование порта, который завершает свою работу, если порт отключается, другой - чистит логи старше 30 дней, а третий - копирует логи на флешку, если она с именем USBLOGS.

Первое udev-правило - запускает скрипт, если видит подключение ttyACM или ttyUSB, а второе - при обнаружении флешки с меткой USBLOGS запускает скрипт на копирование логов. При этом, скопировалось или нет, можно отсмотреть только по индикатору на флешке.

Такое решение помогло отловить проблему.

Первое решение могло логировать только один порт (скрипт работал постоянно, не было udev-правила и складывал только в одну папку). Сейчас решение умеет логировать несколько портов, разделяя логи по папкам с именем НазваниеПорта_СерийныйНомер.

Сейчас этот логгер отдал испытателю, чтобы собирал логи и в случае чего их снял и передал мне на анализ, но у меня уже появилась идея улучшенной версии и ОС для логгера, и программы для логгирования, которую хочу написать на C/C++.

А если ты про миграцию проекта, при этом не хочешь разом все переписывать, то есть компонент esp32-arduino, добавляется либо в папку components, либо прописывается в манифесте idf_components.yaml

Если ты про IDE, то vscode дает возможность создания профилей. Я так и сделал: отдельный профиль (и папка с workspace) под PlatformIO, и отдельный - под ESP-IDF голый.

Отдельный профиль - отдельный набор расширений.

А юнит-тесты на ESP-IDF собираю и провожу через консоль, так как юнит-тест, по сути, проект в проекте, и пока не видел, что он адекватно отрабатывается IDE.

Не помню, начиная с какой версии, но если у тебя поддержки профилей в vscode нет - обнови его.

Рано или поздно всё равно придется мигрировать с PIO на чистый ESP-IDF.

Одна из предпосылок - система сборки. В CMakeLists.txt можно подключать или отключать конкретные файлы исходного кода или компоненты, и указывать зависимости. PlatformIO подхватывает вообще всё, что может вызвать ошибки из исходников, которые не относятся к конфигурации или циклические зависимости

Проект на ESP-IDF, использовал HTTPS-сервер+HTTPS клиент для скачивания обновления+MQTT защищенный, SSL/TLS бэкенд - mbedTLS.

В рантайме либо HTTPS-сервер, либо HTTPS клиент+MQTT защищенный.

Возможно, в Вашем проекте HTTPS или MQTTS не задействован

Ну или использовались динамические буферы

Тоже включал Bluetooth, Bluetooth/WiFi coexistence, запускал Bluetooth одновременно с WiFi. Заработало, но на ESP32S3 осталось после этого свободно ~30 кб ОЗУ (хотя было 100-110 без Bluetooth).

С 30 кб могут происходить сбои при обращении к HTTPS-серверу на контроллере, не запустится скачивание обновления по HTTPS. Использовал mbedTLS для защищенных соединений, по возможности буферы выносил в PSRAM

А какие параметры были выставлены/урезаны, чтобы это всё заработало? Динамические буферы?

Обычный вариант ESP32 не переварит одновременно WiFi и BLE, тупо не хватит ОЗУ. Лучше использовать для этого варианты с PSRAM

А почему DMX/RDM не подошел?

Заметил, что Postman вообще отказывается отправлять запросы даже в локальной сети, если нет подключения к интернету. Это когда отлаживал API HTTP-сервера на базе ESP32, и очевидно, там не было интернета. Есть ли еще подобные Postman решения, которые работают корректно без интернета и с поддержкой вебсокетов? Curl не поддерживает вебсокеты.

Защита от угона, например.
Известен случай, когда у Toyota LandCruiser вырезали в заднем крыле отверстие ножом для консервных банок, затем подключались к CAN-шине и открывали ее, и даже прописывали свои ключи.
Ну, и еще один момент на VAG: когда ставишь устройства от другого автомобиля (например, приборную панель или мультимедию), то включается защита компонента, и он не работает, снимается только (около)официальным инструментом ODIS. Но кто знает - тот знает

нужно будет взять что-то на SPI и побыстрее

Могу предложить MCP23S17/MCP23017, как раз SPI-расширитель GPIO двунаправленный, до 5 МГц тактовой частоты держат, как тебе?

В основном с android 4.0, 4.1, 7-9 дюймов экраны, в одном из них даже hdmi есть. Есть и экраны отдельные, думал с Banana Pi R2Pro запустить, но все руки не доходят и времени нет

Information

Rating
7,201-st
Registered
Activity