技術とエンタメと、その他・・・

主に、技術ネタ、エンタメ系のネタを書いていく予定です。また、自分が参加したイベントに関する記事も投稿予定。

【がじぇるねGR 2021】GR-ROSE IoTシステム開発コンテスト向けに作品を作った話

この記事は 2021年のがじぇるねGR のアドベントカレンダー の 3日目の記事です。

はじめに

この記事では、今年参加した以下のコンテストに関する記事を書こうと思います。

algyan.connpass.com

algyan.connpass.com

コンテストに参加したきっかけ

このコンテストでは、上記 2つの関連イベントが開かれていました。
その 1つ目のイベントの参加枠の中に、【プレゼント枠】という枠が設けられており、以下のセットをゲットできるというものでした。

  • GR-ROSE
  • PMOD HS3001 温湿度センサ (※)
  • PMOD ケーブル
  • 6 x 2 ピンソケット
  • 書籍

f:id:youtoy:20211204003116j:plain

一方で、「プレゼント品のGR-ROSEと、Azureのなんらかの機能を使って、IoT作品を仕立てる」というのも、この【プレゼント枠】に申し込む条件でした(さらに、上記 2つ目のイベントで LT による発表をする話も)。

自分は、GR-ROSE や Azure を使う機会にもなるかな、と思い申し込みました。
この時点で、何を作るかは全く思いつけてなかったのですが...

コンテストに応募した作品の情報

今回のコンテストに応募した作品の詳細は、LT資料の内容をご覧ください。

speakerdeck.com

以下で、いくつか情報をピックアップ書いていきます。

作った仕組みの構成

作った仕組みの、最終的な構成の概要はこのようになります。

f:id:youtoy:20211204003600j:plain

入力の部分は、以下のように「Grove - CO2 & Temperature & Humidity Sensor (SCD30) 」を使っています。
スルーホール用テストワイヤを使ってつなげました(ハンダ付けをせず...)。

このセンサーは、二酸化炭素濃度と温湿度を計測することができるものです。
センサーがつながっている GR-ROSE からは、MQTT を使って値をネットワーク経由で送信、という構成です。

それを 3種類の出力へとつなげています。

M5Stack Core2 との連携

こちらは、二酸化炭素濃度が一定の値を超えると、音や光で教えてくれるというものです。

www.youtube.com

M5Stack Core2 を動作させるプログラムは、ビジュアルプログラミングの UIFlow で作っています。

f:id:youtoy:20211204004154j:plain

MQTTブローカーは、Node.js で書いたプログラムがローカルネットワーク内にある PC で動いていて、そこを介して GR-ROSE と通信する構成にしました。

LINEアプリへの通知

こちらは、別のお知らせの仕組みです(発表では、こちらを先に紹介したので、スライドの記載で 1つ目 となっています)。

f:id:youtoy:20211204004316j:plain

Azure IoT Hub で「Grove - CO2 & Temperature & Humidity Sensor (SCD30) 」の二酸化炭素濃度の測定値を取得し、それを Azure Functions で取得して特定の条件になった時に(二酸化炭素濃度の測定値が特定の値を超えたりした場合に)LINE Notify を使った LINEアプリへの通知を行います。

Azure Functions の部分は Node.js でプログラムを書き、axios を使って HTTPリクエスト(POST)を送ったりしています。

可視化

また、センサーで取得した値の可視化もやってみていました。

f:id:youtoy:20211204004630j:plain

こちらは、先ほどと同様に Azure IoT Hub を使っているのですが、その先が Azure Stream Analytics になり、そこから Power BI につながっています。
とりあえず、グラフでセンサーで取得した値を折れ線で描画する、ということをやってみました。

実装した内容について

実装した内容は自分の Qiita の記事に、複数の記事に分かれていますが書いています。

おわりに

今回のコンテストに参加して、今まで触ったことがなかったデバイス・サービスを使う良い機会になりました。
また、「Azure の何らかのサービスを使う」という条件が、Azure のサービスで IoT に使えるものを探してみる、という動機にもなりました。

その試行錯誤の過程は、コンテストで実装した内容を書いたのと同様に、どんどん記事にしていってました。
発表前に views数を確認してみたら、見ていただいた方がけっこういらっしゃったようで、また今後もやったことをどんどん記事化していこうというモチベーションにもなりました。

f:id:youtoy:20211204004955j:plain