外出先からの操作と確認
外出先から操作したり、室内の状況を
確認する方法として、以下の 2 つが考えられます。
- 自宅用に固定 IP を取得し、外部から自宅内 LAN にアクセスできるようにする。
- 中継用の外部 Web サーバを利用する
1 の方法は自宅内に外部からの侵入を許すので、セキュリティ上の
リスクがあります。また固定 IP を取得するのに費用がかかります。
ここでは、2. の方法を紹介します。
私が普段使っているプログラムを示しますので、
自分用に改造してお使い下さい。
- 操作用ページ を作る。
ただしこのページの url は他に知らせない秘密の url とする。
- そのページで on/off などのボタンを押したら、
CGI プログラムを起動し、
サーバー内のファイルに「命令と時刻」を記録する。
- そのファイルの url に自宅のラズパイからアクセスする。cron を使って
アクセス用プログラム
(エアコン操作
タイマーon/off)
を 1 分に 1 回起動する。そのプログラムは指示に従ってエアコンを操作する。
- そのページで室温・照度を確認できるようにする。ラズパイで
このプログラム を 1 分に 1 回
起動して、室温と照度を記した html ファイルを ftp する。
remote.py の中で print() を実行すると、
その内容がメールで来ます。
remote.py は 1 分おきに実行するプログラムなので、
大量のメールが来てしまいます。
remote.py の中では print() 文は使わない、あるいは
cron で実行するときに
.../remote.py > /dev/null 2>&1
のように書いて下さい。
上記の方法では、秘密の url を知られてしまったら、
だれでもエアコンの操作ができてしまいます。
それを防ぐには、以下のようにすればよろしい。
上記のサンプルプログラムは (1) 操作用ページ (html)
(2) CGI プログラム (3) 命令記録用ファイル
を同一のディレクトリに入れる前提で書いています。
以下のようにします。
- (1) を /~pi/dir1 (3) を /~pi/dir2 のように
別のディレクトリに入れる。(2) はどちらに入れてもよい。
- /~pi/dir1 はパスワード認証つきのページにする。
ディレクトリにパスワードを設定したら、それ以下の全ての
ディレクトリに適用されるので、dir2 は dir1 の下に来ないように
する。/~pi/dir1/dir2 としてはいけない。
トップにもどる
2024 年版