ኮድ ይፈልጉ

ኢኤስፒ32 ትምህርት 40/55 - ማይክሮ ኤስዲ ካርድ ማንበብ እና መጻፍ | የሰንፋውንደር ኢኤስፒ32 አይኦቲ የመማሪያ ኪት

ኢኤስፒ32 ትምህርት 40/55 - ማይክሮ ኤስዲ ካርድ ማንበብ እና መጻፍ | የሰንፋውንደር ኢኤስፒ32 አይኦቲ የመማሪያ ኪት

በዚህ ትምህርት ውስጥ፣ ESP32 እና የSunFounder ESP32 ማስፋፊያ ሰሌዳን በመጠቀም ከማይክሮ ኤስዲ ካርድ እንዴት ማንበብ እና መጻፍ እንደምንችል እንማራለን። ይህ መረጃን ለማከማቸት እና በኋላ ለማውጣት ያስችለናል፣ ይህም ለብዙ የIoT አፕሊኬሽኖች አስፈላጊ ነው። በዚህ ትምህርት መጨረሻ፣ ከማይክሮ ኤስዲ ካርድ ፋይሎችን መፍጠር፣ መጻፍ እና ማንበብ የሚችል የሚሰራ ዝግጅት ይኖርዎታል።

ለመጀመር፣ የማይክሮ ኤስዲ ካርድዎ በትክክል ወደ FAT32 መቀረጹን ያረጋግጡ፣ ምክንያቱም ይህ ESP32 ከካርዱ ጋር እንዲገናኝ የሚያስፈልገው የፋይል ስርዓት ነው። በማይክሮ ኤስዲ ካርድ ላይ ፋይሎችን የመድረስ ሂደትን የሚያቃልለውን SD_MMC ቤተ-መጻሕፍትን እንጠቀማለን። የማይክሮ ኤስዲ ካርድ ከፍተኛ አቅም ከ32 ጂቢ መብለጥ እንደሌለበት ልብ ማለት ያስፈልጋል።

ሃርድዌር ተብራርቷል

በዚህ ፕሮጀክት ውስጥ ዋና ዋና ክፍሎች ESP32 ማይክሮ መቆጣጠሪያ እና የማይክሮ ኤስዲ ካርድ ሞጁል ያካትታሉ። ESP32 አብሮ የተሰራ የWi-Fi እና የብሉቱዝ አቅሞች ያሉት ሁለገብ ማይክሮ መቆጣጠሪያ ነው፣ ይህም ለIoT አፕሊኬሽኖች ተስማሚ ያደርገዋል። የማይክሮ ኤስዲ ካርድ ሞጁል ESP32 ከካርዱ ላይ እንዲያነብ እና እንዲጽፍ ያስችለዋል፣ ይህም ለተለያዩ አፕሊኬሽኖች የመረጃ ማከማቻ ያስችላል።

የማይክሮ ኤስዲ ካርድ መረጃን በተደራጀ መልኩ ለማከማቸት የፋይል ስርዓትን በመጠቀም ይሰራል። ከESP32 ጋር በSD_MMC በይነገጽ ይገናኛል፣ ይህም ቀልጣፋ የፋይል ማንበብ እና መጻፍ ያስችላል። ይህ ዝግጅት መረጃን ለመመዝገብ፣ ምስሎችን ለማስቀመጥ ወይም የመረጃ ቀጣይነት ለሚፈለግበት ሌላ ማንኛውም አፕሊኬሽን መጠቀም ይቻላል።

የሽቦ መገጣጠም መመሪያዎች

ESP32-40-micro-sd-card-1

የማይክሮ ኤስዲ ካርዱን ከESP32 ጋር ለማገናኘት እነዚህን ደረጃዎች ይከተሉ፦

በመጀመሪያ፣ የኃይል እና የመሬት ፒኖችን ያገናኙ። የማይክሮ ኤስዲ ካርድ ሞጁሉን የVCC ፒን በESP32 ላይ ካለው 3.3V ፒን ጋር ያገናኙ፣ እና የGND ፒንን በESP32 ላይ ካሉት የGND ፒኖች አንዱ ጋር ያገናኙ። በመቀጠል፣ የውሂብ ፒኖችን ያገናኙ፡ የማይክሮ ኤስዲ ካርድ ሞጁሉን የCS (Chip Select) ፒን በESP32 ላይ ካለው ፒን 5 ጋር፣ የMOSI (Master Out Slave In) ፒንን ከፒን 23 ጋር፣ የMISO (Master In Slave Out) ፒንን ከፒን 19 ጋር፣ እና የSCK (Serial Clock) ፒንን ከፒን 18 ጋር ያገናኙ። የግንኙነት ችግሮችን ለማስወገድ እነዚህ ግንኙነቶች ደህንነታቸው የተጠበቀ መሆናቸውን ያረጋግጡ።

የተለየ የማስፋፊያ ሰሌዳ እየተጠቀሙ ከሆነ፣ የፒን ቁጥሮች ሊለያዩ ይችላሉ፣ ስለዚህ ለሰሌዳዎ የተለየውን ሰነድ ይመልከቱ። ሽቦው ለማይክሮ ኤስዲ ካርድ ፋይሎችን በተሳካ ሁኔታ ለማንበብ እና ለመጻፍ ወሳኝ ነው።

