AzureでIoTマスコンを作ってみよう(1)
第4回「Raspberry Pi Zero WとAzureで、Webから操作できるIoTクリスマスツリーを作ってみよう」でも紹介したAzure Web Appを利用します。
IoTクリスマスツリーと同じ動作原理になりますが、Web AppのDockerコンテナ上に、MQTT PublisherをMQTT Brokerへ送信するWebアプリをデプロイします。Raspberry Pi Zero W本体にMQTT Brokerのモードを受け取るSubscriberを実行し、モーターの発車・停車をRaspberry Pi Zero WのGPIOで制御します(第4回記事参照)。
次に、アプリ一覧ページでマイクロソフト公式の「Web App」を選択します。アイコンが表示されない場合は、検索バーで「Web App」と入力し、検索します。
以下の情報でDockerコンテナを作成します。
- アプリ名:ユニーク(一意)となるアプリ名
- サブスクリプション: 利用中のサブスクリプションを選択
- リソースグループ:新規作成
- OS:Linux
- 公開:コード
- App Service プラン/場所:次の手順を参照
- ランタイムスタック:PHP7.0
プランと場所を選択したいとき
Web Appの料金プランと場所(リージョン)を指定したいときは、「App Service プラン/場所」から新規作成を選択します。今回は最安価の「B1 Basic」プランを適用することをおすすめします。以下のように入力してみましょう。
- 場所 :Japan East(東日本)
- App Service プラン : 任意のプラン名
- 価格レベル : B1 Basic
最後に「作成」ボタンを押し、Web Appを作成します。
Sandbox使用時の注意点
今回は「まずは動かしてみる」観点からSandboxを使用しています。SandboxのURLであるiot.eclipse.orgは、あくまでもテストが目的のMQTT Brokerです。もしテストのためではなく、恒久的に使用したい場合、Active MQなどのMQTT Brokerを別途準備してください。
Sandboxを使用するとき、指定したtopicが他のユーザーと同一で、かつ同じタイミングで実行すると、メッセージの送受信に失敗する恐れがあります。そのためtopic名は必要に応じて変更してください。今回、topic名はeh200
にしています。こちらを適宜変更してください。
また、今回使用したEclipseのMQTT Brokerの詳細については、公式サイトをご覧ください(Sandboxを無償で提供している性質上、予告なくメンテナンスが入りつながらなくなることがあるのでご注意ください)。