💾 فایل تنظیمات روی حافظهی ESP32
روشنایی LED و شمار روشن شدنها در settings.json ذخیره و هنگام شروع دوباره خوانده میشوند.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو (سهبعدی + کد)
قطعات لازم
کد کامل پروژه
// ESP32 + SPIFFS: keep settings in a file that survives a restart.
#include <SPIFFS.h>
#include <ArduinoJson.h>
const int LED = 4;
int brightness = 128;
int boots = 0;
void loadSettings() {
if (!SPIFFS.exists("/settings.json")) {
Serial.println("No settings yet, using defaults");
return;
}
File f = SPIFFS.open("/settings.json", "r");
String text = f.readString();
f.close();
Serial.println("Read: " + text);
JsonDocument doc;
if (deserializeJson(doc, text)) return; // broken file -> keep defaults
brightness = doc["brightness"] | 128;
boots = doc["boots"] | 0;
}
void saveSettings() {
JsonDocument doc;
doc["brightness"] = brightness;
doc["boots"] = boots;
File f = SPIFFS.open("/settings.json", "w"); // "w" replaces the file
serializeJson(doc, f);
f.close();
}
void setup() {
Serial.begin(115200);
if (!SPIFFS.begin(true)) { // true = format if empty
Serial.println("SPIFFS failed!");
return;
}
loadSettings();
boots++;
saveSettings();
Serial.printf("Boot number %d, brightness %d\n", boots, brightness);
ledcAttach(LED, 5000, 8);
ledcWrite(LED, brightness);
}
void loop() {
}
چطور اجرایش کنم؟
- شبیهساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
- از پنل «نمونهها»، «فایل تنظیمات روی حافظهی ESP32» را بارگذاری کن — مدار و کد با هم میآیند.
- دکمهی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
- حالا کد را تغییر بده — عددها، پینها، ترتیب — و دوباره اجرا کن!