Arduino IDE ব্যবহার করে ESP32 এর সাথে মাইক্রোএসডি কার্ড মডিউল কিভাবে ইন্টারফেস করবেন

Arduino Ide Byabahara Kare Esp32 Era Sathe Ma Ikro Esadi Karda Madi Ula Kibhabe Intaraphesa Karabena



ESP32 হল একটি উন্নত মাইক্রোকন্ট্রোলার বোর্ড যা এর সাথে বিভিন্ন সংখ্যক পেরিফেরাল ইন্টারফেস করতে পারে। অন্যান্য সেন্সরগুলির মতো, আপনি ESP32 এর সাথে মাইক্রোএসডি কার্ড মডিউলটিও ইন্টারফেস করতে পারেন। আপনি ডেটা লগিং অ্যাপ্লিকেশনের জন্য মাইক্রোএসডি কার্ড সেন্সর ব্যবহার করতে পারেন বা আপনার মাইক্রোকন্ট্রোলার বোর্ডের জন্য স্টোরেজ ক্ষমতা বাড়াতে পারেন।

এই নিবন্ধটি Arduino IDE ব্যবহার করে ESP32 বোর্ডের সাথে একটি মাইক্রোএসডি কার্ড ইন্টারফেস করার পদক্ষেপগুলি ব্যাখ্যা করবে।

সুচিপত্র:







1. মাইক্রোএসডি কার্ড মডিউল



2. মাইক্রোএসডি কার্ড মডিউলের সাথে কীভাবে ESP32 ইন্টারফেস করবেন



3. হার্ডওয়্যার





4. কোড

5. আউটপুট



6. ESP32 ব্যবহার করে মাইক্রোএসডি কার্ডে বিভিন্ন ফাংশন সম্পাদন করা

উপসংহার

1. মাইক্রোএসডি কার্ড মডিউল

মাইক্রোএসডি কার্ড মডিউল হল একটি ESP32 সেন্সর যা আপনার মাইক্রোকন্ট্রোলার বোর্ডের সাথে SD কার্ড সংযোগ করতে পারে। এটি এসপিআই যোগাযোগ প্রোটোকলের উপর কাজ করে। এটি ESP32 বা আরডুইনোর মতো অন্য কোনো মাইক্রোকন্ট্রোলার বোর্ডকে SPI প্রোটোকলের মাধ্যমে SD কার্ডে সংরক্ষিত ডেটা অ্যাক্সেস করতে দেয়।

SD কার্ড মডিউলের জন্য কাজের ভোল্টেজ হল 3.3V, তাই এটি সরাসরি ESP32 বা অন্য কোন মাইক্রোকন্ট্রোলার বোর্ডের সাথে সংযোগ করা সম্ভব নয়। এর জন্য, আমাদের 5V এর বেশি কাজ করে এমন SD কার্ড মডিউল বা সেন্সর ব্যবহার করতে হবে।

1.1। পিনআউট

মাইক্রোএসডি কার্ডে মোট ছয়টি পিন রয়েছে। তাদের মধ্যে দুটি পাওয়ার পিন: ভিসিসি এবং জিএনডি। পড়ার সময় চারটি পিন SPI যোগাযোগ প্রোটোকলের জন্য ব্যবহৃত হয়। এই ছয়টি পিনের সকলের বিশদ বিবরণ নিম্নরূপ:

পাওয়ার পিন:

  • ভিসিসি: ESP32 5V পিনের সাথে সংযোগ করে।
  • জিএনডি: ESP32 গ্রাউন্ড (GND) পিনের সাথে সংযোগ করে।

