آموزش ESP32 40/55 - خواندن و نوشتن روی کارت میکرو SD | کیت آموزشی ESP32 IoT سان فاوندر

آموزش ESP32 40/55 - خواندن و نوشتن روی کارت میکرو SD | کیت آموزشی ESP32 IoT سان فاوندر

در این آموزش، خواهیم آموخت که چگونه از یک کارت micro SD با استفاده از ESP32 و برد گسترش SunFounder ESP32 بخوانیم و بنویسیم. این امکان را به ما می‌دهد که داده‌ها را ذخیره کرده و بعداً آن‌ها را بازیابی کنیم، که برای بسیاری از برنامه‌های IoT ضروری است. در پایان این آموزش، شما یک تنظیمات کارآمد خواهید داشت که می‌تواند فایل‌هایی را از کارت micro SD ایجاد، به آن‌ها نوشته و از آن‌ها بخواند.

برای شروع، مطمئن شوید که کارت micro SD شما به درستی با FAT32 فرمت شده است، زیرا این سیستم فایل مورد نیاز برای تعامل ESP32 با کارت است. ما از کتابخانه SD_MMC استفاده خواهیم کرد که فرآیند دسترسی به فایل‌ها در کارت micro SD را ساده می‌کند. مهم است که به یاد داشته باشید که ظرفیت حداکثر کارت micro SD نباید بیشتر از ۳۲ گیگابایت باشد.

توضیح سخت‌افزار

اجزای اصلی این پروژه شامل میکروکنترلر ESP32 و ماجیول کارت میکرو SD است. ESP32 یک میکروکنترلر چندمنظوره است که دارای قابلیت‌های Wi-Fi و Bluetooth داخلی است و آن را برای برنامه‌های IoT ایده‌آل می‌سازد. ماجیول کارت میکرو SD این امکان را به ESP32 می‌دهد که از کارت بخواند و روی آن بنویسد و به این ترتیب ذخیره‌سازی داده برای برنامه‌های مختلف را ممکن می‌سازد.

کارت حافظه micro SD با استفاده از یک سیستم فایل برای ذخیره‌سازی داده‌ها به صورت ساختاری عمل می‌کند. این کارت از طریق رابط SD_MMC با ESP32 ارتباط برقرار می‌کند که امکان خواندن و نوشتن فایل‌ها به طور کارآمد را فراهم می‌آورد. این تنظیمات می‌توانند برای ثبت داده‌ها، ذخیره‌سازی تصاویر یا هر برنامه دیگری که نیاز به پایداری داده‌ها دارد استفاده شوند.

دستورالعمل‌های سیم‌کشی

ESP32-40-micro-sd-card-1

برای متصل کردن کارت micro SD به ESP32، مراحل زیر را دنبال کنید:

ابتدا، پایه‌های برق و زمین را متصل کنید. پایه VCC ماجیول کارت میکرو SD را به پایه ۳.۳ ولت روی ESP32 متصل کنید و پایه GND را به یکی از پایه‌های GND روی ESP32 وصل کنید. سپس، پایه‌های داده را متصل کنید: پایه CS (انتخاب چیپ) ماجیول کارت میکرو SD را به پایه متصل کنید.5در ESP32، پایه MOSI (خروجی اصلی ورود به برد) به پایه23پایه MISO (Master In Slave Out) به پایه19و پایانه SCK (پایه ساعت سریال) به پایه18اطمینان حاصل کنید که این اتصالات امن هستند تا از بروز هرگونه مشکل ارتباطی جلوگیری شود.

اگر از یک بورد گسترش متفاوت استفاده می‌کنید، شماره‌های پایه ممکن است متفاوت باشد، بنابراین به مستندات خاص بورد خود مراجعه کنید. سیم‌کشی برای عملکرد موفق خواندن و نوشتن فایل‌ها روی کارت میکرو SD حیاتی است.

مثال‌های شِفر (کود) و راهنمایی

حال، بیایید نگاهی به بخش‌های اصلی شِفر (کود) بیندازیم که با کارت میکرو SD تعامل دارند. راه‌اندازی با شروع ارتباط سریالی و بررسی این که آیا کارت میکرو SD با موفقیت متصل شده است، آغاز می‌شود.

