ESP8266 - 마이크로 SD 카드 | ESP8266 - Micro SD Card

이 튜토리얼은 ESP8266과 함께 마이크로 SD 카드를 사용하는 방법을 가르쳐드립니다. 구체적으로, 우리는 다음을 배울 것입니다:

ESP8266 NodeMCU Micro SD Card

준비물

1×ESP8266 NodeMCU Amazon
1×Micro USB Cable Amazon
1×Micro SD Card Amazon
1×Micro SD Card Module 쿠팡 | Amazon
1×Jumper Wires Amazon
1×USB 3.0 SD Card Reader Amazon
1×(Optional) 5V Power Adapter for ESP8266 Amazon
1×(Optional) ESP8266 Screw Terminal Adapter Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

마이크로 SD 카드 모듈에 대하여

Micro SD 카드 모듈은 ESP8266과 Micro SD 카드 사이의 연결 고리입니다. 이 모듈은 ESP8266과 연결을 구축할 수 있으며 Micro SD 카드를 장착하는 데 사용할 수 있습니다. 즉, 두 장치 사이의 다리 역할을 합니다.

마이크로 SD 카드 모듈 핀배열

Micro SD Card Module pinout

Micro SD 카드 모듈에는 6개의 핀이 있습니다:

  • VCC 핀: 아두이노의 5V 핀에 연결해야 합니다.
  • GND 핀: 아두이노의 GND에 연결해야 합니다.
  • MISO 핀: (마스터 인 슬레이브 아웃) 아두이노의 MOSI 핀에 연결해야 합니다.
  • MOSI 핀: (마스터 아웃 슬레이브 인) 아두이노의 MISO 핀에 연결해야 합니다.
  • SCK 핀: 아두이노의 SCK 핀에 연결해야 합니다.
  • SS 핀: (슬레이브 선택) ESP8266 코드에서 SS 핀으로 지정된 핀에 연결해야 합니다.

준비

Micro SD 카드가 FAT16 또는 FAT32로 포맷되었는지 확인하세요 (자세한 정보는 온라인에서 검색할 수 있습니다).

선연결

ESP8266 NodeMCU Micro SD Card Module wiring diagram

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

ESP8266의 핀 배치ESP8266 및 다른 구성 요소에 전원을 공급하는 방법에 대해 더 많이 보십시오.

ESP8266 - 마이크로 SD 카드에서 파일을 여는 방법 및 존재하지 않는 경우 생성하기

ESP8266 코드

사용 방법

Arduino IDE에서 ESP8266을 시작하는 방법은 다음과 같습니다:

  • ESP8266을 처음 사용하는 경우 Arduino IDE에서 ESP8266 환경 설정하는 방법 튜토리얼을 확인하세요.
  • 다이어그램에 표시된 대로 구성 요소를 연결하세요.
  • USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
  • 컴퓨터에서 Arduino IDE를 엽니다.
  • 올바른 ESP8266 보드(예: NodeMCU 1.0 (ESP-12E Module))와 해당 COM 포트를 선택하세요.
  • Micro SD 카드를 Micro SD 카드 모듈에 삽입하세요.
  • 배선도에 따라 Micro SD 카드 모듈과 ESP8266 사이의 연결을 만드세요.
  • USB 케이블로 ESP8266을 PC에 연결하세요.
  • Arduino IDE를 열고 적절한 보드와 포트를 선택하세요.
  • Arduino IDE에서 시리얼 모니터를 엽니다.
  • 다음 코드를 Arduino IDE에 복사하여 붙여넣으세요.
/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // 더 이상 아무것도 하지 않음: } Serial.println(F("SD CARD INITIALIZED.")); if (!SD.exists("esp8266.txt")) { Serial.println(F("esp8266.txt 파일이 없습니다. esp8266.txt 파일을 생성합니다...")); // 새 파일을 만들기 위해 새 파일을 열고 즉시 닫음 myFile = SD.open("esp8266.txt", FILE_WRITE); myFile.close(); } // 파일이 생성되었는지 다시 확인 if (SD.exists("esp8266.txt")) Serial.println(F("esp8266.txt 파일이 SD 카드에 존재합니다.")); else Serial.println(F("esp8266.txt 파일이 SD 카드에 존재하지 않습니다.")); } void loop() { }
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 컴파일하고 ESP8266에 업로드합니다.
  • 시리얼 모니터에서 첫 실행의 결과를 보여줄 것입니다.
COM6
Send
SD CARD INITIALIZED. esp8266.txt doesn't exist. Creating esp8266.txt file... esp8266.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • 다를 것입니다.
  • 이후 실행에 대해 시리얼 모니터에 표시되는 결과는 명확하게 다를 것입니다.
COM6
Send
SD CARD INITIALIZED. esp8266.txt exists on SD Card.
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

