Как автоматически обнаружить ESP32 vs ESP8266 при загрузке приложения?

У меня есть одно и то же приложение как для ESP32, так и для ESP8266 (та же функциональность). Ожидается, что человек, не являющийся ИТ-экспертом, запустит специальную программу установки для загрузки (первой/новой) версии приложения. Как установщик (программа) может определить, какая версия оборудования подключена через USB? Цель состоит в том, чтобы загрузить правильный вариант приложения. Возможно ли это вообще?

, 👍0

Обсуждение

esptool.py сообщает об этом, @Juraj


1 ответ


Лучший ответ:

3

Вы можете попытаться получить "идентификатор чипа" с целевой платы, используя 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