Raspberry Piに温湿度センサーを繋いでみた

Raspberry PiにはGPIOがついていて、そこにいろいろなデバイスを接続することができます。
今回、GPIOに繋げられる温湿度センサーを入手したので使ってみました。

目次

温湿度センサー

手に入れた温湿度センサーはこちらになります。

DHT22

DSD TECHの「DHT22」という温湿度センサーモジュールになります。
AM2302というチップが採用されているようです。
電源線2本とデータ線1本、合計3本の線で繋げられます。

データの取得と表示の仕組みは必要

言うまでもなく、センサーをRaspberry Piに繋ぐだけで温度や湿度が分かるわけではありません。
センサーからデータを取得して、そのデータを保存したり表示したりする仕組みは構築する必要があります。

データ取得のプログラムはGo言語製

Rasperry PiのGPIOを弄る場合、Pythonを使うことが多いようですが私はGo言語を使ってプログラムを作りました。
Go言語で使えるDHT22用ライブラリを公開されている方がいたのでそれをありがたく使わせていただきました。

リアルタイムで取得するような性質のデータでもないので、今回は5分ごとに取得するようにしました。
また、センサーの仕様上、データの取得に失敗することがあります。
失敗した場合は何度かリトライするような仕組みはライブラリの方に実装されているのですが、それでも結局取得できなくてタイムアウトすることがありました。
(失敗する件はきちんと明示されています)

取得したデータはDBに保存

取得したデータはDBに保存するようにしてみました。
データの変動が分かるのでいろいろと活用できると思います。

メインで使っているVPS上に構築したDBにデータを保存するためのAPIを作って、センサーを繋いだRaspberry PiはそのAPIを叩いて温度と湿度を保存する感じにしてみました。
ちなみに、このAPIはPHPで作りました。

保存したデータはブラウザで表示

ブラウザであるURLにアクセスすると、直近24時間程度のデータを表示する仕組みを作りました。
こんな感じで表示されます。

データ表示

取得しているデータは温度と湿度(相対湿度)だけですが、その2つがあれば計算でいろいろと求められるのでついでに表示してみました。

LINE Notifyで通知する仕組みも実装済み

室温がある値を超えた場合、湿度がある値を下回った場合、LINE Notifyを使って通知する仕組みも実装してみました。

LINE Notify

(上記通知はテストなので閾値を高めにしています)

今回は通知を送るだけですが、対応機器を揃えれば自動的にエアコンの電源を入れたりすることも可能になります。


まとめ

スマートホームと呼べるほどのものではないですが、結構面白い仕組みが構築できたのではないかと思っています。
気圧センサーが内蔵されたセンサーモジュールもありますので、それを使えば気圧変動による頭痛発生の予兆を捉えるとか、そういう使い方もできそうですね。

Raspberry Piをお持ちの方、GPIOを活用してみてはいかがでしょうか。

この記事が気に入ったら
フォローしてね!

  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次