💾 فایل تنظیمات روی حافظه‌ی 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() {
}

چطور اجرایش کنم؟

  1. شبیه‌ساز تینکرکد فارسی را باز کن و «مود آردوینو» را انتخاب کن.
  2. از پنل «نمونه‌ها»، «فایل تنظیمات روی حافظه‌ی ESP32» را بارگذاری کن — مدار و کد با هم می‌آیند.
  3. دکمه‌ی اجرا ▶ را بزن و خروجی Serial و رفتار قطعات را تماشا کن.
  4. حالا کد را تغییر بده — عددها، پین‌ها، ترتیب — و دوباره اجرا کن!
این پروژه را رایگان در شبیه‌ساز اجرا کن 🤖