ラズパイの設定 その1
ファイルの配置
index.html
action.py
arduino.py
start_cgi_server.py
signal.txt(これはサンプルです)
の 5 つのファイルを以下のように配置します。
public_html と cgi-bin はディレクトリを新規作成
してください。
/home/pi/public_html/index.html
/home/pi/public_html/start_cgi_server.py
/home/pi/public_html/cgi-bin/action.py
/home/pi/public_html/cgi-bin/arduino.py
/home/pi/public_html/cgi-bin/signal.txt
<ディレクトリの作成>
この作業は LXTerminal や TeraTerm のようなターミナル
エミュレータ上で行います。
今後、行頭の $ はターミナルエミュレータ上でコマンドを
打つことを意味します。
$ pwd
/home/pi
$ mkdir public_html
$ cd public_html
$ mkdir cgi-bin
<ファイルの修正>
Edge などで「対象をファイルに保存」として、
index.html, start_cgi_server.py, action.py, arduino.py を Windows パソコンに
ダウンロードします。
メモ帳などのエディタで必要な箇所を修正します。
・index.html の修正(必須)
エアコン操作用の個々のボタンは
yyyy
のようになっています。
xxxx を signal.txt 中のヘッダの文字列と同じにしてください。
yyyy はボタンの上に書かれる文字列です。適宜変更してください。
・arduino.py の修正
vcc = 4.95 という行があります。
温度測定用 IC LM35 は 1℃ につき 10 mV の電圧を発生します。
Arduino は 1024 段階で AD 変換します。
本工作では AC アダプタの入力をラズパイに入れ、
ラズパイと USB 接続して Arduino に 5 V を供給します。
電圧は AC アダプタによって微妙に異なります。
正確な温度を出したい場合、温度計による実測値と合うように、
数値を設定してください。2~3 度の誤差を許容する場合は、
そのままでも構いません。
Arduino の AD 変換の精度が 1024 段階なので、1 段階
は約 5 mV であり、温度の精度は 0.5 度程度です。より
精度を上げたい場合は、単電源のオペアンプで非反転増回路
を組み、増幅すれば良いでしょう。
<ファイルの転送>
FFFTP などの ftp ソフトウェアを使って、5 つの
ファイルをラズパイに転送します。ラズパイの IP アドレスは
$ ifconfig
を実行し、wlan0 の欄に表示されている 192.168.xx.yy です。
<ファイルの属性変更>
index.html の属性を 644
action.py arduino.py start_cgi_server.py の属性を 755 にします。
$ pwd
/home/pi/public_html/cgi-bin
$ chmod 644 index.html
$ chmod 755 action.py arduino.py start_cgi_server.py
<ラズパイ上での再修正>
ラズパイにはエディタ nano がインストールされています。
nano を使ってラズパイ上で html ファイルや txt ファイルを
修正することができます。
$ nano index.html
nano の色付けが見づらい場合は、以下のようにします。
$ export TERM=vt100
動作チェック
$ cd ~/public_html/cgi-bin
$ sudo ./arduino.py check
これは、signal.txt の中で check で始まる行の、
次の行から記述されている数値を送ります。
3 秒ほど待って、赤色 LED が 5 回チカチカしたら OK です。
ラズパイが Arduino に USB ケーブル経由でシリアル信号を送るとき、
3 秒のディレイが必要です。
次に、action.py から arduino.py を呼び出して、実行できる
ことを確認します。
$ sudo -s
# export QUERY_STRING=radio1=check
# ./action.py
# exit
行頭の # は root の権限で実行することを意味します。
action.py は本来 web クライアントから cgi として実行されます。
このとき、QUERY_STRING という環境変数に、押したボタンの名前が
入って action.py に渡されます。
上記のチェックコマンドは radio1=check という文字列が web クライアントから
送られて来たときと同じ動作をします。
3 秒待って、赤色 LED が 5 回チカチカしたら OK です。
次のページへ