~PL-EMS(Plain-Labo Environmental Monitoring System)Version 1.0~
はじめに
以前の記事では、Raspberry PiとVS Codeを利用して、Arduino Nanoを2台同時に監視するところまで紹介しました。
その後、試行錯誤を重ねながらシステムを改良し、ついに**24時間連続で環境データを収集・記録できる「PL-EMS Version 1.0」**が完成しました。
本記事では、完成したシステムの構成や機能、開発の過程で苦労した点、そして今後の展望について紹介します。
PL-EMSとは?
PL-EMSとは
Plain-Labo Environmental Monitoring System
の略称です。
温度・湿度・照度などの環境データを24時間連続で収集し、リアルタイム表示と長期保存を目的としたオリジナル監視システムです。
単なる温度計ではなく、
「記録」
「分析」
「異常の早期発見」
を目的として設計しています。
システム構成
今回完成したシステム構成です。
Arduino Nano①
(温度センサー8ch)
│
Arduino Nano②
(温湿度・照度)
│
USB
│
Raspberry Pi 3+
│
Python(PL-EMS)
│
Flask Web Server
│
NAS(OpenMediaVault)
ブラウザからリアルタイムに状態を確認でき、CSVファイルはNASへ自動保存されます。
Version1.0で実現した機能
今回完成した主な機能です。
・Arduino Nano 2台同時通信
・温度8点監視
・温湿度監視
・照度監視
・リアルタイムWeb画面
・リアルタイムグラフ表示
・CSV自動保存
・NASへの自動保存
・Raspberry Pi起動時の自動起動(systemd)
・NAS自動マウント
ここまで実現できたことで、
Raspberry Piの電源を入れるだけで24時間連続監視が可能になりました。
一番苦労したところ
今回、一番苦労したのは
「NASへの自動保存」
でした。
Windowsからは正常にアクセスできるにもかかわらず、
Raspberry Piだけが
Permission denied
を繰り返しました。
原因を一つずつ切り分けながら、
・SMB設定
・共有フォルダ権限
・Linux権限
・CIFS
・fstab
・systemd
などを確認し、
最終的にはLinuxの設定ファイル(/etc/fstab)の書式が原因であることを突き止めました。
この経験はLinuxの理解を深める大変良い勉強になりました。
データはいつ保存される?
PL-EMSは、
ブラウザを開いた時に保存するシステムではありません。
Raspberry Piの起動と同時にシステムが起動し、
Arduinoから受信したデータを24時間継続してCSVへ保存します。
ブラウザは、そのデータをリアルタイムで確認するための表示画面です。
つまり、
画面を開いていなくても、
データはNASへ記録され続けています。
systemdによる完全自動化
最終的にsystemdへ登録することで、
Raspberry Piの電源を入れるだけで
PL-EMSが自動起動するようになりました。
これにより、
・VS Codeを起動する必要がない
・SSH接続も不要
・ブラウザで見るだけ
という実用的なシステムになりました。
これからの目標
Version1.0は完成しましたが、
まだやりたいことがあります。
・騒音監視
・気象データとの連携
・異常アラーム
・ラボコメント機能
・長期データ解析
さらに、
以前から構想している
PL-HM(Plain-Labo Health Monitor)
と連携させ、
PC内部温度やSSD情報、イベントビューアなども統合した総合監視システムへ発展させる予定です。
おわりに
今回のシステムは、市販ソフトを組み合わせたものではありません。
Arduino、Raspberry Pi、Python、Flask、Linux、NASを一つずつ理解しながら組み上げた、自分だけのオリジナル環境監視システムです。
もちろん途中では何度もエラーに悩まされました。
しかし、一つ一つ原因を切り分け、解決しながら完成させた経験は、システムそのもの以上に大きな財産になりました。
これからもPL-EMSは改良を続け、「記録する」だけではなく、「考え、判断を支援する」環境監視システムへ育てていきたいと思います。
PL-EMSはこれで完成ではありません。
品質管理と同じように、システムも継続的な改善が重要です。
今後は、騒音監視、気象データとの連携、異常アラーム、さらにはPC診断システム「PL-HM」と連携し、「記録するシステム」から「判断を支援するシステム」へ進化させていきたいと考えています。
これからも開発の様子を、このブログで紹介していきます。
