
Raspberry Piを使用した煙またはガスセンサー
Raspberry Piで何らかのガスを分析したい場合, MQセンサーで非常に簡単にすることができます, いずれにせよ、分析するガスに応じてどのセンサーを取得するかを知る必要があるだけです, この投稿では、それを接続して値を取得する方法を見ていきます. いつも通り, 最後に、取得したデータをMySQLデータベースに保存して、Grafanaから視覚化します!
私が言ったこと, まず、どのMQセンサーを使用するかを知ることです, この記事では、メタンを分析するMQ2に依拠します, LPG&スモーク, しかし、アルコホを取得するためのMQ3も持っていることを知っておく必要があります, エタノール&スモーク, MQ4を使用すると、メタンと圧縮天然ガスまたはCNGを取得できます, 天然ガスおよびLPG用のMQ5, MQ6を使用すると、LPGとブタンガスが得られます, MQ7一酸化炭素付き, MQ8水素付き, MQ9 一酸化炭素および可燃性ガス用, MA131 オゾン用, ベンゼン用MQ135, アルコールとスモーク, MQ136硫化水素, アンモニア用MQ137, MQ138はベンゼンの値を与えます, トルエン, アセトン, プロパン, アルコールおよびホルムアルデヒドガス… そして、関心のあるガスを検出するためにどの安価なセンサーを取得するかを決定するまで続きます. 私が言ったこと, この記事では、MQ-2をベースにしています.
センサーとは別に, また、アナログ-デジタルコンバーターも必要になります, 私はMCP3008とロジックレベルコンバーターを使用しています 3.3 5Vで. 画像では、RaspberryのGPIOをセンサーに接続する方法を示しています. ちなみに、センサーは必要に応じてドライバーで調整できます, しかし、すごいです, 通常、便利です, テストすることです…
そして、ソフトウェア側では, Raspbianが動いていると仮定します, 私たちはGitHubから素晴らしいtutRPiスクリプトをダウンロードし、実行してみました, とても簡単です:
[ソースコード]git clone https://github.com/tutRPi/Raspberry-Pi-Gas-Sensor-MQ
cd ラズベリー-pi-ガス-センサー-mq
Pythonの example.py[/ソースコード]
そして、それを少し修正すると… それぞれが必要に応じて、… 私の場合、cronを使用してRaspberry Piを起動するときに実行するこのスクリプトをすでにご存知でしょう, 毎 60 センサーから取得した値をデータベースのテーブルに格納します. 次に、Grafana でそれを視覚化する方法を見てみましょう… スクリプトは次のようになります:
[ソースコード]
mq importaから *
インポートシステム, 時間
mq = MQ();
トゥルー:
perc = mq です。MQポイント()
PERCの印刷[「GAS_LPG」]
PERCの印刷[「CO」]
PERCの印刷[「スモーク」]
MySQLdbのインポート
db = MySQLdb.connect(「DIRECCION_IP_SERVIDOR_MYSQL」,「ユーザー」,「パスワード」,「BASE_DE_DATOS」)
カーソル = db.cursor()
cursor.execute("""INSERT INTO ガス (LPガス, 共, 煙) 価値観 (%s, %s, %s) """,( PERCの[「GAS_LPG」], PERCの[「CO」], PERCの[「スモーク」]))
db.コミット()
時間.スリープ(60)
[/ソースコード]
そうは言っても、このスクリプトはガスと呼ばれるテーブルに格納されます。 4 列, 3 そのうちガスです (LPガス, COと煙) そしてもう一つは日付です, 誰かがそれを必要とし、前のスクリプトと同じテーブルがある場合に備えて、コードを残しておきます:
[ソースコード]テーブル 'ガス' の作成 (
'LPG' FLOAT NULL デフォルト NULL,
'CO' FLOAT NULL デフォルト NULL,
'smoke' FLOAT NULL デフォルト NULL,
'fecha' タイムスタンプが NULL でない 更新時のデフォルトのCURRENT_TIMESTAMP CURRENT_TIMESTAMP
)
照合='latin1_swedish_ci’
エンジン=イノDB
ROW_FORMAT=コンパクト
;[/ソースコード]
そしてすでに私たちのGrafanaに, たとえば、ダッシュボードにグラフダッシュボードを追加し、MySQL DBにクエリを実行して、分析しているガスのメトリックを引き出すことができます. とてもかっこいいですね, いいえ?? 私が行っているクエリが必要な場合に備えて、お任せします:
[ソースコード]値として煙を選択, 「スモーク" メトリックとして, UNIX_TIMESTAMP(日付) ガスからtime_secとして どこで $__timeFilter(日付) time_sec ASCで注文
値としてLPGを選択, 「LPGの" メトリックとして, UNIX_TIMESTAMP(日付) ガスからtime_secとして どこで $__timeFilter(日付) time_sec ASCで注文
CO を値として選択, 「CO" メトリックとして, UNIX_TIMESTAMP(日付) ガスからtime_secとして どこで $__timeFilter(日付) time_sec ASCで注文[/ソースコード]
用意! 面白かっただけたでしょうか, あなたはすでにブログで他のタイプのセンサーを見てきました Raspberry Piに接続し、私たちの環境の状態を知るための! お楽しみください!!!