Search Code

Koyarwar ESP32 40/55 - Karantawa da rubuta zuwa Micro SD Card | SunFounder's ESP32 IoT Learning kit

Koyarwar ESP32 40/55 - Karantawa da rubuta zuwa Micro SD Card | SunFounder's ESP32 IoT Learning kit

A cikin wannan koyawa, za mu koyi yadda ake karantawa da rubutawa zuwa ƙaramin katin SD ta amfani da ESP32 da allon faɗaɗa na SunFounder ESP32. Wannan zai ba mu damar adana bayanai da kuma dawo da su daga baya, wanda yake da muhimmanci ga yawancin aikace-aikacen IoT. A ƙarshen wannan koyawa, za ku sami tsarin aiki wanda zai iya ƙirƙira, rubuta, da karanta fayiloli daga ƙaramin katin SD.

Don farawa, tabbatar da cewa ƙaramin katin SD ɗin ku an tsara shi daidai zuwa FAT32, domin wannan shine tsarin fayil ɗin da ake buƙata don ESP32 don yin hulɗa da katin. Za mu yi amfani da ɗakin karatu na SD_MMC, wanda ke sauƙaƙa tsarin samun damar fayiloli akan ƙaramin katin SD. Yana da muhimmanci a lura cewa mafi girman ƙarfin ƙaramin katin SD bai kamata ya wuce 32 GB ba.

Bayanin Kayan Aiki

Abubuwan farko a cikin wannan aikin sun haɗa da microcontroller na ESP32 da ƙaramin katin SD module. ESP32 microcontroller ne mai yawan amfani wanda ke da Wi-Fi da Bluetooth na ciki, wanda ya sa ya dace da aikace-aikacen IoT. Ƙaramin katin SD module yana ba da damar ESP32 ya karanta daga katin da rubuta zuwa gare shi, yana ba da damar adana bayanai don aikace-aikace daban-daban.

Ƙaramin katin SD yana aiki ta amfani da tsarin fayil don adana bayanai cikin tsari. Yana sadarwa da ESP32 ta hanyar SD_MMC interface, wanda ke ba da damar ingantaccen karantawa da rubuta fayiloli. Wannan tsarin za a iya amfani da shi don yin rijistar bayanai, adana hotuna, ko kowane aikace-aikace inda ake buƙatar dorewar bayanai.

Umarnin Haɗin Waya

ESP32-40-micro-sd-card-1

Don haɗa ƙaramin katin SD zuwa ESP32, bi waɗannan matakan:

Da farko, haɗa fil ɗin wutar lantarki da ƙasa. Haɗa fil ɗin VCC na ƙaramin katin SD module zuwa fil ɗin 3.3V akan ESP32, kuma haɗa fil ɗin GND zuwa ɗaya daga cikin fil ɗin GND akan ESP32. Na gaba, haɗa fil ɗin bayanai: haɗa fil ɗin CS (Chip Select) na ƙaramin katin SD module zuwa fil 5 akan ESP32, fil ɗin MOSI (Master Out Slave In) zuwa fil 23, fil ɗin MISO (Master In Slave Out) zuwa fil 19, da fil ɗin SCK (Serial Clock) zuwa fil 18. Tabbatar cewa waɗannan haɗin suna da aminci don guje wa matsalolin sadarwa.

Idan kuna amfani da wani allon faɗaɗa daban, lambobin fil ɗin na iya bambanta, don haka koma ga takaddun da suka shafi allon ku. Haɗin waya yana da muhimmanci don nasarar aikin karantawa da rubuta fayiloli zuwa ƙaramin katin SD.

Misalan Lamba & Bayani

Yanzu, bari mu duba manyan sassan lambar da ke hulɗa da ƙaramin katin SD. Saitin yana farawa da fara sadarwar serial da kuma duba ko ƙaramin katin SD an ɗora shi cikin nasara.

