Raspberry Pi の Azure IoT Hub への接続 (Node.js)Connect Raspberry Pi to Azure IoT Hub (Node.js)

このチュートリアルでは、まず Raspbian を実行する Raspberry Pi の操作の基礎について説明します。In this tutorial, you begin by learning the basics of working with Raspberry Pi that's running Raspbian. 次に、Azure IoT Hub を使って、デバイスをクラウドにシームレスに接続する方法について説明します。You then learn how to seamlessly connect your devices to the cloud by using Azure IoT Hub. Windows 10 IoT Core サンプルについては、Windows デベロッパー センターを参照してください。For Windows 10 IoT Core samples, go to the Windows Dev Center.

キットをお持ちでない場合は、Don't have a kit yet? Raspberry Pi オンライン シミュレーターをお試しください。Try Raspberry Pi online simulator. または、こちらで新しいキットを購入してください。Or buy a new kit here.

作業内容What you do

  • IoT Hub を作成します。Create an IoT hub.
  • Pi のデバイスを IoT Hub に登録します。Register a device for Pi in your IoT hub.
  • Raspberry Pi を設定します。Set up Raspberry Pi.
  • Pi でサンプル アプリケーションを実行し、センサー データを IoT Hub に送信します。Run a sample application on Pi to send sensor data to your IoT hub.

学習内容What you learn

  • Azure IoT Hub を作成し、新しいデバイス接続文字列を取得する方法。How to create an Azure IoT hub and get your new device connection string.
  • Pi と BME280 センサーを接続する方法。How to connect Pi with a BME280 sensor.
  • Pi のサンプル アプリケーションを実行して、センサー データを収集する方法。How to collect sensor data by running a sample application on Pi.
  • センサー データを IoT Hub に送信する方法。How to send sensor data to your IoT hub.

必要なものWhat you need

必要なもの

  • Raspberry Pi 2 ボードまたは Raspberry Pi 3 ボード。A Raspberry Pi 2 or Raspberry Pi 3 board.
  • Azure サブスクリプション。An Azure subscription. Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。If you don't have an Azure subscription, create a free account before you begin.
  • Pi に接続するモニター、USB キーボード、およびマウス。A monitor, a USB keyboard, and mouse that connects to Pi.
  • Mac か、Windows または Linux を実行している PC。A Mac or PC that is running Windows or Linux.
  • インターネット接続。An internet connection.
  • 16 GB 以上の microSD カード。A 16 GB or above microSD card.
  • USB-SD アダプターまたは microSD カード (microSD カードに オペレーティング システム イメージを書き込むため)。A USB-SD adapter or microSD card to burn the operating system image onto the microSD card.
  • 5V 2A の AC アダプターと約 2 m の micro USB ケーブル。A 5-volt 2-amp power supply with the 6-foot micro USB cable.

省略可能な品目を次に示します。The following items are optional:

  • 温度、気圧、および湿度用の組み立て済み Adafruit BME280 センサー。An assembled Adafruit BME280 temperature, pressure, and humidity sensor.
  • ブレッドボードA breadboard.
  • 6 つの F/M ジャンパー ワイヤ。6 F/M jumper wires.
  • 拡散型 10 mm LED。A diffused 10-mm LED.

注意

省略可能な項目がない場合は、シミュレートされたセンサー データをご利用いただけます。If you don't have the optional items, you can use simulated sensor data.

