Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
BG770A_photo_transfer_v2.pdf
Search
Satoru Ohguchi
May 30, 2026
89
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
BG770A_photo_transfer_v2.pdf
Satoru Ohguchi
May 30, 2026
More Decks by Satoru Ohguchi
See All by Satoru Ohguchi
Use the M5Stack with 3G Modem
ochicchi
0
2.2k
Play with M5Stack
ochicchi
1
2.2k
How to study AWS IoT
ochicchi
0
1.1k
How to use OMRON sensors and M5Stack
ochicchi
0
100
IotLT_52-HobbyOmronSensors.pdf
ochicchi
2
820
JAWS-UG Beginner 2018/06/22
ochicchi
0
620
Swift愛好会初心者ハンズオン(vol.31)
ochicchi
0
260
Swift入門者向けハンズオンからの学び
ochicchi
1
450
Swift愛好会 #28
ochicchi
0
570
Featured
See All Featured
Statistics for Hackers
jakevdp
799
230k
The SEO identity crisis: Don't let AI make you average
varn
0
510
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.7k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
650
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
970
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Building AI with AI
inesmontani
PRO
1
1.1k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
Speed Design
sergeychernyshev
33
1.9k
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.3k
Transcript
Wio BG770A で写真を SORACOM Harvest に送る話 SORACOM Discovery 2026 に向けて
Lightning Talk · 10 min
自己紹介 • 仕事 ◦ Azure Sales Specialist (Azure SSP) @
Microsoft Japan • 資格 ◦ 情報処理安全確保支援士(SC) ◦ 情報処理技術者(ST/SA/PM/NW/DB/SM/AU/SU/SG/AP/FE/IP) • 趣味 ◦ コンピューター全般(触っていること自体好きです) ◦ コミュニティ運営(Swift Kotion愛好会/SORACOM UG) ◦ フィギュアスケート観戦など ◦ クラシック・吹奏楽を聴きにいくこと 第16558号 Twitter: @o_chicchi Facebook: https://www.facebook.com/ohguchi.satoru Blog: https://www.maripara.org/
山梨と言えば.... 夏になると毎年通っております...
プロジェクト紹介:植物の囁きを聴く Wi-Fi なしのミニ温室で植物を見守る IoT システム 🌿 自律制御 CO2・温湿度・光・水分をセンシ ン グ
CO2注入・散水・換気を自動制御 📡 セルラー通信 SORACOM LTE-M で Wi-Fi 不要 農業現場・屋外でも稼働 📸 AI 観察日誌 撮影画像+センサー値 → Microsoft Foundry が 植物の気持ちを生成 (Optional) 📷 写真をクラウドに送らないと AI が仕事できない → 今日はその「送る」部分の話 出展予定:SORACOM Discovery 2026
システム構成 ATOMS3R-M12 ESP32-S3 OV3660 カメラ Wio BG770A nRF52840 LTE-M マスター
SORACOM LTE-M plan-D soracom.io Harvest Files / Data JPEG + センサー値 クラウド蓄積 HTTP PUT Harvest Files Harvest Data SCD40 CO2・温湿度センサー 今日の話:ATOMS3R-M12 で撮影した JPEG を Wio BG770A 経由で SORACOM Harvest Files に送るまで Grove UART CAPTURE / JPEG GROVE I2C SORACOM Air
Wio BG770A のスペック MCU Nordic nRF52840(Cortex-M4F, 64 MHz) 通信方式 LTE-M
(Cat-M1) / NB-IoT セルラーモジュール Quectel BG770A-GL 内蔵 I/O Grove I2C / Grove UART / Grove GPIO ボタン USER ボタン(手動撮影トリガー) LED USER LED(通信中・撮影中に点灯) 開発環境 Arduino core for nRF52840 / PlatformIO SORACOM plan-D / APN: soracom.io / Harvest Data・Harvest Files
転送する画像サイズの検討 ① BG770A 側の RAM nRF52840 の利用可能な RAM に JPEG
を丸ごと乗せて HTTP PUT する設計 SRAMが、256KB実装されていることも踏まえてこ の実装に → 安全に確保できる上限が 150 KiB ② LTE-M の伝送速度 LTE-M (Cat-M1) 理論値 588 kbps オーバーヘッドを考慮すると実効は数十〜百 kbps → 数十 KB なら数秒以内に収まる → 仕様として送信の上限サイズを、 150 KiB に設定 閾値を超えた場合の対処は後述(QUALITY 自動調整)
2 種類のカメラモジュール (M5Stack社製) ATOMS3R-CAM (C126) ATOMS3R-M12 (C126-M12) MCU ESP32-S3-PICO-1-N8R8 ESP32-S3-PICO-1-N8R8
Flash / PSRAM 8 MB / 8 MB OPI 8 MB / 8 MB OPI カメラ GC0308(30 万画素) OV3660(300 万画素, 120° 広角, F2.4) 解像度上限 VGA 640 × 480 UXGA 1600 × 1200(運用上限) JPEG 方式 ソフトエンコード RGB565 → frame2jpg() HW エンコード PIXFORMAT_JPEG 直 既定解像度 VGA SVGA 800 × 600 同じファームウェアで 2 機種に対応(起動時にセンサ PID を読み出して自動判定)
全解像度の実測データ( QUALITY=80・室内照明) OV3660(ATOMS3R-M12)— HW JPEG 解像度 寸法 代表値 150KiB との比較
QVGA 320 × 240 約 3,400 Byte 余裕あり HVGA 480 × 320 約 4,900 Byte 余裕あり VGA 640 × 480 約 9,400 Byte 余裕あり SVGA ★ 800 × 600 約 13,800 Byte 余裕あり XGA 1024 × 768 約 21,400 Byte 余裕あり SXGA 1280 × 1024 約 34,700 Byte 余裕あり UXGA 1600 × 1200 約 51,000 Byte 余裕あり ★ 既定解像度 GC0308(ATOMS3R-CAM)— ソフトエンコー ド 解像度 代表値 QVGA 約 5,700 Byte HVGA 約 10,000 Byte VGA ★ 約 19,000 Byte ★ 既定解像度 全解像度・全機種とも SAFE_JPEG_SIZE(150 KiB = 153,600 B)の上限内に収まることを実機で確認
同解像度での 2 機種比較 解像度 OV3660(HW JPEG) GC0308(ソフト) サイズ比 QVGA 320×240
約 3,400 Byte 約 5,700 Byte × 1.7 HVGA 480×320 約 4,900 Byte 約 10,000 Byte × 2.0 VGA 640×480 約 9,400 Byte 約 19,000 Byte × 2.0 なぜ約 2 倍になるのか OV3660(HW JPEG) カメラチップが直接 JPEG 出力 → 高効率なハードウェアエンコード GC0308(ソフトエンコード) RGB565 で取得後、ESP32-S3 が frame2jpg() でソフトエンコード → 圧縮効率が下がりサイズが増える
工夫:QUALITY 自動調整で 150 KiB 以内に収める CAPTURE 受信 現在の QUALITY で撮影
サイズ > 150 KiB? 閾値チェック QUALITY を -10 下限 30 まで繰り返す 送信 OK HTTP PUT へ E_TOO_LARGE を返す (QUALITY 30 でも超過) 実装例(仕様書より) QUALITY=80 で撮影 → 178 KB → NG → QUALITY=70 で再撮影 → 142 KB → OK → 送信
実際に動いた [SCHED] capture tick (hour=03) [CAPTURE] OK size=13785 crc(recv=0xA1B2 calc=0xA1B2)
MATCH [HARVEST/FILE] PUT /wg-bg770a-01/2026/05/21/2026-05-21T03-00-00.jpg (13785 bytes) [HARVEST/FILE] status=201 [HARVEST/DATA] event=capture jpeg_size_bytes=13785 jpeg_crc16=41394 [HARVEST/DATA] status=201 3 時間ごと 自動撮影スケジュール 13,785 Byte SVGA JPEG 実測(OV3660) CRC 一致 UART 転送の整合性確認 status 201 Harvest Files PUT 成功
まとめ 1 RAM サイズと伝送速度の両面から サイズを検討。安全に送れるサイズで実装。 2 HW JPEG(OV3660)vs ソフトエンコード(GC0308)で同解像度でも約 2
倍のサイズ差があることを 知れました 3 全解像度で上限内に収まることを実機で確認 4 閾値超えがあり得そうな場合備え QUALITY 自動調整(-10 ずつ・下限 30)で対応
None