ともさんのHP >ものつくり >電子工作 >自作防犯装置の仕組み

自作防犯装置の仕組み

この記事は2007年に作成したページをまとめたものです。
泥棒を撃退したり、植木鉢に水をやったりする装置を作っています。現在試験運転中。
パソコンとマイコンを下図のように繋いで使います。


パソコンと マイコン 楽天 1はLAN回線でつなぎます。マイコン1とマイコン2は RS232Cという通信速度の遅いケーブルで繋ぎます。
パソコンはマイコン2たちに命令を送ったり、マイコン2から情報を受け取ってデータ を保存したりする役割をもっています。
マイコン1の役割は、異なる通信方式を翻訳して取り次ぐ役目を持っています。
マイコン2にはセンサーやLEDライト、ブザーが取り付けられていて、侵入者がいないか監視し、 ブザーを鳴らして警報を出したり、温度センサーで気温測定をしたりする役目を持っています。

試運転開始

いろいろあってなかなか動いてくれませんでしたが、なんとか動き始めました。

写真はDATAを仲介するマイコンと電源を納めた箱。 右側に斜めになっている茶色いものが、DATAを収集するマイコンです。 本来はケーブルで所定の位置に置きますが、とりあえずは箱の中で試験運転です。
グラフはこのシステムで測定した温度(上)と湿度(下)。 まだバグが潜んでいそうなので、しばらく試験運転をつづける予定。


システムの機能

「汎用防犯システム」は侵入者を検知するほかに気温や湿度を計測したり、自動的に水遣りをしたり...いろいろなことをできるように考えてあります。 とりあえず今できることは下記のとおり。
・侵入者を検知してブザーを鳴らす。
・人が近づいたらLEDを点灯して足元を照らす。
・温度、湿度の定期計測、と計測結果のインターネット上への自動掲示。


 将来は下記のこともできるように設計してあります。
・植物への自動水遣り
・飼育しているミツバチの状態計測
・侵入者検知時の自動メール配信
・温室の管理、育苗箱の管理

マイコンの構成

下図のような構成になっています。制御パソコンは普通のもの。WEBサーバー兼用です。家庭内LANを通じて中継マイコンと通信します。
中継マイコンは、信号をLAN⇔RS232Cに変換するだけの役割を持っています。 パソコンにもRS232Cポートがあるのでなくても良いのですが、あれば汎用性が増すので 入れています。複数の汎用防犯装置が中継マイコンとRS232Cで繋がっています。

制御パソコンはこんなもの。会社でリース切れになった物を安く売っていたので購入しました。 OSはLINUXを入れています。その前は写真左側の「玄箱」を使っていましたが、 玄箱用のJAVAに画像処理用のAPIが入っていなかったので止めました。 玄箱の方が消費電力が少ないし、場所をとらないのでむしろ適していると思いますが、 気温計測結果のグラフを自動的に作りたかったので普通のパソコンに取り替えました。

中継マイコンは秋月電子通商の「H8/3069Fネット対応マイコンLANボード」です。 OSはMES を使っています。
奥の方に見えているのは仮組立した電源です。

制御盤に組み込んだ状態。電源と中継マイコンを入れています。 斜めになっているのは仮に取り付けた汎用防犯装置です。
電圧計と電流計が横向きに付いていますが、実はたてと横を間違えてつけてしまい、 こんな状態になってしまいました。箱が正方形だったので上下左右がないとてっきり 思い込んだ失敗です。


汎用防犯装置。同じ物をたくさん作って家の周りに据え付けます。 緑色のものはマイコン「AKI-H8/3664F」です。基板上には各種センサー、 LEDなどをハンダ付けしてあります。

軒下に取り付けた状態。木製の保護カバーをつけて使用します。

マイコン間通信

通信は制御パソコンがまず発信し、中継マイコン、汎用防犯装置の順で往信してゆきます。
パソコンと中継マイコンの間はUDPで通信します。UDP通信は送ったデータが届かない 場合があるので、パソコンは送信後一定時間応答がなければデータが途中で消えたと 判断して再度発信します。
中継マイコンはUDPでデータを受信すると、汎用防犯装置へRS232C通信でデータを送り、 返信を待ちます。汎用防犯装置から返信を受けた後、制御パソコンへ返信します。