IoT Hub の作成Create an IoT hub

  1. Azure Portal にサインインします。Sign in to the Azure portal.

  2. [リソースの作成] > [モノのインターネット] > [IoT Hub] を選択します。Select Create a resource > Internet of Things > IoT Hub.

    Azure Portal での IoT Hub へのナビゲーションのスクリーン ショット

  3. [IoT Hub] ウィンドウで、IoT Hub のために以下の情報を入力します。In the IoT hub pane, enter the following information for your IoT hub:

    • [サブスクリプション]: この IoT ハブを作成するために使用するサブスクリプションを選択します。Subscription: Choose the subscription that you want to use to create this IoT hub.

    • [リソース グループ]: IoT Hub をホストするリソース グループを作成するか、既存のリソース グループを使用します。Resource group: Create a resource group to host the IoT hub or use an existing one. 詳細については、リソース グループを使用した Azure リソースの管理に関するページを参照してください。For more information, see Use resource groups to manage your Azure resources.

    • [リージョン]: 最も近い場所を選択します。Region: Select the closest location to you.

    • [名前]: IoT ハブの名前を作成します。Name: Create a name for your IoT hub. 入力した名前が使用可能な場合は、緑色のチェック マークが表示されます。If the name you enter is available, a green check mark appears.

    重要

    IoT ハブは DNS エンドポイントとして公開されます。そのため、名前を付ける際は機密情報を含めないようにしてください。The IoT hub will be publicly discoverable as a DNS endpoint, so make sure to avoid any sensitive information while naming it.

    IoT ハブの基本ウィンドウ

  4. [Next: Size and scale](次へ: サイズとスケール) を選択して、IoT ハブの作成を続けます。Select Next: Size and scale to continue creating your IoT hub.

  5. [価格とスケールティア] を選択します。Choose your Pricing and scale tier. この記事では、[F1 - Free] レベルを選択します (サブスクリプションで引き続き使用可能な場合)。For this article, select the F1 - Free tier if it's still available on your subscription. 詳細については、料金とスケール レベルに関するページを参照してください。For more information, see the Pricing and scale tier.

    IoT ハブのサイズとスケールのウィンドウ

  6. [Review + create](レビュー + 作成) を選択します。Select Review + create.

  7. IoT ハブの情報を確認してから、[作成] をクリックします。Review your IoT hub information, then click Create. IoT ハブの作成には数分かかることがあります。Your IoT hub might take a few minutes to create. [通知] ウィンドウで進行状況を監視できます。You can monitor the progress in the Notifications pane.

IoT Hub を作成したら、その IoT Hub にデバイスとアプリケーションを接続するために必要な重要な情報を把握します。Now that you have created an IoT hub, locate the important information that you use to connect devices and applications to your IoT hub.

IoT Hub ナビゲーション メニューの共有アクセス ポリシーを開きます。In your IoT hub navigation menu, open Shared access policies. [iothubowner] ポリシーを選択し、IoT Hub の [接続文字列 --- 主キー] をコピーします。Select the iothubowner policy, and then copy the Connection string---primary key of your IoT hub. 詳細については、「IoT Hub へのアクセスの制御」を参照してください。For more information, see Control access to IoT Hub.

注意

このセットアップ チュートリアルでは、iothubowner 接続文字列は必要ありません。You do not need the iothubowner connection string for this set-up tutorial. ただし、このセットアップの完了後、一部のチュートリアルや異なる IoT シナリオでは必要になる場合があります。However, you may need it for some of the tutorials or different IoT scenarios after you complete this set-up.

IoT Hub の接続文字列を取得する

IoT ハブへのデバイスの登録Register your device in the IoT hub

  1. IoT Hub ナビゲーション メニューの [IoT デバイス] を開き、[追加] をクリックして IoT Hub でデバイスを登録します。In your IoT hub navigation menu, open IoT devices, then click Add to register a device in your IoT hub.

    IoT ハブの [IoT デバイス] でデバイスを追加する

  2. 新しいデバイスの [デバイス ID] を入力します。Enter a Device ID for the new device. デバイス ID には大文字と小文字の区別があります。Device IDs are case sensitive.

    重要

    デバイス ID は、カスタマー サポートとトラブルシューティング目的で収集されたログに表示される場合があります。そのため、名前を付ける際は機密情報を含めないようにしてください。The device ID may be visible in the logs collected for customer support and troubleshooting, so make sure to avoid any sensitive information while naming it.

  3. [Save] をクリックします。Click Save.

  4. デバイスが作成された後、[IoT デバイス] ウィンドウの一覧からデバイスを開きます。After the device is created, open the device from the list in the IoT devices pane.

  5. 後で使用するために [接続文字列 --- 主キー] をコピーします。Copy the Connection string---primary key to use later.

    デバイスの接続文字列を取得する

