Arduino IDE に ESP8266 SPIFFS ファイルシステムアップローダーをインストールする方法

記事最終更新日:2016/10/03

スポンサーリンク

ESPr Developer (スイッチサイエンス製)のボード表面にRev.2という印刷があるものは4M/3M SPIFFS でUSBシリアルでアップロードできます。
無印やRev.3とあるものは4M/3M SPIFFSでシリアルUSBアップロードはできません。
Wroom_Rev2
3Mでアップロードしたい方や、SPIFFS Upload failed! というメッセージが出てアップロードできなくなった方は こちらのページ をご覧ください。その場合のトラブル対処方法があります。

以下、Windows PC の場合の方法です。
(Windows8.1、Windows10 は動作確認済み)

Arduino IDE にESP8266 core for Arduino のプラグイン
SPIFFS ファイルシステムアップローダーをインストールする方法を紹介します。
使用するボードはスイッチサイエンスさんのESP-WROOM-02開発ボードをお勧めします。

SPIFFSファイルシステムとは、ESP-WROOM-02 ( ESP8266 ) のフラッシュメモリをシステム領域とユーザーDATA領域と分けて、ユーザーDATA領域に自由なファイルを保存しておけて、しかもSDカードやEEPROMのようにArduinoスケッチプログラムから自由に読み書きできるという優れものシステムです。
2016/2/1現在で最大3Mバイトの領域を確保できます。

ここにフォントデータやHTMLファイル、データ等を保存しておけば、外部メディアのSDカードなどに保存しておかなくても大抵のことはできてしまいます。とても便利ですね。

1.SPIFFSファイルシステムアップローダーをインストール

GitHubの Arduino core for ESP8266 コミュニティーのページにプラグインのページがあります。
そこの、こちらのページ を開くと下図のようにインストール方法が英語で掲載されているので、その通りにインストールしていきます。

WS_lib07

下図のようにZipファイルのところをクリックしてダウンロードします。
Fix_SPIFFS01

そのファイルを解凍しておきます。

次に、ご自分のPCのArduinoスケッチドキュメントフォルダに tools というフォルダを新たに作成しておきます。
WS_lib09

そこに先ほど解凍したフォルダのESP8266FSというフォルダごと、そこにコピー&ペーストします。

その後、ArduinoIDEを再起動すると、ツールメニューにESP8266 Sketch Data Upload という項目が表示されると思います。
WS_lib10
こうなったら、Arduino IDEプラグインのSPIFFSファイルシステムアップローダーのインストール完了です。

2.アップローダーを使って、ESP-WROOM-02 のフラッシュにファイルをアップロードする

まず、編集中のスケッチフォルダを下図のようにして開きます。
WS_lib_beta11_06
開くとこんな感じで表示されたら、dataフォルダを開きます。
無ければ新たにdataフォルダを作成してください。
WS_lib_beta11_07

そのdataフォルダにESP-WROOM-02のフラッシュに書き込みたいファイルをコピー&ペーストしておきます。

次に、dataフォルダにある ファイルを ESP-WROOM-02 のフラッシュメモリに書き込みます。
下図のように ESP8266 Sketch Data Upload というところをクリックするとアップロード開始します。
※シリアルモニターは必ず閉じておいてください。シリアルモニターが起動しているとアップロードできません。

WS_lib_beta11_04

こんな感じで白い点々が表示始めればアップロードしているということです。
WS_lib_beta11_05
アップロード終了しても何も表示されませんので、点々の進行が停止するまで待ちます。
Flash Size を 4M ( 1M SPIFFS ) にすると、結構時間がかかります。待てない方はサイズを小さくしても良いと思います。
終ると、点々の進行が停止しますので、それでアップロード完了です。
Arduino IDE 1.6.9では白い点すら出ず、数分たって終了したら赤い点々が一気に出て完了という風になります。進行しているか不安になりますが気長に待ってください。

4M(3M SPIFFS)でアップロードできないときや、 SPIFFS Upload failed! というメッセージが出てアップロードできなくなった方は こちらのページ をご覧ください。その場合のトラブル対処方法があります。(2016/7/11)

3.スケッチ上でのプログラム方法

たとえば、サンプル例として、予め”test”という文字で保存した test.txt ファイルを作成してフラッシュにアップロードしておき、その2番目の文字を読み込むスケッチがこれです。

#include <FS.h>
void setup() {
  SPIFFS.begin();
  Serial.begin(115200);

  File file = SPIFFS.open("/test.txt", "r");
  file.seek(2,SeekSet);
  char c = file.read();
  Serial.println();
  Serial.println(c);
}
void loop() {
}

●1行目: <FS.h>をインクルードします。
●3行目: SPIFFS開始
●6行目: 先ほどのdataフォルダにあったファイルをアップロードしたものを読み込みオープンします。
ここで、ファイル名の前に必ずスラッシュ(/)を記入しておきます。
“r”は読み取りモード。”W”は書き込みモードです。
●7行目: 読み取り位置を2番目文字にセットします。先頭がゼロ番です。
●8行目: 読み取りSeek位置から1文字(1バイト)読み込みます。
余談ですが、読み取りには readBytes という関数もあります。しかし、SPIFFSファイルシステムver0.1.3の場合はbyte型で読み込み可能だったのですが、ver0.2.0になったらbyte型ではエラーが出て、char型で読み込まないとダメでした。どうしてこういう仕様になったのか分かりません。私が作っているわけではないので、その仕様に従うしかありませんね。

上記のスケッチをコンパイル実行すると、”S” という文字が表示されます。
最初の文字がゼロ番目ですから、3文字目ということになります。

以上、SPIFFSファイルシステムアップローダーについてでした。

mgo-tec電子工作 関連コンテンツ ( 広告含む )

スポンサーリンク

Amazon.co.jp 当ブログのおすすめ



「Arduino IDE に ESP8266 SPIFFS ファイルシステムアップローダーをインストールする方法」への2件のフィードバック

  1. お世話になります。
    SPIFFSファイルがdata directoryに格納されているのに、wifiで送られないトラブルで、ebayの香港製の安物esp8266開発ボードでは問題ありませんでした。書き込みはESP8266FS v.0.3でOKでした。

    1. 大王怒さん

      当ブログをご覧いただき、ありがとうございます。

      そうなんですね。
      やはり、ハード設計に問題があるのでしょうか・・・。
      情報感謝いたします。

コメントを残す

メールアドレスが公開されることはありません。

*画像の文字を入力してください。(スパム防止の為)