Blog Archive

Arduino Indonesia. Gambar tema oleh Storman. Diberdayakan oleh Blogger.

Supported by Electronics 3 in 1

1. Jasa pencetakan PCB single layer dengan harga paling murah.

(Metode Pembuatan dengan Transfer Toner)
>PCB design sendiri (siap cetak) : Rp.150,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

(Metode Sablon Full Masking dan Silk Screen minimal pemesanan 100 Pcs)
>PCB design sendiri (siap cetak) : Rp.200,-/Cm2
>PCB design dari kami : Rp.250,-/Cm2

2. Jasa perancangan, perakitan, dan pembuatan trainer pembelajaran elektronika untuk SMK dan Mahasiswa.

3. Jasa perancangan, perakitan, dan pembuatan berbagai macam kontroller, sensor, aktuator, dan tranduser.
>Design Rangkaian / Sistem Elektronika
>Design Rangkaian / Sistem Instrumentasi
>Design Rangkaian / Sistem Kendali
>Kerjasama Riset (data atau peralatan)
>Kerjasama Produksi Produk-Produk KIT Elektronika
>Produksi Instrumentasi Elektronika

4. Jasa Pembuatan Proyek, Tugas Akhir, Tugas Laboratorium, PKM, Karya Ilmiah, SKRIPSI, dll

Like My Facebook

Popular Posts

Rabu, 10 Desember 2025

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

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)"