[初回公開] 2025年07月25日
IoT の導入が進む中、自宅でも手軽にセンサーを使って環境データを収集・分析することが可能になりました。本記事では、Raspberry Pi に接続した温度湿度センサーから取得したデータを AWS(Amazon Web Services)へ送信する方法を、具体的なステップに沿って解説します。AWS に保存することで、データの蓄積やクラウド上での分析・可視化が可能になります。

このページの目次
1.Raspberry Pi を AWS にデータを送るメリット
Raspberry Pi と AWS を連携することで、センサーデータをローカルではなくクラウド上に保存・活用できるようになります。
これにより、複数の端末や場所から同時にデータへアクセスできるほか、バックアップや長期間のデータ保存も容易になります。

さらに、AWS のサービスと連携すれば、データの可視化(QuickSight)、自動処理(Lambda)、異常検知(SageMaker)なども可能です。
特に家庭や小規模施設での環境モニタリングを行う際には、リアルタイム性とスケーラビリティに優れる AWS を利用することで、よりスマートなデータ活用が期待できます。
2.AWS とは
AWS(Amazon Web Services)は、Amazon が提供する世界最大規模のクラウドコンピューティングサービスです。
サーバー、ストレージ、データベース、AI、IoT など、幅広いサービスを提供しており、個人から企業まで幅広く利用されています。
特に IoT 分野では、デバイスからクラウドへのデータ送信、処理、分析までを一貫して行える強力なインフラを提供しています。
本記事ではこの中でも、Raspberry Pi からデータをアップロードする「S3(Simple Storage Service)」を中心に活用します。
S3 はファイルの保存・取得が簡単に行え、温度湿度データの蓄積に最適です。
3.Raspberry Pi から AWS にデータ送信する流れ
温度湿度データを AWS に送信するためには、いくつかの準備が必要です。
まず AWS アカウントを作成し、データ保存先となる S3 バケットを用意します。
次に、Raspberry Pi から安全にアクセスできるように IAM(Identity and Access Management)ユーザーを作成し、アクセスキーを取得します。
その後、Raspberry Pi 側に Python スクリプトを用意し、センサーデータを取得して S3 にアップロードできるようにします。
これらのステップを一つずつ進めることで、安全かつ確実にクラウドとの連携が実現できます。
以下では各ステップを詳しく解説します。
3-1.AWS アカウントの作成する
まずは AWS の公式サイト(https://aws.amazon.com/jp/)にアクセスし、無料アカウントを作成します。
必要な情報はメールアドレス、パスワード、クレジットカード情報、本人確認用の電話番号などです。
無料プランでは一定の使用量まで課金されずに利用可能で、S3 の利用にも対応しています。
登録完了後、AWS マネジメントコンソールにログインできるようになります。
この管理画面からすべての AWS サービスにアクセスできます。
作成後はセキュリティのため、2段階認証も設定しておくことをおすすめします。
3-2.S3 バケットの作成する
AWS アカウントができたら、次にデータ保存先となる「S3 バケット」を作成します。
S3(Simple Storage Service)は、ファイルをクラウドに保存できるサービスで、温度湿度データの蓄積に非常に適しています。
AWS マネジメントコンソールの「S3」セクションに移動し、「バケットを作成」をクリックします。
バケット名は一意である必要があるため、raspi-temp-humid-data-123 のような分かりやすい名前をつけましょう。
リージョンは日本なら「アジアパシフィック(東京)」を選び、パブリックアクセスはすべてブロックのままで問題ありません。
3-3.IAM ユーザーの作成する
Raspberry Pi から AWS にデータをアップロードするためには、適切なアクセス権を持つ IAM ユーザーを作成する必要があります。
AWS マネジメントコンソールで「IAM」サービスを開き、「ユーザー」→「ユーザーを追加」を選択します。
名前は raspi-uploader などとし、「プログラムによるアクセス」を有効にします。
次にアクセス許可を設定しますが、S3 だけにアクセスを許可するように「AmazonS3FullAccess」や必要最小限のカスタムポリシーを選びましょう。
作成後、表示されるアクセスキー ID とシークレットキーを控えておくことが重要です。
3-4.Raspberry Pi に Python スクリプトを用意する
Raspberry Pi 側では、センサーからデータを取得して AWS S3 に送信する Python スクリプトを用意します。
まず、必要なライブラリとして boto3 をインストールし、センサーから温度湿度を取得するコードを組み込みます。
次に、取得したデータをテキストファイルとして保存し、boto3 を用いてそのファイルを S3 にアップロードします。AWS 認証情報(アクセスキー、シークレットキー)は .aws/credentials に保存するか、環境変数で設定します。
スクリプトは自動実行にも対応できるよう、時間単位での実行にも備えましょう。
3-5.Python を実行する
Python スクリプトを準備できたら、実際に実行して AWS S3 にデータを送信してみましょう。
ターミナルから python3 upload_temp.py のように実行すると、センサーから取得した温度湿度データがファイルとして作成され、それが S3 バケットにアップロードされます。
アップロードに成功すると、S3 上でファイルが確認できるようになります。
さらに、定期的に自動実行したい場合は cron を使ってスケジューリングすることも可能です。
例えば、10分ごとにスクリプトを実行する設定にすれば、リアルタイムに近い環境モニタリングも実現できます。
4.AWS の S3 でセンサーの値を確認する
アップロードされたセンサーデータは、AWS マネジメントコンソールの S3 セクションから簡単に確認できます。
作成したバケットを開くと、アップロードされたファイルがリスト表示されます。


ファイル名には日時を含めるようにしておくと管理がしやすくなります。
テキストファイルをクリックすると、その内容を直接表示したり、ローカルにダウンロードしたりすることも可能です。
また、CLI や boto3 を用いれば、プログラムから自動でファイルを一覧・取得することもでき、データの活用範囲が広がります。
データを日別ディレクトリに分けるなど工夫すると、より管理しやすくなります。

5.まとめ
本記事では、Raspberry Pi に接続した温度湿度センサーから取得したデータを、AWS S3 にアップロードするまでの手順を一通り解説しました。
AWS アカウントの作成、S3 バケットと IAM ユーザーの設定、Python スクリプトの実装が主な流れとなります。
クラウドにデータを送ることで、可視化、分析、自動処理など幅広い応用が可能になります。
今後は QuickSight や Lambda と連携して、より高度なデータ処理に挑戦するのも良いでしょう。
この記事をきっかけに、あなたのIoTプロジェクトがさらに発展することを願っています。
🧾 ステップ 0: 前提条件
- Raspberry Pi に Python がインストールされている
- 温度センサー(例えば DHT11/22、DS18B20 など)が接続・動作している
- Python で温度データを取得するコードが動作している
☁ ステップ 1: AWS アカウントの作成
- AWS公式サイト にアクセス
- 「無料で始める」をクリック
- メールアドレス、パスワード、アカウント名を入力
- クレジットカード情報を入力(無料利用枠あり)
- 本人確認(SMS 認証など)
- プランの選択(基本は「無料プラン」でOK)
🪣 ステップ 2: S3 バケットの作成
- AWSマネジメントコンソール にログイン
- 「サービス」→「S3」を検索してクリック
- 「バケットを作成」
・バケット名(例:temperature-data-raspberrypi)
・リージョン(東京なら ap-northeast-1)
・パブリックアクセスは「すべてブロック」でOK
・「バージョニング」は任意 - 「作成」をクリック
🛡 ステップ 3: IAM ユーザーの作成(Raspberry Pi からアクセスするため)
- コンソールで「IAM」サービスを開く
- 左メニュー「ユーザー」→「ユーザーを追加」
・ユーザー名(例:raspi-uploader)
・アクセスの種類:「プログラムによるアクセス」にチェック - 「アクセス許可」
・「既存のポリシーを直接アタッチ」
¥AmazonS3FullAccess(もしくは必要最小限のカスタムポリシー) - 「ユーザーを作成」をクリック
- 「アクセスキー ID」と「シークレットアクセスキー」をメモ(重要!)
🐍 ステップ 4: Raspberry Pi 側で Python を使って S3 に送信
4-1. 必要ライブラリのインストール
sudo apt update sudo apt install python3-pip pip3 install boto3
4-2. AWS 認証情報の設定
※環境変数に設定 export AWS_ACCESS_KEY_ID=<アクセスキーID> export AWS_SECRET_ACCESS_KEY=<シークレットキー>
4-3. Python スクリプトでアップロード
import boto3 from datetime import datetime # 温度を取得する部分(例: 仮の値) temperature = 25.6 timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S") filename = f"temperature_{timestamp}.txt" bucket_name = 'temperature-data-raspberrypi' # 一時ファイルに保存 with open(filename, 'w') as f: f.write(f"{timestamp}, {temperature}°C") # S3 クライアント作成 s3 = boto3.client('s3') # アップロード s3.upload_file(filename, bucket_name, filename) print(f"{filename} を S3 にアップロードしました。")
4-4. 実行する
python3 /home/pi/upload_temp.py
✅ ステップ 5: データを確認する
- AWSマネジメントコンソール にログイン
- 左上の「サービス」から S3 を検索・クリック
- 作成済みのバケット(例:temperature-data-raspberrypi)をクリック
- 「オブジェクト」一覧に、Raspberry Pi からアップロードされたファイルが表示される
- 確認したいファイルをクリック → 「オブジェクトのアクション」→「ダウンロード」または「表示」