BME280 をからのデータを一般ユーザーで受け取る

debian jessie では GPIO 関係が一般ユーザーで利用できるようですが、現在は wheezy を利用しているので毎度 sudo しないといけません。

$ cat /etc/debian_version 
7.11

bme280_sample.py をそのまま実行すると Permission denied と言われてしまうのでアクセスしているデバイスを調べますした。

$ sudo i2cdetect 1
WARNING! This program can confuse your I2C bus, cause data loss and worse!
I will probe file /dev/i2c-1.
I will probe address range 0x03-0x77.
Continue? [Y/n] y
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- 76 -- 

/devi2c-1 にアクセスしているのでこいつのパーミッションを調べます。

$ ls -la /dev/i2c-1
crw-rw---T 1 root i2c 89, 1 Jul 12 20:20 /dev/i2c-1

i2c グループなら書き込みもできそうなので自分を i2c グループに追加します。

$ sudo usermod -aG i2c zoar

再起動してみて sudo なしに実行できれば OK。

$ python bme280_sample.py
temp :  28.85 ℃
pressure : 1004.26 hPa
hum :  45.11 %

これで今後の実行には sudo なしでいけるのでちょっとは楽に使えそうです。