ESP32 SD 카드
이 가이드에서는 ESP32와 함께 Micro SD 카드를 사용하는 방법을 탐구할 것입니다. 다음 주제를 자세히 살펴볼 것입니다:
ESP32를 사용하여 Micro SD 카드에 있는 파일을 여는 방법과 만약 해당 파일이 존재하지 않을 경우 새로 생성하는 방법.
ESP32를 사용하여 Micro SD 카드에 있는 파일에 데이터를 쓰는 방법.
ESP32를 사용하여 Micro SD 카드에 있는 파일을 문자 단위로 읽는 방법.
ESP32를 사용하여 Micro SD 카드에 있는 파일을 줄 단위로 읽는 방법.
ESP32를 사용하여 Micro SD 카드에 있는 기존 파일에 추가 내용을 추가하는 방법.
ESP32를 사용하여 Micro SD 카드에 있는 파일의 내용을 대체하는 방법.
1 | × | ESP32 ESP-WROOM-32 개발 모듈 | 쿠팡 | 아마존 | |
1 | × | USB 케이블 타입-C | 쿠팡 | 아마존 | |
1 | × | 마이크로 SD 카드 | 아마존 | |
1 | × | Micro SD Card Module | 쿠팡 | 아마존 | |
1 | × | 점퍼케이블 | 아마존 | |
1 | × | 브레드보드 | 쿠팡 | 아마존 | |
1 | × | (Optional) MicroSD to SD Memory Card Adapter | 아마존 | |
1 | × | (추천) ESP32용 스크루 터미널 확장 보드 | 쿠팡 | 아마존 | |
1 | × | (추천) ESP32용 전원 분배기 | 쿠팡 | 아마존 | |
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.
Micro SD 카드 모듈은 ESP32와 인터페이스할 수 있으며 Micro SD 카드를 장착할 수 있습니다. 다시 말해, Micro SD 카드 모듈은 ESP32와 Micro SD 카드 사이의 중간다리 입니다.
Micro SD 카드 모듈은 6개의 핀을 포함합니다:
VCC 핀: ESP32의 5V 핀에 연결하세요.
GND 핀: 이 핀을 ESP32의 GND에 연결하세요.
MISO 핀: (Master In Slave Out) 이 핀을 ESP32의 MISO 핀에 연결하세요.
MOSI 핀: (Master Out Slave In) 이 핀을 ESP32의 MOSI 핀에 연결하세요.
SCK 핀: 이 핀을 ESP32의 SCK 핀에 연결하세요.
SS 핀: (Slave Select) 이 핀을 ESP32 코드에서 SS 핀으로 지정된 핀에 연결하세요.
이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.
ESP32 및 다른 구성 요소에 전원을 공급하는 방법에 대해 잘 알지 못하는 경우, 다음 튜토리얼에서 안내를 찾을 수 있습니다: ESP32를 구동하는 방법.
※ 주의:
이더넷 실드나 마이크로 SD 카드 홀더가 있는 실드를 사용하는 경우, 마이크로 SD 카드 모듈을 사용할 필요가 없습니다. 그저 마이크로 SD 카드를 실드에 있는 마이크로 SD 카드 홀더에 삽입하기만 하면 됩니다.
#include <SD.h>
#define PIN_SPI_CS 5
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin(PIN_SPI_CS)) {
while (1) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
delay(1000);
}
}
Serial.println(F("SD CARD INITIALIZED."));
if (!SD.exists("/esp32.txt")) {
Serial.println(F("esp32.txt doesn't exist. Creating esp32.txt file..."));
myFile = SD.open("/esp32.txt", FILE_WRITE);
myFile.close();
}
if (SD.exists("/esp32.txt"))
Serial.println(F("esp32.txt exists on SD Card."));
else
Serial.println(F("esp32.txt doesn't exist on SD Card."));
}
void loop() {
}
PC에서 Arduino IDE를 엽니다.
올바른 ESP32 보드(예: ESP32 Dev Module)와 COM 포트를 선택합니다.
마이크로 SD 카드를 마이크로 SD 카드 모듈에 삽입합니다.
위의 배선도대로 마이크로 SD 카드 모듈과 ESP32 사이의 배선을 합니다.
USB 케이블을 통해 ESP32를 PC에 연결합니다.
Arduino IDE를 열고 올바른 보드와 포트를 선택합니다.
Arduino IDE에서 시리얼을 엽니다.
위의 코드를 복사하여 Arduino IDE에 붙여넣습니다.
Arduino IDE에서 Upload 버튼을 클릭하여 코드를 ESP32로 업로드합니다.
첫 실행에 대한 시리얼 모니터의 결과
SD CARD INITIALIZED.
esp32.txt doesn't exist. Creating esp32.txt file...
esp32.txt exists on SD Card.
SD CARD INITIALIZED.
esp32.txt exists on SD Card.
※ 주의:
시리얼 모니터를 열기 전에 첫 번째 업로드를 실행할 때 첫 실행에서 시리얼 모니터의 출력을 볼 수 없을 수 있습니다.
아래 코드는 다음과 같은 기능을 합니다:
#include <SD.h>
#define PIN_SPI_CS 5
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin(PIN_SPI_CS)) {
while (1) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
delay(1000);
}
}
Serial.println(F("SD CARD INITIALIZED."));
myFile = SD.open("/esp32.txt", FILE_WRITE);
if (myFile) {
myFile.println("Created by esp32io.com");
myFile.println("Learn ESP32 and SD Card");
myFile.close();
} else {
Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt"));
}
myFile = SD.open("/esp32.txt", FILE_READ);
if (myFile) {
while (myFile.available()) {
char ch = myFile.read();
Serial.print(ch);
}
myFile.close();
} else {
Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt"));
}
}
void loop() {
}
시리얼 모니터가 파일의 내용을 보여주었습니다.
Created by newbiely.kr
Learn ESP32 and SD Card
※ 주의:
기본적으로 데이터는 파일 끝에 추가됩니다. 위의 코드로 ESP32를 재부팅하면 텍스트가 파일에 다시 추가됩니다 ⇒ 시리얼 모니터는 아래와 같이 더 많은 줄을 표시합니다:
newbiely.kr에 의해 생성됨
ESP32 및 SD 카드 배우기
newbiely.kr에 의해 생성됨
ESP32 및 SD 카드 배우기
모듈에서 마이크로 SD 카드를 분리하고 PC에서 내용을 확인할 수도 있습니다 (USB SD 카드 리더기가 필요합니다).
#include <SD.h>
#define PIN_SPI_CS 5
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin(PIN_SPI_CS)) {
while (1) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
delay(1000);
}
}
Serial.println(F("SD CARD INITIALIZED."));
myFile = SD.open("/esp32.txt", FILE_WRITE);
if (myFile) {
myFile.println("Created by esp32io.com");
myFile.println("Learn ESP32 and SD Card");
myFile.close();
} else {
Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt"));
}
myFile = SD.open("/esp32.txt", FILE_READ);
if (myFile) {
int line_count = 0;
while (myFile.available()) {
char line[100];
int line_length = myFile.readBytesUntil('\n', line, 100);
line_count++;
Serial.print(F("Line "));
Serial.print(line_count);
Serial.print(F(": "));
Serial.write(line, line_length);
Serial.write('\n');
}
myFile.close();
} else {
Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt"));
}
}
void loop() {
}
시리얼 모니터의 결과
SD CARD INITIALIZED.
Line 1: Created by newbiely.kr
Line 2: Learn ESP32 and SD Card
※ 주의:
파일의 내용을 이전에 삭제하지 않았다면 시리얼 모니터에서 더 많은 줄을 볼 수 있습니다.
기본적으로, 내용은 파일의 맨 끝에 추가됩니다. 파일을 덮어쓰는 가장 간단한 방법은: 기존 파일을 삭제하고 같은 이름의 새 파일을 생성하는 것입니다.
#include <SD.h>
#define PIN_SPI_CS 5
File myFile;
void setup() {
Serial.begin(9600);
if (!SD.begin(PIN_SPI_CS)) {
while (1) {
Serial.println(F("SD CARD FAILED, OR NOT PRESENT!"));
delay(1000);
}
}
Serial.println(F("SD CARD INITIALIZED."));
SD.remove("/esp32.txt");
myFile = SD.open("/esp32.txt", FILE_WRITE);
if (myFile) {
myFile.println("Created by esp32io.com");
myFile.println("Learn ESP32 and SD Card");
myFile.close();
} else {
Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt"));
}
myFile = SD.open("/esp32.txt", FILE_READ);
if (myFile) {
while (myFile.available()) {
char ch = myFile.read();
Serial.print(ch);
}
myFile.close();
} else {
Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt"));
}
}
void loop() {
}
시리얼 모니터에서의 결과
SD CARD INITIALIZED.
Created by newbiely.kr
Learn ESP32 and SD Card
모듈에서 마이크로 SD 카드를 분리한 다음, PC에서 내용을 확인하기 위해 열 수도 있습니다(USB SD 카드 리더기가 필요합니다).
비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.