Cài đặt ESP32 Filesystem Uploader trong Arduino IDE, sử dụng SPIFFS

ESP32 có một file system bộ nhớ flash sử dụng giao tiếp SPI có tên là Serial Peripheral Interface Flash File System (SPIFFS). Trong bài viết này mình sẽ hướng dẫn cách upload file vào file system của ESP32 bằng một plugin dành cho Arduino IDE.

Lưu ý: Plugin này hiện tại chưa tương thích với Arduino 2.0.

Giới thiệu về SPIFFS

SPIFFS cho phép chúng ta truy cập và làm việc với bộ nhớ flash của ESP32 giống như là truy cập đến các ổ đĩa cứng chứa file và thư mục trên máy tính nhưng theo cách đơn giản và nhẹ hơn, phù hợp với các mạch điều khiển như ESP32. Bạn có thể read, write, close, và delete các file. Tại thời điểm hiện tại thì SPIFFS chưa hỗ trợ thư mục, nên mọi thứ chỉ đều là file ở thư mục gốc.

Với SPIFFS của ESP32 chúng ta có thể:

  • Tạo ra các file lưu cấu hình
  • Lưu trữ dữ liệu nhỏ ví dụ dữ liệu đọc được từ cảm biến thay vì phải dùng đến thẻ nhớ
  • Lưu trữ các file HTML, Javascript, hình ảnh và CSS dùng để tạo các dự án web server
  • và nhiều mục đích khác.
SPIFFS là gì?
SPIFFS là gì?

Cài đặt plugin Arduino ESP32 Filesystem Uploader

Bạn có thể tạo, lưu và ghi file vào ESP32 filesystem bằng cách tự viết code trong Arduino IDE. Tuy nhiên cách này không hiệu quả bằng vì phải nhúng nội dung các file vào trong mã nguồn của chương trình.

Với việc sử dụng một plugin hỗ trợ, việc upload file vào ESP32 từ một thư mục trên máy tính của bạn sẽ trở nên dễ dàng hơn rất nhiều.

Lưu ý: Hiện tại plugin ESP32 Filesystem Uploader chưa được hỗ trợ trên Arduino 2.0.

Để thực hiện theo hướng dẫn, bạn phải cài đặt Arduino IDE và addon cho ESP32. Bạn có thể tham khảo bài viết:

Cài đặt trên máy tính Windows

Làm theo các bước sau để cài đặt trên Windows:

1) Đi tới trang web tại đây và click vào ESP32FS-1.0.zip để download.

Cài SPIFFS esp32 trên Windows

2) Tìm đến thư mục chứa Sketchbook của Arduino bằng cách trong Arduino IDE, vào menu File > Preferences và kiểm tra đường dẫn trong mục Sketchbook location. Như trong máy của mình là C:\Users\sarin\Documents\Arduino.

Cài SPIFFS esp32 trên Windows

3) Đến thư mục chưa sketchbook, tạo một thư mục tên là tools.

Cài SPIFFS esp32 trên Windows

4) Unzip file zip đã download ở bước 1 và thư mục ESP32FS vào thư mục tools vừa tạo. Bạn sẽ có một cấu trúc thư mục như thế này:

<Sketchbook-location>/tools/ESP32FS/tool/esp32fs.jar
Upload ESp32FS

5) Cuối cùng, bạn hãy đóng và chạy lại phần mềm Arduino IDE.

Để kiểm tra xem plugin đã được cài đặt thành công hay chưa, trong Arduino IDE chọn ESP32 board, vào menu Tools và kiểm tra xem có một mục trong menu tên là “ESP32 Sketch Data Upload“ hay không.

Cài SPIFFS esp32 trên Windows

MacOS X

làm theo hướng dẫn sau nếu bạn dùng MacOS X.

1) Đi tới trang web này và click vào ESP32FS-1.0.zip để download file.

Cài SPIFFS esp32 trên MacOS X

2) Unpack file vừa download.

3) tạo một thư mục tên là tools trong /Documents/Arduino/.

4) Copy thư mục ESP32FS vừa giải nén vào thư mục tools. Bạn sẽ có một cấu trúc thư mục như sau:.

~Documents/Arduino/tools/ESP32FS/tool/esp32fs.jar
Cài SPIFFS esp32 trên MacOS X

5) Cuối cùng là tắt và chạy lại phần mềm Arduino IDE.

Nếu plugin được cài đặt thành công, trong Arduino IDE, chọn ESP32 board, vào menu Tools sẽ thấy một menu mới có tên là “ESP32 Sketch Data Upload“.

Cài SPIFFS esp32 trên MacOS X

Upload file dùng plugin Filesystem Uploader

Để upload file vào ESP32 filesystem bạn làm theo hướng dẫn sau.

1) Tạo một Arduino sketch mới và lưu lại. Có thể dùng một chương trình trắng cũng được.

2) Vào thư mục chứa file sketch mới này. Bạn có thể vào menu Sketch Show Sketch Folder để mở ra thư mục này trong Windows Explorer.

Cài SPIFFS esp32

3) tạo một thư mục mới tên là data bên trong thư mục này.

Cài SPIFFS esp32

4) Trong thư mục databạn có thể đặt các file cần upload vào ESP32 ở đây. Ví dụ, bạn tạo 1 file có tên là test_example.txt và chứa một đoạn text tùy ý.

Cài SPIFFS esp32

5) Để upload vào ESP32, bạn vào menu Tools ESP32 Sketch Data Upload trong Arduino IDE.

Cài SPIFFS esp32

Plugin sẽ upload và ghi đè lên tất cả các file đã có trong filesystem.

Lưu ý: Một số board ESP32 cần phải nhấn nút BOOT khi bạn thấy button chữ “Connecting …….____……” lúc upload.

Cài SPIFFS esp32

Sau bước này thì các file trong thư mục data đã được upload thành công vào ESP32 nếu bạn thấy dòng chữ “SPIFFS Image Uploaded“.

Cài SPIFFS esp32

Kiểm tra file đã upload

Bây giờ chúng ta thử kiểm tra xem file đã upload có thể đọc được hay không. bạn sử dụng một đoạn chương trình đơn giản sau:

#include "SPIFFS.h"
 
void setup() {
  Serial.begin(115200);
  
  if(!SPIFFS.begin(true)){
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
  }
  
  File file = SPIFFS.open("/test_example.txt");
  if(!file){
    Serial.println("Failed to open file for reading");
    return;
  }
  
  Serial.println("File Content:");
  while(file.available()){
    Serial.write(file.read());
  }
  file.close();
}
 
void loop() {

}

Sau khi upload code, mở cửa sổ Serial Monitor với baud rate 115200. Bạn sẽ thấy nội dung của file .txt bạn đã upload được in ra màn hình cửa sổ Serial Monitor.

Cài SPIFFS esp32

Như vậy bạn đã chắc chắn rằng việc upload file vào ESP32 là thành công ở bước trước đó.

Lời kết

Với việc sử dụng plugin filesystem uploader, chúng ta có thể dễ dàng upload file bất kỳ vào filesystem của ESP32. Bạn hãy tham khảo thêm 1 số bài hướng dẫn khác có tận dụng chức năng này nhé.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *