ESP32 Ghi Biến vào Thẻ SD

Trong hướng dẫn này, chúng ta sẽ khám phá quy trình ghi các loại biến khác nhau vào Thẻ Micro SD Card bằng ESP32. Cụ thể, chúng ta sẽ đề cập đến các chủ đề sau:

Hướng dẫn này cung cấp một hướng dẫn toàn diện để lưu trữ các loại biến khác nhau trên Thẻ Micro SD Card, cho phép lưu trữ và truy xuất dữ liệu linh hoạt. Để học cách đọc các cặp key-value từ Thẻ Micro SD Card và chuyển đổi chúng sang định dạng integer, float và string, hãy tham khảo hướng dẫn về ESP32 - Đọc Config từ Thẻ SD.

ESP32 micro thẻ SD

Linh Kiện Cần Thiết

1×mô-đun phát triển ESP-WROOM-32
1×Alternatively, ESP32 Uno-form board
1×Alternatively, ESP32 S3 Uno-form board
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 ESP32
1×(Khuyến nghị) Breakout Expansion Board for ESP32
1×(Khuyến nghị) Power Splitter for ESP32

Or you can buy the following kits:

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

Về Micro SD Card Module

Chưa quen thuộc với Micro SD Card Module, bao gồm pinout, chức năng và lập trình? Hãy tìm hiểu về chúng trong hướng dẫn ESP32 - Micro SD Card.

Sơ Đồ Kết Nối

ESP32 micro thẻ SD module sơ đồ đấu dây

This image is created using Fritzing. Click to enlarge image

Nếu bạn chưa rõ cách cấp nguồn cho ESP32 và các linh kiện khác, xem: Cách Cung Cấp Nguồn Điện Cho ESP32.

※ Lưu ý:

Nếu bạn sử dụng Ethernet shield hoặc bất kỳ shield nào có Micro SD Card Holder, bạn không cần sử dụng Micro SD Card Module. Bạn chỉ cần chèn Thẻ Micro SD Card vào Micro SD Card Holder trên shield.

ESP32 - Cách ghi biến vào file trên Thẻ Micro SD Card

Đoạn code dưới đây thực hiện:

  • Ghi biến int vào Thẻ Micro SD Card
  • Ghi biến float vào Thẻ Micro SD Card
  • Ghi biến string vào Thẻ Micro SD Card
  • Ghi char array vào Thẻ Micro SD Card
  • Ghi byte array vào Thẻ Micro SD Card
/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 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/esp32/esp32-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS 5 // The ESP32 pin GPIO5 File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "esp32io.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; 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.")); Serial.println(F("--------------------")); 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(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: 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() { }

Các Bước Thực Hiện

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Thực hiện kết nối theo sơ đồ trên.
  • Kết nối bo mạch ESP32 với PC qua cáp micro USB
  • Mở Arduino IDE trên PC của bạn.
  • Chọn đúng bo mạch ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
  • Đảm bảo rằng Thẻ Micro SD Card được định dạng FAT16 hoặc FAT32 (tìm trên Google để biết cách)
  • Sao chép code ở trên và mở bằng Arduino IDE
  • Nhấn nút Upload trên Arduino IDE để tải code lên ESP32
  • Xem kết quả trên Serial Monitor.
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  
  • Tháo Thẻ Micro SD Card khỏi Micro SD Card module
  • Chèn Thẻ Micro SD Card vào USB SD Card reader
  • Kết nối USB SD Card reader với PC
  • Mở file esp32.txt trên PC của bạn, nó sẽ trông như dưới đây
ESP32 writes variable to micro thẻ SD

ESP32 - Cách ghi key-value vào file trên Thẻ Micro SD Card

/* * Mã ESP32 này được phát triển bởi newbiely.vn * Mã ESP32 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/esp32/esp32-write-variable-to-sd-card */ #include <SD.h> #define PIN_SPI_CS 5 // The ESP32 pin GPIO5 File myFile; int myInt = -52; float myFloat = -12.7; String myString = "HELLO"; char myCharArray[] = "esp32io.com"; byte myByteArray[] = {'1', '2', '3', '4', '5'}; 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.")); Serial.println(F("--------------------")); 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.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: 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() { }

Các Bước Thực Hiện

  • Nếu đây là lần đầu tiên bạn sử dụng ESP32, hãy xem ESP32 - Cài Đặt Phần Mềm.
  • Thực hiện kết nối theo sơ đồ trên.
  • Kết nối bo mạch ESP32 với PC qua cáp micro USB
  • Mở Arduino IDE trên PC của bạn.
  • Chọn đúng bo mạch ESP32 (ví dụ: ESP32 Dev Module) và cổng COM.
  • Sao chép code ở trên và mở bằng Arduino IDE
  • Nhấn nút Upload trên Arduino IDE để tải code lên ESP32
  • Xem kết quả trên Serial Monitor.
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  
  • Tháo Thẻ Micro SD Card khỏi Micro SD Card module
  • Chèn Thẻ Micro SD Card vào USB SD Card reader
  • Kết nối USB SD Card reader với PC
  • Mở file esp32.txt trên PC của bạn, nó sẽ trông như dưới đây
ESP32 writes variable to micro thẻ SD

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.

Bình Luận