少し前にこんなニュースを見て、久しぶりにデータの可視化サービスを調べてみたんです。
そしたら、AI関連で聞き覚えのあるMATLABの会社がThingSpeakというサービスを提供していることを今頃知りました。
で、今回のタイトルにも繋がるのですが、ぼくが気に入っているBlynkに『WebHook』というRESTで叩く機能があって、今まで使ったことがなかったので使ってみようと思ったんです。
当然MachinistとThingSpeakの両方でWebHookを使おうと思ったのですが、MachinistではWebHookが使えなかったんです。
MachinistでBlynkのWebHookが使えなかった理由
Machinistは『HTTPでJSONデータを投げつけるだけ』ではあるのですが...条件があります。
はい、まぁ他のサービスでも結構あるのですが、ヘッダーで認証用の情報を送る必要があるんです。
しかし、BlynkのWebHookにはヘッダーを送る機能が無いんです...。
でも、ThingSpeakはボディで認証情報を送れるように出来ているんです。
ヒャッホー!
ThingSpeakアカウントを作ろう!
まずはthingspeak.comにアクセスします。
そして、右上の「Sign Up」をクリックします。
メールアドレスと名前を入力したら、「Continue」をクリックします。
ThingSpeakはMATLABと連携するようになっているので、MATLABに使うアカウント(メールアドレス)の確認画面が表示されます。でも、殆どの会社や大学はMATLABの契約なんてしていないと思います。MATLABの契約のない会社や大学のメールアドレスを入れないでくださいね。
この画面が表示されると、登録したメールアドレス宛に確認用のメールが送信されます。
送られてきたメールの「Verify your email」をクリックしたら、前の画面の「Continue」をクリックします。
最後にThingSpeakで使うユーザーIDとパスワードを登録します。
Channelの登録
アカウント登録が終わるとチャンネル作成画面になります。チャンネルはデータを登録する場所であり、参照する場所(ダッシュボード)でもあります。
チャンネルに登録できる内容は実に多彩です。っていうかあり過ぎです。なんでこうなったのかは知りませんが、必要なのはセンサー等で収集したデータを登録するFieldの設定だけです。
WebHook Widgetの設定
やっとBlynkに戻って来ました。TingSpeakにデータを登録するにはWebHook Widghtをこのように設定します。(温度、湿度、電圧の3つのデータを登録する場合)
- URL:
https://api.thingspeak.com/update.json - BODY:
{"api_key":"YourWriteAPIKey","field1":"/pin[0]/","field2":"/pin[1]/","field3":"/pin[2]/"}
YourWriteAPIKeyには「API Keys」タブの「Write API Key」に表示される文字列を入力します。
設定が完了したら「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も用意されていて、こんな感じの画面にすることもできます。
おしまい