Как автоматически обнаружить ESP32 vs ESP8266 при загрузке приложения?
У меня есть одно и то же приложение как для ESP32, так и для ESP8266 (та же функциональность). Ожидается, что человек, не являющийся ИТ-экспертом, запустит специальную программу установки для загрузки (первой/новой) версии приложения. Как установщик (программа) может определить, какая версия оборудования подключена через USB? Цель состоит в том, чтобы загрузить правильный вариант приложения. Возможно ли это вообще?
@pepr, 👍0
Обсуждение1 ответ
Лучший ответ:
Вы можете попытаться получить "идентификатор чипа" с целевой платы, используя esptool.py
. У ESP8266 есть идентификатор чипа, а у ESP32-нет.
Бег esptool.py --port <serial port> chip_id
либо скажет вам, среди прочего:
Detecting chip type... ESP8266
Chip is ESP8266EX
....
Chip ID: 0x00a70414
Или:
Detecting chip type... ESP32
Chip is ESP32-PICO-D4 (revision 1)
...
Warning: ESP32 has no Chip ID. Reading MAC instead.
Вы можете сделать то же самое с помощью
команды read_mac. На самом деле любая операция по esptool.py
это взаимодействует с целью сначала исследует цель, чтобы узнать, что это за цель, и сообщить об этом - такие команды, как chip_id
и read_mac,
являются просто хорошими простыми примерами, которые возвращают минимальную информацию и не взаимодействуют с целью больше, чем просто запрашивают чип.
Я полагаю, что вы все равно не можете сделать это неправильно, не так ли? Я имею в виду, что попытка загрузить программу ESP8266 в ESP32 или наоборот, вероятно, просто приведет к ошибке?, @PMF
- esp32, platformio A fatal error occurred: Packet content transfer stopped (received 8 bytes) *** [upload] Error 2
- Драйверы для чипа последовательного порта CH9102X
- ESP32: отключить детектор отключения питания
- Преобразование строки в IP-адрес
- Какую плату выбрать в PlatformIO для ESP Wroom 32?
- esp32 Stack canary watchpoint срабатывает
- Постоянная частота дискретизации АЦП на ESP8266 или ESP32
- ESP32S v1.1 NodeMCU vs ESP32 DevKitV1
esptool.py сообщает об этом, @Juraj