ESP32 C3 Super Mini SD 카드

마이크로 SD 카드를 사용하여 ESP32 C3 Super Mini로 IoT 프로젝트를 위한 데이터를 저장하고 검색하는 방법을 배웁니다. 이 튜토리얼은 SD 카드 모듈 배선부터 파일 읽기, 쓰기 및 관리까지 모든 것을 다룹니다.

이 가이드에서 배우게 될 내용:

ESP32 C3 Super Mini - SD 카드

필요한 하드웨어

1×ESP32 C3 Super Mini 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×마이크로 SD 카드 아마존
1×마이크로 SD 카드 모듈 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×브레드보드 쿠팡 | 아마존
1×(옵션) MicroSD to SD 메모리 카드 어댑터 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

마이크로 SD 카드 모듈 소개

마이크로 SD 카드 모듈은 ESP32 C3 Super Mini가 SPI 통신을 사용하여 마이크로 SD 카드에서 데이터를 읽고 쓸 수 있게 해주는 인터페이스 보드입니다.

주요 특징 및 사양:

  • 데이터 전송을 위한 SPI 통신 프로토콜 사용
  • FAT16 또는 FAT32로 포맷된 마이크로 SD 카드 지원
  • 동작 전압: 3.3V에서 5V
  • ESP32 C3 Super Mini와 저장 매체 사이의 브리지 역할
  • 데이터 로깅 프로젝트 및 센서 판독값 저장에 완벽함
  • 간단한 배선으로 초보자 친화적

사용 이유:

  • ESP32 프로젝트에 확장 가능한 저장소 추가
  • 장시간에 걸쳐 센서 데이터 기록
  • 구성 파일 또는 웹 콘텐츠 저장
  • 독립 실행형 IoT 응용에 훌륭함

핀아웃

마이크로 SD 카드 모듈은 통신을 위해 6핀 SPI 인터페이스를 사용합니다.

micro SD 카드 module 사용법 핀아웃

핀 연결:

  • VCC: ESP32 C3 Super Mini 5V pin에 연결하여 전원 공급
  • GND: ESP32 C3 Super Mini 접지 핀에 연결
  • MISO: Master In Slave Out - SD 카드의 데이터에 대해 ESP32의 MISO 핀에 연결
  • MOSI: Master Out Slave In - SD 카드에 데이터에 대해 ESP32의 MOSI 핀에 연결
  • SCK: Serial Clock - 타이밍 동기화에 대해 ESP32의 SCK 핀에 연결
  • SS: Slave Select - 코드에서 정의한 디지털 핀 (일반적으로 CS 핀)에 연결

준비

시작하기 전에 마이크로 SD 카드를 올바르게 준비합니다:

  • 마이크로 SD 카드를 USB 3.0 SD 카드 리더에 삽입합니다
  • 리더를 PC에 연결합니다
  • 마이크로 SD 카드를 FAT16 또는 FAT32로 포맷합니다 (서식 지정 지침은 온라인에서 검색)
  • 포맷된 후 카드를 안전하게 꺼냅니다
  • 포맷된 카드를 마이크로 SD 카드 모듈에 삽입합니다

배선 다이어그램

아래 다이어그램에 따라 ESP32 C3 Super Mini를 마이크로 SD 카드 모듈에 연결합니다.

ESP32 C3 Super Mini micro SD 카드 module 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

배선 연결:

Micro SD Module Pin ESP32 C3 Super Mini Pin
VCC 5V
GND GND
MISO GPIO5 (MISO)
MOSI GPIO6 (MOSI)
SCK GPIO4 (SCK)
SS GPIO7 (CS)

안전 주의:

  • 전원을 켜기 전에 모든 연결을 다시 확인합니다
  • 코드를 실행하기 전에 SD 카드가 제대로 삽입되어 있는지 확인합니다
  • 읽기/쓰기 오류를 방지하기 위해 고품질 SD 카드를 사용합니다

ESP32 C3 Super Mini - 마이크로 SD 카드의 파일을 열고 없으면 만드는 방법

코드 개요

이 예제는 SD 카드를 초기화하고 파일을 열고 없으면 자동으로 생성하는 방법을 보여줍니다.

코드가 하는 일:

  • SPI 통신을 사용하여 SD 카드 모듈 초기화
  • 카드에 "esp32.txt"라는 파일이 존재하는지 확인
  • 파일을 찾을 수 없으면 자동으로 생성
  • Serial Monitor에 파일 상태 보고
  • 기본 SD 카드 파일 시스템 작업 보여주기

ESP32 C3 Super Mini 코드

/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 // The ESP32 C3 SuperMini pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(115200); 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...")); // create a new file by opening a new file and immediately close it myFile = SD.open("/esp32.txt", FILE_WRITE); myFile.close(); } // recheck if file is created or not 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() { }

