Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

AWS IoTとRaspberry PiではじめるIoT超入門

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2016/07/05 14:00

 本記事は、Amazon Web ServicesでIoTデバイスを管理するためのサービスである「AWS IoT」の紹介と小型のLinuxマイコンボードである「Raspberry Pi 3」を使ってAWS IoTを使う手順をご紹介します。具体的に、Raspberry Pi 3からコマンドを実行するとAWSのサービスを介してEメールが届くサンプルを作ります。

目次

対象読者

 本記事は、次の方を対象にしています。

  • AWS(IAM/SNS)の基本的な操作ができる方
  • 基本的なLinuxコマンドが分かる方
  • Raspberry Pi 3のセットアップができる方

AWS IoTによるデバイス連携環境の構築

 AWSには、IoTデバイスと連携するためのAWS IoTというサービスがあります。本記事では、AWS IoTを使ったデバイス連携環境の構築手順を説明します。

AWS IoTとは

 AWS IoTは、Raspberry PiやArduinoはじめ、さまざまなメッセージブローカーを基盤とするハードウエアデバイスやモバイルアプリケーションと、AWSのサービスを接続して、デバイスの認証やデータに基づき任意の処理を行うためのサービスです。2015年10月にローンチされ、現在は東京リージョンでも利用できます。

 AWS IoTの主な特徴はつぎのとおりです。

認証と暗号化

 AWS IoTは、デバイスの認証と暗号化が提供されています。証明書に対するロールやポリシーの選択を一元管理でき、デバイスやアプリケーションによるアクセスを認証したり、取り消したりできます。証明書を持たない許可されていないデバイスからの通信は受け付けません。

ルールエンジンによるサービスの呼び出し

 AWS IoTでは、デバイスから送信されたデータを収集/処理し、データに基づいたアクションを実行するアプリケーションを、マネジメントコンソール上での設定だけで容易に構築できます。

 ルールエンジンは、あらかじめ定義したルールに基づいて、以下のAWSサービスなどを呼び出せます。

  • AWS Lambda:リクエスト発生などのタイミングで任意のプログラムを動かすイベンドドリブン型サービス
  • Amazon Kinesis:リアルタイムストリーミングデータとの連携サービス
  • Amazon S3:冗長化されたデータストレージサービス
  • Amazon Machine Learning:機械学習のためのサービス
  • Amazon DynamoDB:NoSQLデータベースサービスを構築/運用するサービス

 さらに、AWS LambdaやAmazon SNS(プッシュ通知サービス)を使えば、AWS外部のエンドポイントを呼びだすことも可能です。ルールは、SQLに似た構文で作成します。たとえば、あるデバイスから送信された温度のデータがしきい値を越えたときに、AWS Lambdaにデータを送信する、などを定義できます。

AWS IoTデバイスSDKの提供

 AWS IoTは、ハードウエアデバイスやモバイルアプリケーションからAWSに接続するためのSDKを提供しています。AWS IoTデバイスSDKを使えば、デバイスとAWS IoTとの間でMQTT/HTTP/WebSocketsプロトコルを介した接続やデバイス認証/メッセージ交換ができます。執筆時では、C/JavaScript/Arduino用のSDKが提供されています。

AWS IoTを使った環境構築(1)

 デバイス(Raspberry Pi)からMQTTプロトコルで、AWS IoTを介してAWS SNSを呼びだし、Eメールを送信するための環境設定を行います。全体の構成は次の図のとおりです。

Raspberry Piからのメール送信
Raspberry Piからのメール送信

[1]AWS IoTの起動

 AWS IoTを使うには、マネジメントコンソールから[AWS IoT]をクリックします。

AWS IoTのマネジメントコンソール
AWS IoTのマネジメントコンソール

 AWS IoTの画面で、[Get started]をクリックします。

AWS IoTの作成
AWS IoTの作成

[2]Thingの作成

 はじめにRaspberry Piからの接続を受け付ける、Thingを作成します。(1)[Create a Thing]をクリックし、(2)[Name]に識別するための名前を入力します。ここでは、「raspi」とし、(3)[Create]ボタンをクリックします。

Thingの作成
Thingの作成

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 阿佐 志保(アサ シホ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2017年5月時点での登録メンバは52名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂き...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5