kazuumiのアイコン画像
kazuumi 2021年05月16日作成 (2021年05月16日更新)
製作品 製作品 閲覧数 537
kazuumi 2021年05月16日作成 (2021年05月16日更新) 製作品 製作品 閲覧数 537

obniz Board 1Yを使った罠猟用センサーの検討

制作にあたって

罠猟をしている友人がいるのですが、毎日罠の様子を見に行くのが大変そうでした。そこでRaspberry Piを使って罠に動物がかかっているのか調べれるシステムを作ろうと思って色々検討していた所、obniz Board 1Yだとラズパイのように追加部品を買わなくても間欠動作を行えるということで、次の猟期に向けて第一歩を踏み出してみました。
不完全なところも多く有りますが、今後改善していきたいと思います。

デモ動画

ここに動画が表示されます

分かりにくいですが、最後の一瞬で更新されて通知来てるのをご確認いただければ幸いです。

部品

名称 個数
obniz Board 1Y 1台
測距モジュール GP2Y0A21YK 1個

設計図

obniz 1Yの画像はobniz公式サイトから、
測距モジュールの画像は秋月電子から、
それぞれ拝借し利用しています。
黒を0番、黄を1番、白を2番にさしています。

ソースコード

<html>
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1" />
    <title>狩り</title>
    <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script
      src="https://unpkg.com/obniz@3.x/obniz.js"
      crossorigin="anonymous"
    ></script>
  </head>
  <body>
    <div id="obniz-debug"></div>
    <script>
     // インストール時設定を読み出す
     const config = Obniz.App.configs();
     const IFTTT_SECRET_KEY = config.IFTTTToken;
     const IFTTT_EVENT = "trap_notify";
     // インストールされたデバイス情報に書き換わる
     var obniz = new Obniz("OBNIZ_ID_HERE");

     obniz.onconnect = async function () {
       var sensor = obniz.wired("GP2Y0A21YK0F", { vcc: 0, gnd: 1, signal: 2 });
       let n = 0;
       let sum = 0;
       // 一回目の計測がとてもおかしな結果になることが多いため無駄に計測
       var val = await sensor.getWait();
       await obniz.wait(1000);
       // 誤差を減らすため10回計測
       while (n < 10) {
         n++;
         var val = await sensor.getWait();
         console.log(val);
         sum += val;
         await obniz.wait(1000);
       }
       console.log(sum);
       // しきい値越えたら罠にはかかってないとみなす
       if (sum > 20000) {
         var sendText = "異常なし";
       } else {
         var sendText = "罠にかかった可能性あり";
       }
       let dataToSend = {
         value1: sendText,
       };

       //IFTTTにリクエスト
       $.get(
         `https://maker.ifttt.com/trigger/${IFTTT_EVENT}/with/key/${IFTTT_SECRET_KEY}`,
         dataToSend
       );
       // 実験のため、スリープはたったの30秒に設定
       obniz.sleepSeconds(30);
     };
    </script>
  </body>
</html>

今後の展望

最適な計測間隔について考えたい

動物が罠に近づいたために作動して通知したものの、いざ来てみるとかかっていなかったということが起きそう。

複数台設置の可能性について検討したい

近辺の罠それぞれにobniz Boardを設置し、メタデータを使うなどして管理を簡単にしたい。
また、それらのインターネット接続をどうするか考えたい。

電池駆動の実験を行いたい

猟期までに実用化レベルまで持って行きたい。

  • kazuumi さんが 2021/05/16 に 編集 をしました。 (メッセージ: 初版)
  • kazuumi さんが 2021/05/16 に 編集 をしました。
  • Opening
    takeruのアイコン画像 takeru 2021/05/20

    罠がどういうものなのかわからないのですが、かかった獲物が暴れる振動を検出するセンサーとか罠が作動したことを検出する単純なスイッチとかいろいろ考えられるなと思いました。
    親機にLTE、子機の各罠は親機とBLE通信としたら良いかと思いましたが、通信距離足りなさそうですね。

    0 件の返信が折りたたまれています
ログインしてコメントを投稿する