ESP8266 Ghi Biến vào Thẻ SD

Hướng dẫn này cung cấp hướng dẫn toàn diện về cách ghi các loại biến khác nhau vào thẻ nhớ Micro SD bằng ESP8266. Các chủ đề được đề cập bao gồm:

Để trích xuất các cặp khóa-giá trị từ thẻ nhớ Micro SD và chuyển đổi chúng thành số nguyên, số thực hoặc chuỗi, vui lòng tham khảo hướng dẫn sau: ESP8266 - Đọc Cấu hình từ thẻ SD.

ESP8266 NodeMCU thẻ nhớ microsd

Phần cứng cần chuẩn bị

1×ESP8266 NodeMCU ESP-12E
1×Recommended: ESP8266 NodeMCU ESP-12E (Uno-form)
1×USB Cable Type-A to Type-C (for USB-A PC)
1×USB Cable Type-C to Type-C (for USB-C PC)
1×Micro SD Card
1×Micro SD Card Module
1×dây jumper
1×(Tùy chọn) MicroSD to SD Memory Card Adapter
1×(Khuyến nghị) Screw Terminal Expansion Board for ESP8266
1×(Khuyến nghị) Power Splitter for ESP8266 Type-C

Or you can buy the following kits:

1×DIYables Sensor Kit (30 sensors/displays)
1×DIYables Sensor Kit (18 sensors/displays)

Về Mô-đun Thẻ nhớ Micro SD

Nếu bạn chưa quen với Mô-đun Thẻ Micro SD, bao gồm bố trí chân, cách hoạt động và cách lập trình nó, bài hướng dẫn ESP8266 - Thẻ nhớ Micro SD có thể cung cấp cho bạn thông tin cần thiết.

Sơ đồ đấu dây

sơ đồ đấu dây cho mô-đun thẻ nhớ micro sd ESP8266 NodeMCU

This image is created using Fritzing. Click to enlarge image

Xem thêm Sơ đồ chân ESP8266Cách cấp nguồn cho ESP8266.

※ Lưu ý:

Nếu bạn có Ethernet shield hoặc bất kỳ shield nào khác có khe cắm thẻ Micro SD, bạn không cần phải sử dụng Module thẻ Micro SD. Chỉ cần chèn thẻ Micro SD vào khe cắm thẻ Micro SD trên shield.

ESP8266 - Cách ghi một biến vào một tệp trên thẻ nhớ Micro SD

Đoạn mã sau đây:

  • Lưu một giá trị nguyên vào thẻ nhớ Micro SD
  • Lưu một giá trị số thực dấu phẩy động vào thẻ nhớ Micro SD
  • Lưu một chuỗi ký tự vào thẻ nhớ Micro SD
  • Lưu một mảng ký tự vào thẻ nhớ Micro SD
  • Lưu một mảng byte vào thẻ nhớ Micro SD
/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "newbiely.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); Serial.println(F("--------------------")); SD.remove("esp8266.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.println(myInt); // write int variable to SD card in line myFile.println(myFloat); // write float variable to SD card in line myFile.println(myString); // write String variable to SD card in line myFile.println(myCharArray); // write char array to SD card in line myFile.write(myByteArray, 5); myFile.write("\n"); // new line for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new line if (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // open file for reading myFile = SD.open("esp8266.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: error on opening file esp8266.txt")); } } void loop() { }

Hướng dẫn từng bước

Để bắt đầu với ESP8266 trên Arduino IDE, hãy làm theo các bước sau:

  • Xem hướng dẫn cách thiết lập môi trường cho ESP8266 trên Arduino IDE nếu đây là lần đầu bạn sử dụng ESP8266.
  • Nối các thành phần như trong sơ đồ.
  • Kết nối bảng ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bảng ESP8266 phù hợp, ví dụ như NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng của nó.
  • Đảm bảo Thẻ nhớ Micro SD được định dạng với FAT16 hoặc FAT32 (bạn có thể tìm hướng dẫn trực tuyến).
  • Sau đó, mở mã nguồn trong Arduino IDE.
  • Khi mã nguồn đã mở, nhấn nút Tải lên trong Arduino IDE để biên dịch và tải mã lên ESP8266.
  • Cuối cùng, xem kết quả trong Trình theo dõi Serial.
