
Микроконтроллеры ESP32 и ESP8266 стали крайне популярными благодаря своей доступности, встроенному Wi-Fi и поддержке MicroPython. При разработке проектов часто возникает необходимость узнать базовую информацию об устройстве: характеристики процессора, MAC-адрес, объем доступной памяти и прочее. В этой статье мы покажем, как получить эти данные с помощью MicroPython.
Что понадобится
- Плата ESP32 или ESP8266
- Прошивка MicroPython, установленная на плату
- Программа для работы с REPL, например Thonny, PuTTY или uPyCraft
Импорт необходимых модулей
Для получения информации об устройстве используются встроенные модули os
, machine
и network
. Импортируем их:
import os
import machine
import network
Информация о прошивке и системе
Функция os.uname()
возвращает базовую информацию о прошивке и системе:
print(os.uname())
Пример вывода:
sysname='esp32', nodename='esp32', release='1.21.0', version='v1.21.0 on 2024-01-01', machine='ESP32 module with ESP32'
Полезные поля:
sysname
: имя системы (esp32 или esp8266)release
иversion
: версия MicroPythonmachine
: описание модели
Частота и информация о CPU
MicroPython позволяет узнать частоту процессора:
print('CPU frequency:', machine.freq(), 'Hz')
Также можно использовать модуль esp
(только для ESP32/ESP8266) для получения дополнительных данных:
import esp
esp.osdebug(None) # Отключает вывод отладочной информации в REPL
MAC-адрес
MAC-адрес можно получить с помощью сетевого интерфейса:
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
mac = wlan.config('mac')
print('MAC address:', ':'.join('%02x' % b for b in mac))
Этот адрес уникален для каждой платы и может быть полезен для идентификации устройства в сети.
Размер Flash-памяти
ESP32/ESP8266 используют внешнюю флеш-память. Узнать её объем можно с помощью:
import esp
flash_size = esp.flash_size()
print('Flash size:', flash_size // (1024 * 1024), 'MB')
Наличие и объем PSRAM (только ESP32)
Если в вашем модуле ESP32 установлен дополнительный чип PSRAM, можно проверить его наличие и объем:
try:
import esp32
print('PSRAM:', esp32.ULP())
except Exception as e:
print('PSRAM недоступна')
Однако напрямую определить объем PSRAM через MicroPython можно только косвенно (например, по доступной памяти).
Доступная оперативная память (heap)
Можно посмотреть, сколько оперативной памяти доступно:
import gc
print('Free memory:', gc.mem_free(), 'bytes')
Пример итоговой программы
import os
import machine
import network
import esp
import gc
print('=== Информация об устройстве ===')
print('Система:', os.uname())
print('Частота CPU:', machine.freq(), 'Hz')
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
mac = wlan.config('mac')
print('MAC-адрес:', ':'.join('%02x' % b for b in mac))
print('Объем Flash:', esp.flash_size() // (1024 * 1024), 'MB')
print('Свободная память:', gc.mem_free(), 'байт')
Итоги
MicroPython предоставляет удобные средства для получения технической информации об устройствах ESP32 и ESP8266. Это может быть полезно как для отладки, так и для динамической настройки программ в зависимости от характеристик устройства. Используйте эти команды для лучшего понимания возможностей вашей платы и более гибкой разработки проектов.