Edited at

myThingsやSORACOM,Lazuriteでイノシシわなの監視装置をつくる

More than 3 years have passed since last update.


イントロ

イノシシやシカなどが農作物や樹木への被害をあたえる、いわゆる獣害がふえています。

今回は柵をつかったワナが作動したときに、自分の携帯メールに通知をとばす仕組みを考えてみました。


参考、謝意

メーカーの公式情報以外に下記投稿を参考に作成しています。大変参考になりました。感謝です!!

http://qiita.com/dietposter/items/068019ee53252206a6bf

http://qiita.com/masato/items/f9be4a15216fe29de7fb

http://homepage6047.sakura.ne.jp/

狩猟自体は狩猟免許がないとできません。今回は免許をもっているわたしの嫁とその師匠に協力してもらいました。こちらも感謝です。


ワナのイメージ

今回は箱ワナといわれる形状のワナに対応できる装置をつくることにしました。

ワナは人が住んでいる場所から数100メートルくらいはなれた山林に点在しています。

ワナの状態は毎日見に行くことになりますが、ワナが作動していることがわかれば、見回りのタイミングや順番などは工夫ができるようになります。


構成

おおまかな構成は次のようになります。

ゲートウェイとインターネットの接続は、いつでもどこでも使えるように3Gで接続したかったのでRaspberry Pi + SORACOMを使うことにしました。

センサーは、なるべく省電力かつゲートウェイまで遠距離通信ができるものにしたかったので、ArduinoライクなIDEをもった省電力マイコンキットでBP3596Aというローム製のサブギガ通信モジュールが使えるラピスセミコンダクタのLazuriteをつかってみました。


ゲートウェイ


センサー


クラウド


ゲートウェイの設定

Raspberry PiとLazurite Pi Gateway, BP3596A, ボタン電池(CR1220)を接続します。


Raspberry Piの設定

LazuriteのダウンロードサイトよりRaspberry Piの起動イメージをDownloadし、起動用のSDカードにイメージを書き込んで起動し、Raspberry Pi 2の初期設定をしていきます。

$ sudo raspi-config

ファイルシステムの拡張とタイムゾーンの変更を行います。


  • Expand Filesystem > Select

  • Internationalisation Options > Change Timezone > Asia > Tokyo

再起動します。

$ sudo reboot

Raspberry Piをネットに接続したうえで、以下の設定をしてください。

パッケージの更新とアップグレードをします。

$ sudo apt-get update

$ sudo apt-get upgrade

NTPサーバーを日本のサーバーに設定します。


/etc/ntp.conf

#server 0.debian.pool.ntp.org iburst

#server 1.debian.pool.ntp.org iburst
#server 2.debian.pool.ntp.org iburst
#server 3.debian.pool.ntp.org iburst
pool ntp.nict.jp iburst

ntpdの再起動をして時間あわせをします。

$ sudo /etc/init.d/ntp restart

Stopping NTP server: ntpd.
Starting NTP server: ntpd.

RaspberryPi起動時にSub-GHzのドライバをインストールするように設定します。


/etc/init.d/subg.sh

#!/bin/bash

### BEGIN INIT INFO
# Provides: mac008008
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Lazurite Sub-GHz
### END INIT INFO

echo Installing Sub-GHz..
sudo insmod /home/pi/driver/sub-ghz/DRV_802154.ko


$ sudo chmod 755 /etc/init.d/subg.sh

$ sudo insserv -d /etc/init.d/subg.sh


SORACOMの設定

@diteposterさんの投稿をベースに設定します。


センサー側の設定

センサー側はリードスイッチのOFF/ONを検知して、ゲートウェイに通知する仕組みをつくります。

リードスイッチは、スイッチ部分に磁石が近づくことでスイッチがONになります。

イノシシの柵に磁石を取り付けることで、通常はスイッチはON状態ですが、ワナが作動すると柵が降りるため磁石とスイッチがはなれスイッチがOFFになります。

Lazurite Sub-GHzに通信モジュールとリードスイッチを取り付けます。

