IOTでやりたい事
とりあえず、IOT’でやりたい事ができました。2021年12月になんと狩猟免許(くくり罠)を取得しました。
愛媛県の田舎暮らしなので、憧れだったイノシシやシカを捕らえて肉にするところまでいきたいのです。
ただ、平日は臨床工学技士として働いているので、山奥にしかけた罠を定期的に観に行く(捕れていないか?)には大変、というか無理です。
まして、シカなどはくくり罠にかかると数日で死んでしまう場合があるそうです。
死んだ状態の獲物は血が回り美味しくないようで、みな廃棄するんだとか。
この状態を回避する為に罠にかかったら山奥に設置した罠であってもIOTの力で自身の携帯やメールにお知らせがくるシステムを構築したいと考えました。
またこの仕組みは仕事でもIOTとして知識の幅を広げそうなので真剣にとりくみまーす。
↓のような感じが理想ね!!
それに、猟友会でも高齢化が進み、しかけた罠の見回りもお年寄りにはしんどいようで、こんなシステムが簡単に導入できれば最高ですよね。
現状の狩猟IOTの問題点
私が考えるような事は先人たちもすでに考えていまして、罠に連動したお知らせ装置というのは製品化されていました。
ただ導入コストがくっそ高いです。
一セット購入するだけで数万円から数十万円します。
こんな罠に動物がかかったかどうかお知らせするだけのことに年金暮らしのお年寄りが上記のようなコストをかけられるわけもなく、発展してませんし発展する可能性もありません。
ただ、導入コストをおさえた検知システムもあります↓
令和2年10月に九州農政局振興部農村環境課がLTE回線を使用したSoracomLTE-MButtonという製品を利用した通知システムを自作しその導入方法を記載しています。
↓ ↓ ↓
ただ、これ問題があってSoracom → IFTT → LINE へ通知する仕組みなんですが、
IFTTの設定で、ひとつのアカウントで3つまでしかIFTT(レシピという)を動作させることができないです。それ以上はお金を払わないといけない・・・年契約で7000円くらいかかる・・高くない?
ですから罠を3つ以上設置する場合は使えません。とりあえずIFTTというはこちらで勉強してみてください。サービスとサービスを橋渡しする便利なやつです。
んで考えたのがIFTTを使用しない方法です。
使用するのはSoracom LTE-M button で製品は6000円から9000円で手に入り、月に100円程のLTE使用料がかかるだけです。
本体台に開きがあるのはボタンのみの製品と外部センサーを付けれるタイプ、はじから外部磁気センサーがセットになったタイプが存在するからです。
ただし、分解解析の結果安いやつでも後から外部センサーを取り付ける事ができる事がわかったので、安いやつ(6千円程度)でも十分機能します。この事はまた後日記事として書きます。
←SORACOM LTE-M Button Plus 8118円
←SORACOM LTE-M Button for Enterprise 6578円
Soracom button は使用しなければ料金もかかりません。
そのSoracom LTE-M buttonを利用して、アマゾンウェブサービス(AWS)を介してSlackへと通知するシステムです。
原理自体は様々な人が試しており安定しています。
たとえば
家のポストに荷物が投函されたらSlackに通知が来るIoTやってみた
では似たようなしくみで検知を行なっています。しかし、エンドポイントがなんじゃらとかAPIがどうのとかが私には意味がわかりません・・・私にわからなければ、世の狩猟の民には理解できないはずです。
導入の詳細がわかりにくく素人や新人ハンターには敷居が高いので、今回私が導入の詳細を述べたいと思います。
↓の画像が全てです。仕組みはボタンやセンサーをSoracom LTE-M buttonにとりつけておいて罠が作動するとセンサーが検知するような仕組みにしておきます。
センサーな様々なものが応用可能です。
たとえば、引っ張って磁石が外れるとスイッチが入る磁気センサーは近づくと検知するセンサー、もちろんボタンが押されると検知するものなどです。
センサーが検知(ボタンが押された状態)したら、SoracomのサーバーにLTE回線を通じ情報が伝達され、サーバー側からSoracom Funkというサービスが発動するようにします。
Soracom Funkからアマゾンウェブサービス(AWS)上で作成したおいたLambda関数というのがさらに発動して、その中に記述するプログラムからslackに通知がいくという仕組みです。
soracomから直接slackに情報がわたせるならめんどくないのですが、そのような機能はないので、このようになります。
この方法自体はsoracomのチュートリアルがあり参考になります。
Soracom LTE-M buttonの実践ガイドAWSと組み合わせるが結構役立ちました。が、しかしAWSとつなげるだけでそこから先の発展系が描かれていないので宝の持ち腐れです。これだけみても素人にはこれ以上の事は絶対にできません・・・
もうひとつ参考になったのはAWS Lambdaを実行してslackに通知するというチュートリアルです。このチュートリアルで全ていけそうですが、おそらくAWSのIAMロール作成のところとつまづきます。
結構わかりにくい記述で、英語のチュートリアルをそのまま翻訳したかんじ??でいまいちです。
この2つを組み合わせた方法が簡単でかつ、うまくいったのでその方法をご紹介します。
全体の流れの詳細
全体像を掴むために流れを把握!下図参照↓
図の通りです。
次より各パーツの設定について詳細を述べていきます。
説明の順番は④のslackのwebhookURLの取得 ③のAWS Lambda関数の設定 ①、②のSoracom側の設定という風にすすんでいきます。
なぜ④からやるかというと最後の④から設定しておかないと、設定に必要な情報が入力できないからです。
まずはslackの設定から
いちばん初めにする事は携帯かPCにslackをインストールする事からです。
ある程度slackが使えるところまで勉強なすってください。
slackに通知がくるようにするためににはslackのサービスのひとつであるincoming web hookというサービスを使います。
slackにこのincoming web hookをインストールしてURLをコピーするだけです。
下図の如く、開始→Appをクリックします。
検索までのincoming web hook もしくはwebhookでもいいので検索すると
incoming webhookがでてくるのでクリックします。
クリックしたら、ブラウザが立ち上がり自分のslackに関連づけられたページに移動し、インテグレーションの設定ができます。インテグレーションという言葉の意味はわかりませんが、インテグレーションの設定と書いてあるのでわかります。
そこで、どのチャンネルに送信したいか選びます。slackで作成しているチャンネルを設定します。
そもそもslackのチャンネル設定がわからなければslackの使いかたで履修してくださーい。
もどります。
まず、slackのどのチャンネルに通知するかをチャンネルの投稿からドロップダウンで選択します。チャンネルを作成していれば選択が可能です。そもそもチャンネルって何?ってかたは前に戻ってください。
そして下図で示した Webhook URLをコピーして後でAWSの設定時に使用します。
slack側の設定はこれだけです。
めっちゃ簡単です。
少し長くなったので、AWSの設定とSoracom側の設定は別記事にしてご紹介しようと思います。続けて下記リンクから覗いてください。
Soracom側の設定について