Memahami kondisi hardware pada board MicroPython sering kali menjadi langkah penting sebelum memulai proyek IoT yang lebih besar. Bagi Anda yang ingin mengetahui spesifikasi, status memori hingga struktur filesystem board secara cepat, artikel ini menyajikan skrip diagnostik yang praktis dan mudah dijalankan. Dengan skrip sederhana ini, Anda dapat memperoleh laporan lengkap mengenai lingkungan perangkat Anda, mulai dari informasi chip hingga daftar file yang tersimpan pada sistem.
Dalam artikel singkat ini, kami menyajikan skrip MicroPython sederhana yang digunakan untuk menampilkan berbagai informasi penting tentang board Anda. Skrip ini sangat berguna untuk kebutuhan diagnostik dan pengujian sistem.
Skrip tersebut mengambil data terkait spesifikasi chip (seperti jenis model dan frekuensi CPU), alamat MAC, penggunaan memori, ketersediaan PSRAM, ukuran dan ruang kosong pada filesystem, serta daftar file yang tersimpan di dalam board. Artikel ini dapat digunakan pada board ESP32, ESP8266, maupun Raspberry Pi Pico.
Mengambil Informasi Sistem – Skrip MicroPython
Setelah firmware MicroPython berhasil di-flash ke board, salin dan jalankan kode berikut pada Thonny IDE atau lingkungan pengembangan lain yang Anda gunakan.
# WhatsInIt.py - MicroPython Hardware & Environment Diagnostic Tool
# For ESP32 / ESP8266 boards
# Last updated: April 26, 2025 by Charles E. Hamilton
# This program is released into the public domain free of license and without warranties of any kind
# https://RandomNerdTutorials.com/micropython-esp32-esp8266-device-info/
import os
import sys
import gc
import machine
import network
import ubinascii
try:
import esp
except ImportError:
esp = None
try:
import esp32
except ImportError:
esp32 = None
print("\n" + "=" * 40)
print(" WHATS IN IT REPORT")
print("=" * 40)
# --- Chip & CPU Info ---
print("\n[CHIP INFO]")
print(f"Platform: {sys.platform}")
print(f"MicroPython ver: {os.uname().release} ({os.uname().version})")
print(f"Machine ID: {os.uname().machine}")
print(f"CPU Frequency: {machine.freq()} Hz")
# --- MAC Address ---
print("\n[NETWORK]")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
mac = ubinascii.hexlify(wlan.config('mac'), ':').decode()
print(f"MAC Address: {mac}")
# --- Memory Info ---
print("\n[MEMORY]")
print(f"Heap Allocated: {gc.mem_alloc()} bytes")
print(f"Heap Free: {gc.mem_free()} bytes")
# Flash size (ESP32 only)
if esp:
try:
flash_size = esp.flash_size()
print(f"Flash Size: {flash_size // (1024*1024)} MB")
except:
print("Flash Size: Not available")
# PSRAM status (ESP32 only)
if esp32:
try:
psram_status = "Available" if esp32.ULP() is not None else "Not available"
except:
psram_status = "Not detected"
print(f"PSRAM: {psram_status}")
# --- Filesystem Info ---
print("\n[FILESYSTEM]")
try:
fs_stats = os.statvfs("/")
block_size = fs_stats[0]
total_blocks = fs_stats[2]
free_blocks = fs_stats[3]
total = (block_size * total_blocks) // 1024
free = (block_size * free_blocks) // 1024
print(f"Total Size: {total} KB")
print(f"Free Space: {free} KB")
except:
print("Filesystem info: Not available")
# --- Directory Contents ---
print("\n[FILES IN ROOT DIR]")
try:
files = os.listdir()
for f in files:
print(f" - {f}")
except:
print("Cannot list files.")
# --- Closing ---
print("\n[END OF REPORT]")
print("=" * 40)
Bagian berikut menampilkan informasi terkait Chip dan CPU, meliputi platform yang digunakan, versi MicroPython, model board, serta frekuensi kerja CPU.
# --- Chip & CPU Info ---
print("\n[CHIP INFO]")
print(f"Platform: {sys.platform}")
print(f"MicroPython ver: {os.uname().release} ({os.uname().version})")
print(f"Machine ID: {os.uname().machine}")
print(f"CPU Frequency: {machine.freq()} Hz")
Baris kode berikut menampilkan alamat MAC board. Alamat MAC merupakan identitas unik yang diberikan pada antarmuka jaringan perangkat dan digunakan sebagai pengenal saat berkomunikasi melalui Wi-Fi maupun jaringan lainnya.
# --- MAC Address ---
print("\n[NETWORK]")
wlan = network.WLAN(network.STA_IF)
wlan.active(True)
mac = ubinascii.hexlify(wlan.config('mac'), ':').decode()
print(f"MAC Address: {mac}")
Bagian ini menampilkan informasi terkait memori pada board. Nilai allocated heap menunjukkan jumlah RAM yang sedang digunakan program, sedangkan free heap menunjukkan kapasitas RAM yang masih tersedia untuk dialokasikan.
# --- Memory Info ---
print("\n[MEMORY]")
print(f"Heap Allocated: {gc.mem_alloc()} bytes")
print(f"Heap Free: {gc.mem_free()} bytes")
Terdapat juga bagian yang menampilkan ukuran flash pada board serta mendeteksi apakah PSRAM tersedia atau tidak.
# Flash size (ESP32 only)
if esp:
try:
flash_size = esp.flash_size()
print(f"Flash Size: {flash_size // (1024*1024)} MB")
except:
print("Flash Size: Not available")
# PSRAM status (ESP32 only)
if esp32:
try:
psram_status = "Available" if esp32.ULP() is not None else "Not available"
except:
psram_status = "Not detected"
print(f"PSRAM: {psram_status}")
Terakhir, bagian ini menampilkan kapasitas total filesystem serta ruang kosong yang masih tersedia.
# --- Filesystem Info ---
print("\n[FILESYSTEM]")
try:
fs_stats = os.statvfs("/")
block_size = fs_stats[0]
total_blocks = fs_stats[2]
free_blocks = fs_stats[3]
total = (block_size * total_blocks) // 1024
free = (block_size * free_blocks) // 1024
print(f"Total Size: {total} KB")
print(f"Free Space: {free} KB")
except:
print("Filesystem info: Not available")
Termasuk juga daftar file yang terdapat pada direktori root filesystem.
# --- Directory Contents ---
print("\n[FILES IN ROOT DIR]")
try:
files = os.listdir()
for f in files:
print(f" - {f}")
except:
print("Cannot list files.")
Pengujian Kode
Dengan board terhubung ke komputer dan koneksi ke Thonny IDE sudah aktif, tekan tombol run (ikon hijau) untuk menjalankan program langsung pada board.
Informasi mengenai board Anda akan ditampilkan pada MicroPython shell.
Contoh berikut menunjukkan output laporan untuk board ESP32 DOIT.
Kami juga menguji skrip ini pada ESP32-S3, ESP8266, serta Raspberry Pi Pico.
Siap Untuk Membuat Proyek Impianmu Menjadi Kenyataan?
Klik di sini untuk chat langsung via WhatsApp dan dapatkan dukungan langsung dari tim ahli kami!





0 on: "Cara Menampilkan Informasi Perangkat ESP32/ESP8266 di MicroPython (CPU, MAC, Flash, PSRAM)"