UIFlow(Blockly)でAmbientにデータを送るブロックを作りました。使い方を説明します。例題として、M5StickCとENV Hatで温度、湿度、気圧を測り、Ambientに送り、データを可視化します。

UIFlow Ambientブロックは今のところ次の環境で動作確認しています。

  • UIFlow: V1.4.3
  • ファームウェア: V1.4.3
  • ハードウェア: M5StickC

M5StickCとENV Hatで温度、湿度、気圧を測り、LCDに表示するところまでは、M5Stackカフェ「温度計を作る」をご覧ください。

プログラムは次のようになります。

では、ENVセンサから取得した温度、湿度、気圧をAmbientに送信してみましょう。

Ambientはマイコンから送られるセンサデータを受信して蓄積し、可視化するクラウドサービスです。Ambientの使い方はチュートリアル「Ambientを使ってみる」をご覧ください。

UIFlow(Blockly)からAmbientにデータを送るブロック(ambient.m5b)は次のような形をしています。

データを送るチャネルのチャネルId(channelId)とライトキー(writeKey)を入力し、データ(data)を渡します。Ambientにはd1からd8まで最大8種類のデータを送れます。データを送るときは「d1は温度、d2は湿度」といったMap形式のデータを作って渡します。

Ambientブロック(ambient.m5b)は下記のURLからダウンロードします。

ブロックをダウンロードしたら、UIFlowの真ん中の「Custom (Beta)」メニューの「open *.m5b file」を選択し、ダウンロードしたブロックをロードします。

ブロックをロードすると、「Custom (Beta)」メニューの下に「ambient」が現れ、それをクリックすると「ambient send」というブロックが表示されます。

このブロックをプログラムエリアにドラッグ&ドロップして使います。図のように、Ambientにデータを送るところにこのブロックを置き、チャネルIdとライトキーを設定します。ライトキーは’abc0123def’というように引用符でくくってください。データは「Map」メニューから「マップを生成」ブロックを選択します。ブロック下部の「+」をクリックしてkeyとvalueの組を追加し、”d1″、”d2″などをkeyに、送りたいデータをvalueに指定します。

これで指定したチャネルにデータが送られます。プログラムをM5StickCに送って実行し、ブラウザでAmbientのチャネルページを見ると、送られたデータが表示されるのが確認できるはずです。

M5Stack/M5StickC + UIFlow + Ambient を組み合わせると、とても簡単にIoTシステムを作ることができます。皆さんも是非トライしてみてください。