코드를 업로드한 후 처음으로 시리얼 모니터를 열기 전에 하면 시리얼 모니터에서 출력을 관찰하지 못할 수도 있습니다.

  • 모듈에서 마이크로 SD 카드를 제거하십시오.
  • 마이크로 SD 카드를 USB SD 카드 리더기에 넣으십시오.
  • 컴퓨터에 USB SD 카드 리더기를 연결하십시오.
  • 파일이 있는지 없는지 확인하십시오.

ESP8266 - 마이크로 SD 카드에 파일 쓰기/읽기 방법

다음 코드:

  • 파일에 데이터를 저장합니다
  • 파일의 내용을 문자 단위로 읽어서 시리얼 모니터에 표시합니다
/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // 아무것도 더 하지 않음: } Serial.println(F("SD CARD INITIALIZED.")); // 파일을 쓰기 위해 열기 myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // esp8266.txt에 한 줄 쓰기 myFile.println("Learn ESP8266 and SD Card"); // esp8266.txt에 또 다른 한 줄 쓰기 myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // 파일을 읽기 위해 열기 myFile = SD.open("esp8266.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // Micro SD 카드에서 한 글자씩 읽기 Serial.print(ch); // 시리얼 모니터에 글자 출력 } myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } } void loop() { }

시리얼 모니터가 파일의 내용을 표시했습니다.

COM6
Send
Created by ArduinoGetStarted.com Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

기본적으로 데이터는 파일의 끝에 추가될 것입니다. 위의 코드로 ESP8266을 다시 시작하면, 텍스트가 파일에 다시 추가되고, 시리얼 모니터는 다음과 같은 더 많은 줄을 표시할 것입니다:

COM6
Send
ArduinoGetStarted.com 에 의해 생성됨 ESP8266 및 SD 카드 배우기 ArduinoGetStarted.com 에 의해 생성됨 ESP8266 및 SD 카드 배우기
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

모듈에서 마이크로 SD 카드를 제거하고 USB SD 카드 리더기를 사용하여 컴퓨터에서 그 내용을 볼 수 있습니다.

ESP8266 - 마이크로 SD 카드에 있는 파일을 줄 별로 읽는 방법

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // 아무 것도 더 하지 마십시오: } Serial.println(F("SD CARD INITIALIZED.")); // 쓰기용으로 파일 열기 myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // esp8266.txt에 한 줄 쓰기 myFile.println("Learn ESP8266 and SD Card"); // esp8266.txt에 또 다른 한 줄 쓰기 myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // 읽기용으로 파일 열기 myFile = SD.open("esp8266.txt", FILE_READ); if (myFile) { int line_count = 0; while (myFile.available()) { char line[100]; // 최대 100자, 필요시 변경 int line_length = myFile.readBytesUntil('\n', line, 100); // Micro SD Card에서 한 줄씩 읽기 line_count++; Serial.print(F("Line ")); Serial.print(line_count); Serial.print(F(": ")); Serial.write(line, line_length); // Serial Monitor에 문자를 출력 // \n 문자는 readBytesUntil 함수에 의해 이스케이프됩니다. Serial.write('\n'); // 새로운 줄 문자를 출력하십시오. } myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } } void loop() { }

시리얼 모니터에 표시된 출력.

COM6
Send
SD CARD INITIALIZED. Line 1: Created by ArduinoGetStarted.com Line 2: Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  

※ NOTE THAT:

파일의 내용이 이전에 삭제되지 않았다면 시리얼 모니터에서 추가적인 줄을 관찰할 수 있습니다.

ESP8266 - Micro SD 카드에 파일을 덮어쓰는 방법

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

/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-micro-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // 더 이상 아무것도 하지 않음: } Serial.println(F("SD CARD INITIALIZED.")); SD.remove("esp8266.txt"); // 파일이 존재하면 삭제 // 쓰기 위해 파일 열기를 통해 새 파일 생성 myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println("Created by newbiely.com"); // esp8266.txt에 한 줄 쓰기 myFile.println("Learn ESP8266 and SD Card"); // esp8266.txt에 또 다른 줄 쓰기 myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // 읽기 위해 파일 열기 myFile = SD.open("esp8266.txt", FILE_READ); if (myFile) { while (myFile.available()) { char ch = myFile.read(); // Micro SD Card에서 한 번에 한 글자씩 읽기 Serial.print(ch); // 시리얼 모니터에 글자 출력 } myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } } void loop() { }

시리얼 모니터에 표시된 결과.

COM6
Send
SD CARD INITIALIZED. Created by ArduinoGetStarted.com Learn ESP8266 and SD Card
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • ESP8266을 재부팅하십시오.
  • 파일의 내용이 시리얼 모니터에 추가되었는지 확인하십시오.

모듈에서 Micro SD 카드를 제거하고 컴퓨터에서 그 내용을 볼 수 있습니다. 이를 위해서는 USB SD 카드 리더기가 필요합니다.

동영상

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

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!