SPI পিন:

  • MISO: (মাস্টার ইন স্লেভ আউট) ESP32 MOSI (মাস্টার আউট স্লেভ ইন) পিনের সাথে সংযোগ করে।
  • ধোঁয়া: ESP32 MISO (মাস্টার ইন স্লেভ আউট) পিনের সাথে সংযোগ করে।
  • SCK: ESP32 SCK (সিরিয়াল ক্লক) পিনের সাথে সংযোগ করে।
  • এসএস: (স্লেভ সিলেক্ট) আরডুইনো কোডে SS (স্লেভ সিলেক্ট) পিন হিসাবে নির্দিষ্ট পিনের সাথে সংযোগ করে।

2. মাইক্রোএসডি কার্ড মডিউলের সাথে কীভাবে ESP32 ইন্টারফেস করবেন

মাইক্রোএসডি কার্ড মডিউলের সাথে ESP32 ইন্টারফেস করতে, আপনাকে আপনার SD কার্ড সেন্সরের জন্য পাওয়ার পিন সেট আপ করতে হবে। এরপর SPI পিন সেট আপ করুন। এখানে আপনার দুটি পছন্দ আছে, আপনি হয় ডিফল্ট SPI পিন সেট করতে পারেন অথবা আপনার নিজস্ব কাস্টম SPI পিনগুলি সংজ্ঞায়িত করতে পারেন৷

ডিফল্ট SPI পিন ব্যবহার করার সময়, আমরা যোগ করতে যাচ্ছি এসডি জ এবং SD_MMC.h লাইব্রেরি ডিফল্টরূপে, এই লাইব্রেরিগুলি SPI যোগাযোগের জন্য VSPI SPI পিন (23, 19, 18, 5) নেয়। যাইহোক, আপনি SPI যোগাযোগের জন্য অন্যান্য পিনও সেট করতে পারেন।

ESP32-এ দুটি SPI ইন্টারফেস HSPI এবং VSPI রয়েছে তাদের পিনের বিবরণ নিম্নরূপ:

এসপিআই ধোঁয়া MISO সিএলকে সিএস
ভিএসপিআই D23 D19 D18 D5
HSPI D13 D12 D14 D15

সম্পর্কিত: ESP32 পিনআউট রেফারেন্স - একটি সম্পূর্ণ গাইড

2.2। এসডি কার্ড রেডি করে নিন

এর পরে, আপনি একটি মাইক্রোএসডি কার্ডে ডেটা পড়া এবং লেখার সাথে এগিয়ে যাওয়ার আগে, প্রথমে, আপনাকে প্রথমে এটিতে থাকা কোনও পূর্ববর্তী ডেটা ফর্ম্যাট করে এটি সেট আপ করতে হবে৷

যেকোনো কার্ড রিডার ব্যবহার করে আপনার SD কার্ড খুলুন এবং বিন্যাস এটা

আপনার কার্ড ফাইল সিস্টেমের জন্য FAT32 নির্বাচন করুন এবং ক্লিক করুন শুরু করুন .

কার্ড ফরম্যাট করার পর সিলেক্ট করুন ঠিক আছে .

এখন আপনার SD কার্ডটি SD কার্ড মডিউল ব্যবহার করে ESP32 এর সাথে ইন্টারফেস করার জন্য প্রস্তুত৷

2.3। পরিকল্পিত ডায়াগ্রাম

ESP32 এর সাথে মাইক্রোএসডি কার্ড সেন্সর সংযোগ করতে, নীচের প্রদত্ত কনফিগারেশন অনুসরণ করুন:

সংযোগ তারের পিন কনফিগারেশনের জন্য টেবিলটি নিম্নরূপ:

মাইক্রোএসডি কার্ড ESP32
জিএনডি জিএনডি
ভিসিসি আসেন
সিএস D5
ধোঁয়া D23
SCK D18
MISO D19

3. হার্ডওয়্যার

হার্ডওয়্যারের জন্য, আপনাকে ESP32 এবং SD কার্ড মডিউল সহ কিছু জাম্পার তারের একটি ব্রেডবোর্ডের প্রয়োজন।

4. কোড

