wasa.birdmanこんにちは、春休みに入れてとてもうれしい電装班長のマイケルです前回のAndroid用マップの作り方ブログが割りと好評だったので、今回も情報系の人向けのテクニカルな内容とします。(実は引き継ぎ資料の一部として書いてます。)今回は今流行りのWi-FiモジュールであるESP8266について書いてみたりします。ESP8266はArduinoIDE、PlatformIO、MicroPython、NodeMCU/LUAなど様々な方法で開発できる低価格Wi-Fiモジュールであり、うまく使えば無限に可能性は広がるものです。使い方」とかでググると「IFTTT+LEDで簡単IoT!ESP8266で特定のハッシュタグのツイートがあったらLEDを光らせる」や「ESP8266でのサーバー機能の使い方」というように、大量のブログが出てくるのでたくさん調べれて学べば入門に関してはそんなに大変じゃないと思います。そこで今回は主に「ググってもなかなか出てこない(気がする)ESP8266の機能」について少し紹介してみます。ESP8266内蔵のファイルシステムとデバッグ方法についてはなかなかネット上に使い方が最新版のドキュメンテーションを読めば全部わかりますが長いし(英語なので)なかなかツライですね。今回は基本的に、主流のArduinoIDEを使う前提で話を進めます。ファイルシステム(SPIFFS)について現在日本で一般的に販売されているESP-WROOM-02には2MBのストレージが内蔵されており、1MBがプログラム用ストレージ、もう1MBがファイルシステム用のストレージに割り当てられている。ファイルシステム用のストレージにはSDカードと同じようにファイルの読み書きができます。1MBのファイルシステム用ストレージを使ってみましょう。ArduinoIDEを使用している場合、パソコンから任意のファイルを書き込んでくれる便利なツールがあります。割りと時間かかるので落ち着いて待ちましょう。"FS.h"を入れておく必要があります。SPIFFS.begin()SPIFFSシステムをマウントする。SPIFFS系の処理を行う前に実行する必要がある。マウントが成功したらtrueを返し、失敗したらfalseを返す。SPIFFS.end()SPIFFSシステムを取り外す。OTAを使ったファームウェア書き込みの前に使う。SPIFFS.format()SPIFFSシステムをフォーマットする。要はストレージを初期化する。mode)pathのファイルをmodeで開く(文字列の文字数上限:31)。modeはC言語でファイルを開くときと同じで、"r","r+","w","w+","a","a+"のようにファイルモードを入れておけば良い。このメソッドではFileオブジェクトが返される。ArduinoのStreamオブジェクトで使えるメソッドは基本的に全部使える。Serial.print(f.read());}Serial.println();f.close();SPIFFS.exists(path)pathのファイルの存在を確かめる。SPIFFS.openDir(path)pathにあるディレクトリを開いてDirオブジェクトを返す。SPIFFS.remove(path)pathにあるファイルを削除する。pathTo)pathFromからpathToへファイル名を変える。fs_info;SPIFFS.info(fs_info);pathにあるファイルのサイズなどの情報を取得する。ファイルシステムをうまく使うことで、外付けストレージを使わずに小さなファイルサーバーやデータロガーが作れるので是非使ってみましょう。WASAではこの機能を操舵系統の各種パラメータを初期設定するためのデバイスに使ってます。デバッグ方法ESP8266を使った開発には「謎のバグ」がつきものです。「謎のバグ」に立ち向かう方法はいくつかあるのでご紹介してみます。元ネタはこれとこれです。1.リアルタイムで細かいデバッグ情報を得る。ESP8266にはメインプログラムに割り込んでデバッグ情報を吐き出す機能があります。これの使い方を軽くご紹介します。上のバーからボートやシリアルポートの設定をしてください。Port”を”Serial”に設定してください。Level”には取得したいデバッグ情報の種類を選択します。COREにしたらESP8266の基本情報、WIFIにしたらWi-Fiの接続状況などについての情報がSerialポートを介して得られます。これらの情報を基にデバッグしましょう。デバッグ情報の種類が多いとSerialに出力するのに時間がかかってメインプログラムの処理に悪影響を及ぼすことがあります。プログラムがバグって詰みそうなときにだけ有効にすることをオススメします。2.システムクラッシュ時に吐き出される情報を解読する。「謎のバグ」のほとんどはシステムクラッシュ時に発生します。入力電力が不足した場合や、不正なメモリアクセスを行ってしまった場合には以下のようなスタックダンプが行われます。40000f49<<<stack<<<一見意味分からなさそうですが、解読ツールがあるので解読してみましょう。インストール方法は上で説明した書き込みツールと同じです。ツールはhttps://github.com/me-no-dev/EspExceptionDecoderにてzip形式でダウンロードできます。エラーが発生してシリアルモニタにスタックダンプが行われたら下図のボタンのようにツールを開いてください。ツールを開く際にELF形式のファイルを要求されることがあります。プログラムを再びコンパイルし書き込むと解消されます。ツールが開かれたらダンプされた情報をツール上半分の画面に貼っつけてみましょう。「◯◯行にある〇〇が悪いです!」というように詳しいデバッグ情報が返されますのでデバッグが捗ると思います。非常に便利だと思うので是非ツールを有効活用しましょう!今回のブログはこれで終わりにします。お役に立てたら幸いです。今後もこんな感じのブログを何回かやりますがネタが切れそうなのでリクエスト等ありましたらご気軽にお声掛けください。鳥人間の電装関係なら書けそうなものは書きます!春休みに入ってから、電装班は鳥人間コンテストに向けたケーブルづくり、各種部品の設計、プログラム調整など、さまざまな活動に励んでいます。コメントをキャンセルメールアドレスが公開されることはありません。WordPress.。