Azureに入門!ラズパイとPythonから接続してみた!

Azure

AzureにラズベリーパイとPythonで繋げてみました。

初心者でも簡単にAzure(クラウド)を始めることができます。

Azureへの登録から設定方法、またPythonのプログラム含めて紹介しています。

 

スポンサーリンク

Azureに入門!ラズパイとPythonから接続してみた!

Azure IoT Hubにラズベリーパイを接続してみました。

ラズパイとクラウド(Azure)で通信させて、GPIOの入出力を制御しています。

 

ラズパイはPythonから動かしています。

PythonのSDKをインストールするだけで、簡単に実行することが出来ました。

 

Azureのアカウントの登録から設定方法まで紹介します。

実際のテストの様子を動画でも紹介しています。是非一緒にご覧ください。

 

Azureの始め方

Azureの始め方は簡単です。下記ページから登録を進めていきます。

無料でアカウントが作成でき、無料のクレジットとサービスも使えます。

今回テストした内容も無料枠内で問題なく対応できました。。

Azure の無料アカウントを今すぐ作成 | Microsoft Azure
12 か月間無料のサービス、いつでも無料の 25 個以上のサービス、200 米国ドルのクレジットを利用して始めましょう。Microsoft Azure の無料アカウントを今すぐ作成しましょう。

 

「無料で始める」を選択すると、Microsoftのアカウントを聞かれるので入力します。

あとは名前や住所・クレジットカードなどの情報を埋めていくだけです。

 

この記事ではAzureの始め方を紹介していますが、AWSでも同様なテストが可能です。

  • Azure…Microsoftのクラウド
  • AWS…Amazonのクラウド

 

AWSにも無料分のクレジット・サービスがありますので、無料で実施できます。

下記記事で紹介しています。(リンクはこちら)

AWSにラズパイを接続!GPIOの信号をクラウドに送信してみた

AWSにラズパイを接続!GPIOの信号をクラウドに送信してみた
AWSに入門したくなり、ラズベリーパイで始めてみました。 ラズパイとAWSを接続して、PythonでGPIOの信号をクラウドに送信しています。 無料枠の範囲内で実施出来ますので、AWSを始めてみたい人におすすめします。

 

Azure IoT Hubの作成

Azureとラズパイを接続するために、「Azure IoT Hub」のサービスを使います。

アカウント作成後に、Azureのホーム画面から「IoT Hub」を選択します。

 

最初にプロジェクト・インスタンスの詳細を埋めていきます。

各項目を入力して「次へ」を選択すればOKです。

リソースグループ、IoT Hub名は任意に入力しました。領域は東日本を選択しています。

 

次にネットワークに関してはパブリックドメインを選択しました。

 

価格とスケールティアに関しては「F1:Freeレベル」の選択をおすすめします。

今回の通信テストレベル程度ならば、無料で使えるFreeレベルで対応できました。

それ以外の項目は(筆者は)デフォルト設定です。

 

他にもリソースを整理するタグの設定がありますが、対応せずともテスト可能です。

最後に「確認および作成」で最終確認して、デプロイを待てばIoT Hubの作成完了です。

下記公式ページにも手順が記載されていますので、必要に応じて参考ください。

 https://docs.microsoft.com/ja-jp/azure/iot-hub/iot-hub-raspberry-pi-kit-node-get-started

 

IoTデバイスを追加

IoT Hubの作成(デプロイ)が完了すると、IoTデバイスを登録出来ます。

作成したIoT Hubから、「IoTデバイス」から「デバイスの追加」を選択します。

 

デバイスIDは任意の名前を入力します。他はデフォルト設定でした。

 

デバイスの作成が完了すると、キーやプライマリ接続文字列などが入手できます。

プライマリ接続文字列に関してはコピーして控えておきます。

 

Azure IoT SDK (Python)をインストール

ラズベリーパイでAzureを使うためのライブラリ・SDKをインストールしていきます。

Azureは多くのプログラミング言語に対応していますが、今回はPythonを使います。

 

ラズパイにはデフォルトでPythonがインストールされており、誰でも簡単に使用できます。

初心者の方でも大丈夫です。下記記事で使い方を紹介しています。(リンク先はこちら)

ラズベリーパイでプログラミング入門!Pythonの簡単な始め方

ラズベリーパイでプログラミング入門!Pythonの簡単な始め方
プログラミングを始めたい方にラズベリーパイを使った簡単な入門方法を紹介します。 プログラミング言語の中でも初心者にもやさしく、人気なPythonがラズパイならば簡単にスタートできます。 ラズベリーパイでプログラミング入門!P...

 

SDKをインストール

今回使用するライブラリのGithubのリンク先は下記です。

 https://github.com/Azure/azure-iot-sdk-python

 

「Azure IoT Device SDK」「Azure IoTHub Service SDK」をインストールします。

pip3 install azure-iot-device
pip3 install azure-iot-hub

 

またGitのリポジストリもクローンしておきます。

git clone https://github.com/Azure/azure-iot-sdk-python.git

 

Azure IoT Hubにメッセージ送信する

ラズパイからAzure IoT Hubにメッセージを送るプログラムは用意されています。

クローンしたリポジストリの中にあります。

下記フォルダ内の「simple_send_message.py」がメッセージ送信のプログラムです。

cd /home/pi/azure-iot-sdk-python/azure-iot-device/samples/

 

但しラズパイ上で動かす前に環境変数の設定が必要になります。

プログラムの中の "IOTHUB_DEVICE_CONNECTION_STRING"の箇所です。

IoT Hubを作成したときに控えた「プライマリ接続文字列」を使います。

 

色々対応方法はあると思いますが、筆者はexportのコマンドを使いました。