Raspberry Pi のセットアップSet up Raspberry Pi

Pi の Raspbian オペレーティング システムのインストールInstall the Raspbian operating system for Pi

microSD カードに Raspbian イメージをインストールするための準備をします。Prepare the microSD card for installation of the Raspbian image.

  1. Raspbian をダウンロードします。Download Raspbian.

    a.a. Raspbian Stretch をダウンロードします (.zip ファイル)。Download Raspbian Stretch (the .zip file).

    警告

    raspbian-2017-07-5 zip イメージをダウンロードするには、上のリンクを使用してください。Please use above link to download raspbian-2017-07-5 zip image. 最新バージョンの Raspbian イメージには Wiring-Pi ノードに関する既知の問題がいくつかあるため、次の手順でエラーが発生するおそれがあります。The latest version of Raspbian images has some known issues with Wiring-Pi Node, which might cause failure in your next steps.

    b.b. コンピューター上のフォルダーに Raspbian イメージを抽出します。Extract the Raspbian image to a folder on your computer.

  2. microSD カードに Raspbian をインストールします。Install Raspbian to the microSD card.

    a.a. Etcher SD カード書き込みユーティリティをダウンロードしてインストールしますDownload and install the Etcher SD card burner utility.

    b.b. Etcher を実行し、手順 1. で抽出した Raspbian イメージを選択します。Run Etcher and select the Raspbian image that you extracted in step 1.

    c.c. microSD カード ドライブを選択します。Select the microSD card drive. Etcher では適切なドライブが既に選択されている場合があります。Etcher may have already selected the correct drive.

    d.d. [Flash (フラッシュ)] をクリックして、microSD カードに Raspbian をインストールします。Click Flash to install Raspbian to the microSD card.

    e.e. インストールが完了したら、コンピューターから microSD カードを取り出します。Remove the microSD card from your computer when installation is complete. Etcher では完了時に microSD カードを自動的に取り出すか、マウント解除するため、microSD カードを直接取り出しても問題ありません。It's safe to remove the microSD card directly because Etcher automatically ejects or unmounts the microSD card upon completion.

    f.f. microSD カードを Pi に挿入します。Insert the microSD card into Pi.

SSH および I2C の有効化Enable SSH and I2C

  1. Pi をモニター、キーボード、およびマウスに接続します。Connect Pi to the monitor, keyboard, and mouse.

  2. Pi を起動してから、pi をユーザー名として、raspberry をパスワードとして使用して Raspbian にログインします。Start Pi and then log in Raspbian by using pi as the user name and raspberry as the password.

  3. Raspberry アイコン > [Preferences](設定) > [Raspberry Pi Configuration](Raspberry Pi 構成) の順にクリックします。Click the Raspberry icon > Preferences > Raspberry Pi Configuration.

    [Raspbian Preferences] (Raspbian 設定)メニュー

  4. [Interfaces] (インターフェイス) タブで、[I2C][SSH][Enable] (有効) に設定し、[OK] をクリックします。On the Interfaces tab, set I2C and SSH to Enable, and then click OK. 物理センサーがなく、シミュレートされたセンサー データを使用する場合は、この手順は省略可能です。If you don't have physical sensors and want to use simulated sensor data, this step is optional.

    I2C と SSH を Raspberry Pi で有効にする

注意

SSH と I2C を有効にする際の参考ドキュメントは raspberrypi.orgAdafruit.com に多数あります。To enable SSH and I2C, you can find more reference documents on raspberrypi.org and Adafruit.com.

センサーを Pi に接続するConnect the sensor to Pi

ブレッドボードとジャンパー ワイヤを使用して、次のように LED と BME280 を Pi に接続します。Use the breadboard and jumper wires to connect an LED and a BME280 to Pi as follows. センサーがない場合は、このセクションをスキップします。If you don’t have the sensor, skip this section.

