2021/09/10

Raspberry Pi2で温度、湿度は取れているので、気圧も取得してみます。
Microsoftからダウンロードしたプログラム初期値では、温度、湿度のみです。
設定方法は以前の投稿を参照。
プログラムのソースコードapp.pyを確認してみます。
15行目のfromでAdafruit_BME280.pyからモジュールをよみこんでいるようですね。
- 温度部分:temperratureとして定義し、read_temperature()の部分を読み込んでいるようだ
- 湿度部分:humidityとして定義し、read_humidity()の部分を読み込んでいるようだ
- 気圧部分はAdafruit_BME280.pyのdef read_pressure(self)部分かも???
温度、湿度部分を参考に、app.pyをapp_c.pyとして気圧部分が表示されるように修正してみました。
修正箇所
修正前 77行目
MSG_TXT = "{\"deviceId\": \"Raspberry Pi - Python\",\"temperature\": %f,\"humidity\": %f}"
修正後
MSG_TXT = "{\"deviceId\": \"Raspberry Pi - Python\",\"temperature\": %f,\"humidity\": %f,\"pressure\": %f}"
修正前 206行目以降
temperature = sensor.read_temperature()
humidity = sensor.read_humidity()
msg_txt_formatted = MSG_TXT % (
temperature,
humidity)
修正後
temperature = sensor.read_temperature()
humidity = sensor.read_humidity()
pressure = sensor.read_pressure()
msg_txt_formatted = MSG_TXT % (
temperature,
humidity,
pressure)
プログラムを実行してみると、気圧部分のpressureの値が「101585.59」と出力されました。
あれ?十万超えてる!
気圧が高すぎ! 通常千十数だよなぁ~。試しにスイッチサイエンス提供のプログラムを実行すると「1015.・・・hpa」と表示される。センサーが壊れているわけではなさそうです。
単純に100倍多くカウントされているだけなのか?
気圧について調べると、Wikiより。
ヘクトパスカル (英: hectopascal、hPa) は、国際単位系 (SI) 上の圧力の単位(SI組立単位)である。ヘクトが100倍を表すSI接頭辞であるから、1ヘクトパスカルは100パスカルである。主として気象関係で使われているが、その他の分野で用いられることはまずない。
なるほど、単位がパスカルだったということのようです。一般的に用いられるヘクトパスカルにするには、100でわればよいのです。でも、プログラムのどこを修正すればよいのだ???
実際の取得データをPowerBIでみるとこのようになります。単位はパスカルです。
まあ、小数点を左に2桁ずらしよみかえることにします。
PowerBIで温度、湿度、気圧はこんな感じで出力されます。
ブラウザ全体
温度
湿度
気圧