이더넷 쉴드나 마이크로 SD 카드 홀더가 있는 다른 쉴드를 가지고 있다면, 마이크로 SD 카드 모듈을 사용할 필요가 없습니다. 단순히 마이크로 SD 카드를 쉴드의 마이크로 SD 카드 홀더에 삽입하면 됩니다.
ESP8266 - Micro SD 카드에 변수를 파일로 쓰는 방법
다음 코드:
Micro SD 카드에 정수 값을 저장합니다.
Micro SD 카드에 부동 소수점 값을 저장합니다.
Micro SD 카드에 문자열을 저장합니다.
Micro SD 카드에 문자 배열을 저장합니다.
Micro SD 카드에 바이트 배열을 저장합니다.
/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-write-variable-to-sd-card */#include <SD.h>#define PIN_SPI_CS D8File myFile;int myInt = -52;float myFloat = -12.7;String myString = "HELLO";char myCharArray[] = "newbiely.com";byte myByteArray[] = {'1', '2', '3', '4', '5'};voidsetup() {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."));Serial.println(F("--------------------"));SD.remove("esp8266.txt"); // 파일이 존재하는 경우 삭제// 쓰기를 위해 파일 열기로 새 파일 생성 myFile = SD.open("esp8266.txt", FILE_WRITE);if (myFile) { myFile.println(myInt); // int 변수를 SD 카드에 줄 단위로 쓰기 myFile.println(myFloat); // float 변수를 SD 카드에 줄 단위로 쓰기 myFile.println(myString); // String 변수를 SD 카드에 줄 단위로 쓰기 myFile.println(myCharArray); // char 배열을 SD 카드에 줄 단위로 쓰기 myFile.write(myByteArray, 5); myFile.write("\n"); // 새 줄for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // 새 줄if (i < 4) myFile.write(","); // 쉼표 } myFile.write("\n"); // 새 줄 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")); }}voidloop() {}
/* * 이 ESP8266 NodeMCU 코드는 newbiely.kr 에서 개발되었습니다 * 이 ESP8266 NodeMCU 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/esp8266/esp8266-write-variable-to-sd-card */#include <SD.h>#define PIN_SPI_CS D8File myFile;int myInt = -52;float myFloat = -12.7;String myString = "HELLO";char myCharArray[] = "newbiely.com";byte myByteArray[] = {'1', '2', '3', '4', '5'};voidsetup() {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."));Serial.println(F("--------------------"));SD.remove("esp8266.txt"); // 파일이 존재하면 삭제// 쓰기 위해 파일 열기로 새 파일 생성 myFile = SD.open("esp8266.txt", FILE_WRITE);if (myFile) { myFile.print("myInt="); // SD 카드에 키 작성 myFile.println(myInt); // SD 카드에 int 변수를 줄 단위로 작성 myFile.print("myFloat="); // SD 카드에 키 작성 myFile.println(myFloat); // SD 카드에 float 변수를 줄 단위로 작성 myFile.print("myString="); // SD 카드에 키 작성 myFile.println(myString); // SD 카드에 String 변수를 줄 단위로 작성 myFile.print("myCharArray="); // SD 카드에 키 작성 myFile.println(myCharArray); // SD 카드에 char 배열을 줄 단위로 작성 myFile.print("myByteArray="); // SD 카드에 키 작성 myFile.write(myByteArray, 5); myFile.write("\n"); // 새 줄 myFile.print("myByteArray2="); // SD 카드에 키 작성for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // 새 줄if (i < 4) myFile.write(","); // 콤마 } myFile.write("\n"); // 새 줄 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")); }}voidloop() {}
사용 방법
다이어그램에 표시된 대로 구성 요소를 연결하세요.
USB 케이블을 사용하여 ESP8266 보드를 컴퓨터에 연결하세요.
컴퓨터에서 Arduino IDE를 엽니다.
올바른 ESP8266 보드를 선택하세요. 예를 들어 (NodeMCU 1.0 (ESP-12E Module))과 해당 COM 포트입니다.
코드를 복사하고 Arduino IDE에서 엽니다.
Upload 버튼을 클릭하여 ESP8266으로 보냅니다.
시리얼 모니터에서 결과를 확인하세요.
Newbiely | Arduino IDE 2.3.8
──
☐
✕
File
Edit
Sketch
Tools
Help
Nodemcu 1.0 (ESP-12E Module)
Newbiely.ino
···
8Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Nodemcu 1.0 (ESP-12E Module)' on 'COM15')