빠른 단계

  • ESP32 C3 Mini가 처음이신가요? 개발 환경을 설정하려면 먼저 우리의 ESP32 C3 슈퍼 미니 - 시작하기 튜토리얼을 완료합니다.
  • SD 카드 준비: 포맷된 마이크로 SD 카드를 SD 카드 모듈에 삽입합니다
  • 회로 배선: 위의 배선 다이어그램에 따라 마이크로 SD 카드 모듈을 ESP32 C3 Super Mini에 연결합니다
  • ESP32 연결: USB Type-C 케이블을 사용하여 ESP32 C3 Super Mini를 PC에 연결합니다
  • Arduino IDE 열기: 컴퓨터에서 Arduino IDE 시작
  • 보드 선택: 보드 메뉴에서 ESP32 C3 Super Mini 선택
  • 포트 선택: ESP32에 대한 올바른 COM 포트 선택
  • Serial Monitor 열기: 업로드하기 전에 Serial Monitor를 엽니다 (Tools > Serial Monitor)
  • 코드 복사: 위에서 제공한 코드 복사
  • 코드 붙여넣기: 새 Arduino IDE 스케치에 붙여넣기
  • 업로드: Upload 버튼을 클릭하여 코드를 ESP32 C3 Super Mini에 플래시합니다
  • 결과 보기: Serial Monitor에서 파일 생성 상태 확인
  • 프로 팁: Serial Monitor를 항상 업로드 전에 열어 첫 실행부터 모든 초기화 메시지를 확인합니다

Serial Monitor 출력

첫 실행 (파일이 아직 없음):

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-04-15 10:23:45] SD CARD INITIALIZED. [2026-04-15 10:23:46] esp32.txt doesn't exist. Creating esp32.txt file... [2026-04-15 10:23:46] esp32.txt exists on SD Card.
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

후속 실행 (파일이 이미 존재):

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-04-15 10:25:12] SD CARD INITIALIZED. [2026-04-15 10:25:12] esp32.txt exists on SD Card.
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

※ 주의:

Serial Monitor를 열기 전에 업로드를 수행한 첫 실행에서 Serial Monitor 출력을 보지 못할 수 있습니다.

PC에서 확인:

  • 마이크로 SD 카드를 모듈에서 제거합니다
  • USB SD 카드 리더에 삽입합니다
  • 리더를 PC에 연결합니다
  • SD 카드 폴더를 열고 esp32.txt 파일이 생성되었는지 확인합니다

ESP32 C3 Super Mini - 마이크로 SD 카드의 파일에서/에서 데이터를 쓰고 읽는 방법

코드 개요

이 예제는 파일에 텍스트 데이터를 쓰고 문자별로 다시 읽는 방법을 보여줍니다.

코드가 하는 일:

  • SD 카드에서 파일을 열거나 만듭니다
  • 파일에 두 줄의 텍스트를 씁니다
  • 전체 파일 내용을 문자별로 읽습니다
  • Serial Monitor에 파일 내용을 표시합니다
  • ESP32 C3 Super Mini를 사용한 기본 파일 I/O 작업 보여주기
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 // The ESP32 C3 SuperMini pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(115200); 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.")); // open file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } // open file for reading myFile = SD.open("/esp32.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }

Serial Monitor 출력

예상 출력:

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-04-15 11:30:22] SD CARD INITIALIZED. [2026-04-15 11:30:22] Created by newbiely.com [2026-04-15 11:30:22] Learn ESP32 C3 Super Mini and SD Card
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

※ 주의:

데이터는 기본적으로 파일의 끝에 추가됩니다. 위의 코드로 ESP32 C3 Super Mini를 재부팅하면 텍스트가 파일에 다시 추가됩니다 ⇒ Serial Monitor에 다음과 같은 더 많은 라인이 표시됩니다:

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-04-15 11:32:45] SD CARD INITIALIZED. [2026-04-15 11:32:45] Created by newbiely.com [2026-04-15 11:32:45] Learn ESP32 C3 Super Mini and SD Card [2026-04-15 11:32:45] Created by newbiely.com [2026-04-15 11:32:45] Learn ESP32 C3 Super Mini and SD Card
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

파일 확인:

  • 마이크로 SD 카드를 모듈에서 안전하게 제거합니다
  • USB SD 카드 리더에 삽입합니다
  • PC에 연결하고 파일을 열어 내용을 봅니다

ESP32 C3 Super Mini - 마이크로 SD 카드의 파일을 라인별로 읽는 방법

코드 개요

이 예제는 더 나은 데이터 구성을 위해 문자별 대신 라인별로 파일 내용을 읽는 방법을 보여줍니다.

코드가 하는 일:

  • SD 카드의 기존 파일을 엽니다
  • ReadStringUntil()을 사용하여 파일을 라인별로 읽습니다
  • 쉬운 추적을 위해 각 라인에 번호 지정
  • Serial Monitor에 형식이 지정된 출력 표시
  • 구조화된 데이터 또는 로그 읽기에 유용
/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 // The ESP32 C3 SuperMini pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(115200); 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.")); // open file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } // open file for reading myFile = SD.open("/esp32.txt", FILE_READ); if (myFile) { int line_count = 0; while (myFile.available()) { char line[100]; // maximum is 100 characters, change it if needed int line_length = myFile.readBytesUntil('\n', line, 100); // read line-by-line from Micro SD Card line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // print the character to Serial Monitor // \n character is escaped by readBytesUntil function Serial.write('\n'); // print a new line charactor } myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }

Serial Monitor 출력

예상 출력:

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-04-15 14:15:33] SD CARD INITIALIZED. [2026-04-15 14:15:33] Line 1: Created by newbiely.com [2026-04-15 14:15:33] Line 2: Learn ESP32 C3 Super Mini and SD Card
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

※ 주의:

파일의 내용이 이전에 삭제되지 않은 경우 Serial Monitor에서 더 많은 라인이 표시될 수 있습니다.

ESP32 C3 Super Mini - 마이크로 SD 카드의 파일을 덮어쓰는 방법

코드 개요

파일 내용을 추가하는 대신 바꾸는 방법을 배웁니다.

코드가 하는 일:

  • 존재하는 경우 기존 파일을 삭제합니다
  • 같은 이름의 새 파일 만들기
  • 파일에 새 콘텐츠 쓰기
  • 오래된 추가 콘텐츠 없이 깨끗한 데이터 보장
  • ESP32 C3 Super Mini에 대한 파일 교체 기술 보여주기

기본적으로 내용은 파일의 끝에 추가됩니다. 파일을 덮어쓰는 가장 간단한 방법은 기존 파일을 삭제하고 같은 이름으로 새 파일을 만드는 것입니다.

/* * 이 ESP32 C3 Super Mini 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP32 C3 Super Mini 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp32-c3/esp32-c3-super-mini-sd-card */ #include <SD.h> #define PIN_SPI_CS 4 // The ESP32 C3 SuperMini pin connected to the CS pin of SD card module File myFile; void setup() { Serial.begin(115200); 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"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("/esp32.txt", FILE_WRITE); if (myFile) { myFile.println("Created by esp32io.com"); // write a line to esp32.txt myFile.println("Learn ESP32 and SD Card"); // write another line to esp32.txt myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } // open file for reading myFile = SD.open("/esp32.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // read characters one by one from Micro SD Card Serial.print(ch); // print the character to Serial Monitor } myFile.close(); } else { Serial.print(F("SD Card: Issue encountered while attempting to open the file esp32.txt")); } } void loop() { }

Serial Monitor 출력

예상 출력:

Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
ESP32C3 Dev Module
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'ESP32C3 Dev Module' on 'COM15')
New Line
9600 baud
[2026-04-15 16:42:18] SD CARD INITIALIZED. [2026-04-15 16:42:18] Created by newbiely.com [2026-04-15 16:42:18] Learn ESP32 C3 Super Mini and SD Card
Ln 11, Col 1
ESP32C3 Dev Module on COM15
2

덮어쓰기 테스트:

  • ESP32 C3 Super Mini의 재설정 버튼을 누릅니다
  • Serial Monitor 출력 확인
  • 콘텐츠가 중복되지 않았는지 확인
  • 파일에는 한 세트의 라인만 포함되어야 합니다

PC에서 확인:

  • 마이크로 SD 카드를 모듈에서 제거합니다
  • USB SD 카드 리더에 삽입합니다
  • PC에 연결하고 파일을 엽니다
  • 콘텐츠가 예상 출력과 일치하는지 확인합니다

응용 아이디어

ESP32 C3 Super Mini를 SD 카드 모듈과 함께 사용하여 구축할 수 있는 실질적인 프로젝트:

  • 장기 기후 모니터링을 위한 온도 및 습도 데이터 로거 구축
  • WiFi 연결 없이 판독값을 저장하는 독립 실행형 센서 스테이션 만들기
  • 타임스탬프가 있는 위치 좌표를 기록하는 GPS 추적기 설계
  • 이벤트 로그를 저장하는 움직임 활성화 보안 카메라 만들기
  • 토양 습도 데이터를 기록하는 농업 모니터링 시스템 개발
  • 일일 사용 통계를 저장하는 전력 소비 미터 구축

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

아래 비디오에서 이 프로젝트의 시각적 안내를 확인하세요.

...VIDEO esp32-c3-super-mini/micro-sd-card.mp4

...VIDEO

도전 과제

이러한 진행형 도전 수정을 통해 기술을 테스트합니다:

  • 쉬움: 코드를 수정하여 사용자 정의 이름의 파일을 만들고 개인 메시지를 작성합니다
  • 쉬움: millis() 함수를 사용하여 각 데이터 라인에 타임스탬프 추가
  • 중간: 5초마다 타임스탐프와 함께 임의의 센서 값을 기록하는 프로그램 만들기
  • 중간: Serial Monitor 명령을 통해 파일을 읽고, 쓰고, 삭제할 수 있는 메뉴 시스템 구축
  • 고급: SD 카드 오버플로우를 방지하기 위해 마지막 100 항목만 유지하는 순환 로그 시스템 구현
  • 고급: 다양한 센서용 여러 파일이 있는 데이터 로거를 만들고 자동 파일 회전을 구현합니다

관련 튜토리얼