Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Pe-field × SORACOMでキャベツ圃場を定点監視してみた!
Search
Yota Sekiguchi
March 29, 2024
470
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pe-field × SORACOMでキャベツ圃場を定点監視してみた!
Yota Sekiguchi
March 29, 2024
Featured
See All Featured
The #1 spot is gone: here's how to win anyway
tamaranovitovic
4
1.2k
Designing for Timeless Needs
cassininazir
1
530
Ethics towards AI in product and experience design
skipperchong
2
430
The Language of Interfaces
destraynor
162
27k
Paper Plane
katiecoart
PRO
5
54k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
540
Making Projects Easy
brettharned
120
6.8k
Everyday Curiosity
cassininazir
0
350
Claude Code のすすめ
schroneko
67
230k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
460
How to Ace a Technical Interview
jacobian
280
24k
Transcript
Pi-field × SORACOMで キャベツ圃場を定点監視してみた! 2024/03/29@SORACOM UG九州
まず
上場おめでとうございます🎉🎉🎉
身の上 株式会社Fusic IoTクラウドエンジニア(since 2023.04) あと三日しかない新卒26歳です! 特に理由もなく埼玉から福岡に就職! でも海があるから幸せ! 普段はRuby, RoR, AWS,
TS, Pythonを主戦場に 船酔いと日焼けのダブルパンチ
みなさん、キャベツ食べてますか?
キャベツの旬は3~5月!! JA グループ とれたて大百科 - キャベツ, https://life.ja-group.jp/food/shun/detail?id=1
いちばん美味しい時期に、安く食べたい!
需要予測 × 広告 => 需給連携の最適化!! Fusic - News “衛星データ活用によるテレビ広告の高度化と需給連携に向けた取り組みを開始”, https://fusic.co.jp/news/692
需要予測 衛星データ解析 →旬の予測 でも、モデルの検証には現地に行く必要が...
そこで!!
Pi-field × SORACOMで キャベツ圃場を定点監視してみた!
要件 • 稼働期間: 半年 • 毎日キャベツの画像を報告 • 電源はない ↓ •
屋外に長期間合っても壊れない • 自分で発電するor低消費電力で 大容量の電源リソースが必要 DALL-E画伯の秀作 「キャベツ畑」
弊社田んぼまもる君 Fusicでも田んぼを撮るデバイスは作っていたが...
弊社田んぼまもる君 パネルの故障!! → 信頼を求めてメカトラックスさんのPi-fieldを選択! 田んぼまもる君の記事, https://tech.fusic.co.jp/posts/2022-09-05-iot-tambo-mamoru-kun/
What is Pi-field 機能 • 高耐久性(防水ボックス) • 間欠動作可能(slee-Pi 3) •
太陽電池で電源レスで動く • SIM通信モジュール(4GPi) →畑のモニタリングには最適! https://mechatrax.com/products/pi-field/ Pi-field Liteさん
What is Pi-field 外装 ① ケーブルグランドで粉塵や水から保護 ② アルミフレームによる拡張性 ③ 防水・防塵性能の高い筐体
(パッキンもついている) https://mechatrax.com/products/pi-field/ ① ② ③
通信・クラウド部分 まるで チュートリアルのような構成図(Beam, Harvest, Napter, Lambda, Slack)
通信・クラウド側Tips あまりにもBeamのtutorial記事が良すぎて何も困らなかった...!! SORACOM document - IAM 認証を利用して Amazon S3 にファイルをアップロードする
強いて言えば, 開発時にWiFiとLTEを一緒に使う時は注意! Qiitaに記事を載せています デバイスに証明書置かなくていいの,本当に楽です...
ハード, ラズパイ部分 • 単管パイプ+パイプキャッチでPi-fieldと接続 パイプ類はホームセンターの通販が安い パイプキャッチ: タキゲン C-486-BNを使用 C-486-BN: https://www.takigen.co.jp/products/detail/26011780100
ハード, ラズパイ部分 • カメラはアルミフレームを延長して接続 • アルミフレームとカメラの接続は3Dプリント部品を使用 • 二台のカメラは、防水性能の高いUSB webカメラ
カメラに関して(ソフトウェア) • OpenCVはインストール周りで大変そう... • fswebcamを使用して、Pythonのsubprocessで呼び出し • カメラが二台あるので、デバイスファイルの特定が必要 https://manpages.ubuntu.com/manpages/focal/man1/fswebcam.1.html https://iganari.github.io/post/2021-05-05_raspi-camra-photo/
カメラに関して(ソフトウェア) • 当日, カメラのパラメータを調整して屋外で綺麗に映るように fswebcam -r {解像度} -F {撮影するフレーム数 }
-S {撮影しないが露光する数 }
カメラに関して(ソフトウェア) カメラ撮影フロー v4l2-ctl -—list-devices STDOUT subprocessでLinuxコマンドを実行 「HD USB Camera」で絞り込み /dev/XXX
fswebcamでカメラ撮影 IMG: 20240329.png SORACOM Beam & S3 リクエスト catchした例外は全て Slackへ
カメラに関して(ハードウェア) • USBの端子がケーブルグランドに入らない • 切断して、内部で半田付け 切断と引き込み 皮膜を剥がす 半田付け
カメラに関して(ハードウェア) • アルミフレームのナットは先入れを使用(接触面積を増やすため) • →入れるときにキャップが外しづらいので注意 一般的には後入ナットを使用する想定か
間欠動作 slee-pi3 • ラズパイ専用の電源管理・死活監視モジュール • 電源電圧のチェックや間欠動作, RTCの利用などが可能 • slee-piの機能にアクセスするLinuxコマンドも •
電源ボタンアリ!!(これがテストに便利...) →ざっくりいうと、使用したい時だけラズパイを起動できる! slee-pi: https://mechatrax.com/products/slee-pi/#description slee-pi3で何が可能か?: https://mechatrax.com/blog/what-is-possible-with-sleepi3/
間欠動作 以下の2点に気を付ける必要がある. 1. 電圧低下からの復電時に, 正しく次の起動が予約される 2. 予約がない時にshutdownをしないようにする 以下の要件で実装 • 次の起動予約、撮影・通信、shutdownをデーモン化して起動時実行
• 日が出ている特定の時間のみ撮影するように • →失敗or予約不備の時、起動し続ける&Slackに通信
間欠動作 set_alarm.sh send_images.sh shutdown.sh set_alarm.sh: 次の予約時刻を現在時間から決定. 15分以内に次の時刻がある時, さらに次の時刻を予約. 実行前に30秒のスリープ処理を入れる. send_images.sh:
カメラ撮影・アップロード処理スクリプト shutdown.sh: 10分後にshutdownを予約するスクリプト. 次の起動予約がない場合, 実行せずラズパイは起動し続ける. 全体をデーモン化
当日あると便利な道具 • PC+ポケットWiFi → NapterでSSHするために使用 • マルチメータ • その他諸々の工具 •
植え込み用のハンマー 納期が迫っていても、リハーサルはしましょう!!見落としを当日カバーするの は至難の業です! 特に南京錠は忘れがちです!!!!
Harvestのデータ 一度電圧が落ちたものの , 正常に 復旧 mechatrax, sleepi3ctl, https://github.com/mechatrax/sleepi3-utils sleepi3ctlを使用して電圧を取得 ↓
Harvestに送信 from subprocess import run, PIPE import requests def get_voltage () -> tuple[str, str]: cmd1 = ['sudo', 'sleepi3ctl' , 'get', 'voltage', '1'] cmd2 = ['sudo', 'sleepi3ctl' , 'get', 'voltage', '2'] cp_result1 = run(cmd1, stdout=PIPE, check=True, encoding='utf-8') cp_result2 = run(cmd2, stdout=PIPE, check=True, encoding='utf-8') return (cp_result1.stdout, cp_result2.stdout)
キャベツの画像 左: 11月初頭 右: 3/28日 12時 1/17以外, 毎日元気に画像を送信してきます!
そろそろ食べごろです!!
まとめ • IoTは本当に総合格闘技だった • Pi-fieldは偉大 • SORACOM Beamは偉大 質問対応していただいたmechatrax様、ありがとうございました! ぜひ楽しいIoTライフを!