制御パソコン⇔中継マイコンの間でやり取りするデータの書式は下記のとおり。

****!_ _ _ _ _ _ _ A

合計20文字で、途中に「!」が入ります。20文字目の1文字は16進数「0~F」 が入ります。制御パソコンはデータを送信するたびに1,2,3・・・ と数字を足して送信し、中継マイコンは受信したデータの最後の数字と同じ値を 返信データにつけて返信します。
中継マイコン⇔汎用防犯装置間でやり取りするデータの書式は下記のとおり。

GGHHFFFF!

最初の2文字は汎用防犯装置の名前を示します。次の2文字は汎用防犯装置に対する命令。 その後のFFFFは付いたり、つかなかったりします。命令の種類によって変わります。 最後の「!」はデータの終わりを示します。
中継マイコン1台に対し、汎用防犯装置は複数台あります。 RS232C通信では1対1でしか通信できないはずです。どのように繋いでいるかというと、

汎用防犯装置の出力ポートにダイオードと抵抗を取り付けました。
こうすることで隣の装置が送信したデータを取り込んで壊れてしまうのを防いでいます。 どの装置に向けて発信されたかは、データ中にある装置の名前と自分の名前を比べて判断します。
例えば、装置GGに対して温度測定をして結果を送るように命令を出す場合、
制御パソコン→中継マイコン
GGGG!_ _ _ _ _ _ _ _6
中継マイコン→汎用防犯装置
GGGG!
汎用防犯装置→中継マイコン
GGGG0134! (0123は測定結果)
中継マイコン→制御パソコン
GGGG0123!__ _ _ _ _6
という信号が行き交います。

パソコンのソフトウエア

制御パソコン、中継マイコン、汎用防犯装置はそれぞれコンピュータですので ソフトウエアを作成し、作業命令を書き込んであります。
制御パソコンのソフトウェア
JAVA言語を使って書きました。パソコンのOSはDebianLinuxです。その他、 データを収納するためにPostgreSqlを連携させています。
JAVA 楽天 のソースはこちら。

> 動作順序は下記のとおり。
①作業ファイルを読み込む。
②時刻を監視
③指定時刻になったら①指定の作業を実行。
④戻ってきたデータをデータベースに格納。
⑤指定作業を実行
の動作を繰り返します。作業ファイルは「いつ、どんなことをしてください」 と書いてあるファイルで、人間が読みやすいようにcsvファイル形式にしてあります。 エクセルで作成し、所定の場所に保存すると、ソフトウェアが定期的に読みこみます。
10分ごとに温度と湿度を計測、夜20時から朝7時の間人を検知したら高輝度LEDを光らせる 設定になっています。
⑤の指定作業は汎用防犯装置との通信以外の行為で、温度、 湿度をグラフ画像化したりする作業です。
DebianLinuxでJAVAのプログラムを起動時に自動的に動かすには、 下記の手順で設定をします。
①/etc/init.d/のskeltonをコピーして名称変更、bouhanにする。
bouhanの中身変更

#DESC="some daemon"
DESC="bouhan doraemon"
NAME=daemon
#DAEMON=/usr/sbin/$NAME
DAEMON=/var/socie/tomolib/bouhan/bouhan.txt
②bouhan.txtの作成
/var/socie/tomolib/bouhan/bouhan.txtを作り、中身を下記のようにします。
最後に&を書くように気をつけます。無いとキー入力を受け付けなくなります。
#! /bin/sh
source /etc/profile
export CLASSPATH=/var/socie/;
java tomolib.bouhan.BouhanComm &

③ランレベル2の後ろのほうに登録
 # cd /etc/rc2.d
 # ln -s ../init.d/bouhan S99bouhan<
 S99stop-bootlogd、S99rmnologinより前になるように設定します。

中継マイコンのソフトウエア

