IoT端末の運用や、遠隔地のカメラシステムを設計する際、通信容量の制限は大きな課題になります。
特に、セルラー通信を利用するケースでは、画像送信が思いのほか通信を圧迫し、コストや運用期間に影響を及ぼします。
この記事では、OpenMVカメラと1NCE SIM(10年間で500MBの買い切りプラン)を使用し、画像データを効率よく送信してAWSへ保存する方法を、設計・実装・計算方法まで丁寧に解説します。
目次
1NCE SIMとは
1NCEのSIMカードは、10年で500MBの固定容量を使い切りで提供しており、IoT機器に最適な料金プランとして注目されています。
しかし、通信量が固定であるため、画像の送信頻度やデータ量を抑える工夫が必須です。
想定システム構成
以下のような構成を想定します。
- 撮影装置:OpenMV
- 通信方式:HTTPS
- 通信回線:1NCE SIM
- 送信先:AWS Lambda → S3に保存
- 画像形式:JPEGまたはグレースケールの生データ
- エンコード方式:Base64
画像サイズと通信量の関係
グレースケール画像(640×480)
- 元データ
-
1640×480=307,200バイト=約300KB
- Base64変換後(約1.33倍)
-
1300KB×1.33≒400KB
- 送信可能回数
-
1500MB÷0.4MB=1,250回
カラー画像(RGB)
- 元データ
-
1640×480×3=921,600バイト≒900KB
- Base64変換後
-
1900KB×1.33≒1.2MB
- 送信可能回数
-
1500MB÷1.2MB≒416回
JPEG画像(圧縮)
高品質(90KB)
- Base64後
-
190KB×1.33≒120KB
- 送信可能回数
-
1500MB÷120KB≒4,166回
中品質(45KB)
- Base64後
-
145KB×1.33≒60KB
- 送信可能回数
-
1500MB÷60KB≒8,333回
利用可能な期間
毎日1回送信する場合の使用年数
画像形式 | 送信可能回数 | 使用年数 |
---|---|---|
カラー非圧縮 | 416回 | 約1.1年 |
グレースケール | 1,250回 | 約3.4年 |
JPEG高品質 | 4,166回 | 約11.4年 |
JPEG中品質 | 8,333回 | 約22.8年 |
AWS側の実装(受信~保存)
画像受信用のLambda関数(Python例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
import base64 import boto3 def lambda_handler(event, context): # デコード処理 image_data = base64.b64decode(event['body']) # S3に保存 s3 = boto3.client('s3') s3.put_object( Bucket='保存先バケット名', Key='画像ファイル名.jpg', Body=image_data, ContentType='image/jpeg' ) return { 'statusCode': 200, 'body': '保存完了' } |
※バケット名やキー名は実際の用途に応じて適宜マスクや変数化してください。
OpenMV側の送信処理例(MicroPython)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import urequests import ubinascii import sensor import image import network # カメラ初期化 sensor.reset() sensor.set_pixformat(sensor.RGB565) # または GRAYSCALE sensor.set_framesize(sensor.VGA) sensor.skip_frames(time=2000) # 撮影 img = sensor.snapshot() jpeg_data = img.compress(quality=85) # JPEG圧縮 b64_data = ubinascii.b2a_base64(jpeg_data).decode() # HTTPS送信(エンドポイントはマスキング) response = urequests.post("https://マスク済みエンドポイント", data=b64_data) |
通信量を抑える工夫
- 解像度を下げる(例:320×240)
- グレースケールモードを使用
- JPEG圧縮の品質を下げる(60〜80程度でも実用レベル)
- 画像を一定間隔(例:1日1回)で送信する制御ロジックの実装
まとめ
1NCEのSIMカードは通信容量が限られている一方で、月額固定費不要で10年間の通信が可能な強みを持っています。OpenMVのような軽量なカメラと組み合わせることで、画像の解像度や色数、圧縮方法を工夫することで十分実用に耐える遠隔監視システムを構築できます。
重要なのは、送信する画像データの量を極限まで抑えつつ、必要な情報を損なわないことです。
本記事の内容を応用すれば、山間部の監視、建設現場の進捗確認、農地の生育記録など、さまざまな現場系システムに応用可能です。
コメント