知的好奇心 for IoT

IoT関連の知的好奇心を探求するブログです

BlynkのWebHookを使ったThingSpeakへのデータの送り方

少し前にこんなニュースを見て、久しぶりにデータの可視化サービスを調べてみたんです。

そしたら、AI関連で聞き覚えのあるMATLABの会社がThingSpeakというサービスを提供していることを今頃知りました。

で、今回のタイトルにも繋がるのですが、ぼくが気に入っているBlynkに『WebHook』というRESTで叩く機能があって、今まで使ったことがなかったので使ってみようと思ったんです。

当然MachinistとThingSpeakの両方でWebHookを使おうと思ったのですが、MachinistではWebHookが使えなかったんです。

 

MachinistでBlynkのWebHookが使えなかった理由

Machinistは『HTTPでJSONデータを投げつけるだけ』ではあるのですが...条件があります。

f:id:IntellectualCuriosity:20190921171947p:plain

はい、まぁ他のサービスでも結構あるのですが、ヘッダーで認証用の情報を送る必要があるんです。

しかし、BlynkのWebHookにはヘッダーを送る機能が無いんです...。

f:id:IntellectualCuriosity:20190921181445p:plain

でも、ThingSpeakはボディで認証情報を送れるように出来ているんです。

f:id:IntellectualCuriosity:20190921191528p:plain

ヒャッホー!

 

ThingSpeakアカウントを作ろう!

まずはthingspeak.comにアクセスします。

f:id:IntellectualCuriosity:20190921194606p:plain

そして、右上の「Sign Up」をクリックします。

f:id:IntellectualCuriosity:20190921195153p:plain

メールアドレスと名前を入力したら、「Continue」をクリックします。

f:id:IntellectualCuriosity:20190921200114p:plain

ThingSpeakはMATLABと連携するようになっているので、MATLABに使うアカウント(メールアドレス)の確認画面が表示されます。でも、殆どの会社や大学はMATLABの契約なんてしていないと思います。MATLABの契約のない会社や大学のメールアドレスを入れないでくださいね。

f:id:IntellectualCuriosity:20190921201943p:plain

この画面が表示されると、登録したメールアドレス宛に確認用のメールが送信されます。

f:id:IntellectualCuriosity:20190921202200p:plain

送られてきたメールの「Verify your email」をクリックしたら、前の画面の「Continue」をクリックします。

f:id:IntellectualCuriosity:20190921202546p:plain

最後にThingSpeakで使うユーザーIDとパスワードを登録します。

 

Channelの登録

f:id:IntellectualCuriosity:20190921203643p:plain

アカウント登録が終わるとチャンネル作成画面になります。チャンネルはデータを登録する場所であり、参照する場所(ダッシュボード)でもあります。

f:id:IntellectualCuriosity:20190921203949p:plain

チャンネルに登録できる内容は実に多彩です。っていうかあり過ぎです。なんでこうなったのかは知りませんが、必要なのはセンサー等で収集したデータを登録するFieldの設定だけです。

 

WebHook Widgetの設定

やっとBlynkに戻って来ました。TingSpeakにデータを登録するにはWebHook Widghtをこのように設定します。(温度、湿度、電圧の3つのデータを登録する場合)

f:id:IntellectualCuriosity:20190921193345p:plain

f:id:IntellectualCuriosity:20190921204815p:plain

YourWriteAPIKeyには「API Keys」タブの「Write API Key」に表示される文字列を入力します。

f:id:IntellectualCuriosity:20190921210138p:plain

設定が完了したら「Run Test」ボタンをタップします。「Resut: OK」と表示されればOKです!

 

Arduinoスケッチ

WebHookでデータを送るコードはとてもシンプルです。

Blynk.virtualWrite(V5, t, h, v);

tに温度、hに湿度、vに電圧を入力すると、Web Hook WidgetのBODYに入力した/pin[0]/に温度、/pin[1]/に湿度、/pin[2]/に電圧が出力されて、HPPTリクエストが実行されます。

 

データの表示とパブリックチャンネル

データがThingSpeakに送信されると「Private View」タブのグラフにデータが表示されます。

「Sharering」タブでチャンネルをシェアするようにすると、チャンネルを公開することもできます。

BlynkのようにGauge Widgetも用意されていて、こんな感じの画面にすることもできます。

f:id:IntellectualCuriosity:20190921212534p:plain

 

おしまい