এখন আমরা একটি কোড লিখব যা মাইক্রোএসডি কার্ডের ভিতরে একটি টেক্সট ফাইল তৈরি করবে এবং তার পরে, এটিতে কিছু টেক্সট স্ট্রিং লিখবে। একবার হয়ে গেলে, আমরা Arduino IDE সিরিয়াল মনিটরে পাঠ্য ফাইলের বিষয়বস্তু পড়ব।

Arduino IDE শুরু করুন এবং প্রদত্ত কোড কম্পাইল করুন। এর পরে এটি আপনার ESP32 বোর্ডে বার্ন করুন:

# অন্তর্ভুক্ত করুন

#অন্তর্ভুক্ত

মাইফাইল ফাইল করুন ;
const int সিএস = 5 ;

// নির্দিষ্ট পাথে একটি ফাইলে প্রদত্ত বার্তাটি লিখুন
অকার্যকর WriteFile ( const চর * পথ , const চর * বার্তা ) {
// ফাইলটি খুলুন। এটি একবারে একটি ফাইল খুলতে সমর্থন করে
// একটি নতুন ফাইল খোলার আগে অন্য ফাইলটি বন্ধ করুন
আমার কাগজপত্র = এসডি খোলা ( পথ , FILE_WRITE ) ;

যদি ( আমার কাগজপত্র ) {
সিরিয়াল। printf ( '%s কে লেখা' , পথ ) ;
আমার কাগজপত্র. println ( বার্তা ) ;
আমার কাগজপত্র. বন্ধ ( ) ; // ফাইল বন্ধ করুন
সিরিয়াল। println ( 'সম্পূর্ণ।' ) ;
} অন্য {
সিরিয়াল। println ( 'ফাইল খোলার ত্রুটি' ) ;
সিরিয়াল। println ( পথ ) ;
}
}

// নির্দিষ্ট পাথে ফাইল সামগ্রী মুদ্রণ করুন
অকার্যকর ফাইল পড়া ( const চর * পথ ) {
// খোলা ফাইল
আমার কাগজপত্র = এসডি খোলা ( পথ ) ;
যদি ( আমার কাগজপত্র ) {
সিরিয়াল। printf ( '%s থেকে ফাইল পড়া হচ্ছে \n ' , পথ ) ;
// শেষ পর্যন্ত না পৌঁছানো পর্যন্ত সম্পূর্ণ ফাইল পড়ুন
যখন ( আমার কাগজপত্র. উপলব্ধ ( ) ) {
সিরিয়াল। লিখুন ( আমার কাগজপত্র. পড়া ( ) ) ;
}
আমার কাগজপত্র. বন্ধ ( ) ; // ফাইল বন্ধ করুন
} অন্য {
// ফাইল খুলতে ব্যর্থ হলে, একটি ত্রুটি মুদ্রণ করুন:
সিরিয়াল। println ( 'Error opening test.txt' ) ;
}
}

অকার্যকর সেটআপ ( ) {
সিরিয়াল। শুরু ( 9600 ) ;
বিলম্ব ( 500 ) ;
যখন ( ! সিরিয়াল ) { ; }

সিরিয়াল। println ( 'SD কার্ড শুরু করা হচ্ছে...' ) ;
যদি ( ! এসডি শুরু ( সিএস ) ) {
সিরিয়াল। println ( 'প্রারম্ভিক টি হলনা!' ) ;
ফিরে ;
}
সিরিয়াল। println ( 'শুরু করা হয়েছে।' ) ;

WriteFile ( '/test.txt' , 'Linuxhint.com' ) ;
ফাইল পড়া ( '/test.txt' ) ;
}

অকার্যকর লুপ ( ) {

}

4.1। কোড ব্যাখ্যা

আরও ভালোভাবে বোঝার জন্য, আমরা এই কোডটিকে সাবপার্টে ভাগ করব।

