第312回 SORACOM公式ブログ

ソラコム公式ブログ

水産養殖IoTシステムを作ってみた【SORACOM Discovery 2023 展示レポート】

  • この記事をはてなブックマークに追加
  • 本文印刷

 本記事はソラコムが提供する「SORACOM公式ブログ」に掲載された「水産養殖IoTシステムを作ってみた【SORACOM Discovery 2023 展示レポート】」を再編集したものです。

みなさまこんにちは。Customer Reliability Engineer の加納 (ニックネーム:kanu)です。

2023 年 7 月 5 日・6 日に開催された IoTカンファレンス「SORACOM Discovery 2023」では、ソラコム社員が SORACOM を使って IoT システムのプロトタイプをつくって展示する「IoT プロトタイピングコーナー」という企画がありました。

私もこの企画に参加し、同じチームの峯 (ニックネーム:mike) と一緒に「水産養殖 IoT システム」をつくりましたのでご紹介します。

きっかけ

私は 1 年ほど前から、魚を丸ごと買ってきて捌いて食べることを趣味にしています。子供がまだ小さいため、家を空けずにできて (捌いた後はみんなで食べられるので) 家族も楽しめそうだなと思って始めたのですが、すっかりハマってしまい最近は毎週末に漁港近くの魚屋に行って魚を物色するのが楽しみになっています。

昨年末には鹿児島県長島町で養殖されているブリ「鰤王-ぶりおう-」を買って捌きました。このブリが非常に美味しくて養殖という分野に興味を持ち始めました。調べてみると、養殖は人口増加に伴う世界的なタンパク質需要の高まりに対する解決策として注目されているようでした。また、SORACOM は養殖向けのシステムを提供されているお客様が多くいらっしゃることが分かり、自分でも作ってみたいと思うようになりました。

何をつくるか

「水産養殖 IoT システム」のプロトタイプとしてどのような機能を実装するかについては、SORACOM ユーザーであるウミトロン株式会社 (以下、ウミトロン) と株式会社ARK (以下、ARK) の SORACOM 活用事例を参考にしました。

両社ともにユニークで本当にワクワクするソリューションですね!

また、養殖ビジネスという専門誌を購入して自分なりに理解を深めました。

その結果、今回は以下の 3 つの機能を実装してみることにしました。

  1. 餌やりの遠隔操作
  2. 魚体サイズの自動計測
  3. 水質のモニタリング

以下、それぞれについて記載します。

餌やりの遠隔操作

遠隔からの餌やりにより、移動コストが削減できます。特に海上に生簀を設置する海面養殖では現地まで船で移動するケースが多く、移動コストの削減効果が相対的に大きくなります。また、悪天候時などの危険な環境下での作業時間が短縮されるといったメリットもあり、スタッフの労働環境の改善が期待できます。

また、現地にネットワークカメラなどを設置して魚の食い付き状況を確認しながら餌量を調整することで、ムダ餌を削減できて環境負荷の低減や餌代の削減にも繋がります。

ということで、mike が以下のようなプロトタイプをつくってくれました。

構成図は以下です。

  • デバイス (餌やり機) は SORACOM Beam の MQTT エントリポイントを経由して、AWS IoT Core に構築した MQTT ブローカーに接続して MQTT トピックを Subscribe します。
  • PC から 餌やりシステム (AWS Amplify で構築した Web アプリケーション) にアクセスして、餌やりボタンをクリックすると、AWS IoT Core (MQTT ブローカー) に メッセージを Publish できます。
  • デバイスは餌やりのメッセージを受信 (Subscribe) したら餌やりを実行します。なお、デバイス側にはサーボモーターを設置していて、リミットスイッチに触れたことを検知すると餌やりを終了します (サーボモーターを停止します)。

この遠隔餌やりは当日大人気でした。デモ回数が多すぎて夕方には壊れて動かなくなってしまったことは内緒です。実環境で動作させる際にはこの辺りの耐久性も考慮する必要があるという感想を持ちました。

魚体サイズの自動計測

魚体サイズは非常に重要な情報ですが、生簀内を泳ぐ魚のサイズ計測は簡単ではありません。傷みにくい魚種であれば、一部を取り出して計測することで生簀全体の魚体サイズを類推できます。ただ、それでも魚を取り出して計測する手間は大きいですし、そもそも傷みやすい魚は計測自体が困難です。そのため、魚体に触れずにサイズ計測をするニーズは大きいようです。

