ኢኤስፒ32 ትምህርት 40/55 - ማይክሮ ኤስዲ ካርድ ማንበብ እና መጻፍ | የሰንፋውንደር ኢኤስፒ32 አይኦቲ የመማሪያ ኪት
በዚህ ትምህርት ውስጥ፣ ESP32 እና የSunFounder ESP32 ማስፋፊያ ሰሌዳን በመጠቀም ከማይክሮ ኤስዲ ካርድ እንዴት ማንበብ እና መጻፍ እንደምንችል እንማራለን። ይህ መረጃን ለማከማቸት እና በኋላ ለማውጣት ያስችለናል፣ ይህም ለብዙ የIoT አፕሊኬሽኖች አስፈላጊ ነው። በዚህ ትምህርት መጨረሻ፣ ከማይክሮ ኤስዲ ካርድ ፋይሎችን መፍጠር፣ መጻፍ እና ማንበብ የሚችል የሚሰራ ዝግጅት ይኖርዎታል።
ለመጀመር፣ የማይክሮ ኤስዲ ካርድዎ በትክክል ወደ FAT32 መቀረጹን ያረጋግጡ፣ ምክንያቱም ይህ ESP32 ከካርዱ ጋር እንዲገናኝ የሚያስፈልገው የፋይል ስርዓት ነው። በማይክሮ ኤስዲ ካርድ ላይ ፋይሎችን የመድረስ ሂደትን የሚያቃልለውን SD_MMC ቤተ-መጻሕፍትን እንጠቀማለን። የማይክሮ ኤስዲ ካርድ ከፍተኛ አቅም ከ32 ጂቢ መብለጥ እንደሌለበት ልብ ማለት ያስፈልጋል።
ሃርድዌር ተብራርቷል
በዚህ ፕሮጀክት ውስጥ ዋና ዋና ክፍሎች ESP32 ማይክሮ መቆጣጠሪያ እና የማይክሮ ኤስዲ ካርድ ሞጁል ያካትታሉ። ESP32 አብሮ የተሰራ የWi-Fi እና የብሉቱዝ አቅሞች ያሉት ሁለገብ ማይክሮ መቆጣጠሪያ ነው፣ ይህም ለIoT አፕሊኬሽኖች ተስማሚ ያደርገዋል። የማይክሮ ኤስዲ ካርድ ሞጁል ESP32 ከካርዱ ላይ እንዲያነብ እና እንዲጽፍ ያስችለዋል፣ ይህም ለተለያዩ አፕሊኬሽኖች የመረጃ ማከማቻ ያስችላል።
የማይክሮ ኤስዲ ካርድ መረጃን በተደራጀ መልኩ ለማከማቸት የፋይል ስርዓትን በመጠቀም ይሰራል። ከESP32 ጋር በSD_MMC በይነገጽ ይገናኛል፣ ይህም ቀልጣፋ የፋይል ማንበብ እና መጻፍ ያስችላል። ይህ ዝግጅት መረጃን ለመመዝገብ፣ ምስሎችን ለማስቀመጥ ወይም የመረጃ ቀጣይነት ለሚፈለግበት ሌላ ማንኛውም አፕሊኬሽን መጠቀም ይቻላል።
የሽቦ መገጣጠም መመሪያዎች

የማይክሮ ኤስዲ ካርዱን ከ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 የተጻፉ ፋይሎችን በፒሲ ላይ መመልከት
#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
Common Course Links
Common Course Files
እንደሚያስፈልግዎት ይችላል
-
አሊኤክስፕሬስPurchase a microSD card module from AliExpresss.click.aliexpress.com
-
ባንጉድPurchase a microSD card module from Banggoodbanggood.com
ምንጮች እና ምንጮች
-
ሰነዶችESP32 Tutorial 40/55 - SunFounder doc page for MicroSD carddocs.sunfounder.com
-
ውስጥPurchase a microSD card module from AliExpresss.click.aliexpress.com
-
ውስጥ
-
ውስጥPurchase a microSD card module from Banggoodbanggood.com
ፋይሎች📁
አንድ ፋይል የለም።