次の方法で共有


Raspberry Pi 3 をリモート監視ソリューションに接続し、Node.js を使用して実際のセンサーからテレメトリを送信する

このチュートリアルでは、Raspberry Pi 3 用 Microsoft Azure IoT Starter Kit を使用して、クラウドと通信できる温度と湿度のリーダーを開発する方法について説明します。 このチュートリアルでは、次の内容を使用します。

  • 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 のコマンド ラインにリモートで接続できるデスクトップ コンピューター。

Microsoft IoT Starter Kit for Raspberry Pi 3 または同等のコンポーネント。 このチュートリアルでは、キットの次の項目を使用します。

  • Raspberry Pi 3
  • MicroSD カード (NOOBS 付き)
  • USB ミニ ケーブル
  • イーサネット ケーブル
  • BME280 センサー
  • ブレッドボード
  • ジャンパーワイヤー
  • 抵抗器
  • LED

ソリューションをプロビジョニングする

アカウントでリモート監視構成済みソリューションをまだプロビジョニングしていない場合:

  1. Azure アカウントの資格情報を使用して azureiotsuite.com にサインインし、+ をクリックしてソリューションを作成します。
  2. [リモート監視] タイルの [ 選択] をクリックします。
  3. リモート監視構成済みソリューションの ソリューション名 を入力します。
  4. ソリューションのプロビジョニングに使用する リージョンサブスクリプション を選択します。
  5. [ソリューション 作成] をクリックして、プロビジョニング プロセスを開始します。 通常、このプロセスの実行には数分かかります。

プロビジョニング プロセスが完了するまで待ちます

  1. プロビジョニング 状態のソリューションのタイルをクリックします。
  2. Azure サービスが Azure サブスクリプションにデプロイされると、プロビジョニングの状態() に注目してください。
  3. プロビジョニングが完了すると、状態が Readyに変わります。
  4. タイルをクリックすると、右側のウィンドウにソリューションの詳細が表示されます。

事前構成済みソリューションの展開で問題が発生した場合は、azureiotsuite.com サイト アクセス許可と FAQを確認してください。 問題が解決しない場合は、ポータルでサービス チケットを作成します。

自分のソリューションに期待しているのに記載されていない詳細がありますか? User Voiceの機能に関する提案をお寄せください。

警告

リモート監視ソリューションは、Azure サブスクリプションに一連の Azure サービスをプロビジョニングします。 デプロイには、実際のエンタープライズ アーキテクチャが反映されています。 不要な Azure 消費料金を回避するには、構成済みソリューションのインスタンスを完了したら、azureiotsuite.com で削除します。 構成済みソリューションがもう一度必要な場合は、簡単に再作成できます。 リモート監視ソリューションの実行中の使用量の削減の詳細については、「デモ用の Azure IoT Suite 事前構成済みソリューションの構成を参照してください。

ソリューション ダッシュボードを表示する

ソリューション ダッシュボードを使用すると、デプロイされたソリューションを管理できます。 たとえば、テレメトリの表示、デバイスの追加、メソッドの呼び出しを行うことができます。

  1. プロビジョニングが完了し、構成済みソリューションのタイルに [準備完了] 表示されたら、[起動] を選択して、新しいタブでリモート監視ソリューション ポータルを開きます。

    構成済みソリューション を起動する

  2. 既定では、ソリューション ポータルに ダッシュボードが表示されます。 ページの左側にあるメニューを使用して、ソリューション ポータルの他の領域に移動できます。

    リモート監視が構成済みのソリューションダッシュボード

デバイスを追加する

デバイスが構成済みソリューションに接続するには、有効な資格情報を使用して IoT Hub に自身を識別する必要があります。 ソリューション ダッシュボードからデバイスの資格情報を取得できます。 このチュートリアルの後半で、クライアント アプリケーションにデバイス資格情報を含めます。

