💾 ماموریت ۹۴: ذخیره‌ی تنظیمات در حافظه‌ی فلش

با LittleFS (یا SPIFFS) فایل /settings.txt را بنویس و موقع روشن شدن بخوانش؛ این‌طوری روشنایی LED بعد از ریست یادش می‌مونه.

سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد

هدف‌ها

قطعه‌های لازم

▶ همین ماموریت را در شبیه‌ساز امتحان کن
💡 گیر کردی؟ داخل شبیه‌ساز راهنما را ببین، و اگر باز هم نشد دکمه‌ی «برام حلش کن» مدار را برایت می‌چیند تا ببینی چطور کار می‌کند.

جواب کامل

اول خودت امتحان کن! بعد جواب را ببین 👀

سیم‌کشی

  1. ESP32 DevKit (D4) ⟷ مقاومت 220Ω (PIN1)
  2. مقاومت 220Ω (PIN2) ⟷ LED زرد (ANODE)
  3. LED زرد (CATHODE) ⟷ ESP32 DevKit (GND1)

کد

// ESP32 + LittleFS: remember the LED brightness after a reset
// Type a number 0..255 in the Serial Monitor; it is saved to /settings.txt
#include <LittleFS.h>

const int LED = 4;
int level = 128;

void saveLevel() {
  File f = LittleFS.open("/settings.txt", "w");
  f.println(level);
  f.close();
  Serial.println("saved");
}

void setup() {
  Serial.begin(115200);
  LittleFS.begin(true);   // true = format the first time
  if (LittleFS.exists("/settings.txt")) {
    File f = LittleFS.open("/settings.txt", "r");
    level = f.parseInt();
    f.close();
    Serial.print("loaded level ");
    Serial.println(level);
  }
  ledcAttach(LED, 5000, 8);
  ledcWrite(LED, level);
}

void loop() {
  if (Serial.available()) {
    String line = Serial.readStringUntil('\n');
    level = constrain(line.toInt(), 0, 255);
    ledcWrite(LED, level);
    saveLevel();
  }
}

ماموریت‌های مشابه

📡

ماموریت ۹۳: انتشار با MQTT

🎯

ماموریت ۹۵: کنترل تناسبی سروو

⚡

ماموریت ۹۲: مقدار زنده با WebSocket

🌞

ماموریت ۹۶: ردیاب خورشید

📚 برای یاد گرفتن پایه‌ها سری به دوره‌ی آموزش آردوینو بزن · 🎯 همه‌ی ماموریت‌ها