Arduinoとは何ぞや?という疑問をお持ちの方はGoogleで検索していただくとして、今回はこのArduinoと、スイッチサイエンス社が発売しているWi-Fiモジュール「ESP-WROOM-02」を組み合わせて、インターネット経由でパソコンの物理的な再起動が出来るような装置を作ってみたいと思います。
ESP-WROOM-02とは?
手持ちのArduinoはArduino UNO R3です。USB接続でコンピュータとやり取りは出来ますが、LANへの接続にはWi-FiシールドやEthernetシールドを組み合わせる必要があります。
しかし、こういったシールドは3000円~4000円ほどするのでチョットお高いです。
そんな中、大変面白いのがスイッチサイエンス社が発売しているESP-WROOM-02というモジュール。
ESP8266というWi-Fiチップを搭載したモジュールで、国内の技適認証もあるしっかりとした製品ですが、価格が驚きの600円。
ブレッドボード等で利用できるようにピッチ変換されたモジュールですら、わずか909円です。
それで何作るの?
今回は、このESP-WROOM-02を使ってArduinoをネットワークに接続し、ネットワーク経由でArduinoを操作することを目指します。具体的には、Arduino上に設置したWebサーバーにESP-WROOM-02経由でアクセスし、該当ページを操作することでArduinoに接続したリレーを駆動させ、リレーに接続したサーバー用PCのリセットスイッチを操作するというものです。
これは、長期的に自宅を離れた際に、サーバー機が何らかの形でフリーズしてしまった際に強制的に再起動を行う目的の装置です。
リレーの接続を変更することで、PC再起動以外の用途にも使えるはずです。
下準備をする
下準備として、まずは必要物資を揃えます。電子工作になるので、電子部品を取り揃える他、ハンダゴテや半田も用意します。
函館市内には電子部品を取り揃えた一般商店はないので、マルツオンラインで買いました。
商品名 | 個数 | 金額(税抜) | 説明 |
---|---|---|---|
ESP-WROOM-02(ピッチ変換済み・シンプル版) | 1個 | 909円 | ESP-WROOM-02本体。スイッチサイエンス通販で購入。 |
基盤用ピンヘッダ(2.54mmピッチ) | 1個 | 50円 | ESP-WROOM-02用 |
整流用ダイオード | 1個 | 20円 | リレーの逆起電力保護用 |
5V小型リレー | 1個 | 55円 | スイッチ操作用リレー |
3端子レギュレータ 3.3V出力 | 1個 | 120円 | ESP-WROOM-02は3.3V動作ですが、 Arduinoの3.3Vでは駆動しないので5Vから降圧して使用する |
アルミ電解コンデンサ100μF | 1個 | 40円 | 3端子レギュレータの出力安定化用 |
セラミックコンデンサ0.1μF | 1個 | 20円 | 3端子レギュレータの入力安定化用 |
1/4W 10KΩカーボン抵抗 100本入り | 1個 | 113円 | 3本あれば足りる |
この他に、ブレッドボードやジャンパワイヤーなどは元から所持していたものを使用します。
回路設計
自分は電気工学系の人間ではないので、回路設計等は間違いがあるかもしれません。
目指す回路はこのようなものになります。
ESP-WROOM-02には、Arduinoの5V出力から3端子レギュレータを用いて降圧した3.3V電源を入力します。
ArduinoとESP-WROOM-02との通信にはシリアル通信を用います。
Arduinoとリレーはデジタルピンで接続することによって操作ができます。
はんだ付けが必要なのは、ESP-WROOM-02にヘッダピンを取り付ける部分だけです。
それ以外は全てブレッドボードに直挿ししていきます。
安定動作等を求めるなら、ユニバーサル基板に配線したほうが良いのでしょうけど・・・。
はんだ付けが必要なのは、ESP-WROOM-02にヘッダピンを取り付ける部分だけです。
それ以外は全てブレッドボードに直挿ししていきます。
安定動作等を求めるなら、ユニバーサル基板に配線したほうが良いのでしょうけど・・・。
Arduinoスケッチ
Arduino上で動作させるプログラムのことをスケッチと呼びます。
今回はWebサーバーを動かすのですが、Webサーバーを動かすサンプルはありません。
なので、ESP8266用サンプルスケッチにある「TCPServer」を改変して利用します。
この改変済みTCPWebServer.inoでは、受信したリクエストがGETメソッドであれば常に「reboot」リンクを表示するHTMLを返します。
そして、rebootディレクトリを指定した場合のみ、リレーを動作するようにしています。
すなわち、rebootリンクへのリクエストが行われると、リレーが動作します。
完成
実際にローカルネットワーク内のPCやスマートフォンからArduinoのページへアクセスし、リンクをクリックしてリレーがカチカチなることを確認します。
動作が確認できたらサーバー機のケース内へ押し込みます。
リレーからはオス-メスのジャンパワイヤーを使用して、マザーボードのフロントパネルコネクタのRESET SW端子へと接続します。
一般的なマザーボードであれば、フロントパネルコネクタも2.54mmピッチなので市販のジャンパが使用可能です。
Arduinoの電源元は、当初はサーバー機自身のUSBポートを使用していましたが、PC側の動作が不安定になることがあったため、PCケース外にスマートフォン用充電器を設置し、そこに接続をしています。
5V500mA出力ができるACアダプタであればなんでも大丈夫だと思います。
動かしてみる
目的は達成したぞ! pic.twitter.com/f6bmOzoTiH— Ex-JobHunter (@advanced_bear) 2017年7月24日
動きました。
感想
結構面倒だったかなと思います。
製作期間とかプログラムの部分はともかく、電子部品の取り寄せが面倒くさすぎです。
やはり電子工作は都会の遊びですね。
マルツパーツや秋月電子に日帰りで買い物に行ける地域の人間じゃないと辛いです。