まだ行っていない場合は、カスタム デバイスをリモート監視ソリューションに追加します。 ソリューション ダッシュボードで次の手順を実行します。

  1. ダッシュボードの左下隅にある [デバイス の追加]クリックします。

    デバイス を追加する

  2. [カスタム デバイス] パネルで、[新しいを追加] をクリックします。

    カスタム デバイス を追加する

  3. [自分でデバイス IDを定義する] を選択します。 rasppiなどのデバイス ID を入力し、[ID の確認] をクリックして、ソリューションで名前をまだ使用していないことを確認し、[作成] をクリックしてデバイスをプロビジョニングします。

    デバイス ID を追加する

  4. デバイスの資格情報 (デバイス IDIoT Hub ホスト名、デバイス キーの ) を書き留めます。 Raspberry Pi 上のクライアント アプリケーションがリモート監視ソリューションに接続するには、これらの値が必要です。 次に、 [Done] をクリックします。

    デバイス資格情報の を表示する

  5. ソリューション ダッシュボードのデバイス一覧でデバイスを選択します。 次に、デバイスの詳細 パネルで、[デバイス を有効にするをクリックします。 デバイスの状態は現在 実行中のになりました。 リモート監視ソリューションは、デバイスからテレメトリを受信し、デバイスでメソッドを呼び出すようになりました。

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 のインストールを選択できます。

ハードウェアを設定する

このチュートリアルでは、Microsoft Azure IoT Starter Kit for Raspberry Pi 3 に含まれている BME280 センサーを使用して、テレメトリ データを生成します。 LED を使用して、Raspberry Pi がソリューション ダッシュボードからのメソッド呼び出しをいつ処理するかを示します。

ブレッドボードのコンポーネントは次のとおりです。

  • 赤い LED
  • 220Ω 抵抗 (赤、赤、茶色)
  • BME280 センサー

次の図は、ハードウェアを接続する方法を示しています。

Raspberry Pi のハードウェアセットアップ

次の表は、Raspberry Pi からブレッドボード上のコンポーネントへの接続をまとめたものです。

Raspberry Pi ブレッドボード
GND (ピン 14) LED マイナスピン (18A)
GPCLK0 (ピン 7) 抵抗 (25A) オレンジ
SPI_CE0 (ピン 24) CS (39A) 青い
SPI_SCLK (ピン 23) SCK (36A) 黄色
SPI_MISO (ピン 21) SDO (37A) 白い
SPI_MOSI (ピン 19) SDI (38A)
GND (ピン 6) GND (35A) 黒い
3.3 V (ピン 1) 3Vo (34A) 赤い

ハードウェアのセットアップを完了するには、次の手順を実行する必要があります。

  • 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から接続する方法について説明します。

raspberry ユーザー名 pi とパスワードを使用してサインインします。

省略可能: Raspberry Pi でフォルダーを共有する

必要に応じて、Raspberry Pi 上のフォルダーをデスクトップ環境と共有することもできます。 フォルダーを共有すると、好みのデスクトップ テキスト エディター (Visual Studio Code Sublime Textなど) を使用して、nanoviを使用する代わりに Raspberry Pi 上のファイルを編集できます。

Windows とフォルダーを共有するには、Raspberry Pi で Samba サーバーを構成します。 または、デスクトップ上の SFTP クライアントと共に組み込みの SFTP サーバーを使用します。

SPI を有効にする

サンプル アプリケーションを実行する前に、Raspberry Pi でシリアル周辺機器インターフェイス (SPI) バスを有効にする必要があります。 Raspberry Pi は、SPI バス経由で BME280 センサー デバイスと通信します。 次のコマンドを使用して、構成ファイルを編集します。

sudo nano /boot/config.txt

次の行を見つけます。

#dtparam=spi=on

  • 行のコメントを解除するには、開始時に # を削除します。

  • 変更を保存し (Ctrl + OEnter) し、エディターを終了します (Ctrl + X)。

  • SPI を有効にするには、Raspberry Pi を再起動します。 再起動するとターミナルが切断されます。Raspberry Pi が再起動したら、もう一度サインインする必要があります。

    sudo reboot
    

サンプルをダウンロードして構成する

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 をインストールする方法を示します。

  1. Raspberry Pi を更新するには、次のコマンドを使用します。

    sudo apt-get update
    
  2. 次のコマンドを使用して、Node.js バイナリを Raspberry Pi にダウンロードします。

    wget https://nodejs.org/dist/v6.10.2/node-v6.10.2-linux-armv7l.tar.gz
    
  3. バイナリをインストールするには、次のコマンドを使用します。

    sudo tar -C /usr/local --strip-components 1 -xzf node-v6.10.2-linux-armv7l.tar.gz
    
  4. 次のコマンドを使用して、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/basic/remote_monitoring.js

次の行を見つけます。

var connectionString = 'HostName=[Your IoT hub name].azure-devices.net;DeviceId=[Your device id];SharedAccessKey=[Your device key]';

プレースホルダーの値を、このチュートリアルの開始時に作成して保存したデバイスと IoT Hub の情報に置き換えます。 変更を保存し (Ctrl + OEnter) し、エディターを終了します (Ctrl + X)。

サンプルを実行する

次のコマンドを実行して、サンプルの前提条件パッケージをインストールします。

cd ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/basic
npm install

Raspberry Pi でサンプル プログラムを実行できるようになりました。 コマンドを入力します。

sudo node ~/iot-remote-monitoring-node-raspberrypi-getstartedkit/basic/remote_monitoring.js

次の出力例は、Raspberry Pi のコマンド プロンプトに表示される出力の例です。

Raspberry Pi アプリの出力

Ctrl + C キーを押して、プログラムをいつでも終了します。

テレメトリを表示する

Raspberry Pi は現在、リモート監視ソリューションにテレメトリを送信しています。 ソリューション ダッシュボードでテレメトリを表示できます。 ソリューション ダッシュボードから Raspberry Pi にメッセージを送信することもできます。

  • ソリューション ダッシュボードに移動します。
  • ドロップダウンメニュー 「表示するデバイス」の中からデバイス を選択します。
  • Raspberry Pi からのテレメトリがダッシュボードに表示されます。

Raspberry Pi からのテレメトリを表示する

デバイスを操作する

ソリューション ダッシュボードから、Raspberry Pi でメソッドを呼び出すことができます。 Raspberry Pi は、リモート監視ソリューションに接続すると、サポートされているメソッドに関する情報を送信します。

  • ソリューション ダッシュボードで、[デバイス] をクリックして、[デバイス] ページにアクセスします。 デバイスリストで Raspberry Pi を選択します。 次に、メソッドを選択します。

    ダッシュボード でデバイスを一覧表示する

  • [メソッドの呼び出し ] ページで、[メソッド] ドロップダウンで [LightBlink ] を選択します。

  • を選択して、InvokeMethodを実行します。 Raspberry Pi に接続されている LED が数回点滅します。 Raspberry Pi 上のアプリは、受信確認をソリューション ダッシュボードに返します。

    メソッド履歴の を表示する

  • ChangeLightStatus メソッドを使用して、LightStatusValue を on または 01 に設定して、LED のオンとオフを切り替えることができます。

警告

Azure アカウントでリモート監視ソリューションを実行したままにした場合は、実行時間に対して課金されます。 リモート監視ソリューションの実行中の使用量の削減の詳細については、「デモ用の Azure IoT Suite 事前構成済みソリューションの構成を参照してください。 Azure アカウントの使用が完了したら、構成済みのソリューションを Azure アカウントから削除します。

次のステップ

Azure IoT に関するその他のサンプルとドキュメントについては、Azure IoT デベロッパー センターの を参照してください。