COM6
Send
SD CARD INITIALIZED. -------------------- -52 -12.70 HELLO newbiely.com 12345 1,2,3,4,5
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Rút thẻ Micro SD khỏi mô-đun thẻ Micro SD.
  • Lắp thẻ Micro SD vào đầu đọc thẻ SD USB.
  • Kết nối đầu đọc thẻ SD USB với máy tính.
  • Mở tập tin esp8266.txt trên máy tính của bạn, nó xuất hiện như sau.
ESP8266 NodeMCU ghi biến vào thẻ micro sd

ESP8266 - Cách ghi một cặp khóa-giá trị vào một tệp tin trên thẻ nhớ Micro SD

/* * Mã ESP8266 NodeMCU này được phát triển bởi newbiely.vn * Mã ESP8266 NodeMCU này được cung cấp để sử dụng công khai, không có ràng buộc. * Để xem hướng dẫn chi tiết và sơ đồ kết nối, vui lòng truy cập: * https://newbiely.vn/tutorials/esp8266/esp8266-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS D8 File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "newbiely.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; void setup() { Serial.begin(9600); if (!SD.begin(PIN_SPI_CS)) { Serial.println(F("SD CARD FAILED, OR NOT PRESENT!")); while (1); // don't do anything more: } Serial.println(F("SD CARD INITIALIZED.")); Serial.println(F("--------------------")); SD.remove("esp8266.txt"); // delete the file if existed // create new file by opening file for writing myFile = SD.open("esp8266.txt", FILE_WRITE); if (myFile) { myFile.print("myInt="); // write key to SD card myFile.println(myInt); // write int variable to SD card in line myFile.print("myFloat="); // write key to SD card myFile.println(myFloat); // write float variable to SD card in line myFile.print("myString="); // write key to SD card myFile.println(myString); // write String variable to SD card in line myFile.print("myCharArray="); // write key to SD card myFile.println(myCharArray); // write char array to SD card in line myFile.print("myByteArray="); // write key to SD card myFile.write(myByteArray, 5); myFile.write("\n"); // new line myFile.print("myByteArray2="); // write key to SD card for (int i = 0; i < 5; i++) { myFile.write(myByteArray[i]); // new line if (i < 4) myFile.write(","); // comma } myFile.write("\n"); // new line myFile.close(); } else { Serial.print(F("SD Card: error on opening file esp8266.txt")); } // open file for reading myFile = SD.open("esp8266.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: error on opening file esp8266.txt")); } } void loop() { }

Hướng dẫn từng bước

  • Nối các thành phần như được hiển thị trong sơ đồ.
  • Kết nối bo mạch ESP8266 với máy tính của bạn bằng cáp USB.
  • Mở Arduino IDE trên máy tính của bạn.
  • Chọn bo mạch ESP8266 phù hợp, ví dụ NodeMCU 1.0 (ESP-12E Module), và cổng COM tương ứng.
  • Sao chép mã và mở nó trong Arduino IDE.
  • Nhấp vào nút Tải lên để gửi nó tới ESP8266.
  • Xem kết quả trên Trình theo dõi nối tiếp.
COM6
Send
SD CARD INITIALIZED. -------------------- myInt=-52 myFloat=-12.70 myString=HELLO myCharArray=newbiely.com myByteArray=12345 myByteArray2=1,2,3,4,5
Autoscroll Show timestamp
Clear output
9600 baud  
Newline  
  • Rút thẻ Micro SD khỏi mô-đun thẻ Micro SD.
  • Chèn thẻ Micro SD vào đầu đọc thẻ SD USB.
  • Kết nối đầu đọc thẻ SD USB với máy tính.
  • Mở tệp esp8266.txt trên PC của bạn; nó sẽ hiển thị như sau.
ESP8266 NodeMCU ghi biến vào thẻ nhớ microsd.

Video Tutorial

Việc sản xuất video tốn rất nhiều thời gian. Nếu video hướng dẫn hữu ích cho việc học của bạn, hãy đăng ký kênh YouTube để ủng hộ. Nếu nhu cầu đủ cao, chúng tôi sẽ cố gắng làm thêm nhiều video.