![見出し画像](https://assets.st-note.com/production/uploads/images/79944550/rectangle_large_type_2_c852ad88c0947b3f343df0e7e1c87f6c.jpeg?width=1200)
Micro:bit + BLEでデータを集める
作業場に点在する圧力センサのデータを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には以下の表示を行います。
圧力のレベルを5段階に表示(高過ぎ、OK3段階、低過ぎ)
BLEのコネクション状態
BLEによるポーリングの都度点滅するインジケータ
青色LEDと緑/赤の2色LEDを外付けして、以下を表示します。
圧力の状態表示(橙:高過ぎ 緑:OK 赤:低過ぎ)
青色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の背面にある電源とUSB通信のLED(赤と橙色)をOFFにする方法をご存じの方がいらしたら教えていただけると助かります。
電池駆動の際には止めたいと考えています。
いいなと思ったら応援しよう!
![uPyC](https://assets.st-note.com/production/uploads/images/17112724/profile_3eef7ffa8c427355bc9f8d768b3f26e4.jpg?width=600&crop=1:1,smart)