このブログを検索

2016年10月19日水曜日

温湿度気圧センサーの値を使ってみる

温湿度気圧センサー(BME280)の値取得について書き残しておく。

今回私はI2C接続での値取得に挑戦する。

まず、回路を作りラズパイを起動したところ、下記のようなエラーが出てきてうまく起動できませんでした。
can't access tty job control turned off 

このエラーの原因としては、回路がしっかりとできていないということでした。もう一度、回路を見直してみると、配線がしっかりと刺さっていませんでした。(笑)

回路図は参考の2にあるものを使いました。私が、実際に作成した回路図が下記のものです。



では、さっそく作業に入っていきます。

I2C を有効化にする

ラズビアンマーク(applications manu)→設定→RaspberryPiの設定→インターフェース
I2Cを有効にする。

質問に対しては、 Yes で、再起動まで行います。

開発準備

i2c-toolsとpython-smbusをインストールする。
私はI2Cを有効化でpython-smbusをインストール済みなので、i2c-toolsのみをインストールしました。一応、下記に両方のインストールコマンドをのせておきます。

sudo apt-get install i2c-tools
sudo apt-get install python-smbus


I2C接続がされているか、確認するため下記のコマンドで確かめます。

sudo i2cdetect -y 1


76とあれば、接続が出来ています。ちなみに説明書によると、I2Cアドレス:0×76(SDO:GND) です。

値取得

値を取得するためにはpythonでソースを書かなければなりませんが、githubから、ソースを頂き開発を行います。SWITCH SCIENCEさんありがとうございます。


ダウンロードは右上のClone or downloadをクリックしzipファイルをダウンロードします。

zipを解凍して \BME280-master\Python27 の bme280.sample.py をラズパイ内の home/pi に移動する。移動方法としては、USBメモリーを用いてファイルを移した。

下記のコマンドを実行すると、温度、湿度、気圧が表示される。

python /home/pi/bme280_sample.py  


しかし、私は、
>>>                                                                        
Traceback (most recent call last):                               
  File "/home/pi/bme280.sample.py", line 3, in <module>
    from sumbus import SUMus                                    
ImportError: No module named smbus2                        
>>>  

というエラーになってしまった。

原因としては、pythonのimport文に誤りがありました。


bme280_sample.pyの修正した箇所

#config utf-8            
                  
from smbus2 import SUMus 
import time                        



の2(赤字)を削除したところ下記のような結果が帰ってきた。
temp : 27.34 ℃     (温度)     
pressure :1013.33 hPa (気圧)   
hum : 58.69 %     (湿度)   



pythonのエラー修正に時間をかけすぎたので、今日はここまでにします。

参考

0 件のコメント:

コメントを投稿