Serial.begin(115200); // Initialize serial communication
if (!SD_MMC.begin()) { // Check if SD card is mounted successfully
  Serial.println("Failed to mount SD card"); // Print error message if SD card failed to mount
  return;
}

در این قطعه شِفر (کود)، ارتباط سریال با نرخ Baud 115200 تنظیم شده است که برای نظارت بر خروجی اهمیت دارد.SD_MMC.begin()توابع سعی می‌کنند کارت SD را متصل کنند؛ اگر شکست بخورد، یک پیام خطا در نمایشگر مسلسل چاپ می‌شود.

قسمت بعدی شِفر (کود) یک فایل جدید روی کارت micro SD ایجاد کرده و یک خط متن به آن می‌نویسد.

File file = SD_MMC.open("/test.txt", FILE_WRITE); 
if (!file) {
  Serial.println("Failed to open file for writing"); // Print error message if file failed to open
  return;
}
if (file.println("Test file write")) { // Write a line of text to the file
  Serial.println("File write successful"); // Print success message if write operation is successful
} else {
  Serial.println("File write failed"); // Print error message if write operation failed
}
file.close(); // Close the file

اینجا، فایلی به نامtest.txtدر حالت نوشتن باز می‌شود. اگر فایل با موفقیت باز شود، یک خط متن نوشته شده و پیام موفقیت چاپ می‌شود. اگر عملیات نوشتن شکست بخورد، به جای آن پیام خطا چاپ می‌شود. در نهایت، فایل بسته می‌شود تا اطمینان حاصل شود که تغییرات ذخیره شده‌اند.

شِفر (کود) همچنین فایل‌ها را از دایرکتوری ریشه کارت SD میکرو می‌خواند و نام‌ها و اندازه‌های آن‌ها را چاپ می‌کند.

File root = SD_MMC.open("/"); // Open the root directory of SD card
while (File file = root.openNextFile()) { // Loop through all the files in the root directory
  Serial.print(file.name()); // Print the filename
  Serial.print("\t");
  Serial.println(file.size()); // Print the filesize
  file.close(); // Close the file
}

این قطعه شِفر (کود) دایرکتوری اصلی را باز کرده و از طریق تمام فایل‌ها عبور کرده و نام‌ها و اندازه‌های آن‌ها را به نمایشگر مسلسل چاپ می‌کند. این برای تأیید موفقیت‌آمیز بودن نوشتن داده‌ها و مشاهده محتوای کارت SD مفید است.

برای جزئیات بیشتر، به شِفر (کود) کامل بارگذاری شده در زیر مقاله مراجعه کنید.

نمایش / چه انتظاری باید داشته باشید

بعد از بارگذاری شِفر (کود) و راه‌اندازی مجدد ESP32، باید پیام‌هایی را در نمایشگر مسلسل مشاهده کنید که نشان می‌دهد آیا کارت SD با موفقیت نصب شده و آیا عملیات فایل با موفقیت انجام شده است. همچنین لیستی از فایل‌های موجود در دایرکتوری روت را خواهید دید که تأیید می‌کند داده‌ها به درستی نوشته شده‌اند (در ویدئو در ۱۳:۴۵).

اشتباهات رایج شامل اطمینان از فرمت و اتصال صحیح کارت میکرو SD و همچنین بررسی اینکه نمایشگر مسلسل به نرخ baud صحیح تنظیم شده است، می‌شود. اگر مشکلی پیش آمد، اتصالات و سیم‌کشی خود را دوباره بررسی کنید.

برچسب‌های ویدیو

  • ۰۰:۰۰ شروع
  • ۱:۴۵ مقدمه‌ای بر کارت Micro SD در ESP32
  • ۳:۴۶ صفحه اسناد
  • شِفر (کود) آردوینو ۴:۴۳
  • انتخاب بُرد ESP32 و پورت COM در Arduino IDE :09
  • ۹:۵۱ نمایش نوشتن روی کارت MicroSD
  • 11:12 مشاهده فایل‌های نوشته شده روی کامپیوتر

تصاویر

ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-1
ESP32-40-micro-sd-card-2
ESP32-40-micro-sd-card-2
841-ESP32 Tutorial 40/55- Arduino code for micro SD card
زبان: C++
کپی شد!

مواردی که ممکن است به آن‌ها نیاز داشته باشید

فایل‌ها📁

هیچ فایلی موجود نیست.