https://www.instructables.com/id/Using-ESP8266-SPIFFS/
介紹
您是否知道每個ESP8266都允許您對系統閃存進行分區,以便您可以使用它來存儲代碼並支持文件系統?
該歸檔系統可用於存儲不經常變化的數據,例如; 網頁,配置,傳感器校准數據等
這個簡短的Instructable詳細介紹了如何使用SPIFF,配置您的Arduino IDE直接將文件上傳到您的ESP8266並計算您的設備有多少閃存。
。
我需要哪些部件?
系統入門要求;
- 您的Arduino IDE已設置為ESP8266編程(設置Arduino IDE以編程ESP8266-01)
- ESP8266-01編程設備(帶條板的實用電路結構,第9步)
- 一個ESP8266-01
。
我需要什么軟件?
- Arduino IDE 1.6.9
。
我需要什么技能?
要設置系統,請使用源代碼(提供),您將需要以下內容;
- 了解Arduino及其IDE,
- 有關ESP8266的一些知識,
- 一些耐心。
。
主題涵蓋
- 什么是SPIFFS,
- 安裝Arduino ESP8266文件系統上傳器,
- 我怎么知道我的ESP8266有多少閃存?
- 如何將文件上傳到ESP8266 SPIFFS,
- 如何測試SPIFFS並查看其運行情況,
- 結論,
- 使用的參考文獻。
。
注1:實際上ESP8266閃存也支持OTA更新,但是這個Instructable的范圍僅限於SPIFFS功能。
注2:雖然給出的示例使用ESP8266-01,但它與ESP8266-07,ESP8266-12,ESP8266-12E,ESP8266-13一樣,與Instructable圖像所暗示的一樣。
第1步:那么什么是SPIFFS
SPIFFS
SPI閃存歸檔系統的代表是針對受限嵌入式微處理器系統上具有少量RAM的SPI閃存設備而設計的。
SPIFFS的作用:
- 專為低壓頭使用而設計
- 使用靜態大小的ram緩沖區,與文件數無關
- Posix-like api:打開,關閉,讀取,寫入,搜索,統計等
- 實現靜態磨損均衡,以延長系統閃存的使用壽命
SPIFFS不做什么:
- SPIFFS不支持目錄並使用平面結構。使用路徑tmp / myfile.txt創建文件將創建一個名為tmp / myfile.txt的文件,而不是目錄tmp下的myfile.txt。
- 它不是實時堆棧。一次寫入操作可能比另一次更長。因此,最好在啟動,關閉或未安排時間關鍵活動時使用。
- 目前,它沒有檢測或處理壞塊。
。
第2步:安裝Arduino ESP8266文件系統上傳器
要安裝Arduino ESP8266文件系統上傳器,請執行以下操作:
- 去這里下載ESP8266FS-0.2.0.zip的”副本,
- 解壓縮文件,
- 將esp8266fs.jar文件放入Arduino工具目錄(路徑看起來像[home_dir] \ Arduino \ tools \ ESP8266FS \ tool \ esp8266fs.jar),
- 在我的情況下(如上面的圖1);
- C:\ Users \ Win 7 \ Documents \ Arduino \ tools \ ESP8266FS \ tool
- 我需要創造;
- 工具\ ESP8266FS \工具\
- 下;
- C:\ Users \ Win 7 \ Documents \ Arduino \
- 重啟Arduino IDE。
。
如果你說得對,你會在上面的圖2中的'工具'下看到一個新的菜單項'ESP8266 Sketch Data Upload'。
第3步:我如何判斷我的ESP8266有多少閃存?
鑒於大多數這些ESP8266設備都來自中國供應商,這些供應商在發布清晰簡潔的產品數據方面不太樂意,有一種方法可以確定你的閃存有多大來讀取芯片細節(假設它們沒有被擦洗)並且攜帶外出搜索。我為我的兩個ESP8266-01做了這個;
- BergMicro 25Q80ASSIG 1602:8M /位
- 華邦25Q80DVSIG 1626:8M /位
前者和后者都是1M字節。這種識別方法存在的問題是它根本不適用於ESP8266型號,它可以容納RF屏蔽層下的所有有源元件,如ESP8266-07和ESP8266-12E等。
因此,我發現最可靠和最快捷的方法是使用CheckFlashConfig.ino'草圖對器件進行編程,並查看串行監視器的輸出,如上面的圖1所示。
。
。
您可以從這里下載完整的Arduino ESP8266 Core;
和來自這里的CheckFlashConfig來源;
或者,復制如下。
。
附件
第4步:如何將文件上傳到ESP8266 SPIFFS
執行以下操作將文件上傳到ESP8266 SPIFFS;
- 確保在草圖目錄中有一個名為“data”的子目錄,
- 將要上傳的文件放入“數據”目錄中,
- 從“工具”菜單中,選擇正確的ESP8266設備,然后選擇帶有所需SPIFFS的“閃存大小”即。'1M(256K SPIFFS)'。見上面的圖片1和2,
- 確保關閉串行監視器對話框,
- 准備ESP8266設備進行上傳;
- 按住'Flash',
- 脈沖'重置'
- 發布'Flash',
- 從工具菜單中選擇'ESP8266草圖數據上傳',見圖3,圖像頂部,
- 上傳完成后。Arduino IDE消息窗口將顯示100%上傳。見圖3底部的圖片。
。
注1:如果出現錯誤消息,例如圖4中的消息,則表明“SPIFFS上載失敗!” 。嘗試拔出/重新插入設備的USB轉串口適配器(FTDI)並重復步驟1 ... 7。
注2: SPIFFS內容可以獨立於程序代碼上傳。
注3:如果更改“Flash Size”,則需要重新加載程序代碼和SPIFFS。
。
第5步:如何測試您的SPIFFS並查看它的實際應用
要查看SPIFF的工作示例,請執行以下操作:
- 下載下面的'SPIFFsUsage.ino'草圖,
- 解壓縮並將其放入Arduino草圖目錄中
- 我在這里; C:\ Users \ Win 7 \ Documents \ Arduino \ My Progs
- 你會注意到有一個名為'data'的子目錄,其中的文件名是'testfile.txt'。
- 選擇目標系統的閃存幾何和您需要的代碼空間/ SPIFF大小分割(工具 - >閃存大小),
- 確保關閉串行監視器對話框,
- 將文本文件上傳到ESP8266設備,如上面步驟4中所述,
- 打開串口監視器對話框,將波特率設置為115200,
- 將'SPIFFsUsage.ino'上傳到ESP8266設備。
完成上傳后,代碼將執行,您的串行監視器對話框將顯示上面的圖1中的文本。
它用於顯示'testfile.txt'的內容;
- 已成功上傳,
- 位於文件系統中,
- 打開閱讀,
- 讀取直到文件結束,
- 關閉,
- 打開追加,
- 寫入文件的一行,
- 該文件已被重新讀取,將最近附加的行顯示在文件末尾。
。
注意:如果ESP8266斷電或復位,則每次連續執行時都會自動添加並顯示新線。
附件
第6步:結論
使用SPIFFS是存儲不經常更改的數據的好方法,盡管不應考慮需要許多寫訪問的應用程序,因為它最終會導致閃存失敗。這里給出了閃存可能持續多長時間的典型工作示例。
使用板載文件系統可節省I / O數量,其中SPI SD卡功能正被考慮用於I / O受限設備,例如ESP8266-01,這是一種非常簡單的方式來添加輔助存儲而無需4 / I / O線。
第7步:使用的參考
SPIFFS(SPI Flash文件系統)
SPIFFS WiKi
常問問題
整合spiffs
配置spiffs
使用spiffs
性能和優化
SPIFFS GIT HUB主頁
Arduino ESP8266文件系統上傳器
將草圖數據文件夾打包到SPIFFS文件系統映像中的Arduino插件,並將圖像上傳到ESP8266閃存。使用以下Arduino IDE版本進行測試:1.6.5-r2,1.6.6
GITHUB URL
資源
- HTTPS://github.com/esp8266/arduino-esp8266fs-plug ...
- HTTPS://github.com/esp8266/arduino-esp8266fs-plug ...
最新
但適用於Arduino IDE 1.6.12
Arduino論壇SPIFFs的例子
Arduino CORE
Arduino GIT HUB核心
CheckFlashConfig來源
閃光磨損的工作示例
有關SPIFFS的更多詳細信息
。