সূচনা এবং সেটআপ: প্রথমত, কোডটি এসডি কার্ড মডিউল সম্পর্কিত কিছু গুরুত্বপূর্ণ লাইব্রেরি অন্তর্ভুক্ত করে শুরু হয়েছিল। SD কার্ডের সাথে যোগাযোগের জন্য SPI.h লাইব্রেরি এবং SD কার্ড অপারেশন পরিচালনার জন্য SD.h যোগ করা হয়েছে৷ পরবর্তী, এটি একটি বিশ্ব পরিবর্তনশীল সংজ্ঞায়িত করে আমার কাগজপত্র ফাইল অপারেশন পরিচালনার জন্য টাইপ ফাইল। CS ধ্রুবকটি পিন 5 এ সেট করা হয়েছে, যা SD কার্ডের জন্য চিপ সিলেক্ট (CS) পিন হিসাবে ব্যবহার করা হবে৷

সেটআপ() ফাংশন: সেটআপ ফাংশনের ভিতরে, সিরিয়াল যোগাযোগ শুরু হয়। এর পরে, আমরা SD.begin(CS) ফাংশন ব্যবহার করে SD কার্ড মডিউলটি শুরু করেছি। আরও, আমরা একটি টেক্সট ফাইলে পাঠ্য পড়া এবং লেখার জন্য দুটি ভিন্ন ফাংশন সংজ্ঞায়িত করেছি।

এসডি কার্ডে লেখা: WriteFile() ফাংশন SD.open(path, FILE_WRITE) ব্যবহার করে লেখার জন্য test.txt ফাইলটি খোলে। এর পরে, এটি myFile.println(message) ব্যবহার করে ফাইলটিতে Linuxhint.com স্ট্রিং লিখে।

এসডি কার্ড থেকে পড়া: ফাইলের বিষয়বস্তু পড়ার জন্য, আমরা ReadFile() ফাংশন ব্যবহার করেছি। সফলভাবে পড়া হলে, ডেটা Arduino সিরিয়াল পোর্টে পাঠানো হবে এবং Arduino IDE সিরিয়াল মনিটরে প্রদর্শিত হবে।

5. আউটপুট

আউটপুটে, আপনি একই স্ট্রিং দেখতে পাবেন যা আমরা Arduino IDE কোডের ভিতরে সংজ্ঞায়িত করেছি আপনার Arduino IDE সিরিয়াল মনিটরে প্রদর্শিত হয়।

6. ESP32 ব্যবহার করে মাইক্রোএসডি কার্ডে বিভিন্ন ফাংশন সম্পাদন করা

আমরা Arduino IDE কোডের মাধ্যমে সরাসরি MicroSD কার্ডে ডিরেক্টরি তৈরি, অপসারণ বা যোগ করার মতো বিভিন্ন ক্রিয়াকলাপ সম্পাদন করতে পারি।

6.1। মাইক্রোএসডি কার্ডে ডিরেক্টরি তৈরি করা

নীচের কোডটি মাইক্রোএসডি কার্ডের ভিতরে একটি নতুন ডিরেক্টরি তৈরি করবে। এটি নামক একটি ফাংশন সংজ্ঞায়িত করে createDir এটি একটি ফাইল সিস্টেম অবজেক্ট (fs::FS) এবং ইনপুট হিসাবে একটি পাথ নেয়। এই ফাংশনটি নির্দিষ্ট পথের সাথে একটি ডিরেক্টরি তৈরি করার চেষ্টা করে এবং সাফল্য বা ব্যর্থতা নির্দেশ করে বার্তাগুলি প্রিন্ট করে।

# 'FS.h' অন্তর্ভুক্ত করুন

# 'SD.h' অন্তর্ভুক্ত করুন

# 'SPI.h' অন্তর্ভুক্ত করুন

অকার্যকর createDir ( fs :: এফএস এবং fs , const চর * পথ ) {

সিরিয়াল। printf ( 'ডির তৈরি করা হচ্ছে: %s \n ' , পথ ) ;

যদি ( fs mkdir ( পথ ) ) {

সিরিয়াল। println ( 'দির তৈরি' ) ;

} অন্য {

সিরিয়াল। println ( 'mkdir ব্যর্থ হয়েছে' ) ;

}

}

