ESP-01SからRUNピンを介したRaspberry Piの再起動操作

公開 | 更新 

前回、ESP Easyを焼いた ESP-01S と MOSFET を組み合わせ、その基板上に用意されている RUN ピンヘッダを通じて Raspberry Pi を強制再起動出来るようにしてみます。

Raspberry Piには「RUN」と記されたパターンホールが有り、自分でピンヘッダをハンダ付けして物理的なリセットボタンを追加することが出来ます(歴代モデルによってパターン位置が異なるので注意が必要)。2つのピンのうち、「RUN]と印刷されたすぐそばにある四角いのがRUN、もう一つの丸いのはGNDに繋がっていて、RUNをGNDに落としている間はシステム断、開放状態とすることでシステム起動開始です。

図01.Raspberry Pi 1のRUNピンヘッダ

図01.Raspberry Pi 1のRUNピンヘッダ

図02.Raspberry Pi 3のRUNピンヘッダ

図02.Raspberry Pi 3のRUNピンヘッダ

実は数年前、ESP-01Sにesp-linkと言うファームウェアを焼いて、同様にRaspberry PiのRUNピンヘッダに繋いだことがありました。その時はGPIO出力を直接RUNに繋いだりと無茶なことを。あの時は動作したものの、やはり長期運用しているとシステム不安定になり、止めてしまいました。

その反省を踏まえ、今回はMOSFETを勉強しての再挑戦です。試作に成功した後は、ESP-01SとMOSFETをRaspberry Piのケース内に格納したいので、以前製作したTO-252規格のMOSFETより更に小さい、SOT23パッケージのN-Ch MOSFET、AO3400Nを使います。大まかな諸元は以下の通りです。

  • VDS        : 30V
  • ID            : 5.8A
  • RDS        : 28mΩ
  • VGS(th)   : 0.65〜1.45V

作り方はTO-252の時と同じく、MOSFETの他にゲート抵抗100Ω、ゲート〜ソース間抵抗10kΩをいずれもチップ抵抗でDIP変換基板上へ実装します。

図03.SOT23実装

図03.SOT23実装

TO-252パッケージ版と比較すると、その小ささが分かるでしょう(左:TO-252版FDD8447L vs 右:SOT23版AO3400N)。

図04.両MOSFET比較

図04.両MOSFET比較

今回は、Raspberry Pi 3にて実験してみます。ESP-01S、MOSFETとの接続は次の通りです。

図05.全体回路図

図05.全体回路図

これを元に実際に結線するとこのようになります。

図06.暫定結線

図06.暫定結線

Raspberry Pi 3を通電すると、ESP-01Sにも給電、起動します。GPIO0をMOSFETのゲートに繋いでいるので、これをトリガーにするため、初期値をLoに設定します。

図07.GPIO0初期値設定

図07.GPIO0初期値設定

Raspberry Pi 3を再起動するには、このGPIO0をHiにしてからLoに戻します。シンプルにToolsのCommand欄で実行

図08.Command送信

図08.Command送信

再起動に際してもESP-01Sへの給電は途切れないので、起動の様子はSer2Netへtelnetして確認することが出来ます。Ubuntu母艦からのtelnetに今回はncを使ってみます(Ctlキーを扱ってくれる)。

実は前回、Ser2Netを試した時から気になっていたのが、ESP Easyのステータスメッセージがシリアル接続先にジャンジャカ送られてしまう問題。Raspberry Piから見ると当然、延々とエラー!エラー!となるわけです。

図09.Raspberry Piのシリアルポートから見た状態

図09.Raspberry Piのシリアルポートから見た状態

ToolsタブのAdvanced内にSerial Log Levelの設定項目があり、デフォルトでInfoになっているのをNoneにすることで、シリアルポートへの出力は無くなります。繋ぎっぱなしにする場合はここを設定して無用なトラブルを避けましょう。

図10.シリアルログレベル設定

図10.シリアルログレベル設定

部品並びに回路に問題無いことが確認されたので、Raspberry Pi 3のケースに収まるよう、コンパクトにまとめてみます。

図11.ESP-01SとMOSFET合体結線図

図11.ESP-01SとMOSFET合体結線図

図12.ESP-01SとMOSFET合体

図12.ESP-01SとMOSFET合体

ちょうど両者のピン配列の都合が良く、ジャンパコネクタや銅線端材を使ってESP-01SとMOSFETモジュールを合わせてしまうことが出来ました。配線も短くして、います。

図13.完成品を搭載

図13.完成品を搭載

実際の動作の様子です。ブラウザのESP EasyからGPIOをHighにすると、ターミナル(上)のping応答が途絶えシステム断。そしてGPIOをLoにすると、ターミナル(下)のシリアルコンソールから起動の様子を確認出来ます(Ubuntu 18.04母艦にてSimpleScreenRecorderを使って撮影)。

数年前のGPIOとRUNピンの直接接続とは異なり、MOSFETによる制御はとても信頼性の高い手法で、昼夜稼働するRaspberry Pi機器のハードウェア管理デバイス(IBMサーバにおけるIMMのような)として、今回組んだシステムは特に遠隔地での運用に役立つことでしょう。

参考とGreat Tnx!!)


コメントを残す

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

CAPTCHA