はじめに
M5Stick-C PlusにI2Cで接続したCO2濃度センサーの値をMQTTでパブリッシュして、ラズパイ(RaspberryPi)でサブスクライブできるようにしています。
前回、IoTシステムを構築するネットワーク環境の事例について当社の事例を紹介しました。
今回、M5StickC Plusを動かしたときの動作の様子を紹介します。
動画サンプル(M5StickCの立上げ)
以下の手順でM5の機能が立上ります。
- Wi-Fi親機への接続
- Wi-Fi親機のDHCPからIPアドレスをレンタル
- MQTTに接続
- 時刻(NPT)サーバに接続し、現在時刻をM5にコピー
- 画面表示を測定値の表示画面に切替
- センサーの立上げ(約15秒)
- 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を実現し、生産性の改善をはかりたいお客様。
このようなシステムをご提供することで、お手伝いさせていただきたいと考えております。
ホームページのお問合せより、ご連絡をお願いいたします。