リードスイッチはGND2番PORTに接続します。

リードスイッチには極性はないのでどちらにつけても大丈夫です。


Lazurite IDEのインストール

Lazurite IDEはWindows版のみ配布されています。

IDEのインストール方法はこちらを参照ください。


Lazurite Sub-GHz側プログラム

通常状態では26番ポートに標準でアサインされているLEDを青色に点灯させます。

リードスイッチがOFFになった場合、26番のLEDをOFFにして、Gatewayがわに"gate_open"の文字列を送信します。

サンプルコードはこちらになります。6行目のHOST_ADDRESSはgateway側のSubGHz通信モジュールのシリアル番号の下4桁になります。


プログラムの反映

IDEを起動し、Lazurite Sub-GHzのmicro USBインターフェースとIDEのインストールされたPCを接続します。

ファイルから適用したいファイル名を選択し、適用先の環境を下記の通り設定し、ビルドしたうえでマイコンボードに書き込みします。

ツール>マイコンボード>Lazurite Sub-GHz Rev2

ツール>オプション>Lazurite Sub-GHz

ツール>シリアルポートから適切なポートを設定ください

下記のメッセージがでてリードスイッチに磁石を近づけるとPort26が点灯すれば設定完了です。



Success ML620Q504 reset


IDCFチャンネルサーバを構築する

myThingsを自作デバイスと接続するためのプロトコルゲートウェイとして、IDCFクラウド上にIDCFチャンネルサーバを構築します。設定は@masatoさんの情報を参考にしてください。

今回はtrigger-1をつかってmyThingsに通知を行うため、サーバのグローバルIPアドレスとtrigger-1のUUIDとTOKEN情報をメモしておいてください。


myThingsでIDCFチャンネルを認証する

構築したIDCFチャンネルサーバをmyThingsで認証します。

こちらも@masatoさんの情報をそのまま参考にしました。


ゲートウェイの設定

ゲートウェイ側の設定に戻ります。

センサー側と接続して"gate_open"の文字列を受信したときに、IDCFチャンネルサーバにメッセージを送れるようにします。公式サイトで配布されているrubyのサンプルコードを改変したものがこちらです。

「IDCF」チャンネルのリポジトリからgit cloneします。

$ cd ~/ruby

$ git clone https://github.com/mac008008/lazuriteGW

メモしておいたIDCFチャンネルサーバのグローバルIPアドレスとtrigger-1のUUIDとTOKENをgateopen.rbに書き込みます。


~/ruby/gateopen.rb

    if str_buf == "gate_open" then

uri = URI.parse ("http://{IP_Address}/data/{trigger-1 UUID}")
Net::HTTP.start(uri.host, uri.port){|http|
header = {
"meshblu_auth_uuid" => "{trigger-1 UUID}", "meshblu_auth_token" => "{trigger-1 TOKEN}"
}
body = "gate_open"
response = http.post(uri.path, body, header)
}
## print(sprintf("PANID=0x%04X, rxAddr=0x%04X, txAddr=0x%04X, Strings:: %s",myPanid,rxAddr,txAddr,str_buf))
end

RaspberryPi起動時にgateopen.rbが起動するように設定しておきます。


myThingsの設定

myThingsでtrigger-1が発火したときに、所定のアドレスにメールがとぶように設定します。


結果

まずはプロトタイプということで、ジップロックのなかにDC電源付きのLazuriteとシリカゲルをいれ、リードスイッチを柵に設置した磁石に接するように固定しました。

箱ワナの設置されている柵から100m程度はなれた箇所にゲートウェイをおいた状態で、手動でワナを動作させました。

以下のようにメッセージが送信されました!

見通しがよい場所だとかなりサブギガ帯の通信がとぶようですが、地形や樹木の状態などで大きく状況が変わるようでした。

今回はあまりアンテナの設置や消費電力、長期的に設置するための工夫などまではできませんでしたが、もうすこしフィールドで試行錯誤してみたいとおもいます!