ESP32 یک فایلسیستم داخلی کوچک (معمولاً LittleFS یا FAT) روی حافظهٔ فلش خود دارد که مستقیماً از میکروپایتون قابل خواندن و نوشتن است. این ویژگی برای ذخیرهٔ تنظیمات، لاگ سنسورها یا کش کردن داده در نبود اینترنت بسیار مفید است.
خواندن و نوشتن فایل متنی ساده
# نوشتن در فایل
with open("log.txt", "a") as f:
f.write("رویداد جدید ثبت شد\n")
# خواندن کل فایل
with open("log.txt", "r") as f:
print(f.read())استفاده از with open(…) as f تضمین میکند فایل حتی در صورت بروز خطا بهدرستی بسته شود.
ذخیرهٔ دادههای ساختاریافته با JSON
برای ذخیرهٔ تنظیمات پیچیدهتر (مثل نام Wi-Fi، آستانهٔ هشدار دما و …)، فرمت JSON بسیار مناسب است؛ ماژول ujson این کار را ساده میکند.
import ujson
config = {
"wifi_ssid": "MyHomeWiFi",
"temp_threshold": 30,
"device_name": "esp32-academy-01"
}
# ذخیره
with open("config.json", "w") as f:
ujson.dump(config, f)
# بازخوانی بعد از ریست شدن برد
with open("config.json", "r") as f:
loaded = ujson.load(f)
print("نام دستگاه:", loaded["device_name"])حافظهٔ فلش ESP32 تعداد دفعات محدودی (اما زیاد، در حد صدها هزار بار) قابل نوشتن است؛ برای دادههایی که هر چند میلیثانیه تغییر میکنند (مثل خواندن سنسور)، نوشتن مداوم روی فلش را انجام ندهید.
کار با فایلسیستم نیازی به قطعهٔ سختافزاری خاصی ندارد؛ کافی است این کد را در یک پروژهٔ خالی میکروپایتون اجرا کنید — حافظهٔ فلش مجازی بهطور خودکار توسط Wokwi شبیهسازی میشود.
ساخت پروژهٔ خالی میکروپایتون در Wokwi ↗کارگاه عملی: یک فایل config.json بسازید که تنظیمات آستانهٔ دما را نگه دارد؛ برنامه هنگام روشنشدن این فایل را بخواند و اگر وجود نداشت، یک نسخهٔ پیشفرض بسازد.