IoTIoT関連の知的好奇心を探求するブログです2017-09-08太陽フレアの影響を確認するため、IoTダッシュボードを活用してみたESP8266太陽フレアの影響が実際にどのくらいあるのか、部屋に設置しているガイガーカウンターで計測することができるのか確認するため、IoTプラットフォームサービスのthinger.ioを使ってガイガーカウンターとベランダの温湿度計のデータをビジュアルに表示させてシェアできるようにしてみました。シェア画面のキャプチャこのURLからダッシュボードをシェアした画面を表示することができます。結果ですが...下の図が9月8日の12:00から翌日の12:00までのガイガーカウンターの計測図です。普段と全然変わっていませんでした!thinger.io話を膨らませることができない結果になってしまったので、使ったサービスやプログラムについてちょっと書いておきたいと思います。お初のクラウドサービスthinger.ioについて。すごーく簡単に言うと、これまで何回か使ったBlynkのWeb版です。今回はガイガーカウンターのグラフをシェアしたかったため、溜め込んだデータを表示できてそのままデータが追加されるグラフが用意されていたthihger.ioを選びました。ITサービスでは珍しくスペインの会社で価格がユーロ!だったりしますが、しっかり無料枠も用意されています。アカウントを作ってログインすると、こんな画面が表示されます。画面はシェア用のダッシュボードを作った状態です。接続しているデバイスが世界地図に表示されるところがワールドワイド!っと一瞬感心しますが、すぐにやり過ぎなことに気付いてしまいます...。メニューの一番下に”寄付”ボタンがあるのも「お金を払って使っている人がいないんだろうか?」という不安感を抱かせる仕様になっています...。デバイスの登録ダッシュボードで最初に行うのがデバイスの登録です。Device」を押し、次のような感じで登録します。Credential」ボタンを押すとランダムな値が記入されます。シェアしているダッシュボードで使用しているデバイスは、ガイガーカウンターとベランダの温湿度計の2つです。温湿度計は1時間に1度データを送信するとき以外は深い眠りについているため、大抵は”Disconnected"と表示されます。水をバケツに溜めるように、溜める必要のあるデータは専用のバケツを用意します。Bucket」を押し、次のような感じで登録します。ここで、このサービスの最大の問題点を意識することになります。BlynkやMilkcocoaなどぼくが試した様々なサービスではデバイスからのデータの送信を明示的に指定できたのに対し、thinger.ioではデバイス側でデータの送信タイミングを明示できないんです。言い換えると、thinger.ioではデータを送信するコードを書きません。Modeに依存するようになっていて、無料プランでは1分未満を指定できないんです。Modeの時間を待ってから最初のデータを送信するんです。無料プランではデバイスが動作したと認識されてから1分後にしかデータを送ることができないんです!なんじゃこりゃ!まぁ、とにかく、シェアしているダッシュボードで使用しているバケツは下図の4つです。Dashboard」を押し、次のような感じで登録します。Dashboardを登録したらその中にWidgetを配置します。Chartはこんな感じで登録しました。URLでダッシュボードを不特定多数の人とシェアすることができます。Tokensメニューをクリックするとシェアしたダッシュボードが登録されているのでクリックします。ダッシュボードに使用したデバイスは自動で登録されますが、バケツは手動で登録しないとシェアしたダッシュボードにデータを表示できません。ここでは無制限にバケツへの許可を与えています。Libraryを追加して、Blynkとthingerの両方にデータを送信するようにしました。ライブラリマネージャで「thinger」と入力するとライブラリを追加できます。thingerの基本コードは以下で、Blynkコードの後に付け加えています。thing.handle();}で、肝心のデータの送信ですが、thingerの場合はsetup()に送りたい値を格納しているグローバル変数とデバイスのリソース名の関連付けだけを記述します。outputValue(send_hour_count);min_countとhour_countがGeigerデバイスのリソースで、send_min_countとsend_hour_countがグローバル変数です。データの送信はloop()のthing.handle()が勝手に行ってしまうので、自分でデータ送信のタイミングを制御することができないんです。思想の違いなんでしょうね。Sleepを駆使しMilkcocoaを経由して外の温度と湿度をWebページに表示する」のプログラムにThinger.ioライブラリを追加して、Milkcocoaとthingerの両方にデータを送信するようにしました。ここで、データ送信のタイミングを制御できないことが問題になります。Sleepに入るようにしているので、loop()は1度しか実行されません。Sleepに入る前に1分待って温度と湿度のデータが送られるように2つthing.handle()を実行するようにしました。Sleepを使うようなプログラムとは合わないんだと思います。miniの粗悪品に注意!ESP8266月別アーカイブはてなブログをはじめよう!IntellectualCuriosityさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。