Home Made Garbage

ラズパイで気圧測定

ホーム
電子工作
Raspberry Pi
IOT
WEB

最近、台風の通過の様子などを気圧のプロットで報告する人々が多くいて興味深く見ていたのですが、この度 自分でもやってみようと気圧センサを購入いたしました。

安い!早速 我が家のコンシェルジュのおしゃべりティラノくん(Raspberry Pi Zero)に組み込んでみました。定期的に気圧の報告をするようにしました。

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製

構成

ほぼ これまでのティラノくんと同じ構成で気圧センサを追加しただけです。

変更点

  • 気圧センサ追加に伴いサーボの制御線をGPIO3からGPIO19にしました。
  • 気圧センサBMP280を追加。I2Cで制御します。
     
     
     
     VCC – 3.3V
     GND – GND
     SCL – GPIO3
     SDA – GPIO2
     CSB – 接続なし
     SDO – GND

参考

Raspberry Pi Zero設定

ティラノくんはRaspberry Pi ZeroにWiFiドングルを使用してネットワークに接続しています。

I2C有効化

ここでは気圧センサBMP280とラズパイはI2Cで通信します。
Raspberry Piの設定でI2Cを有効にします。

pythonコード

以下のBMP280用のpythonコードを参考にプログラミングしました。
 https://github.com/SWITCHSCIENCE/BME280/blob/master/Python27/bme280_sample.py

smbus2ライブラリも必要となりますのでインストールします。

  • bme280_sample.pyのインストール
    wget https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
  • smbus2ライブラリのインストール
    sudo pip install smbus2==0.1.3 

 

bme280_sample.pyの修正

ティラノくんに発話させるためにセンサから気圧を受け取って発話内容を生成します。

bme280_sample.py内のcompensate_P(adc_P)の最後の測定値出力を以下のように修正しました。

sys.stdout.write("今の気圧は、%dヘクトパスカルだよ" % (pressure/100)) 

参考

Node-RED

ティラノくんはNode-REDでAquesTalk を用いて定期的に発話させています。

「歯磨きしなさい、歯磨きしなさい」
「宿題やった?」
「もう夜だから、布団に入りなさい。早く、寝なさい」

などなど、毎日元気におしゃべりして もうすっかり家族の一員です。

ここではこれらの定期発話の後に気圧の報告も追加しました。

赤枠で囲んだ部分が今回追加した箇所です。

定期発話のあとに先ほど修正したbme280_sample.pyで気圧の発話内容を生成してAquesTalk で発話させています。

動作

これでティラノくんが気圧の報告も行ってくれるようになりました。気温、天気に加えて気圧と家族の体調との相関などつかめれば面白いかなぁと思っています。

Related Posts

コメントはこちらから

メールアドレスが公開されることはありません。コメントのみでもOKです。

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