অকার্যকর সেটআপ ( ) {



সিরিয়াল। শুরু ( 115200 ) ;

// SD কার্ড চালু করুন

যদি ( ! এসডি শুরু ( ) ) {

সিরিয়াল। println ( 'কার্ড মাউন্ট ব্যর্থ হয়েছে' ) ;

ফিরে ;

}

// 'mydir' নামে একটি ডিরেক্টরি তৈরি করুন

createDir ( এসডি , '/mydir' ) ;

}

অকার্যকর লুপ ( ) {



}

আউটপুটে, আপনি দেখতে পাবেন একটি নতুন ডিরেক্টরি তৈরি হয়েছে /মাইডির নাম

6.2। মাইক্রোএসডি কার্ডে তালিকাভুক্ত ডিরেক্টরি

নীচের কোডে, আমরা মাইক্রোএসডি কার্ডের ভিতরে উপস্থিত সমস্ত ডিরেক্টরির তালিকা করতে যাচ্ছি। দ্য listDir ফাংশন পুনরাবৃত্তিমূলকভাবে একটি SD কার্ডে একটি ডিরেক্টরির বিষয়বস্তু তালিকাভুক্ত করে। এটি উভয় ডিরেক্টরি ('DIR' এর সাথে উপসর্গযুক্ত) এবং ফাইলগুলি ('FILE' এর সাথে উপসর্গযুক্ত), তাদের নাম এবং আকার সহ তথ্য মুদ্রণ করে।

# 'FS.h' অন্তর্ভুক্ত করুন
# 'SD.h' অন্তর্ভুক্ত করুন
# 'SPI.h' অন্তর্ভুক্ত করুন

অকার্যকর listDir ( fs :: এফএস এবং fs , const চর * dirname , uint8_t স্তর ) {
সিরিয়াল। printf ( 'তালিকা নির্দেশিকা: %s \n ' , dirname ) ;
ফাইল রুট = fs খোলা ( dirname ) ;
যদি ( ! মূল ) {
সিরিয়াল। println ( 'ডিরেক্টরী খুলতে ব্যর্থ হয়েছে' ) ;
ফিরে ;
}
যদি ( ! মূল isDirectory ( ) ) {
সিরিয়াল। println ( 'একটি ডিরেক্টরি নয়' ) ;
ফিরে ;
}
ফাইল ফাইল = মূল openNextFile ( ) ;
যখন ( ফাইল ) {
যদি ( ফাইল isDirectory ( ) ) {
সিরিয়াল। ছাপা ( ' আপনি : ' ) ;
সিরিয়াল। println ( ফাইল নাম ( ) ) ;
যদি ( স্তর ) {
listDir ( fs , ফাইল নাম ( ) , স্তর - 1 ) ;
}
} অন্য {
সিরিয়াল। ছাপা ( 'ফাইল:' ) ;
সিরিয়াল। ছাপা ( ফাইল নাম ( ) ) ;
সিরিয়াল। ছাপা ( 'আকার:' ) ;
সিরিয়াল। println ( ফাইল আকার ( ) ) ;
}
ফাইল = মূল openNextFile ( ) ;
}
}

অকার্যকর সেটআপ ( ) {
সিরিয়াল। শুরু ( 115200 ) ;
যদি ( ! এসডি শুরু ( ) ) {
সিরিয়াল। println ( 'কার্ড মাউন্ট ব্যর্থ হয়েছে' ) ;
ফিরে ;
}
listDir ( এসডি , '/' , 0 ) ;
}

অকার্যকর লুপ ( ) {

}

আউটপুটে, আপনি দুটি ভিন্ন ফাইল দেখতে পারেন। একটি হল একটি পাঠ্য ফাইল এবং অন্যটি একটি ডিরেক্টরি যা আমরা পূর্ববর্তী কোডের ভিতরে তৈরি করেছি।