中継マイコンの役割は、単に信号をLAN⇔RS232Cに変換するだけです。 パソコンにはRS232C端子があるので必要ないともいえるのですが、 汎用性を増やす意味でパソコンからはLAN信号を出す事にしました。
制御パソコンと汎用防犯装置を直接繋いでしまうことも考えましたが、 いろいろな面で高価なので止めました。

中継マイコンにはOSとしてMESを入れ、GCCでプログラムを書いています。 これ。
制御パソコンとはUDP接続で通信します。汎用防犯装置とは300ボーでシリアル通信をします。 300ボーでは1秒間に40文字程度しか送れませんが、情報量としては十分です。 十分に遅くして通信エラーを減らすように考えています。中継マイコンと制御パソコンは LANケーブルで繋いでいます。汎用防犯装置とはシリアルケーブルで繋ぎますが、 探したところLANケーブルが一番安くて手に入りやすいので、これを使っています。

汎用防犯装置のソフトウエア

装置にはマイコン「AKI-H8/3664F」が組み込んであります。 組み込んで、というよりは載せているという感じですが。 YellowsoftC を使ってプログラムを書きました。
これ。 H8/3664はメモリが少ないのでこのプログラムをいれて一杯に近い状態です。 もう少し機能を追加したいのですが。
装置の名称はアルファベット2文字です。装置ごとに名称を変更してコンパイルします。 動作命令は下記のとおり。

GG 温度計測結果を発送する
GH 湿度計測結果を発送する
GI 高輝度LEDを点灯する
GJ 高輝度LEDを消灯する
GK ブザーを鳴らす
GL ブザーを消す
GM LED赤点灯
GN LED赤消灯
GO LED黄点灯
GP LED黄消灯
GQ LED青点灯
GR LED青消灯
GS ブザーを一定期間鳴らす
GT 人を検知したら一定期間ブザーを鳴らす
GU 人を検知してもブザーを鳴らさない
GV 人を検知したら一定期間高輝度LEDを光らす
GW 人を検知しても高輝度LEDを光らさない
GX 防犯解除キーをセット
GY 防犯解除キー入力を受け付けるようにする
GZ 防犯解除入力を受け付けないようにする
Gg 単に返答をする
Gh フラグ情報をサーバーへ返す。
Gi 設定状況をサーバーへ返す。
Gj 特定のポートのIO設定を行う。
Gk 特定の出力ポートの設定を行う。
Gl 特定の入力port、bitno番目の端子のl/hを取得する。
Gm 各PORTの状態を返す1,5,7,8,Bの順

汎用防犯装置の構成部品

マイコンAKI-H8/3664を中心に電子部品を基板上に取り付けてあります。
部品名と主な用途は下記のとおり。


・高輝度LED
 夜に足元を照らすためのものです。
・LED赤・青・黄
 装置の状態を表示するために使います。
・ブザー
 侵入者を検知したときに鳴らします。
・温度センサ
 温度計測のため。将来は「○℃なら□△する」という使い方をする予定。
・湿度センサ
 湿度計測のため。将来は「○%なら□△する」という使い方をする予定。
 高価なので1つの装置にしか取り付けていません。
・赤外線センサ
 人検知用。検知したらブザーを鳴らしたり、LEDをONにしたりします。

ここ にエッチング基板作成用のデータファイルを置いておきます。参考にされてください。

最終更新日: 2021-11-09 05:33:28

ともさんのHP >ものつくり >電子工作 >自作防犯装置の仕組み

広告
新着ページ

柿畑で見つけたコケや地衣類の写真  
ミツバチ科学に掲載していただきました  
ミツバチに逃げられてしまった  
ミツバチ用電気柵の構造  
2021年の柿の収穫  
マムシに咬まれない対策  
五右衛門風呂の風呂釜を修理  
MES覚え書き  
柿酢の作りかた  
養蜂用手袋  
ミツバチの毒によるアナフィラキシーショック  

他のサイト

3D-CAD
洋裁CAD

いいねなど

 RSS 

Author: Tomoyuki Ito

このサイトの文章・写真の無断転載を禁じます