ESP32 SYSTEM MONITOR

ESP32 SYSTEM MONITOR 






В оригинальной ESP32 нет датчика температуры процессора так что данные будут неверными или получим ошибку.

Если подключен LED экран нужно раскомментировать строки отвечающие за работу экрана(Удалить ##). Не забываем установить драйвер.

main.py     


import os, sys, gc, time, machine
##from led_driver import print_like_console , print_multiline_console


def get_system_info():
info = {}
info["micropython"] = sys.version
info["platform"] = sys.platform
info["cpu_freq_mhz"] = machine.freq() / 1_000_000

# Flash
stat = os.statvfs('/')
info["flash_free_mb"] = stat[0] * stat[3] / 1024 / 1024
info["flash_total_mb"] = stat[0] * stat[2] / 1024 / 1024

# RAM
gc.collect()
free_ram = gc.mem_free()
alloc_ram = gc.mem_alloc()
total_ram = free_ram + alloc_ram
info["ram_total_kb"] = total_ram / 1024
info["ram_used_kb"] = alloc_ram / 1024
info["ram_used_percent"] = alloc_ram / total_ram * 100

# Temperature (ESP32-S3/C3/S2)
try:
import esp32
info["cpu_temp_c"] = esp32.raw_temperature()
except:
info["cpu_temp_c"] = None

return info


##print_like_console('ESP32 SYSTEM MONITOR', x=0, y=0, delay=0.05)


def print_info():
info = get_system_info()
print("="*35)
print(" ESP32 SYSTEM MONITOR ")
print("="*35)
print(f"MicroPython: {info['micropython']}")
print(f"Platform: {info['platform']}")
print(f"CPU freq: {info['cpu_freq_mhz']} MHz")
print(f"Flash: {info['flash_free_mb']:.2f} MB free / {info['flash_total_mb']:.2f} MB total")
print(f"RAM: {info['ram_used_kb']:.1f} KB used / {info['ram_total_kb']:.1f} KB ")
print(f"({info['ram_used_percent']:.1f}%)")
if info["cpu_temp_c"] is not None:
print(f"CPU Temperature: {info['cpu_temp_c']} °C")
else:
print("CPU Temperature: недоступна")
print("="*35, "\n")

##lines = [f"CPU freq: {info['cpu_freq_mhz']} MHz" ,
## f"Flash: {info['flash_free_mb']:.2f}/{info['flash_total_mb']:.2f}MB" ,
## f"RAM: {info['ram_used_kb']:.1f}/{info['ram_total_kb']:.1f}KB ",
## f"================================" ]
##print_multiline_console(lines, 0.05)


# Основной цикл
INTERVAL = 5 # секунд

while True:
print_info()
time.sleep(INTERVAL)


Комментарии

Популярные сообщения из этого блога

Meshtastic ESP32 E22

LORA Upgrade E32 400M30S

Установка micropython на ESP32