Misakichi’s ログblog

好きなものを紹介したり備忘録のため

Raspberry Piが漏水を検知すると、スマホにLINE通知されるシステムを作った話

幣研は漏水に悩まされている。
実験装置を動かしている間は、24時間冷却水を流し続ける必要があるのだが、
配管のジョイント部分のゆるみなどの設備的な不良+人為的なミスによって度々漏水事故を起こしてしまう。
水が漏れると、下の階の研究室が水浸しになって、方々から、やいのやいの言われるというわけだ。
数年に1回程度の頻度だけど、起こしてしまうと最悪半年くらい実験がストップしてしまう可能性があるので、対策が必要。
それに機械は土日も動かし続けるので、休日に見回りに行かなくてはいけないという問題も・・


ということで漏水通知システムを作りました。



漏水センサーが水を検知すると、LINE・Yahooメール・docomoメール...etcありとあらゆるメッセンジャーに通知されます。
さらにそれをfor文で繰り返すので、一分間に100件超の通知が来るメンヘラ彼女的アラートシステムとなっている・・・もはやアラートシステム自体が脅威
以下作り方です

使った道具

GROVE - 水センサ

GROVE - 水センサ

GROVE - 水センサ

ジャンパーピン各種

こういうの

ブレッドボード

作り方

基本的な仕組み

↓のようになっている。
GROVE水センサに水が接触
→GROVE水センサ出力電圧が降下
→GPIOピンを通して、respberryPiが電圧降下を検知
→Line、メール等で通知(wifi経由)

配線

以下のように配線します。
f:id:Misaki_yuyyuyu:20170521222408p:plain

ブレッドボード便利すぎる

プログラム


water_alert system
関数の部分が長いけど、上から
・アナログ→デジタル変換の関数
・メールを送るための関数
・同上
・Lineを送る関数
となってる。モジュール化とかすればもっと簡潔に書けると思う

AD変換関数は金丸先生のbluebacks書籍から
Raspberry Piで学ぶ電子工作 超小型コンピュータで電子回路を制御する サポートページ|ブルーバックス|講談社BOOK倶楽部

Gmail関数は
Gmailで簡単にメール送信 | Make.
をお借りし、ちょっと改変しました。

そのあとがメインプログラム
動かすときはsudo権限で

おわり

そんなこんなで漏水検知システム完成です。
これで基本的に休日出勤しなくてもよくなったぞ~

おまけ(Grove 水センサの出力の統計)

乾燥時の出力
正規分布を期待してたんだけど、結構大荒れだ
データ読み取りの時にミスってる可能性もアリ
f:id:Misaki_yuyyuyu:20170521222756p:plain
サンプル数N=10**6(100万点)
平均出力:3.54V
標準偏差:0.126V
min:0.978V
Max:5.00V
上のプログラムではセンサ出力0.8V以下で通知が行くようにしてる