Raspberry Pi とセンサーの接続

BME280 センサーでは、温度と湿度のデータを収集できます。The BME280 sensor can collect temperature and humidity data. デバイスがメッセージをクラウドに送信すると、LED が点滅します。The LED blinks when the device sends a message to the cloud.

センサーの各ピンで、次のように接続します。For sensor pins, use the following wiring:

開始 (センサーと LED)Start (Sensor & LED) 終了 (ボード)End (Board) ケーブルの色Cable Color
VDD (ピン 5G)VDD (Pin 5G) 3.3V PWR (ピン 1)3.3V PWR (Pin 1) 白いケーブルWhite cable
GND (ピン 7G)GND (Pin 7G) GND (ピン 6)GND (Pin 6) 茶色のケーブルBrown cable
SDI (ピン 10G)SDI (Pin 10G) I2C1 SDA (ピン 3)I2C1 SDA (Pin 3) 赤いケーブルRed cable
SCK (ピン 8G)SCK (Pin 8G) I2C1 SCL (ピン 5)I2C1 SCL (Pin 5) オレンジ色のケーブルOrange cable
LED VDD (ピン 18F)LED VDD (Pin 18F) GPIO 24 (ピン 18)GPIO 24 (Pin 18) 白いケーブルWhite cable
LED GND (ピン 17F)LED GND (Pin 17F) GND (ピン 20)GND (Pin 20) 黒いケーブルBlack cable

Raspberry Pi 2 & 3 Pin mappings をクリックして参照します。Click to view Raspberry Pi 2 & 3 pin mappings for your reference.

BME280 が正常に Raspberry Pi に接続されると、下の図のようになります。After you've successfully connected BME280 to your Raspberry Pi, it should be like below image.

接続された Pi と BME280

Pi のネットワークへの接続Connect Pi to the network

micro USB ケーブルと AC アダプターを使って、Pi の電源を入れます。Turn on Pi by using the micro USB cable and the power supply. イーサネット ケーブルを使用して Pi を有線ネットワークに接続するか、Raspberry Pi Foundation の手順に従って、Pi をワイヤレス ネットワークに接続します。Use the Ethernet cable to connect Pi to your wired network or follow the instructions from the Raspberry Pi Foundation to connect Pi to your wireless network. Pi がネットワークに正常に接続されたら、Pi の IP アドレスをメモしておく必要があります。After your Pi has been successfully connected to the network, you need to take a note of the IP address of your Pi.

接続先の有線ネットワーク

注意

必ず Pi をコンピューターと同じネットワークに接続してください。Make sure that Pi is connected to the same network as your computer. たとえば、コンピューターがワイヤレス ネットワークに接続され、Pi がワイヤード (有線) ネットワークに接続されている場合、devdisco の出力に IP アドレスが表示されないことがあります。For example, if your computer is connected to a wireless network while Pi is connected to a wired network, you might not see the IP address in the devdisco output.

Pi でのサンプル アプリケーションの実行Run a sample application on Pi

