カテゴリ
リンク

当サイトは、玄箱PRO (KURO-BOX/Pro)を中心とした組み込み、Linuxと電子工作を扱っています。
会社案内

情報セキュリティおよび個人情報の取り扱いについて


コメントとトラックバックは、spamを予防するために、編集担当が公開の作業をするまで非公開になっています。コメントはそれぞれ投稿した人のものです。

 一度、この論文を読んでしまうと、並大抵の利用方法では勝ち目はなさそうです。
 さて、気を取り直して、今般は玄箱(pro)と組み合わせて「家人を検出して知能的な照明をする」ことを目標にしてみました。
 まとめてみますと、こうなります。
  • 家人を感知する。
  • 玄箱(pro)が察知し、種々計算して電灯を制御する。
  • 制御にはネットワーク経由の X10 を利用する。
  • 出来合いのものを利用する。
 人間を感知する方法(センサ)には多くのものがありますが、「人感センサ」を利用してみました。
これは Nationalの製品(PDFへのリンク)を使っています。以下に、詳細な写真をお見せします。親機センサには、動作する明るさの調節とオフするまでの時間調節があって、検知範囲を変えるために、中心のセンサ部分を傾けられるような工夫がされています。また、範囲拡張用に子機センサーが使えます。
 この製品の場合では、動作時間が連続および 10 秒~ 30 分となっており、動作する明るさの閾値のボリュームが付いています。なお、子機の方では親機のみに接続するようになっており、電力制御はできません。

x6-6P1000210.jpg
写真6:人感センサ(配線側の様子、左側は子機)

x6-7P1000211.jpg 写真7:人感センサ(表面側の様子、左側は子機)

x6-7P1000212.jpg 写真8:人感センサ(設定スイッチの様子、右側は子機)

x6-8P1000216.jpg 写真9:人感センサ(カバーを外したところ)

 玄箱(pro)には、「USB のシリアル通信」でセンサ感知を伝えることにしました。写真10のように人感センサは、オンすると AC100V で照明器具をオンするように働きますから、これでモデムの電源を入れさせます(写真11)。
 近頃、モデムという言葉は耳にしませんが、それゆえパソコン中 古部品ショップでタダ同然で購入することができます。

x6-8P1000217.jpg 写真10:人感センサ(AC電源の配線をしたところ)

x6-9P1000230.jpg 写真11:モデムを接続している様子

●人の感知(モデムの稼働確認)

 人の感知は、人感センサでモデムがオンになったことが、玄箱(pro)からわかれば、(大体の峠を越えた意味として)"以上終了"です。モデムに電源が入ってレディ状態になると、シリアル通信で"AT"コマンドを送り付けると、"OK"なる返答をしてきます。
 したがって、プログラムとしては、以下のように非常に簡単になっています。人感センサの動作時間は、人が居なくなり次の検知に備えるため 10 秒にしておきます。


●モデムをつないで、反応をみる

 これまでの記事で使用している「USB シリアル通信ケーブル」にて、モデムへの接続を確認しておきます。キーボードより"AT"(小文字でも可)と入力すると、"OK"と返事が帰ってくるはずです。

kurobox-pro:/home/k-wada/program# cu -l /dev/ttyUSB0
Connected.
at
OK

●モデム通信プログラム

 上記の部分だけを模したプログラムを作成します。これは、起動されると /dev/ttyUSB0 に対して "AT" を出力し、返事を標準出力に表示するだけのものです。

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#define BAUD       1200

unsigned char buff[256] = {0, 0, 0, 0, 0, 0, 0, 0, 0};
char txbuff[256] = {'A', 'T', 0x0d, 0x0a};
char flag = 1;

int FD232c;
struct termios qtermios;                     /* termios.h */

static char sio[] = "/dev/ttyUSB0";

int main()
{
        int r, c;
        if((r = open232c(sio)) > 0) {
          fprintf(stderr, "%d\n", r);
          exit (1);
        }
        while (flag) {
                flag = 0;
                write(FD232c, txbuff, 4);
                sleep(1);
                if ((c = read(FD232c, buff, 10)) > 0) {
                      fprintf(stdout, "%c%c\n", buff[0], buff[1]);
                }
        }
        close(FD232c);
}


int open232c(char* ttyname)
{
  struct termios  tty;
  int             r;
  
  if((FD232c = open(ttyname, O_RDWR|O_NDELAY|O_NONBLOCK, 0477)) >= 0) {
    qtermios.c_iflag = IXOFF;
    qtermios.c_lflag = (PENDIN|ECHOKE|ECHOE);
    qtermios.c_cflag = (CLOCAL|HUPCL|CREAD|CS8);
    qtermios.c_ispeed = BAUD;
    qtermios.c_ospeed = BAUD;
    tcsetattr (FD232c, TCSANOW, &qtermios);
    return 0;
  }
  perror("Can't open SIO.\n");
  return 1; 
}


●コントロール・プログラム(control.bsh)

 コントロール・プログラムといっても大袈裟なものではなく、1秒ごとにモデムの電源オンを監視している単純なものです。モデムは、人感センサでオンされるの で、モデムよりの"OK"の返答があれば、"人間を感知した"ことに相当します。人間を感知すれば、玄箱(pro)のコンソール画面の表示でわかります。
 なお、"!A20" および "!A28" という文字列は、電源オンまたは電源オフのための制御コードです。より詳細な情報については、情報検索の結果として http://www.freecon.co.jp/pdf/X10_FCPLC.pdfがありましたので、参考にしてください。
 こうして製作過程をお読み頂けた方の中には、何か別への応用を思い付かれた方もいらっしゃるかもしれませんね。

#! /bin/sh

modem=/home/k-wada/program/modem/modem
xport=/home/k-wada/program/xport/xport
ip="192.168.1.22"
ON="!A20"
OFF="!A28"

while true
do
        ack=`$modem`
        if [ "$ack" = "AT" ]
        then
                echo "ON"
                echo $ON | $xport -h $ip
                sleep 3
        else
                echo "OFF"
                echo $OFF | $xport -h $ip
                sleep 1
        fi
done
 もともと玄箱(pro)を利用して考えている基本的なことは、人を感知し、何らかのインテリジェンスな処理をこなし、XPortにてネットワーク経由で親 機ユニット(シリアル通信タイプ)に通信を行い、この親機が 100V ラインを通じて、別の部屋の機材の電源オン/オフすることでした。上述のように「人の感知」の製作部分は終了したわけです。
 過去記事のように XPort を応用してネットワーク通信は実験ずみですから、残すところ XPort と X10 の親機ユニット(シリアル通信タイプ)をつなぐだけです。
 ところが、親機ユニット(シリアル通信タイプ)を購入しようとオーダーしてみると、すでに冒頭で紹介したサイトでは、この製品の扱いを終了したとのことで、ハタと困ってしまいました。

(次回につづく)

<和田 好司>


 カテゴリ 

 

トラックバック(0)

このブログ記事を参照しているブログ一覧: XPort活用 「その3」《家庭電源制御編》 その2

このブログ記事に対するトラックバックURL: http://www.eleki-jack.com/mt/mt-tb.cgi/1856

コメントする

おすすめ書籍
Powered by
Movable Type 4.1