そこで、ソラカメで水槽内を撮影して画像処理することで魚体サイズを計測して、以下のように結果を SORACOM Lagoon で可視化するようにしました。なお、mike が飼育している「ベタ」という魚を撮影させてもらいました。

構成図は以下です。

  • ATOM Cam 2 に常時録画ライセンスを割り当てて、録画データをクラウドに蓄積します。
  • 画像処理システムはソラカメの API を利用して定期的に録画画像を取得し、計測した魚体サイズと解析した画像にバウンディングボックスを付加した画像 (アノテーション付き画像) を SORACOM Harvest に送信します。
  • SORACOM Lagoon で最新の魚体サイズとアノテーション付き画像を表示します。

なお、画像処理部分は OpenCV という画像処理のライブラリを利用して実装しました。魚には適度に光が当たっていて、遮るものがなく、水槽内の透明度が高く、水槽の奥行きが小さく、真正面から撮影できるという理想的な撮影環境であったためそれっぽい数値が出るようになりました。今回はプロトタイプだったため一旦これで良しとしましたが、実際の養殖現場ではこれらの条件が整わないケースがほとんどだと思われるため、工夫が必要になると思います。

水質のモニタリング

生簀内の水質が乱れると、魚が病気になったり死んでしまうこともあります。また、水質によって魚の食欲が変動することがあるため、適切な水質を管理・維持できないと餌の食い付き悪化 (餌代の増加・食べ残しによる更なる水質悪化) にも繋がります。

対象の魚種や養殖形態 (海面魚類養殖、循環式陸上養殖、etc) によって取得要否や重要度は異なりますが、具体的には水質管理のために以下のような項目を計測することが多いようです。

  • 水温
  • 溶存酸素
  • 溶存二酸化炭素
  • 塩分
  • pH
  • 酸化還元電位
  • クロロフィル
  • 濁度
  • 無期窒素及びリン
  • 光量

今回は pH を計測して SORACOM Lagoon で計測することにしました。本当は溶存酸素を計測したかったのですが、溶存酸素センサーは 1 台 2,3 万円ほどしたので諦めました。

こちらの Arduino 対応の pH センサーを利用しました。このセンサーと「ELEGOO UNO R3 (Arduino 互換機」「LTE-M Shield for Arduino」を組み合わせて、センサーが計測したデータを SORACOM Harvest Data へ送信し、SORACOM Lagoon で可視化しました。

構成図は以下です。

  • pH センサーで取得した pH を SORACOM Harvest Data まで送信します。なお、スケッチは製品ページに掲載されているサンプルコードと、デバイス稼働時間を SORACOM Harvest Data へ送信するサンプルスケッチ「send_uptime_with_soracom.ino」を基に作成しました。
  • SORACOM Harvest Data に蓄積された pH を SORACOM Lagoon で以下のように可視化しました。

因みに、上記のグラフでは水温もプロットされていますが、水温については SORACOM Lagoon 側で用意しているサンプルデータソースを使っています。(計測したデータではなくデモ用のデータです。)

また、今回は設定しませんでしたが、SORACOM Lagoon では予め決めた条件を満たした場合にメールや Slack などでアラートを通知する仕組みもあります。ユースケースによってはこのアラート機能を利用して水質調整のためのアクションを取ることもできます。

以上、水産養殖 IoT システムのプロトタイピングについての紹介でした。

実際に本番環境に投入するにはその他にも考慮すべき事項が沢山ありますが、先ずは動作するものが出来てホッとしました。また、自分の興味のある分野でもあったので仕事半分・趣味半分のように取り組めました。みなさんも是非自分の興味のあるテーマを見つけてプロトタイピングしてみてはいかがでしょうか。楽しいですよ〜!

― ソラコム 加納 (kanu)

投稿 水産養殖IoTシステムを作ってみた【SORACOM Discovery 2023 展示レポート】SORACOM公式ブログ に最初に表示されました。

過去記事アーカイブ

2024年
01月
02月
03月
04月
2023年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2022年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
2021年
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月