サンプル アプリケーションの複製と前提条件となるパッケージのインストールClone sample application and install the prerequisite packages

  1. 以下の SSH クライアントのいずれかを使用して、ホスト コンピューターから Raspberry Pi に接続します。Connect to your Raspberry Pi with one of the following SSH clients from your host computer:

    Windows ユーザーWindows Users

    a.a. Windows 版の PuTTY をダウンロードしてインストールします。Download and install PuTTY for Windows.

    b.b. Pi の IP アドレスをホスト名 (または IP アドレス) セクションにコピーし、接続の種類として SSH を選択します。Copy the IP address of your Pi into the Host name (or IP address) section and select SSH as the connection type.

    PuTTy

    Mac ユーザーおよび Ubuntu ユーザーMac and Ubuntu Users

    Ubuntu または macOS に組み込まれている SSH クライアントを使用します。Use the built-in SSH client on Ubuntu or macOS. SSH を使用して Pi を接続するには、ssh pi@<ip address of pi> を実行する必要がある場合があります。You might need to run ssh pi@<ip address of pi> to connect Pi via SSH.

    注意

    既定のユーザー名は pi、パスワードはraspberry です。The default username is pi and the password is raspberry.

  2. Pi に Node.js と NPM をインストールします。Install Node.js and NPM to your Pi.

    まず、ご使用の Node.js のバージョンを確認します。First check your Node.js version.

    node -v
    

    バージョンが 4.x より前であるか、Node.js が Pi にない場合は、最新バージョンをインストールします。If the version is lower than 4.x, or if there is no Node.js on your Pi, install the latest version.

    curl -sL http://deb.nodesource.com/setup_4.x | sudo -E bash
    sudo apt-get -y install nodejs
    
  3. サンプル アプリケーションを複製します。Clone the sample application.

    git clone https://github.com/Azure-Samples/iot-hub-node-raspberrypi-client-app
    
  4. サンプルのすべてのパッケージをインストールします。Install all packages for the sample. このインストールには、Azure IoT device SDK、BME280 センサー ライブラリ、および Wiring Pi ライブラリが含まれています。The installation includes Azure IoT device SDK, BME280 Sensor library, and Wiring Pi library.

    cd iot-hub-node-raspberrypi-client-app
    sudo npm install
    

    注意

    ネットワーク接続によっては、このインストール プロセスが終了するまで数分かかる場合があります。It might take several minutes to finish this installation process depending on your network connection.

サンプル アプリケーションを構成するConfigure the sample application

  1. 次のコマンドを実行して、config ファイルを開きます。Open the config file by running the following commands:

    nano config.json
    

    config ファイル

    このファイルには、構成可能な 2 つの項目があります。There are two items in this file you can configure. 1 つは interval で、クラウドに送信するメッセージ間の時間間隔 (ミリ秒) を定義します。The first one is interval, which defines the time interval (in milliseconds) between messages sent to the cloud. もう 1 つは simulatedData で、シミュレートされたセンサー データを使用するかどうかを表すブール値です。The second one is simulatedData, which is a Boolean value for whether to use simulated sensor data or not.

    センサーがない場合は、simulatedData 値を true に設定し、シミュレートされたセンサー データをサンプル アプリケーションで作成して使用します。If you don't have the sensor, set the simulatedData value to true to make the sample application create and use simulated sensor data.

  2. Ctrl + O キー、Enter キー、Ctrl + X キーの順に押し、保存して終了します。Save and exit by typing Control-O > Enter > Control-X.

サンプル アプリケーションの実行Run the sample application

次のコマンドを実行して、サンプル アプリケーションを実行します。Run the sample application by running the following command:

sudo node index.js '<YOUR AZURE IOT HUB DEVICE CONNECTION STRING>'

注意

デバイスの接続文字列をコピーして貼り付け、必ず一重引用符で囲んでください。Make sure you copy-paste the device connection string into the single quotes.

IoT Hub に送信されるセンサー データとメッセージを示す次の出力が表示されます。You should see the following output that shows the sensor data and the messages that are sent to your IoT hub.

出力 - Raspberry Pi から IoT Hub に送信されるセンサー データ

次の手順Next steps

サンプル アプリケーションを実行してセンサー データを収集し、IoT Hub に送信します。You’ve run a sample application to collect sensor data and send it to your IoT hub. Raspberry Pi が IoT ハブに送信したメッセージを表示するか、または Raspberry Pi にメッセージを送信するには、「Visual Studio Code 用 Azure IoT Toolkit 拡張機能を使用してデバイスと IoT Hub の間のメッセージを送受信する」を参照してください。To see the messages that your Raspberry Pi has sent to your IoT hub or send messages to your Raspberry Pi, see the Use Azure IoT Toolkit extension for Visual Studio Code to send and receive messages between your device and IoT Hub.

引き続き Azure IoT Hub の使用方法を確認すると共に、他の IoT のシナリオについて調べるには、次のページを参照してください。To continue to get started with Azure IoT Hub and to explore other IoT scenarios, see the following: