• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Как программно отличить ESP-01 и ESP-12F?

Vovka

Member
Доброго времени суток!

Прошивка может быть залита как в ESP-01, так и в ESP-12F.
Есть ли какая-нибудь возможность программным способом понять, где она работает?

Спасибо!
 

fps

Active member
Каков вопрос, таков и ответ. Опишите внятно задачу и граничные условия.
 

Vovka

Member
Программа при запуске определяет, например, что это ESP-01 и соответственно понимает, что у нее есть 4 порта ввода-вывода.
Т.е. чтоб не делать два вида прошивок или не заводить бит конфигурации.... - взяли чистую esp, прошили и программа поняла куда ее прошили
 

fps

Active member
Это всё очевидно и так. Но мало. Что за программа? Какая задача решается конкретно?
Или вопрос абстрактный?
 

Vovka

Member
Есть устройство в 2-х работающих версиях: в первой используется esp-01 и управляет 2 реле и 2 концевика, а в новой версии уже 4 реле и 3 концевика. Все концевики изначально разомкнуты и по ним не определить. Допаивать что-то не вариант - вскрывать работающие устройства никто не даст.
Может есть какая функция, которая возвращала инфу, по которой можно определить что за esp используется?
 

fps

Active member
что за esp используется?
Чип во обоих случаях один и тот же - ESP8266EX.
ESP-01 и ESP-12 - это не чипы, а модули. Отличаются дизайном и в частности объемом флеш памяти. В вашем случае думаю этого критерия достаточно. ESP-01 с 4МБ памяти не бывает (если только самому флеш не перепаять)
Или анализируйте их схемы - может найдете где какой пин по-другому подтянут. Но вряд ли, и это еще более сомнительный путь.
 

saharesp

New member
Если нет возможности визуально увидеть саму плату и вам нужно определять при запуске, то можно сделать вывод подсказки в монитор порта при подключении к компьютеру или подключить экранчик, например 1602 и при запуске выводить информацию на экран. Вам придется создать 2 программы: для 01 и 12 с соответствующим названием. Если это ваш вариант, можно поговорить подробней.
 

aZholtikov

Active member
Я могу предложить еще такой "забавный" универсальный вариантик первоначальной инициализации...
1. Отслеживаем самый первый запуск программы (через запись переменной в NVS).
2. Во время первого запуска в основной код не заходим, а включаем 2 прерывания от "концевика 2 модуля -01" и от "концевика 3 модуля -12" и ждемс "нажатия кнопочки"...
3. По тому, какое прерывание сработало, определяем что установлено внутри (пишем в NVS) и в путь...
 
Сверху Снизу