6.3। ডিরেক্টরি অপসারণ

এখন আমরা পূর্বে তৈরি করা ডিরেক্টরি এবং টেক্সট ফাইলগুলি সরিয়ে ফেলব। যে জন্য আমরা ব্যবহার করতে যাচ্ছে রিমুভ ডাইর ফাংশন, এটি পাথ দ্বারা নির্দিষ্ট একটি ডিরেক্টরি অপসারণ করার চেষ্টা করবে। সফল হলে, এটি প্রিন্ট করে দির সরিয়ে দিল ; অন্যথায়, এটি প্রিন্ট করে rmdir ব্যর্থ হয়েছে .

# 'FS.h' অন্তর্ভুক্ত করুন
# 'SD.h' অন্তর্ভুক্ত করুন
# 'SPI.h' অন্তর্ভুক্ত করুন

অকার্যকর রিমুভ ডাইর ( fs :: এফএস এবং fs , const চর * পথ ) {
সিরিয়াল। printf ( 'ডির সরানো হচ্ছে: %s \n ' , পথ ) ;
যদি ( fs rm হয় ( পথ ) ) {
সিরিয়াল। println ( 'ডির সরানো হয়েছে' ) ;
} অন্য {
সিরিয়াল। println ( 'rmdir ব্যর্থ হয়েছে' ) ;
}
}

অকার্যকর সেটআপ ( ) {
সিরিয়াল। শুরু ( 115200 ) ;

যদি ( ! এসডি শুরু ( ) ) {
সিরিয়াল। println ( 'কার্ড মাউন্ট ব্যর্থ হয়েছে' ) ;
ফিরে ;
}


}

অকার্যকর লুপ ( ) {

}

6.4। মাইক্রোএসডি কার্ডের ধরন পান

মাইক্রোএসডি কার্ড বা এস নিরাপদ ডি আইজিটাল কার্ডটি মূলত এসডি কার্ড অ্যাসোসিয়েশন দ্বারা ডিজাইন করা হয়েছিল এবং স্মার্টফোন এবং ক্যামেরার মতো পোর্টেবল ডিভাইসে ব্যবহারের জন্য ডিজাইন করা হয়েছিল। এসডি কার্ডে প্রধানত চার ধরনের পরিবার থাকে:

  • SDSC (স্ট্যান্ডার্ড ক্যাপাসিটি SD): এই কার্ডগুলি 2GB স্টোরেজ ক্ষমতার একটি পরিমিত পরিসর অফার করে এবং FAT-12 এবং FAT-16 ফাইল সিস্টেম ব্যবহার করে৷
  • SDHC (উচ্চ ক্ষমতা SD): এই কার্ডগুলি 2GB থেকে 32GB পর্যন্ত এবং FAT-32 ফাইল সিস্টেম ব্যবহার করে৷
  • SDXC (বর্ধিত ক্ষমতা SD): এই কার্ডগুলি exFAT ফাইল সিস্টেম ব্যবহার করে এবং 32GB থেকে শুরু করে 2TB পর্যন্ত।
  • SDIO: SDIO কার্ডগুলি INPUT/OUTPUT ফাংশনগুলির সাথে ডেটা স্টোরেজকে একত্রিত করে একটি দ্বৈত উদ্দেশ্য পরিবেশন করে৷

আপনার কার্ডের ধরন পরীক্ষা করতে, নীচের কোডটি চালান:

# 'FS.h' অন্তর্ভুক্ত করুন
# 'SD.h' অন্তর্ভুক্ত করুন
# 'SPI.h' অন্তর্ভুক্ত করুন

