ESP Easyを焼いたESP8266と4連MAX7219マトリックスLEDで作る電光掲示板

公開

SPIとデバイスの設定

ブラウザからESP EasyのWebUIを開き、 Hardware タブでMAX7219との通信に必要なSPIを有効にします。

図06.ESP Easy SPI設定

図06.ESP Easy SPI設定

なお、 Init SPI 項の注釈にあるように CS ピンの指定はここではなく、デバイス設定ページで指定します。また、SPIには入力の MISO と出力 MOSI という2つのデータ線があるのですが、LEDへ表示させるだけという性格上、 MISO は今回使われません。

続いて Devices タブを開いて、MAX7219マトリックスLEDのデバイス設定を作成します。

図07.ESP Easyデバイス一覧

図07.ESP Easyデバイス一覧

先ほどの CS ピンの設定は Actuator 項に見つかるので、 GPIO-15 にセット。更に Hardware Type をこのマトリックスLEDモジュールの呼称と思われる FC16 (図02参照)に変更しました。

注釈に詳しい説明があるのですが、思い通りに表示されない場合は候補を一通り試して、自分に合った設定を探すのが手っ取り早いように思えます。

図08.マトリックスLEDデバイス設定一般

図08.マトリックスLEDデバイス設定一般

今回は4つのマトリックスLEDを横一列とした1つのディスプレイとみなすので、 Zones には 1 を設定します。

その他、 Clear display on disable にチェックを入れておかないと、このページ上でデバイスを無効にしても、LEDが表示されたままになってしまうので注意。

 

時刻表示例

上図のマトリックスLEDデバイス設定にはまだ続きがあり、それがこの Zone configuration の項目。実際にマトリックスLEDへ表示させるコンテンツをここで定義します。

図09.時刻表示時の設定

図09.時刻表示時の設定

まずは手始めに、現在の時刻を HH:MM 形式にディスプレイのセンタへ表示してみました。

図10.時刻表示の様子

図10.時刻表示の様子

Rulesの有効化

ここで、複数のコマンドをフローにまとめることができるRulesの機能を活用したいので、 Tools タブを開いてデフォルトではチェックの入っていない有効化にチェックを入れます。

図11.ESP Easy Rulesの有効化

図11.ESP Easy Rulesの有効化

WebUIを再読込すると Rules タブが現れます。早速、中に入って先ほどの時刻表示の設定を1つのイベントにまとめて、記述してみました。

これをESP EasyのWebUIの Command から呼び出して実行するか、次のようなHTTPリクエストでイベント名をGet文字列に記述して、直接呼び出すことも可能です。

 

テキストスクロール表示例

続いて長めのテキストのスクロール表示を試してみました。

図12.テキストスクロール表示時の設定

図12.テキストスクロール表示時の設定

Content を Text へ変更し、スクロールは Animation In/Out で設定、 Brightness を少し上げて目に留まりやすくします。

図13.テキスト表示の様子

図13.テキスト表示の様子

ちなみに、プラグインページによると、利用可能なフォントには日本語カタカナが含まれているのですが、今回使っているDISPLAYバイナリには収録されていないのか、 Font 項のプルダウン候補に載っていませんでした。

また、輝度 Brightness を明るくした時に気になる消費電流を、USBメーターUM25Cで計測してみました。

なお、ESP-12EオンボードのレギュレータAMS1117の出力定格電流は1Aなので、多数のモジュールをドライブさせる際は、Vccを5VにしてUSBから直接給電するのが安全でしょう。

 

この設定もRuleにイベントとしてまとめると次のようになるのですが….

Ruleのイベントへ投げたり受け取ったりできるのは Value 、つまり数値のみという制約に阻まれます。表示させる文字列をこのイベントへ投げることはできないので、HTTPリクエストも都合2回投げる必要があります。

代替機能にMQTT Importer調べてみるも、こちらもESP Easyで受け取れるのは数値に限られるようです。

 

確定したルールを記述

Ruleに用意されているイベントリスナーを駆使して、起動時の既定動作なども併せて記述してみました。

想定している大まかなフローは以下の通り。

  1. 起動後、平時はクロック表示モード。
  2. WiFi接続後は30秒間IPアドレス表示。
  3. HTTPCALLでイベントを呼ぶと、5分間テキスト表示モードで待ち受け。
  4. その間にHTTPでCMDに文字列送出して表示書き換え。
  5. 5分タイマー到達するとクロック表示モードに戻る。

それをRuleに記述したのがこちらです。

図14.ESP Easy Ruleset 最終版

図14.ESP Easy Ruleset 最終版

 

実際にテキストスクロール表示モードから、タイマ到達でデフォルトの時刻表示に戻る様子はこのようになります。

 

今後の課題

惜しむらくは表示テキストを受け渡しの手間でしょう。これについては以前、ブラウザ上でリレー開閉制御するのに利用した、ESP Easyカスタムページへ実装できないか調べてみようと思います。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA