忍者ブログ

晴時々曇一時雨

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

"【パソ】raspbery pi"カテゴリーの記事一覧

  • やたらと不安定なCCS811エアークオリティセンサー
    先日紹介したCCS811を使ってみたのですが、
    やたらと不安定でした。

    SHT-31やLPS22HBの安定ぶりとは対照的です。

    Raspberry Pi3 Python3 SMBus を使っています。




    CSVにデータを吐いてみると、わりと
    どのデータにもまんべんなく先頭ビットが立って
    しまっているようです。

    ミスなく通信している行を見つける方が少ないくらい。

    あと、通信できないこともあるのですが、
    こちらは、スクリプトで例外処理してしまっているので
    データには出てきません。

    要はちゃんとデータが取れればいいのですよ、取れれば!

    と、言うわけで

    多分PIPでインストールできるライブラリーがあるような
    気がするので、そちらをインストールしてみて
    それでもダメなら・・・う~む、どうしましょう?

    プルアップ抵抗でも足してみる?

    誰か助けて~
    うあ゙ぁあ ・゚・(´Д⊂ヽ・゚・ あ゙ぁあぁ゙ああぁぁうあ゙ぁあ゙ぁぁ
    PR
  • 台風通過の気圧変化
    いやー、すごい台風でした。
    川も溢れそうだったし、ひやひやしましたよ。

    ってか、選挙どころじゃないし・・・。
    でもいくら野党がカス揃いでも、ちょっとやり過ぎちゃう?
    ま、いっか。

    さてさて。

    台風が来る前に、気圧センサーを動かして
    DBに保管するテストをしていました。

    偶然台風通過のデータがとれてしまった次第。



    こんな感じ。
    見事ですね。

    えっ?まあ、だから何?って感じではありますが。
    すいません。
  • I2Cセンサー達をラズパイ(RaspberryPi3)で 4 CCS811
    StrawberryLinuxにCCS811という、センサーがありました。

    @2000円です。高い?安い?

    何が測れるのかといいますと、
    CO2濃度(ppm)
    TVOC濃度(ppb)
    です。

    ほほう、なかなか魅力的な測定項目。
    特にCO2濃度は換気に関する重要な指標です。

    我が家は、子供が小さいこともあって
    全員同じ部屋で寝ています。
    なので、CO2濃度は夜中にとんでもない数字になっているはず。

    あとは、人がいるかどうかの指標にも使えます。
    人が部屋にいると結構すぐに上がります。

    NETATOMOというのを使っている方も
    いらっしゃるかと思います。
    あれを使ったことがあれば、よく理解していただけるかと。

    でもあれ、データのダウンロードとか忘れると
    結局有効に蓄積されないんですよね。
    なので、やめましたw
    もったいない。

    話が逸れました・・・。


    とりあえず、CCS811は手元にありますので
    これからいじってみようと思います。

    データシートはこちらから
    オーストリアマイクロシステムズ(AMS社)のHP
    http://ams.com/jpn/node_78/node_331635/node_348195/CCS811
  • I2Cセンサー達をラズパイ(RaspberryPi3)で 3 BME680祭
    昨日かと思いますが、
    Pimoroni (ピモローニ?)から、BME680の
    Python3ドライバーがGitに上がってました。

    と、言うわけで・・・。

    BME680祭~~~!

    先づ、
    pip3 search bme680
    してみましょう。

    おお!ありますね。

    では、早速。
    sudo pip3 install bme680
    と。

    なにやら、警告がでますが無事に入った様子。

    で、お約束の
    python3
    import bme680
    はい、エラー出ません。OKです。


     
    次ぎに、PimoroniのGitへ
    https://github.com/pimoroni/bme680




    ダウンロードして、適当なところに解凍します。

    で、早速サンプルスクリプトをポチッとな。



    SHT-31と比較すると、やはり温度と湿度の精度は
    ちょっと使うの憚られる感じ。
    気圧はよくわかりません。こんなもん?

    で、ガスセンサーですが・・・。

    いろいろごにょった結果。
    センサー自体を内蔵のヒーターで暖め(200~400℃)
    抵抗値を測定している模様。
    なので、昇温して温度が安定しないと測定できません。

    &そのヒーターのお陰で温度と湿度に影響します。

    ・・・安いけど使いにくいかな。
    私は要らんな。
    ってのが、ファーストインプレ。

    おわり。
    ■□■□■□■□■□■□■□■□■□■□■□
    家の温湿度などを測定記録したい方で
    質問のある方はコメントへどうぞ。
    力になれるかどうかわかりませんが(´・ω・`)
    □■□■□■□■□■□■□■□■□■□■□■
  • 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