BME280は、温度、湿度、気圧を測定できるセンサです。

 

以前、Arduinoでは動作確認を行ったのですが、今回はRaspberryPiで測定してみようと思います。

 

Arduinoで動かしたときの記事はこちら。

 

 

まずはRaspberryPiとBME280の配線ですが、たったの4本。

 

 

こんな感じで繋げます。

 

 

非常にシンプルでよろしい。

 

 

都合よく、Node-REDに『BME280』というノードがあるので、それを使います。

node-red-contrib-bme280のノードを追加します。

このノードを作ってくれた方、どうもありがとうございます!

 

 

BME280ノードの設定は、こんな感じになっています。

 

BME280

Extra Dataにチェックを入れると、さらに色々な情報が取得できます。

 

このI2C Addressが合っているか、一応確認しておきます。

確認方法はこちらの記事を参考にしました。

 

 

 

確認結果

76で合ってますね。

 

 

初期値から何も変更せず、こんな感じでノードを繋げてみます。

 

 

 

Injectのボタンを押すと、デバッグ画面に結果が出てきます。

 

 

温度、湿度、気圧、モデルの4種類のデータが取れています。

 

Node-REDの素晴らしいところはこういうところですよ!

 

 

あとは、これをファイルに保存してみます。

作ったフローはこんな感じ。

 

 

せっかくなので、jsonファイルとcsvファイルの2つに保存するようにしてみました。

 

それぞれのノードの設定は下記のようにしました。

 

json

こちらは初期値から変更なし。

 

 

csv

こちらも初期値から変更なしです。

列名に入力が無いと警告メッセージが出るのですが、値はちゃんと取れるので問題無さそうです

 

 

こんな感じで、警告が出ても欲しい値は取れます。

 

 

警告が気になる場合は、列名に入力すればOK

 

例えば、こんな感じで列名に名前を入れると警告が消えました。

ここで1点注意なのですが、適当な列名だと警告が消えても値が取得できませんでした。

列名を入れるなら、センサから出てくる名称をきっちりと入れましょう

 

 

file

ファイル名のところに、保存先のパスから保存するファイル名までを記入します

文字コードはデフォルトでも良いのかもしれませんが、以前文字コードでトラブったことがあるので、あえてUTF8を選択しました。

 

 

jsonとcsvで、保存される内容の違いを比較出来て勉強になりました。

 

こちらはデバッグ画面の様子。

 

 

保存されたファイルは下記のようになっていました。

 

ちゃんとjsonとcsvの2種類のファイルが作成されています。

 

 

こちらがjsonで保存された内容。

 

 

こちらがcsvで保存された内容。

 

普段データを取ると言えばcsvファイルを扱うことの方が多いのですが、ノード1つで自由に保存形式を変えられるのは便利ですね。

 

 

ここからさらにやりたいことがあって色々と挑戦中なのですが、少し複雑なことをやろうとするとfunctionノードにjavascriptのコードを書いて動かしているパターンが多いので、そろそろそちらの勉強もしないといけないかもしれません。

 
 

うまく出来たら、記事にしてみたいと思います。