অকার্যকর সেটআপ ( ) {
সিরিয়াল। শুরু ( 115200 ) ;

যদি ( ! এসডি শুরু ( ) ) {
সিরিয়াল। println ( 'কার্ড মাউন্ট ব্যর্থ হয়েছে' ) ;
ফিরে ;
}

uint8_t কার্ড এর ধরন = এসডি কার্ড এর ধরন ( ) ;
যদি ( কার্ড এর ধরন == CARD_NONE ) {
সিরিয়াল। println ( 'কোন SD কার্ড সংযুক্ত নেই' ) ;
ফিরে ;
}

সিরিয়াল। ছাপা ( 'SD কার্ডের ধরন:' ) ;
যদি ( কার্ড এর ধরন == CARD_MMC ) {
সিরিয়াল। println ( 'এমএমসি' ) ;
} অন্য যদি ( কার্ড এর ধরন == CARD_SD ) {
সিরিয়াল। println ( 'SDSC' ) ;
} অন্য যদি ( কার্ড এর ধরন == CARD_SDHC ) {
সিরিয়াল। println ( 'SDHC' ) ;
} অন্য {
সিরিয়াল। println ( 'অজানা' ) ;
}

uint64_t কার্ডের আকার = এসডি কার্ডের আকার ( ) / ( 1024 * 1024 ) ;
সিরিয়াল। printf ( 'SD কার্ডের আকার: %llumb \n ' , কার্ডের আকার ) ;
}

অকার্যকর লুপ ( ) {
}

আমার কাছে একটি 32GB কার্ড আছে, আপনি দেখতে পাচ্ছেন যে এটি সীমার মধ্যে রয়েছে এসডিএইচসি তাস.

6.5। মাইক্রোএসডি কার্ড সাইজ পান

আপনি আপনার ESP32 বোর্ডে নীচের কোড আপলোড করে SD কার্ডের আকারও পেতে পারেন।

# 'FS.h' অন্তর্ভুক্ত করুন
# 'SD.h' অন্তর্ভুক্ত করুন
# 'SPI.h' অন্তর্ভুক্ত করুন

অকার্যকর সেটআপ ( ) {
সিরিয়াল। শুরু ( 115200 ) ;

যদি ( ! এসডি শুরু ( ) ) {
সিরিয়াল। println ( 'কার্ড মাউন্ট ব্যর্থ হয়েছে' ) ;
ফিরে ;
}

uint8_t কার্ড এর ধরন = এসডি কার্ড এর ধরন ( ) ;
যদি ( কার্ড এর ধরন == CARD_NONE ) {
সিরিয়াল। println ( 'কোন SD কার্ড সংযুক্ত নেই' ) ;
ফিরে ;
}

uint64_t কার্ডের আকার = এসডি কার্ডের আকার ( ) / ( 1024 * 1024 ) ;
সিরিয়াল। printf ( 'SD কার্ডের আকার: %llumb \n ' , কার্ডের আকার ) ;

// অন্যান্য ফাংশন (listDir, createDir, removeDir, ইত্যাদি) এখানে কল করা যেতে পারে
}

অকার্যকর লুপ ( ) {

}

আউটপুট থেকে, আপনি দেখতে পাচ্ছেন আমার কাছে প্রায় 30GB এর একটি SD কার্ড আছে।

উপসংহার

একটি মাইক্রোএসডি কার্ড মডিউল ESP32 বোর্ড ব্যবহার করে SD কার্ড থেকে ডেটা পড়তে এবং লিখতে ব্যবহৃত হয়। মাইক্রোএসডি কার্ড মডিউল এসপিআই ইন্টারফেস ব্যবহার করে মাইক্রোকন্ট্রোলারের সাথে যোগাযোগ করে। সুতরাং আপনি হয় SPI লাইব্রেরি ব্যবহার করতে পারেন বা কোডের ভিতরে আপনার নিজস্ব SPI পিনগুলি সংজ্ঞায়িত করতে পারেন। একবার সংযুক্ত হয়ে গেলে, আপনি একটি পাঠ্য ফাইল লিখতে পড়তে বা আপনার SD কার্ডে নতুন ডিরেক্টরি তৈরি করতে পারেন৷