Search Code

د ESP32 ټیوټوریل 40/55 - د مایکرو SD کارت لوستل او لیکل | سن فاونډر د ESP32 IoT زده کړې کټ

د ESP32 ټیوټوریل 40/55 - د مایکرو SD کارت لوستل او لیکل | سن فاونډر د ESP32 IoT زده کړې کټ

په دې ټیوټوریل کې به موږ زده کړو چې څنګه د ESP32 او د SunFounder ESP32 پراختیايي بورډ په کارولو سره له مایکرو SD کارت څخه ولولئ او ورته ولیکئ. دا به موږ ته اجازه راکړي چې ډاټا ذخیره کړو او وروسته یې بیرته ترلاسه کړو، کوم چې د ډیرو IoT غوښتنلیکونو لپاره اړین دی. د دې ټیوټوریل په پای کې به تاسو یو فعال ترتیب ولرئ چې کولی شي له مایکرو SD کارت څخه فایلونه جوړ کړي، ورته ولیکي او ولولي.

د پیل لپاره، ډاډ ترلاسه کړئ چې ستاسو مایکرو SD کارت په سمه توګه FAT32 ته فارمیټ شوی دی، ځکه چې دا د ESP32 لپاره اړین فایل سیسټم دی چې له کارت سره تعامل وکړي. موږ به د SD_MMC کتابتون څخه کار واخلو، کوم چې په مایکرو SD کارت کې د فایلونو لاسرسي پروسه ساده کوي. دا مهمه ده چې په یاد ولرئ چې د مایکرو SD کارت اعظمي ظرفیت باید له 32 GB څخه زیات نه وي.

هارډویر تشریح شوی

په دې پروژه کې لومړني اجزا د ESP32 مایکروکنټرولر او د مایکرو SD کارت ماډل شامل دي. ESP32 یو څو اړخیز مایکروکنټرولر دی چې په جوړ شوي Wi-Fi او بلوتوث وړتیاوې لري، چې دا د IoT غوښتنلیکونو لپاره مثالی کوي. د مایکرو SD کارت ماډل ESP32 ته اجازه ورکوي چې له کارت څخه ولولي او ورته ولیکي، چې د مختلفو غوښتنلیکونو لپاره د ډاټا ذخیره کول ممکن کوي.

مایکرو SD کارت د فایل سیسټم په کارولو سره په منظم ډول ډاټا ذخیره کوي. دا د SD_MMC انٹرفیس له لارې له ESP32 سره اړیکه نیسي، کوم چې د فایلونو اغیزمن لوستل او لیکل ممکن کوي. دا ترتیب د ډاټا لاګ کولو، انځورونو خوندي کولو، یا هر بل غوښتنلیک لپاره کارول کیدی شي چیرې چې د ډاټا دوام ته اړتیا وي.

وائرینګ لارښوونې

ESP32-40-micro-sd-card-1

د مایکرو SD کارت له ESP32 سره وصل کولو لپاره، دا ګامونه تعقیب کړئ:

لومړی، د بریښنا او ځمکني پنونه وصل کړئ. د مایکرو SD کارت ماډل VCC پن د ESP32 په 3.3V پن سره وصل کړئ، او GND پن د ESP32 په یوه GND پن سره وصل کړئ. بیا، د ډاټا پنونه وصل کړئ: د مایکرو SD کارت ماډل CS (چپ سلیکټ) پن د ESP32 په پن 5 سره وصل کړئ، MOSI (ماسټر آوټ سلیو ان) پن د پن 23 سره، MISO (ماسټر ان سلیو آوټ) پن د پن 19 سره، او SCK (سیریل کلاک) پن د پن 18 سره وصل کړئ. ډاډ ترلاسه کړئ چې دا اړیکې خوندي دي ترڅو د اړیکو ستونزو څخه مخنیوی وشي.

که تاسو مختلف پراختیايي بورډ کاروئ، د پن شمیرې ممکن توپیر ولري، نو د خپل بورډ ځانګړي اسنادو ته مراجعه وکړئ. وائرینګ د مایکرو SD کارت ته د فایلونو لوستلو او لیکلو د بریالي عملیاتو لپاره خورا مهم دی.

د کوډ مثالونه او تفصیلي کتنه

اوس، راځئ چې د کوډ اصلي برخو ته یو نظر واچوو چې له مایکرو SD کارت سره تعامل کوي. ترتیب د سیریل اړیکو په پیل کولو او د مایکرو SD کارت د بریالي نصبولو په چک کولو سره پیل کیږي.

Serial.begin(115200); // د سیریل اړیکو پیل کول
if (!SD_MMC.begin()) { // وګورئ چې ایا SD کارت په بریالیتوب سره نصب شوی دی
  Serial.println("Failed to mount SD card"); // که SD کارت نصب نشو، د تېروتنې پیغام چاپ کړئ
  return;
}

