M5Stack:いさましいちびの気温ロガー君クラウドへ行く(製作記その⑤)
いよいよ佳境となってまいりました気温ロガー制作日記第5日目でございます。
前回はこちら↑
昨日見つけたバグを修正して、
・すべて小数点以下まで計算
・画面表示
・ログ記録も小数点以下まで
・前日の履歴もOK
と、だいぶ完成度があがってきました。
で、ここで完成としても良いのですが、最期の挑戦! 今日はクラウド編いってみましょー♪
センサー情報をクラウドにアップ
せっかくネットにつながってんだからこのぐらいやりましょうね!
ということで、白羽の矢をたてたサービスはSlack.comさんです。
Twitterでもいいんだけれどそれはこの間やったしね~、LINEは宗教上の理由でつかいたくないし。
例によってざっと検索して出てきた
このあたりを参考にさせていただきましょう。
まず、テスト用にSlackのワークスペースを作ります。
Slackでワークスペースを作る
↑に書いてある通りに進めて、テストSlackを作ります。gmailアドレスがあれば簡単につくれるのでよいですね♪
つづいて、
ルート証明書取得
↑を参考にしてSlackのページからルート証明書を拾ってきます。
これこれ☆
で、ファイルにBase64形式で保存して内容をみてみると・・・
あんれ?
持ってきたデータ、よーくみると
↑この参考サイトの slack_root_ca と全く同じでした。
はて? どういうこと?
って、よく考えたら(よく考えるまでもなく)同じなのはあたりまえで、これは「slack.comの公開されているルート証明書」なんですね。。
むう、素直に言われた通りわざわざ取得して損(?)した感><
てっきり個別の環境で取得しないといけないと思い込んでいました。
まあ、また回り道ですが経験値になったのでよし。
それで、この後に必要なのは
Incoming WebHook
で紹介されている Incoming WebHookというやつ。
それは、
Incoming WebHookとは
外部のアプリケーションから、Slackに投稿するための仕組みです。事前に設定して払い出されたURLに対して、JSON形式でメッセージをPOSTするとSlackに投稿されます。
というものだそうです。
さっそくこちらも
↑のページに書いてあるとおりにすすめてみます。
作成したSkackのアプリのところから Inco ちゃんを検索して……
あったあった、これなのだわ。
Slackに追加をして
投稿するチャンネルを指定します。いまはテストなので #general でいいや。
「Incoming WebHook インテグレーションの追加」ボタンを押すと
こんな Webhook URLがでてきます。
Webhook URL とあるところの
https://hooks.slack.com/services/XXXXXX/XXXXXX/XXXXXXXXXXX
こういうやつをコピペして、先ほどのソースにつっこむかんじですね。
サンプルソースの修正
最初、参考サイト
の
↑の XXXX の意味がわからず、作ったSlackのURLを入れてみたりいろいろしてたんですがダメだったです(後から見ればあたりまえにもちろんダメ><)
ここにコレいれるんだったのですねー。
さてさて、ソースを書き換え、WiFi関係も正しい値にして、コンパイル&転送をしてみると……
すると……
わーお♪
さっくりメッセージをだせましたよ!!
すごい!(わかってれば)かんたんじゃん!!w
さらに!
(∩´∀`)∩☆
日本語もいけます! これはよいですね!
気温ロガーへ組み込み
では、2つのプログラムを合体させて、実行してみます。
わーお♪ ばっちりよさげじゃん☆♪
※でもこれよく見たらこれ英語じゃないじゃん……。Arduino用センサーのサンプルコードそのままだからこれイタリア語かな? スペイン語? まあ、わかるからいいけどw 異国情緒がおもしろいのでこのままにしておきます。(後で気が向いたら治すかもw)
SDカードからWebhookURLを読むように修正
ただ、このままソースを公開してしまうと、WebhookURLがソースの中に入っているので、だれが実行しても私のテスト用Slackにポストすることになってしまいます。そこは書き換えられるようにしないといけません。
ソースの中に埋め込む形だと、専用になっちゃって汎用性がなくなっちゃいますねー。
せっかくなので、Wifi設定と同じくSDカードから読むようにしましょう。
SDカード内に slackhook.txt というファイル名で
〈 slackhook.txt 〉
https://hooks.slack.com/services/XXXXXX/XXXXXX/XXXXXXXXXXX
と言うファイルを保存しておきます(行末で改行しないように注意)(それと、もちろんXXXXは直してね)
ここからWebhookURLを読み込むようにしたので、Incoming WebHook を設定すれば、どのSlackのワークスペースでも、どのチャンネルにでもこの気温ロガーのおしゃべりを送り込むことができます♪
むふふふ、でーきたー♪
ログファイルをSDカードに保存しているけれど、わざわざカードに保存しなくても、ここを読んでいれば簡単にグラフ化もできちゃうますね♪
これってすごくねい??,,Ծ‸Ծ,,
おわりに:何が凄いの?(何が楽しいの? おいしいの?)
つまり、この3000円そこそこのM5Stackとセンサーがあれば、ネットワークがつながる場所であればどこの温度・湿度・気圧も自由に取れて、どこからでも見ることができるようになります。
↑面白がって3Dプリンタでフレームも作っちゃいました(∩´∀`)∩☆
これを沢山作って、野山にばらまいたら(電源の問題はありますが)ENV UNITの名の通りその環境をセンシングしてマッピングすることもできるだろうし、お家の中で居間や寝室、玄関、ガレージなど各部屋の温度をしらべることもできます。Slackにポストされるので家の中のデータを家の外からでも見れます。
インターネットさえ届いていれば火星でもつかえちゃうかも!?(無理)
まあお家の中だけで使うにしても、ペットや赤ちゃんのいる部屋の温度とか、外からチェックできると良いですよね。
以前作った赤外線リモコン機能とかと連携してエアコンを自動で制御することもできるだろうし、熱帯魚の水槽のヒーターのON/OFFだってもちろんできちゃう。
温度センサーではなくて赤外線とかの人感センサーにしたら、トイレでう〇ちしてる人が居るかどうかのチェックもできちゃう(ってSlackにいちいちそれ書くのもどうかとおもうけれどw)
Slackに書き込まれた内容によって自動的に他の機能を呼び出したければ IFTTT等を使うこともできます(この方法はまたいつか書くかも?)
応用範囲はどこまでもひろがりそう♪
これぞまさにIoT(Internet of Things)ってやつですね~。未来きてるだわー♪
―――
今日までの最新のソースはこちら♪
―――
さてさて、そんなこんなでこのチビのM5Stackちゃんは、このぐらいすごいことを入手後一週間ぐらいでつくれちゃうわけですよ。ほんと便利です♪
失敗や回り道も含めて、自分用備忘録を兼ねて日記っぽく書いてみましたが、こんなのでなにかお役にたてましたでしょうか?
もしご要望があれば、今後また情報を整理して一本のコンテンツにするかもしれません(しないかもしれませんw)
ソースも今はやっつけで作ったものなのでバグなどいろいろあるかもです。あらためて書いておきますがご利用は自己責任でおねがいします。
参考にしたサンプルコードなどはそれぞれのサイトの方に著作権があります。その点もお忘れなきよう♪
それでは、また~♪ ,,Ծ‸Ծ,,☆