下記赤字箇所を「プライマリ接続文字列」に置き換えて、ターミナルで入力します。

export IOTHUB_DEVICE_CONNECTION_STRING="<your connection string here>"

 

あとはPythonのプログラムを動かすだけです。下記コマンドで実行できます。

実行後は「Message successfully sent!」と表示されます。

ラズベリーパイからAzureに無事メッセージ送信したことを確認できました。

python3 simple_send_message.py

 

Azure IoT Hubのメッセージを確認する

デバイス側(ラズパイ)からクラウド側(Azure)に送ったメッセージを確認します。

今回は「Visual Studio Code」の「Azure IoT Tools」を使用しています。

 

Visual Studio Codeをインストール

Visual Studio Code(VSCode)はMicrosoftが提供しているエディタです。

色々な拡張機能を追加することができます。

AzureもMicrosoftのクラウドのため多くのサポートが受けれます。

 

必要な方は下記からダウンロード・インストールをお願いします

 https://azure.microsoft.com/ja-jp/products/visual-studio-code/

 

Azure IoT Toolsをインストール

Visual Studio CodeにAzureの拡張機能を追加します。

拡張機能の箇所で「Azure IoT Tools」と検索して、インストールすればOKです。

もしくは下記Visual StudioのURLからでも大丈夫です。

 https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.azure-iot-tools

 

その後サインインしてIoT Hubを選択すると、既に作成したデバイス含めて表示されます。

(VS Code上でもIoT Hubを作れるそうです。凄く便利です)

 

Azure IoT Hubをモニターする

Azure IoT Toolsで多くのことが出来るようになりますが、一部だけ簡単に紹介します。

Azure  IoT Hubへのメッセージをモニターすることが可能になります。

デバイス箇所で右クリックして「ビルドエンドポイントのモニターを開始」を選びます。

 

デバイス・IoT Hubにメッセージ送信する

デバイスやIoT HubにVScodeからメッセージを送信することも可能になります。

  • D2Cメッセージ…device-to-cloud
  • C2Dメッセージ…cloud-to-device

 

Azure IoT Hubの使い方のテスト

ラズパイとクラウド(Azure)で通信させて、GPIOの入出力を制御するテストしました。

SDKのPythonのプログラムを少し弄って、下記2パターン試してみました。

  • D2C…ラズパイのGPIO入力→Azureにメッセージ送信
  • C2D…Azureからメッセージ送信→ラズパイのGPIO出力

 

ラズベリーパイのGPIO入出力の配線に関しては下記形です。

  • GPIO出力…GPIO22にLEDと330Ω抵抗を直列接続
  • GPIO入力…GPIO17にスイッチを接続。(10kΩプルダウン)

 

冒頭でも紹介しましたが、テスト動画含めて紹介しています。

是非一緒にご覧ください。

 

ラズパイからAzureにメッセージ送信

最初にラズパイのGPIO入力→Azureにメッセージ送信のテストを行います。

 

テスト内容

左の画面がラズベリーパイで、右の画面がAzure(Visual Studio Code)です。

 

Azureのモニターを開始します。

Visual Studio Codeで「ビルドエンドポイントのモニターを開始」を選択します。

 

ラズベリーパイ側でPythonのプログラムを準備します。

(動画内では省略していましたが)環境変数をexportしてから、プログラムを実行します。

 

プログラムを起動すると、Azureにもメッセージが表示されます。

 

ラズパイのGPIOに接続されたスイッチを押して、Azureにメッセージ送信しています。

 

Azure(Visual Studio Code)側を見ると、メッセージを確認できています。

 

Pythonのプログラム

SDKの下記のプログラムを弄って動かしました。

「/azure-iot-sdk-python/azure-iot-device/samples/simple_send_message.py」

単純にGPIO入力が入ったら、Azureにメッセージ送信する内容を加えています。

 

 

Azureからラズパイにメッセージ送信

次にAzureからメッセージ送信→ラズパイのGPIO出力のテストを行います。

 

テスト内容

左の画面がラズベリーパイで、右の画面がAzure(Visual Studio Code)です。

 

ラズパイ側でAzureからのメッセージを受信するプログラムを用意します。

環境変数をexportしてからプログラムを起動します。

 

Azure(Visual Studio Code)からラズパイにメッセージ送信を行います。

「デバイスへC2Dメッセージ送信」を選択します。

 

1回目は「test」のメッセージを送信しています。

 

Azureから送信すると、ラズパイ側でメッセージ受信していることが分かります。

 

2回目は「GPIO22_ON」のメッセージを送信しています。

 

ラズパイがメッセージ受信すると同時に、LED点灯(GPIO出力)も確認できます。

 

Pythonのプログラム

SDKの下記のプログラムを弄って作りました。

「/azure-iot-sdk-python/azure-iot-device/samples/sync-samples/receive_message.py」

Azureから指定のメッセージが送信されたらGPIOをON/OFFする内容を加えています。

 

無料枠内でテストできました

今回はAzure IoT Hubにメッセージを数回送信しているだけです。

(筆者は)何回もテストしましたが、特に問題なく無料枠内で十分にテスト出来ました。

(Freeレベルでも1日8000メッセージ使えますが、使用したのは44メッセージ程度でした)

 

まとめ

今回はAzureとラズパイとPythonの接続に関して紹介させていただきました。

記事をまとめますと下記になります。

AzureにラズパイとPythonで通信出来ました。
(今回の)通信テストレベルでは無料枠内で実施出来ます。
Visual Studio CodeからAzureを管理できるので、非常に使いやすいです。

 

Azureを始めてみるにもラズベリーパイ(raspberry pi)はちょうど良いデバイスかと思います。

ハードウェアの勉強や趣味・工作にも十分に使えます。

是非皆さまも試してみて下さい。

コメント