LoginSignup
2

More than 3 years have passed since last update.

Enviro pHATで室温を計測してSlackに投げる

Posted at

弊社オフィスでは最近「暑い」とか「寒い」などの声が聞こえるようになったので、これを設置して温度を定期的に計測してみることにしました。

使うもの

ささっと始めたかったので用意したものはこれだけです。秋月電子通商でもスイッチサイエンスでも買えます。

  • Enviro pHAT
  • Raspberry Pi

Raspberry Pi Zero WH

これがないと始まりません。Raspberry Pi Zero WHは安いですが、HDMI変換アダプタやUSB-OTGケーブルがないとまともに使えません。初めて使う方はこれではなく普通のRaspberry Pi 3Bを使うことをお勧めします。

Enviro pHAT

Enviro pHATは簡単に言うといっぱいセンサーが乗ったpHATです。

  • 気温センサー
  • 気圧センサー
  • 加速度センサー
  • 照度センサー

これら4つのセンサーが搭載されており、他にもA/DコンバータやLEDが搭載されています。このpHATははんだ付けが必要なのでご注意を。

Enviro pHATの準備

pimoroni/enviro-phat

Pimoroniの製品には大抵pythonライブラリがあります。これを使うとラクにセンサーを扱えるので、このリポジトリをクローンします。
プロジェクト内にあるexampleディレクトリには簡単に動作を見られるスクリプトが用意されています。実行してみます。

気温がドワーッと流れてきたら正常に動いています。もし動かない場合はPythonのセットアップが正しく行われているかなどをチェックしてみてください。

温度センサー自体の温度やRaspberry Pi本体の温度を拾っているのか、8度ほど高く取得されてしまいました。(下のコードにはありませんが)今回は妥協案として空気清浄機に表示されていた温度表示を基準値として誤差の補正をしました。

温度をSlackに投げるようにする

適当にPythonで書きます。

slack_post.py
#!/usr/bin/env python

import time
import json
import requests

from envirophat import weather, leds
SLACK_WEBHOOK = "https://hooks.slack.com/services/**************"

celsius = str(round(weather.temperature(),1))

payload_dic = {
    "text": "Temp:" + celsius ,
    "username": "(なんか名前決める)",
    "channel": "#(なんかチャンネル名決める)",
}
req = requests.post(SLACK_WEBHOOK, data=json.dumps(payload_dic))

SLACK_WEBHOOK には各ワークスペースから設定できるSlackのIncoming WebhooksのURLを貼り付けます。

動かす

temp-test.png

Slackのチャンネルに投稿されたらOKです。温度表示をして結局は人間がエアコンの操作パネルまで行かないといけないのが残念ですが、早めに温度変化に気づけるようになりました。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2