MQTTで通信; ラズパイ(RaspberryPi)とM5Stick

はじめに

M5Stick-C PlusにI2Cで接続したCO2濃度センサーの値をMQTTでパブリッシュして、ラズパイ(RaspberryPi)でサブスクライブできるようにしています。

前回、IoTシステムを構築するネットワーク環境の事例について当社の事例を紹介しました。

今回、M5StickC Plusを動かしたときの動作の様子を紹介します。

動画サンプル(M5StickCの立上げ)

以下の手順でM5の機能が立上ります。

  1. Wi-Fi親機への接続
  2. Wi-Fi親機のDHCPからIPアドレスをレンタル
  3. MQTTに接続
  4. 時刻(NPT)サーバに接続し、現在時刻をM5にコピー
  5. 画面表示を測定値の表示画面に切替
  6. センサーの立上げ(約15秒)
  7. CO2濃度の測定開始

この動画、撮影後、少し改造を加えましたが、基本的な立上りの流れは変わりません。

インターネット上に公開されているC言語のコードを組合せています。

一部の内容は、arduinoのサイトで公開されている言語仕様を参照しました。

考え過ぎていてコードが複雑になっていたり、ASCIIコードの特殊文字表示(バックスラッシュ)について参考にさせてもらいました。

動画サンプル(測定値をMQTTでパブリッシュ)

次の動画サンプルは、測定値をM5StickCからMQTTでパブリッシュしている様子です。

基本仕様は、自動で約1分毎にMQTTでラズパイ(RaspberryPi)にパブリッシュ(データ発信)するようにコードを組んでいます。

その一方で、Bボタンを1秒以上長押しすると、強制的にMQTTに接続しデータをパブリッシュするようにしています。これは接続確認用の機能です。

発信するデータは『M5StickCの識別番号、トピック、送信日時、データ値』です。

ラズパイ(RaspberryPi)でサブスクライブしている画面に、M5StickCからパブリッシュされたデータが表示されています。

事例動画のまとめ

今回、事務所内でのIoTシステムでしたので、CO2濃度でした。湿度や温度など、センサーを変えることで、測定対象も代えられますし、収集するデータの発信間隔も変えられます。

取付けたい場所によっては、ブラケットの設計も必要になりますが、もともと機械設計が本業ですので、対応いたします。

今後の開発予定

現在、ラズパイ(RaspberryPi)でサブスクライブしたデータを、Pythonでテキストファイルに保存し、Node-Redでデータを可視化することを予定しております。

社内のネットワークに接続せず、小さなWi-FiによるネットワークでIoTを実現し、生産性の改善をはかりたいお客様。

このようなシステムをご提供することで、お手伝いさせていただきたいと考えております。

ホームページのお問合せより、ご連絡をお願いいたします。

PAGE TOP