💾 ماموریت ۹۴: ذخیرهی تنظیمات در حافظهی فلش
با LittleFS (یا SPIFFS) فایل /settings.txt را بنویس و موقع روشن شدن بخوانش؛ اینطوری روشنایی LED بعد از ریست یادش میمونه.
سطح: چالشی ⭐⭐⭐ · مود: آردوینو — با کد
هدفها
- ☐ یه برد (آردوینو یا ESP32) روی صحنه باشه
- ☐ یه ESP32 روی صحنه باشه
- ☐ یه LED
- ☐ سیستم فایل فلش
- ☐ فایل باز بشه
- ☐ شبیهسازی در حال اجرا
قطعههای لازم
- ESP32 DevKit
- مقاومت 220Ω
- LED زرد
💡 گیر کردی؟ داخل شبیهساز راهنما را ببین، و اگر باز هم نشد دکمهی «برام حلش کن» مدار را برایت میچیند تا ببینی چطور کار میکند.
جواب کامل
اول خودت امتحان کن! بعد جواب را ببین 👀
سیمکشی
- ESP32 DevKit (D4) ⟷ مقاومت 220Ω (PIN1)
- مقاومت 220Ω (PIN2) ⟷ LED زرد (ANODE)
- 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
🌞
ماموریت ۹۶: ردیاب خورشید
📚 برای یاد گرفتن پایهها سری به دورهی آموزش آردوینو بزن · 🎯 همهی ماموریتها