Serial.begin(115200); // Fara sadarwar serial
if (!SD_MMC.begin()) { // Duba ko an ɗora katin SD cikin nasara
  Serial.println("An kasa ɗora katin SD"); // Buga saƙon kuskure idan an kasa ɗora katin SD
  return;
}

A cikin wannan ɓangaren lamba, sadarwar serial an saita shi zuwa ƙimar baud 115200, wanda yake da muhimmanci don lura da fitarwa. Aikin SD_MMC.begin() yana ƙoƙarin ɗora katin SD; idan ya kasa, ana buga saƙon kuskure a kan serial monitor.

ɓangaren lamba na gaba yana ƙirƙirar sabon fayil akan ƙaramin katin SD kuma ya rubuta layin rubutu zuwa gare shi.

File file = SD_MMC.open("/test.txt", FILE_WRITE); 
if (!file) {
  Serial.println("An kasa buɗe fayil don rubutu"); // Buga saƙon kuskure idan an kasa buɗe fayil
  return;
}
if (file.println("Rubutun gwajin fayil")) { // Rubuta layin rubutu zuwa fayil
  Serial.println("Rubutun fayil ya yi nasara"); // Buga saƙon nasara idan aikin rubutu ya yi nasara
} else {
  Serial.println("Rubutun fayil ya kasa"); // Buga saƙon kuskure idan aikin rubutu ya kasa
}
file.close(); // Rufe fayil

Anan, fayil mai suna test.txt an buɗe shi a yanayin rubutu. Idan an buɗe fayil cikin nasara, yana rubuta layin rubutu kuma ya buga saƙon nasara. Idan aikin rubutu ya kasa, ana buga saƙon kuskure a maimakon haka. A ƙarshe, an rufe fayil don tabbatar da cewa an adana canje-canje.

Lambar kuma tana karanta fayiloli daga tushen directory na ƙaramin katin SD kuma tana buga sunayensu da girmansu.

File root = SD_MMC.open("/"); // Buɗe tushen directory na katin SD
while (File file = root.openNextFile()) { // Yi zagaye ta duk fayilolin a cikin tushen directory
  Serial.print(file.name()); // Buga sunan fayil
  Serial.print("\t");
  Serial.println(file.size()); // Buga girman fayil
  file.close(); // Rufe fayil
}

Wannan ɓangaren yana buɗe tushen directory kuma yana zagaye ta duk fayiloli, yana buga sunayensu da girmansu zuwa serial monitor. Wannan yana da amfani don tabbatar da cewa an rubuta bayanan cikin nasara da kuma ganin abubuwan da ke cikin katin SD.

Don ƙarin bayani, koma ga cikakken lambar da aka ɗora a ƙasan labarin.

Zanga-zanga / Abin da za ku Yi Tsammani

Bayan ɗora lambar da sake saita ESP32, ya kamata ku ga saƙonni a cikin serial monitor wanda ke nuna ko an ɗora katin SD cikin nasara da kuma ko ayyukan fayil sun yi nasara. Za ku kuma ga jerin fayilolin da aka samu a cikin tushen directory, wanda ke tabbatar da cewa an rubuta bayanan daidai (a cikin bidiyo a 13:45).

Matsalolin gama gari sun haɗa da tabbatar da cewa an tsara ƙaramin katin SD daidai kuma an haɗa shi, da kuma tabbatar da cewa serial monitor an saita shi zuwa ƙimar baud daidai. Idan wata matsala ta taso, sake duba haɗin waya da haɗin ku.

Lokutan Bidiyo

  • 00:00 Farawa
  • 1:45 Gabatarwa ga Ƙaramin Katin SD akan ESP32
  • 3:46 Shafin Takardu
  • 4:43 Lambar Arduino
  • 8:09 Zaɓin Allon ESP32 da tashar COM a cikin Arduino IDE
  • 9:51 Zanga-zangar Rubuta Ƙaramin Katin SD
  • 11:12 Duban fayilolin da aka rubuta akan PC

Hotuna

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
Harshe: 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

Abin da zaka iya bukata

Fayiloli📁

Babu fayiloli da ake da su.