広告

記事

2016年7月20日

【自由研究下調べ】温度・湿度・気圧センサーモジュールとRaspberry Piを使ったウェザーステーション

BME280環境センサーモジュール

 スイッチサイエンスで販売しているBME280センサーを搭載している、温度・湿度・気圧が測定できるセンサモジュールを使ってウェザーステーションがお手軽に出来ないか下調べ。
 

夏休みの自由研究の候補(参考資料)

 夏休みの前半でプログラムを作成して、気象データを集め続けて、データ分析をおこなえば何かが見えてくるかもしれない。

まずはどんなイメージの観測装置を作ればよいか、グーグル先生を使って検索しまくり・・・英文のブログで「Raspberry Pi One Room Weather Station」という記事を見つけました。

Raspberry Pi One Room Weather Station

参考ブログ: Raspberry Pi One Room Weather Station

 ブログを読むと、自分の部屋の中の気温・気圧を計測して、LCDに表示させて、ツィートさせて、グラフを作成するというプロジェクト。

ポイントは次の3点:

  1. LCD
  2. Twitter
  3. Graph

テクノロジ・キーワードは:

  • python
  • SQL
  • Unix デーモンプロセス
  • Twitter
  • Unix syslog
  • matplotlib graphing
  • Character LCD
  • Raspberry Pi GPIO & I2C
  • BMP085センサーモジュール

これらを使って実装した気象観測装置を使って収集したデータをつかってグラフ作成。

ま・さ・に
夏休みの自由研究なことを行ってていいじゃないですかぁ!

コピペは出来ません!

One Room Weather Station
出典:http://blog.jacobean.net/?p=678#more-678

ワイルドな配線な様子がプロトタイプな空気感を漂わせていますね。

 このブログの記事は2012年の年末に作成された記事で、

しかも、BMP085センサーは販売が終了してしまって購入が難しい。

ということは、代替品のBMP180等を使うことになりますので、自分で検証とテストを行う必要があるんです。

先生、安心して下さいコピペできませんので!

BME280センサーモジュールを使う

 私は、スイッチさんエンスで販売しているBME280センサーモジュールを少し前に購入しています。

BME280センサーモジュールを使って行えないかを調べてみると。

BME280

まずはライブラリ

まずぶつかる問題があります。

「One Room Weather Station」は、Adafruit.com社のBMP085センサーモジュールを利用しています。 

AdafruitはBME085のPythonライブラリを提供していますからそれを利用しているんです!

Pythonライブラリは、Githubからクローン可能です。

$ git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git
$ cd Adafruit-Raspberry-Pi-Python-Code
$ cd Adafruit_BMP085 

「One Room Weather Station」は、このライブラリを使ってプログラムを作成されています。

ところが、BME280にはpythonライブラリが無いんです。

スイッチサイエンスからpythonコードのサンプルが提供されているのですが、これはClassライブラリではありませんからオブジェクトをインスタンスして・・・と簡単にはいきません。

ということで、まずはBME280のpythonライブラリにするところから行う必要があるんです。

これはこれで、夏休みの自由研究になりそうなテーマではありますが・・・

tweeterライブラリ?

 「One Room Weather Station」の作者は、twitterライブラリを使ったtweeterライブラリをオリジナルで配布されているようでして、そのライブラリを使って計測データをツィートしています。

そのまま使えばよし!

キャラクタLCDモジュール対応

HD44870デバイスを使った、キャラクターLCDモジュール用のライブラリも配布しています。

これもHD44870デバイス搭載LCDを使うか、似たようなライブラリ構成のLCDモジュールを利用すると良いでしょう。

LCDモジュールはバリエーションが多いので、Pythonライブラリを提供しているモジュールは比較的簡単に見つかると思います。

特殊(そう)な実装はこれら2つくらいでしょう。

それ以外はsqlite3、smbus、syslog、daemonなどは一般的なpythonライブラリを使っていますのでフツーに使えるのではないかな。

変更のアイデア

ネットワークに接続していれば、測定データをクラウドへ送信して表示させることも可能ですね。

Windows10 IoT Coreを使ったサンプルのように、Microsoft Azureを利用してグラフ表示させることも出来る???(確認が必要)

Azure IoT
出典:Hands-on-lab IoT Weather Station using Windows 10

「One Room Weather Station」のグラフ表示プログラムを使った場合のグラフの例:

温度・気圧のグラフ
出典:Jamie Jackson「One Room Weather Station」

自分次第でいろいろ変更できますからね。

まとめると

「One Room Weather Station」の機能と代替センサーの問題点と拡張案をまとめると次のようになります。

機能5点

  1. 1時間単位のデータ計測
  2. 計測データは、SQLデータベースへ保存
  3. 計測データをツィート
  4. LCDパネルに現状を表示
  5. デーモンモードで動作

センサーの問題点

BMP085モジュールが手に入らない

  • BMP180モジュールを代替として利用するのが手軽(要検証)
  • BME280センサーモジュールを使うと、pythonライブラリが無いので自分で作成する
  • その他は、同等パーツを用意するとそのまま使える

拡張出来そうな機能

提供されているプログラムは、
1時間毎の定時計測を行う動作になっています。

例えば、急激な温度・気圧変化等の検出を行うコードを追加してゲリラ雷雨や台風に対応するように拡張すると分析する際に便利でしょう。
 

参考資料

Jamie Jackson:Raspberry Pi One Room Weather Station

BOSCH:BME280のデータシート(英文) - https://ae-bst.resource.bosch.com/media/_tech/media/datasheets/BST-BME280_DS001-11.pdf

スイッチサイエンスのBME280のGitリポジトリ - https://github.com/SWITCHSCIENCE/BME280

0 件のコメント:

コメントを投稿