0今回より、SaaS型クラウド運用管理サービス「Vistara」を提供しているVistaNet社のエバンジェリストグループが下記テーマをもとに、全3回にわたって連載記事をお届けします。IoTで認定を受ける手順Microsoft社ではこちらにある通り、IoTハードウェアを認定しAzureをIoTプラットフォームで活用する施策を設けています。OS以外にもいろいろあります。https://azure.microsoft.com/en-us/marketplace/certified-iot-partners/ウェブサイトでの認定デバイス一覧を数えると、6月30日時点で、全世界でおよそ150製品が認定されています。日本のメーカーも数社リストアップされています。PiベースのIoTデバイスについて、読者の皆様が商用で製品を開発されている場合に、Microsoft社の認定を受けて、かつそれを事業者様ないしはIoTデバイスを購入されるお客様がIoTプロジェクトとしてクラウドで運用していく、ということを見ていきたいと思います。単純に、漠然とAzureとIoTって何だ?と思われている方には何らかの一考のきっかけになれば幸いです。Piと分かるものは6デバイス、うち2個は日本のメーカーとなっています(リストは随時増えています)。SDKを実行し動作するまでの方法なども見てみます。Piを使った場合、これまでのところいろいろな情報が散在しており一筋縄ではいかなかったので、ここでまとめると分かりやすいかと思います。Hubからデバイスがデータを受ける、という双方向の通信を実施する必要があります。これができて初めて、デバイスがAzure上で動くので認定対象である、とみなされます。Hubはこの時点ではあくまで通信の確認用で使うので、お客様へのサービスといった実利用に即使うわけではありません。Microsoft社への認定申し込みウェブサイトから申し込みをすると、2、3日しないうちにメールで連絡がきます。Raspbian、開発言語はCとして申し込んだとします。SDKのダウンロードと利用手順のウェブサイトがメールで案内されるのでそれをくまなく読みます。ここで分かりにくかったのが、IoTデバイス自体を開発ホストとしてコンパイルすると思って前提要件を満たすパッケージをインストールしたのですが、Raspbian上でいくらビルドしてもエラーになるため(ここで2、3日ほど悩みましたが)Microsoft社に問い合わせところ、クロスコンパイル環境でやってほしい、ということで別途VMwareゲストでLinuxマシンを立てて、Raspbian用の実行ファイルをコンパイルして問題なく終了しました。バージョンが違うとうまくいくのかもしれません(未実施です。興味ある方はお試しください)。Explorer”というアプリをダウンロード、インストールしておきます。こちらをご参照ください。OSをインストールしておきます。Hubの設定をします。https://github.com/Azure/azure-iot-sdks/blob/master/doc/setup_iothub.mdここでは悩むことはないかと思います。Explorerで、IoTデバイスをプロビジョン(登録)します。device”よりデバイス登録設定を実施します。ここでも悩むことはないかと思います。ビルド用マシンの詳細を構築します。OSインストール後、下記を実施します。Pi上での操作ではありません。以上でないといけないので確認します。gccが4.9以上でないといけないので確認します。4.8.4バージョンが古いということで、アップグレードします。4.9.3これでOKです。パッケージをダウンロードしローカル上に配置します。https://github.com/Azure/azure-iot-sdks.git~/Source/azure-iot-sdksディレクトリ以下にレポジトリが格納されたことを確認してください(ディレクトリがばらっとあれば可)。Pi用のパッケージをダウンロード、配置します。PiのIoTデバイスにて、sshを有効にしておいてください(raspi-configコマンド)。下記の深いディレクトリに移動しIoTデバイスからディレクトリをごそっとリモートコピーします。pi@<IoT_device>:/{lib,usr}rsyncのあとコマンドラインがうんともすんとも言わず30分くらいかかりますが、じっと待ちます。dfなどでパーティションの増加具合を見るとコピーが動いているのが分かります。ディレクトリはそのままで、環境変数を設定します。-pで確認すると以下の1行があるはずです。`toolchain-rip.cmakevという名前のファイルを作成します。nanoのエディタでファイルを編集します。以下をコピペし保存します。MQTTの3つのプロトコルのいずれかを選べるのですが、ここではHTTPで実施することにします。ファイルをエディタで編集します。string]";自分が使う文字列に置き換えます。Explorerを開いて確認します。以下のような文字列です。自分のものに置き換えます。SDKが正常に動きません。IoTの環境変数を設定します。~/Sources/azure-iot-sdks/tools/iot_hub_e2e_tests_params/iot_device_params.txtファイルをエディタで以下のように編集します。自分の文字列に変更します。こちらの中程よりちょっと上に説明があります。Key=...は自分の文字列に変更します。IOTHUB_PARTITION_COUNT:数字ですが自分の数に置き換えます。サンプル画像はこちらです。マシンをリブートします。その後環境変数が有効になるので確認します。格納されるので、手動で消しリブート、再度3-4-12を実行、リブートすれば問題ありません。SDKをビルドします。ここでもビルドマシン上で実行します。IoTデバイス上ではありません。PiのIoTデバイス上で動作する実行ファイルが生成されました。‘iothub_client_sample_http’ファイルがあることを確認します。IoTデバイスにリモートコピーします。Hubとデータを送受信する準備が整いました。Explorerを開き、”Data”タブに移動します。適切なデバイスを選択し、Monitorをクリックします。ここで複数のデバイスがプルダウンで見える場合があるので(デフォルトでは関係ないものが選択されている可能性があります)、適切な該当デバイスを明示的に選ばないと結果が確認できません。Data”欄に表示されます。Pi)にログインして、ターミナルで下記を実行します。Hubにデータを送信します。Hubがデータを受け取り、下記のように表示されればOKです。上記3-6-2でHTTP実行ファイルを実行したままにしておきます。実行されていないければ同じように実行します。Devices”タブに移動します。適切なデバイスを選択し、”Send”をクリックします。ここでも適切な該当デバイスを明示的に選ばないと、結果が確認できません。IoTデバイスのターミナルでは以下のように表示されればOKです。”Send”ボタンを押した回数だけ、ターミナルのほうにも同じ行数のメッセージが表示されます。Hubとの通信テストが無事に終了しました。SDKのテストが終了すると以下のマテリアルをMicrosoft社にメール添付で送る必要があります。これら一連の手順書(テンプレートがあるのでそれに則って記載)。提出元はIoT事業者を想定するので、事業者が自社IoTデバイス製品を顧客に使ってもらう上での手順書、というフォーマットになります。テストが完遂したことを示す関係スクリーンショット提出後、やはり2、3日もしないうちに次の連絡がきます。SDKの内容もいつも同じでないと思われるので、それらを逐一メモしておき、最後に手順書としてまとめると便利です。提出した手順書はMicrosoft社の認定デバイスのリストでウェブにアップされますが、こちらから提出した書面がそのまま掲載されることはなく、Microsoft社側でかなり修正して内容を端折って校正してくれるので(HTMLのフォーマットもつけてくれます)、あまり詳細でなくてもよいという印象です。この一連のテストプロセスにおいては何か問題があると、Microsoft社も丁寧迅速にメールでサポートしてくれました。質問時には、ビルドしたログや環境変数などの情報を添付する必要があります。次回は下記について解説します。雑誌等の執筆依頼を受付しております。役に立たなかった0人がこの投稿は役に立ったと言っています。コメントをキャンセルメールアドレスは表示されません。Reserved.本サイトに掲載されている社名、製品名、サービス名等は各社の商標または登録商標です。プライバシーポリシーお問い合わせ。