ラズパイの設定 その1

ファイルの配置

index.html
action.py
arduino.py
signal.txt(これはサンプルです)
の 4 つのファイルを以下のように配置します。
public_html と cgi-bin はディレクトリを新規作成
してください。

/home/pi/public_html/index.html
/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

<ファイルの修正>

IE などで「対象をファイルに保存」として、
index.html, action.py, arduino.py を Windows パソコンに
ダウンロードします。

メモ帳などのエディタで必要な箇所を修正します。

・index.html の修正(必須)

エアコン操作用の個々のボタンは
<span class="blue" onclick="push('xxxx')"> yyyy </span>
のようになっています。
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 ソフトウェアを使って、4 つの
ファイルをラズパイに転送します。ラズパイの IP アドレスは

$ ifconfig

を実行し、wlan0 の欄に表示されている 192.168.xx.yy です。

<ファイルの属性変更>

index.html の属性を 644
action.py  arduino.py  の属性を 755 にします。

$ pwd
/home/pi/public_html/cgi-bin
$ chmod 644 index.html
$ chmod 755 action.py arduino.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 です。
次のページへ