Micro:bit + BLEでデータを集める

記事
IT・テクノロジー
作業場に点在する圧力センサのデータをRaspberry Pi に集めてデータベースに記録することにしました。

圧力センサ毎にIPアドレスを振るのは勿体ないので、Micro:bitを使ってみました。幸い、圧力表示(NO/GO)が主な目的で、データベースへの記録の方はたまに欠落しても問題ないので、初めてのMicro:bitも思い切って使えます。

構造

タイトル画像のように、4個所に配置したMicro:bitに合計で6個の圧力センサを外付け(ADC)して、1台のRaspberry Pi から順次ポーリングしてデータを集めます。

Raspberry Pi は、集めたデータを所定のタイミングでLAN内のデータベースに記録します。

機能

圧力センサはコンプレッサーエアーまたは基準ガスの圧力を測定していて、各々のバルブ開閉を検出する他、所定の圧力範囲内に入っているかを監視します。

4個のMicro:bitにある5x5=25個のLEDには以下の表示を行います。

1. 圧力のレベルを5段階に表示(高過ぎ、OK3段階、低過ぎ)
2. BLEのコネクション状態
3. BLEによるポーリングの都度点滅するインジケータ

青色LEDと緑/赤の2色LEDを外付けして、以下を表示します。

1. 圧力の状態表示(橙:高過ぎ 緑:OK 赤:低過ぎ)
2. 青色LEDは動作中点滅

動作確認

Micro:bit は500msec毎にセンサデータをサンプリングして表示に反映させます。

Raspberry Pi は約1.2秒間隔で6個のセンサデータを集めます。
(sleepを入れているので、2倍近い実力があると思います。)
バルブ開閉を検出すると直ぐにデータベースを更新し、変化が無ければ約6分毎にデータベースを更新します。

メンテ時などにBLEが途切れると、再接続します。
1台なら数秒で再接続してくれますが、複数台だと大分時間が必要です。
メンテ時にMicoro:bitの電源を切る場合は、1台づつ作業した方が良さそうです。

感想

存在を知りながらもMicro:bitを試すのは初めてでした。
使ってみるとMakeCodeが面白く、PICなどに比べるとSFRやらconfiguration bits やらに悩まされることも無く、いきなり動作を記述出来ます。
数10usecオーダーのタイミング制御には不向きなど、デメリットもありますが、手軽さの点で優位だと思います。

小中学生やマイコン初心者は勿論ですが、今回のような用途であれば仕事にも使えそうです。BLEを手軽に使えるのが有難いと思います。
今後も使える用途では積極的に業務利用してみたいと思います。

まだまだ初心者ですが、Micro:bitに関するご要望もお受けします。
遠慮なくメッセージでお問い合わせください。


今後とも宜しくお願いします。



サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す