የኮድ ምሳሌዎች እና ጉዞ

አሁን፣ ከማይክሮ ኤስዲ ካርድ ጋር የሚገናኙትን የኮዱ ዋና ክፍሎች እንመልከት። ማዋቀሩ የሚጀምረው ተከታታይ ግንኙነትን በማስጀመር እና የማይክሮ ኤስዲ ካርዱ በተሳካ ሁኔታ መጫኑን በማረጋገጥ ነው።

Serial.begin(115200); // ተከታታይ ግንኙነትን ያስጀምሩ
if (!SD_MMC.begin()) { // የኤስዲ ካርድ በተሳካ ሁኔታ መጫኑን ያረጋግጡ
  Serial.println("Failed to mount SD card"); // የኤስዲ ካርድ መጫን ካልተሳካ የስህተት መልእክት ያትሙ
  return;
}

በዚህ የኮድ ክፍል ውስጥ፣ ተከታታይ ግንኙነቱ ወደ 115200 የባውድ መጠን ተዋቅሯል፣ ይህም ውጤትን ለመከታተል አስፈላጊ ነው። የSD_MMC.begin() ተግባር የኤስዲ ካርዱን ለመጫን ይሞክራል፤ ካልተሳካ፣ የስህተት መልእክት በተከታታይ መቆጣጠሪያው ላይ ይታተማል።

የሚቀጥለው የኮድ ክፍል በማይክሮ ኤስዲ ካርዱ ላይ አዲስ ፋይል ይፈጥራል እና የጽሑፍ መስመር ይጽፋል።

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 የተባለ ፋይል በመጻፍ ሁነታ ተከፍቷል። ፋይሉ በተሳካ ሁኔታ ከተከፈተ፣ የጽሑፍ መስመር ይጽፋል እና የስኬት መልእክት ያትማል። የመጻፍ ስራው ካልተሳካ፣ በምትኩ የስህተት መልእክት ይታተማል። በመጨረሻም፣ ለውጦቹ መቀመጣቸውን ለማረጋገጥ ፋይሉ ይዘጋል።

ኮዱ ከማይክሮ ኤስዲ ካርዱ ስርወ ማውጫ ፋይሎችን ያነባል እና ስሞቻቸውን እና መጠኖቻቸውን ያትማል።

File root = SD_MMC.open("/"); // የኤስዲ ካርድ ስርወ ማውጫን ይክፈቱ
while (File file = root.openNextFile()) { // በስርወ ማውጫ ውስጥ ያሉትን ሁሉንም ፋይሎች ይዞሩ
  Serial.print(file.name()); // የፋይል ስም ያትሙ
  Serial.print("\t");
  Serial.println(file.size()); // የፋይል መጠን ያትሙ
  file.close(); // ፋይሉን ይዝጉ
}

ይህ ክፍል ስርወ ማውጫውን ይከፍታል እና በሁሉም ፋይሎች ላይ ይዞራል፣ ስሞቻቸውን እና መጠኖቻቸውን ለተከታታይ መቆጣጠሪያው ያትማል። ይህ መረጃው በተሳካ ሁኔታ መጻፉን ለማረጋገጥ እና የኤስዲ ካርዱን ይዘት ለማየት ጠቃሚ ነው።

ለተጨማሪ ዝርዝሮች፣ ከጽሑፉ በታች የተጫነውን ሙሉ ኮድ ይመልከቱ።

ማሳያ / ምን እንደሚጠበቅ

ኮዱን ከጫኑ እና ESP32 ን ካስጀመሩ በኋላ፣ የኤስዲ ካርዱ በተሳካ ሁኔታ መጫኑን እና የፋይል ስራዎቹ የተሳኩ መሆናቸውን የሚያመለክቱ መልእክቶችን በተከታታይ መቆጣጠሪያው ውስጥ ማየት ይኖርዎታል። እንዲሁም በስርወ ማውጫው ውስጥ የተገኙትን የፋይሎች ዝርዝር ያያሉ፣ ይህም መረጃው በትክክል መጻፉን ያረጋግጣል (በቪዲዮ 13:45)።

የተለመዱ ችግሮች የማይክሮ ኤስዲ ካርዱ በትክክል መቀረጹን እና መገናኘቱን ማረጋገጥ፣ እንዲሁም ተከታታይ መቆጣጠሪያው በትክክለኛው የባውድ መጠን መዋቀሩን ማረጋገጥ ያካትታሉ። ማንኛውም ችግር ከተከሰተ፣ ሽቦዎን እና ግንኙነቶችዎን እንደገና ያረጋግጡ።

የቪዲዮ ጊዜ ምልክቶች

  • 00:00 መጀመሪያ
  • 1:45 በESP32 ላይ የማይክሮ ኤስዲ ካርድ መግቢያ
  • 3:46 የሰነድ ገጽ
  • 4:43 የአርዱኖ ኮድ
  • 8:09 በአርዱኖ IDE ውስጥ የESP32 ሰሌዳ እና የCOM ወደብ መምረጥ
  • 9:51 የማይክሮ ኤስዲ ካርድ መጻፍ ማሳያ
  • 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++
#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

እንደሚያስፈልግዎት ይችላል

ፋይሎች📁

አንድ ፋይል የለም።