ESP Easy で ESP8266 ESP-01S の2つしかない GPIO に3つ目を設定する

投稿者: | 2021年5月5日

ESP8266 を搭載した基板の中でもミニマム構成でコンパクトな ESP-01S には使用可能な GPIO は2ピンしかありません。センサなどをI2C接続して既存のGPIOを占有してしまい、別の制御に更にもう1本欲しい場合の 増設 方法を、ESP Easy を前提に解説します。

物理的なGPIOピン増設

ESP-01Sにおいて、I2CプラスαのGPIOピンが欲しいことがよくあって、以前から定期的に調べていましたが、目に留まるのはESP8266から直接取り出すというもので、さすがにこれが出来る歳ではありません。

シリアルピンを転用

ESP-01Sはピンアウトは下図のようになっていて(製造元の規格書より抜粋)、I2C通信などで使われるのがGPIO2 GPIO0の2つ。シリアル通信に使うRXD, TXDにもGPIO番号は割り振られています。これをGPIOとして使うのが今回の試みです。

図1.ESP-01S基板レイアウト

図1.ESP-01S基板レイアウト

自分でプログラミングする場合は、他のピンの時と同じように定義すれば良いようです。

  • TXD : GPIO1
  • RXD : GPIO3

ESP Easyでの設定

ESP Easyではまず、シリアルポートを無効にしないと、使うことが出来ません。

「Tools → Advanced」と進むとページ下方に「Serial Settings」の項があり、デフォルトではEnabledにチェックが入っているので、これを外して保存すると次回起動時より、シリアルポートは無効になります。

図2.Disable Serial Port

図2.Disable Serial Port

当然ですがこれにより、以前記事で紹介したSer2Net機能を使ったワイヤレスシリアルコンソールのような使い方は、出来なくなります。

次にブート時の思わぬ挙動を避けるために、これらのGPIOポートの起動時の状態を定義しておきます。「Hardware」頁下の「GPIO boot states」よりこれらのポートを「Output Low」に(Outputの場合)。

図3.GPIO Boot States

図3.GPIO Boot States

設定したGPIOの状態は、「Tools → Pin state buffer」頁で確認することが出来ます。

図4.Pin State Buffer

図4.Pin State Buffer

GPIO1(TXD)は避ける

公式ドキュメントの中には、ESP8266系のふさわしいピン用途に関する解説があり、そこでは、各GPIO端子のブート時の初期状態も明記されています。

その中のGPIO1(TXD)のOutput欄には「debug output at boot」とあります。これについては、フォーラムのある回答に述べられている通り、ESP Easyでシリアルポートを無効にしてもブート時に出力されるデバッグ文字列は無効にすることは出来ないのだそうです。

実際にGPIO1をリレーに繋いだまま、ESP-01Sを再起動させると、数秒間オン・オフを繰り返していました。GPIO1は使用を避けるのが無難です。

追加したGPIO3(RXD)のOutput操作

GPIOピンのOutput操作はTools頁のCommandより直接打ち込むか、ESP Easyに対し、以下の要領でクエリ文字列をhttpのGetメソッドでリクエストすることでも可能です。

図5.Submit Command

図5.Submit Command

また、DevicesにSwitch Inputを追加することでも、GPIOの現在の状態を参照することが出来ますが、ここで操作するような仕組みは有りません。

以下にGPIO3をOutput方向に定義し、リレーのNC(Normally Close)端を制御する例を示します。尚、ここでInputに設定されていても、Output操作に支障はありません。

図6.Config GPIO3 As Switch Input on Devices

図6.Config GPIO3 As Switch Input on Devices

I2CにはINA219直流電圧電流センサを繋いで、ESP-01SによるスマートUSBコンセントの雛型はまとまったところで一区切り。次回は、いまいち不便なESP EasyでのGPIO操作のWebUI改善に取り組んでみたいと思います。

図7. Devices List

図7. Devices List

図8.リレーとI2Cセンサを同時接続するESP-01S

図8.リレーとI2Cセンサを同時接続するESP-01S

コメントを残す

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

CAPTCHA