はじめに
2年くらい前から温度湿度をラズパイで取得することをやってた。
kheiakiyama.hateblo.jp
GrowthForecast で可視化していたものの、ラズパイ自体にはグローバルからアクセスできるようにはしていないため、帰省しないと見えないという不満があった。
それをいい具合にしたいと思って IoT Hub を試す決意をしていた。
Azure IoT Hub は Free プランが1日8000メッセージ受信できる ということで、毎分メッセージ送っても使えるのがよさそうだった。
やったこと
試したのはこのあたり。
- Raspberry Pi から クラウドへ (Node.js) - Raspberry Pi の Azure IoT Hub への接続 | Microsoft Docs
- Azure IoT Hub から取得したリアルタイム センサー データの視覚化 – Web Apps | Microsoft Docs
ラズパイからセンサーデータを IoT Hub に送り、Web App でリアルタイムを見れるのができた。
ふむ。 pic.twitter.com/pdUlc1EFvp
— kheiakiyama_5/3-5帰省 (@kheiakiyama) May 4, 2018
知見
ラズパイ と Python Azure IoT Hub SDK つらみ
ラズパイ(デバイス)側はいろんな言語が選べる。
はじめに Python 使ったところ Azure IoT Hub の SDK の導入で苦しんだので Node にスイッチした。
マジか。。 https://t.co/Q3dRfmiCpY
— kheiakiyama_5/3-5帰省 (@kheiakiyama) May 4, 2018
Raspberry Pi で pip install しただけで動かないなーと思ってたら自分でビルドするのが workarround というのはつらい
— kheiakiyama_5/3-5帰省 (@kheiakiyama) May 4, 2018
Web App の Node version 問題
Node のバージョン指定するようにしたら動いた。 Issue に上がってて解決してないので書いておこう。 https://t.co/ZAYO5jVGYa
— kheiakiyama_5/3-5帰省 (@kheiakiyama) May 3, 2018
Free プランだったからかもしれない。
しかし Free プランで Socket I/O 使えたり Azure AD のシングルサインオン連携したりいろいろできて Web App は素晴らしいと思う。
可視化できてない件
リアルタイム可視化はできたけどデータ蓄積するところ作ってなくて全然やりたいことできてない。
そもそもセンサー壊れてた問題
ラズパイの死活監視は個人 Slack に流してるので問題ないのだが、温度湿度センサーが壊れていたことに気づかなかった。
今思うと Mackerel に流してた(こちらも Free プランなのでログは1日まで)ので、そこからアラートしていればもっと早く気付いたのに。
帰省で気付いて次の帰省までに買って持っていく、というの時間がかかってよくない。
ステージング環境というか別環境を都内に作るか。 せっかく ansible で管理していることだし。
あとがき
あまり問題は解決してないけど限られた時間で手を動かすのはよい。
サインスマート DHT22/AM2302 デジタル温度センサーモジュール RB206 for Arduino 電子工作
- 出版社/メーカー: サインスマート(SainSmart)
- メディア: その他
- この商品を含むブログを見る