2018年6月27日水曜日

ラズパイで制御したAlienリーダからAzure IoT Hubに連携してみた

前回、ラズパイでAlienリーダを制御してみました。今回はラズパイからクラウド(Azure)に連携してみようと思います。Azure Web Appsへの連携は前々回やったので、今度はAzure IoT Hubへ連携してみようと思います。

といっても、こちらのドキュメントの通りやるだけです。Microsoft.Azure.Devices.Clientを組み込んでサンプルアプリの通り、JSONでデータを作って送るだけで完成しました。送信部分はこんな感じです。

        private static async void reader_FindTag(object sender, TagEventArgs e)
        {
            var dataPoint = new
            {
                eventName = "FindTag",
                tagID = e.TagID,
            };
            var messageString = JsonConvert.SerializeObject(dataPoint);
            var message = new Message(Encoding.ASCII.GetBytes(messageString));
            await client.SendEventAsync(message);
            Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, messageString);
        }

実行してみるとこんな感じ。ただログが表示されているだけでよくわかりませんが。


受信側はサンプルにあったもの(read-d2c-messages)をそのまま使いました。上記の送信されたイベントがこんな感じで受信できました。


何やらIoT Hubを使うとクラウドからデバイスに対してコマンドを送れるようなので、クラウドからリーダの制御もできてしまうようです。ただ、リーダのそばで制御したほうがよいこともあるだろうし、そのあたりはバランス感覚が問われそうです。

0 件のコメント:

コメントを投稿