このチュートリアルでは、Raspberry Pi 3 を使用して温度と湿度のデータをシミュレートしてクラウドに送信する方法について説明します。 このチュートリアルでは、次の内容を使用します。
- Raspbian OS、Node.js プログラミング言語、および Node.js 用の Microsoft Azure IoT SDK を使用してサンプルデバイスを実装します。
- クラウドベースのバックエンドとしての IoT Suite リモート監視構成済みソリューション。
概要
このチュートリアルでは、次の手順を実行します。
- リモート監視構成済みソリューションのインスタンスを Azure サブスクリプションにデプロイします。 この手順では、複数の Azure サービスが自動的にデプロイおよび構成されます。
- コンピューターとリモート監視ソリューションと通信するようにデバイスを設定します。
- リモート監視ソリューションに接続するようにサンプル デバイス コードを更新し、ソリューション ダッシュボードに表示できるシミュレートされたテレメトリを送信します。
前提条件
このチュートリアルを完了するには、アクティブな Azure サブスクリプションが必要です。
注
アカウントをお持ちでない場合は、数分で無料試用版アカウントを作成できます。 詳細については、 Azure 無料試用版に関するページを参照してください。
必要なソフトウェア
Raspberry Pi のコマンド ラインにリモートでアクセスできるようにするには、デスクトップ コンピューター上の SSH クライアントが必要です。
- Windows には SSH クライアントは含まれません。 PuTTY 使用することをお勧めします。
- ほとんどの Linux ディストリビューションと Mac OS には、コマンド ライン SSH ユーティリティが含まれています。 詳細については、「 Linux または Mac OS を使用した SSH」を参照してください。
必要なハードウェア
Raspberry Pi のコマンド ラインにリモートで接続できるデスクトップ コンピューター。
Raspberry Pi 3 または同等のコンポーネント用の Microsoft IoT Starter Kit 。 このチュートリアルでは、キットの次の項目を使用します。
- Raspberry Pi 3
- MicroSD カード (NOOBS 付き)
- USB ミニ ケーブル
- イーサネット ケーブル
ソリューションをプロビジョニングする
アカウントでリモート監視構成済みソリューションをまだプロビジョニングしていない場合:
- Azure アカウントの資格情報を使用して azureiotsuite.com にサインインし、 + をクリックしてソリューションを作成します。
- [リモート監視] タイルの [選択] をクリックします。
- リモート監視構成済みソリューションのソリューション 名 を入力します。
- ソリューションのプロビジョニングに使用する リージョン と サブスクリプション を選択します。
- [ソリューション 作成] をクリックして、プロビジョニング プロセスを開始します。 通常、このプロセスの実行には数分かかります。
プロビジョニング プロセスが完了するまで待ちます
- プロビジョニング状態のソリューションに対するタイルをクリックしてください。
- Azure サービスが Azure サブスクリプションにデプロイされると、 プロビジョニングの状態 に注目してください。
- プロビジョニングが完了すると、状態が [準備完了] に変わります。
- タイルをクリックすると、右側のウィンドウにソリューションの詳細が表示されます。
注
事前構成済みソリューションの展開で問題が発生した場合は、 azureiotsuite.com サイトのアクセス許可 と FAQ を確認 してください。 問題が解決しない場合は、ポータルでサービス チケットを作成 します。
自分のソリューションに期待しているのに記載されていない詳細がありますか? User Voice の機能に関する提案をお寄せください。
警告
リモート監視ソリューションは、Azure サブスクリプションに一連の Azure サービスをプロビジョニングします。 デプロイには、実際のエンタープライズ アーキテクチャが反映されています。 不要な Azure 消費料金を回避するには、構成済みソリューションのインスタンスを完了したら、azureiotsuite.com で削除します。 構成済みソリューションがもう一度必要な場合は、簡単に再作成できます。 リモート監視ソリューションの実行中の使用量の削減の詳細については、 デモ用の Azure IoT Suite 事前構成済みソリューションの構成に関するページを参照してください。
ソリューション ダッシュボードを表示する
ソリューション ダッシュボードを使用すると、デプロイされたソリューションを管理できます。 たとえば、テレメトリの表示、デバイスの追加、メソッドの呼び出しを行うことができます。
プロビジョニングが完了し、構成済みソリューションのタイルが [準備完了] と表示されたら、[ 起動 ] を選択して、新しいタブでリモート監視ソリューション ポータルを開きます。
既定では、ソリューション ポータルに ダッシュボードが表示されます。 ページの左側にあるメニューを使用して、ソリューション ポータルの他の領域に移動できます。
デバイスを追加する
デバイスが構成済みソリューションに接続するには、有効な資格情報を使用して IoT Hub に自身を識別する必要があります。 ソリューション ダッシュボードからデバイスの資格情報を取得できます。 このチュートリアルの後半で、クライアント アプリケーションにデバイス資格情報を含めます。
まだ行っていない場合は、カスタム デバイスをリモート監視ソリューションに追加します。 ソリューション ダッシュボードで次の手順を実行します。
ダッシュボードの左下隅にある [ デバイスの追加] をクリックします。
[ カスタム デバイス ] パネルで、[ 新規追加] をクリックします。
[ 自分のデバイス ID を定義する] を選択します。 rasppi などのデバイス ID を入力し、[ID の確認] をクリックしてソリューションで名前をまだ使用していないことを確認し、[作成] をクリックしてデバイスをプロビジョニングします。
デバイスの資格情報 (デバイス ID、 IoT Hub ホスト名、 デバイス キー) を書き留めます。 Raspberry Pi 上のクライアント アプリケーションがリモート監視ソリューションに接続するには、これらの値が必要です。 [ 完了] をクリックします。
ソリューション ダッシュボードのデバイス一覧でデバイスを選択します。 次に、[ デバイスの詳細 ] パネルで、[ デバイスの有効化] をクリックします。 デバイスの状態が [実行中] になりました。 リモート監視ソリューションは、デバイスからテレメトリを受信し、デバイスでメソッドを呼び出すようになりました。
Raspberry Pi を準備する
Raspbian をインストールする
Raspberry Pi を初めて使用する場合は、キットに含まれている SD カードに NOOBS を使用して Raspbian オペレーティング システムをインストールする必要があります。 Raspberry Pi ソフトウェア ガイドでは、Raspberry Pi にオペレーティング システムをインストールする方法について説明します。 このチュートリアルでは、Raspberry Pi に Raspbian オペレーティング システムがインストールされていることを前提としています。
注
Microsoft Azure IoT Starter Kit for Raspberry Pi 3 に含まれている SD カードには、NOOBS が既にインストールされています。 このカードから Raspberry Pi を起動し、Raspbian OS のインストールを選択できます。
ハードウェアのセットアップを完了するには、次の手順を実行する必要があります。
- Raspberry Pi をキットに含まれている電源に接続します。
- キットに付属のイーサネット ケーブルを使用して、Raspberry Pi をネットワークに接続します。 または、Raspberry Pi の ワイヤレス接続 を設定することもできます。
これで、Raspberry Pi のハードウェアセットアップが完了しました。
サインインしてターミナルにアクセスする
Raspberry Pi のターミナル環境にアクセスするには、次の 2 つのオプションがあります。
Raspberry Pi に接続されているキーボードとモニターがある場合は、Raspbian GUI を使用してターミナル ウィンドウにアクセスできます。
デスクトップ コンピューターから SSH を使用して Raspberry Pi のコマンド ラインにアクセスします。
GUI でターミナル ウィンドウを使用する
Raspbian の既定の資格情報は、ユーザー名 pi とパスワード raspberry です。 GUI のタスク バーで、モニターのようなアイコンを使用して ターミナル ユーティリティを起動できます。
SSH を使用してサインインする
Raspberry Pi へのコマンド ライン アクセスには SSH を使用できます。 記事 SSH (Secure Shell) では、Raspberry Pi で SSH を構成する方法と、Windows または Linux および Mac OS から接続する方法について説明します。
ユーザー名 pi とパスワード raspberry を使用してサインインします。
省略可能: Raspberry Pi でフォルダーを共有する
必要に応じて、Raspberry Pi 上のフォルダーをデスクトップ環境と共有することもできます。 フォルダーを共有すると、好みのデスクトップ テキスト エディター ( Visual Studio Code や Sublime Text など) を使用して、 nano や viを使用する代わりに Raspberry Pi 上のファイルを編集できます。
Windows とフォルダーを共有するには、Raspberry Pi で Samba サーバーを構成します。 または、デスクトップ上の SFTP クライアントで組み込みの SFTP サーバーを使用します。
サンプルをダウンロードして構成する
Raspberry Pi でリモート監視クライアント アプリケーションをダウンロードして構成できるようになりました。
Node.js のインストール
まだインストールしていない場合は、Raspberry Pi に Node.js をインストールします。 IoT SDK for Node.js には、バージョン 0.11.5 の Node.js 以降が必要です。 次の手順では、Raspberry Pi Node.js v6.10.2 をインストールする方法を示します。
Raspberry Pi を更新するには、次のコマンドを使用します。
sudo apt-get update次のコマンドを使用して、Node.js バイナリを Raspberry Pi にダウンロードします。
wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gzバイナリをインストールするには、次のコマンドを使用します。
sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz次のコマンドを使用して、v6.10.2 Node.js 正常にインストールされていることを確認します。
node --version
リポジトリを複製する
まだ行っていない場合は、Pi のターミナルで次のコマンドを実行して、必要なリポジトリを複製します。
cd ~
git clone --recursive https://github.com/Azure-Samples/iot-remote-monitoring-node-raspberrypi-getstartedkit.git
デバイス接続文字列を更新する
次のコマンドを使用して、 nano エディターでサンプル ソース ファイルを開きます。
nano ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator/remote_monitoring.js
次の行を見つけます。
var connectionString = 'HostName=[Your IoT hub name].azure-devices.net;DeviceId=[Your device id];SharedAccessKey=[Your device key]';
プレースホルダーの値を、このチュートリアルの開始時に作成して保存したデバイスと IoT Hub の情報に置き換えます。 変更を保存し (Ctrl + O、 Enter)、エディターを終了します (Ctrl + X)。
サンプルを実行する
次のコマンドを実行して、サンプルの前提条件パッケージをインストールします。
cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator
npm install
Raspberry Pi でサンプル プログラムを実行できるようになりました。 コマンドを入力します。
sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/simulator/remote_monitoring.js
次の出力例は、Raspberry Pi のコマンド プロンプトに表示される出力の例です。
Ctrl キーを押しながら C キーを押すと、いつでもプログラムが終了します。
テレメトリを表示する
Raspberry Pi は現在、リモート監視ソリューションにテレメトリを送信しています。 ソリューション ダッシュボードでテレメトリを表示できます。 ソリューション ダッシュボードから Raspberry Pi にメッセージを送信することもできます。
- ソリューション ダッシュボードに移動します。
- [表示するデバイス] ドロップダウンで デバイスを 選択します。
- Raspberry Pi からのテレメトリがダッシュボードに表示されます。
デバイスを操作する
ソリューション ダッシュボードから、Raspberry Pi でメソッドを呼び出すことができます。 Raspberry Pi は、リモート監視ソリューションに接続すると、サポートされているメソッドに関する情報を送信します。
ソリューション ダッシュボードで、[ デバイス ] をクリックして [ デバイス ] ページにアクセスします。 デバイス一覧で Raspberry Pi を選択します。 次に、[方法] を選択 します。
[メソッドの呼び出し] ページで、[メソッド] ドロップダウンで [LightBlink] を選択します。
[InvokeMethod] を選択します。 シミュレーターは、Raspberry Pi のコンソールにメッセージを出力します。 Raspberry Pi 上のアプリは、受信確認をソリューション ダッシュボードに返します。
Led のオンとオフを切り替えるには、LightStatusValue をオンまたはオフに 0 に設定して ChangeLightStatus メソッドを使用します。
警告
Azure アカウントでリモート監視ソリューションを実行したままにした場合は、実行時間に対して課金されます。 リモート監視ソリューションの実行中の使用量の削減の詳細については、 デモ用の Azure IoT Suite 事前構成済みソリューションの構成に関するページを参照してください。 Azure アカウントの使用が完了したら、構成済みのソリューションを Azure アカウントから削除します。
次のステップ
Azure IoT に関するその他のサンプルとドキュメントについては、Azure IoT デベロッパー センターを参照してください。