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のコードを書いて動かしているパターンが多いので、そろそろそちらの勉強もしないといけないかもしれません。
うまく出来たら、記事にしてみたいと思います。