په دې کوډ برخه کې، سیریل اړیکه د 115200 باؤډ نرخ ته ټاکل شوې ده، کوم چې د آوټ پوټ څارنې لپاره مهم دی. د SD_MMC.begin() فنکشن هڅه کوي چې SD کارت نصب کړي؛ که دا ناکام شي، د تېروتنې پیغام په سیریل مانیټر کې چاپ کیږي.

د کوډ بله برخه په مایکرو SD کارت کې یو نوی فایل جوړوي او ورته د متن یوه کرښه لیکي.

File file = SD_MMC.open("/test.txt", FILE_WRITE); 
if (!file) {
  Serial.println("Failed to open file for writing"); // که فایل د لیکلو لپاره خلاص نشو، د تېروتنې پیغام چاپ کړئ
  return;
}
if (file.println("Test file write")) { // فایل ته د متن یوه کرښه ولیکئ
  Serial.println("File write successful"); // که د لیکلو عملیات بریالي وي، د بریالیتوب پیغام چاپ کړئ
} else {
  Serial.println("File write failed"); // که د لیکلو عملیات ناکام شي، د تېروتنې پیغام چاپ کړئ
}
file.close(); // فایل وتړئ

دلته، د test.txt په نوم یو فایل د لیکلو په حالت کې خلاص شوی دی. که فایل په بریالیتوب سره خلاص شي، دا د متن یوه کرښه لیکي او د بریالیتوب پیغام چاپ کوي. که د لیکلو عملیات ناکام شي، پرځای یې د تېروتنې پیغام چاپ کیږي. په پای کې، فایل تړل کیږي ترڅو ډاډ ترلاسه شي چې بدلونونه خوندي شوي دي.

کوډ د مایکرو SD کارت له ریښې لارښود څخه هم فایلونه لولي او د دوی نومونه او اندازې چاپ کوي.

File root = SD_MMC.open("/"); // د SD کارت ریښه لارښود خلاص کړئ
while (File file = root.openNextFile()) { // د ریښې لارښود کې د ټولو فایلونو له لارې لوپ وکړئ
  Serial.print(file.name()); // د فایل نوم چاپ کړئ
  Serial.print("\t");
  Serial.println(file.size()); // د فایل اندازه چاپ کړئ
  file.close(); // فایل وتړئ
}

دا برخه ریښه لارښود خلاصوي او د ټولو فایلونو له لارې تکرار کوي، د دوی نومونه او اندازې په سیریل مانیټر کې چاپ کوي. دا د دې تصدیق کولو لپاره ګټور دی چې ډاټا په بریالیتوب سره لیکل شوې وه او د SD کارت مینځپانګه وګورئ.

د نورو جزیاتو لپاره، د مقالې لاندې بار شوي بشپړ کوډ ته مراجعه وکړئ.

ډیمونسټریشن / څه تمه وکړئ

د کوډ اپلوډ کولو او د ESP32 ری سیٹ کولو وروسته، تاسو باید په سیریل مانیټر کې پیغامونه وګورئ چې ښیي ایا SD کارت په بریالیتوب سره نصب شوی او ایا د فایل عملیات بریالي وو. تاسو به د ریښې لارښود کې موندل شوي فایلونو لیست هم وګورئ، کوم چې تاییدوي چې ډاټا په سمه توګه لیکل شوې وه (په ویډیو کې په 13:45 کې).

عام ستونزې شاملې دي چې ډاډ ترلاسه کړئ چې مایکرو SD کارت په سمه توګه فارمیټ شوی او وصل شوی دی، او همدارنګه دا تصدیق کړئ چې سیریل مانیټر په سم باؤډ نرخ ټاکل شوی دی. که کومه ستونزه رامنځته شي، خپل وائرینګ او اړیکې دوه ځله وګورئ.

د ویډیو وخت نښې

  • 00:00 پیل
  • 1:45 په ESP32 کې د مایکرو SD کارت پیژندنه
  • 3:46 د اسنادو پاڼه
  • 4:43 د Arduino کوډ
  • 8:09 په Arduino IDE کې د ESP32 بورډ او COM پورټ غوره کول
  • 9:51 د مایکرو SD کارت لیکلو ډیمونسټریشن
  • 11:12 په PC کې د لیکل شویو فایلونو لیدل

Images

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
Language: C++
#include "SD_MMC.h"

void setup() {
  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;
  }

  // Create a file in the root directory of SD card and open it in write mode.
  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

  File root = SD_MMC.open("/"); // Open the root directory of SD card
  if (!root) {
    Serial.println("Failed to open directory"); // Print error message if directory failed to open
    return;
  }
  Serial.println("Files found in root directory:"); // Print the list of files found in the root directory
  while (File file = root.openNextFile()) { // Loop through all the files in the root directory
    Serial.print("  ");
    Serial.print(file.name()); // Print the filename
    Serial.print("\t");
    Serial.println(file.size()); // Print the filesize
    file.close(); // Close the file
  }
}
void loop() {} // Empty loop function, does nothing

Things you might need

Files📁

No files available.