忍者ブログ

晴時々曇一時雨

高気密高断熱住宅に関する話題。 時事ネタなど。

[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

I2Cセンサー達をラズパイ(RaspberryPi3-Stretch)で 2
巷では選挙戦ですが、・・・って もうええって。
俺は全力で勝ち馬に乗りに行くぜ!w

ああ、そういえばそもそもなぜ気圧センサーを使うのか
説明してなかったですね。

要は絶対湿度の算出用です。
湿度センサーは比較的頻繁に交換する必要がありますが、
気圧センサーはそこまで頻繁に交換する必要ないんじゃないかな?
と、妄想。根拠はありません、なんとなくですw


LPS22HBをPython3から使う

先ずは、StrawberryLinuxから購入
https://strawberry-linux.com/catalog/items?code=12122
税抜き900円ですね。
使いやすい形なので、ここから買ってます。
ちょっと高いけど・・・それは利便性とのバーターってことで。
SHT-31とまとめて買おう!

配線
上のリンク先のモジュール説明書を参照しながら
間違えないように配線しよう。
プルアップ抵抗は、Raspberry Pi3を使う場合には
既に取り付けられているので不要。というか
さらに10kΩとか追加すると認識しなくなります。(経験済)

I2Cの確認
言うまでもなく、I2CDETECTコマンドで生きていることを確認
センサー側5番ピン(SA0)をGNDに接続した場合は
アドレス「5C」にて生きていることが確認出来るはず。

Python3 SMBusの準備
コマンドプロンプトから、Python3を起動し
「import smbus」(ENTER)して、エラーがでなければ
インストールされてます。
Raspbian Stretchでは、最初から入っていた気がします。
Raspbian Jessieでは、
「sudo apt-get install python3-smbus」すると
あっさりインストールできました。
できないときは、適当にググってください。

めっちゃ適当なスクリプトorz
よい子はマネしちゃダメ!な感じのスクリプト
いいんです、動けば!動いて使える事こそが目的なのですからw
 あ、でも一応あとでちゃんとPython3の勉強します。
あとで かよっ!w
import smbus
import time
bus = smbus.SMBus(1)
data_ck = bus.read_byte_data(0x5C, 0x0F)
bus.write_byte_data(0x5C, 0x10, 0b00010000)
time.sleep(2)
data1 = bus.read_byte_data(0x5C, 0x28)
data2 = bus.read_byte_data(0x5C, 0x29)
data3 = bus.read_byte_data(0x5C, 0x2A)
data = bus.read_i2c_block_data(0x5C, 0x28, 3)
data_all= data[0]+data[1]*256+data[2]*65536
pressure = data_all/4096
bus.close
print(data1)
print(data2)
print(data3)
print(hex(data1))
print(hex(data2))
print(hex(data3))
print(hex(data_all))
print("Pressure = %.1f hPa" %pressure)
かなり実験的スクリプトなんで、見るとI2C接続のセンサーの使い方が
だいたいわかると思います。
データシートは見てませんが、モジュール説明書の内容
を一通り確認してます。
data_ckは出力してませんが
printしてやれば、「177(10進数)」を返してきます。
16進だとB1ですね。OKです。
あとは、0x28 0x29 0x2a の各レジスタからデータを
読み取り、×256 ×65536 で桁を合わせて足しています。
最後に4096で割ってできあがり!

意外と簡単でしたね。
このパターンで、I2Cセンサーの多くが使えそうです。

検証
意外と知られていませんが、気象庁のWEBページで
得られる気圧データは、海抜0mでの気圧で
実際の気圧ではありません。
なので、現在地の高度(海抜)を調べて補正してやると
おおよそ合っているかどうか確認できます。
なお、知りたいのは実際の気圧なので得られたデータは
補正しません。
標高から気圧を計算
http://keisan.casio.jp/exec/system/1203469826


標高を調べる地図
http://wisteriahill.sakura.ne.jp/GMAP/GMAP_ALTITUDE/index.php
PR

コメント

コメントを書く