WebブラウザからRaspberry Pi のGPIOを操作する(WebIOPi 利用)
解説
    WebIOPi を利用すると、Webブラウザから Raspberry Pi をリモート操作することができます。
    (Control, debug, and use your Pi's GPIO locally or remotely, from a browser
    or any app. 
     http://webiopi.touch.com)
    
    WebIOPi を利用すると、Arduinoのスケッチ風のフォーマットで、Raspberry Pi を操作するプログラムを書くことができます(setup関数/loop関数/destroy関数)。
    ( You can extend the WebIOPi behavior by loading custom Python script using
    an Arduino like syntax with setup/loop functions.
     http://http://webiopi.trouch.com/Tutorial_Basis.html
    
    Webブラウザから Raspberry Pi のGPIOを操作することができます。
最低すべきこと
スクリプトファイル
- 定常時の処理
 - 定常時の処理の定義は、Arduinoのスケッチ風のフォーマットで記述します。
setup関数/loop関数/destroy関数 に必要な処理を記述します。 - Webブラウザからの要求時の処理
 - Webブラウザからの要求時の処理の定義は、マクロ関数として記述します。
「@webiopi.macro」を付加した関数を定義し、必要な処理を記述します。 
HTMLファイル
- Javascriptファイルの読み込み
 - WebIOPiのJavascriptファイルである「webiopi.js」を読み込む処理を記述します。
「<script type="text/javascript" src="/webiopi.js"></script>」 - マクロ関数の呼び出し
 - スクリプトファイルで定義したマクロ関数を呼び出す処理を記述します。
「webiopi().callMacro( "マクロ関数名", 引数 );」 
部品表
| 部品名 | 数量 | 商品名 | 参考価格 | 
|---|---|---|---|
| LED | 3 | 赤色LED 3mm OSDR3133A | 100個350円 | 
| 100Ω抵抗器 | 3 | カーボン抵抗(炭素皮膜抵抗) 1/6W 100Ω | 100本100円 | 
| Raspberry Pi | 1 | Raspberry Pi 3 Model B | 6,300円 | 
| ブレッドボード | 1 | EIC-801 | 250円 | 
| ジャンパーワイヤ | 適量 | ジャンパーワイヤ(オス-メス) | 10本300円 | 
接続例
出力ピンとして、GPIO 23、24、25 を使用した場合の接続例
    
WebIOPiのインストール
Raspberry Pi にWebIOPiをインストールしてない場合は、まず、WebIOPiをインストールします。
    
    WebIOPiのインストール
スクリプトファイルの作成
Webブラウザからの要求を処理するスクリプトファイルを作成します。
    「/home/pi/work/webiopi」フォルダに、「callmacro_leds.py」というファイル名で、以下の内容のスクリプトファイルを作成します。
HTMLファイルの作成
Webブラウザからアクセスする HTMLファイルを作成します。
    「/home/pi/work/webiopi」フォルダに、「callmacro_leds.html」というファイル名で、以下の内容のHTMLファイルを作成します。
WebIOPi サービスの設定の変更
WebIOPi のサービスを開始したときに、作成したスクリプトが実行されるように、WebIOPi サービスの設定を変更します。
    また、Webブラウザからアクセスしたときに、作成したHTMLが表示されるように、WebIOPi サービスの設定を変更します。
    
    WebIOPi サービスの設定は、「/etc/webiopi/config」ファイルに記述されています。
    
    以下のコマンドを実行し、「/etc/webiopi/config」ファイルを開きます。
[SCRIPTS] セクションを探し、[SCRIPTS] セクションの「myscript =」に、作成したスクリプトファイルを指定します。
[HTTP] セクションを探し、[HTTP] セクションの「doc-root =」、「welcome-file =」に、作成したHTMLファイルを指定します。
編集し終えたら、
    Ctrl + O
    で上書き保存し、
    Ctrl + X
    で nano を終了します。
実行
WebIOPi のサービスを開始します。
パソコンやスマートフォンのWebブラウザを起動し、Raspberry Pi のポート8000にアクセスします。
    (認証ダイアログが表示された場合は、
     ユーザー名:webiopi
     パスワード:raspberry
     と入力します。)
    
    ブラウザ画面のチェックボックスの選択状態を変更することで、LEDの点滅、消灯を変更できます。
    ブラウザ画面のラジオボタンの選択状態を変更することで、LEDの点滅速度を変更できます。
    
WebIOPi のサービスを終了するには、以下のコマンドを実行します。
