raspberry pi zero wh買ってみたもののOSインストールしただけで放置状態だったので、
部屋のコンデションを測定してみようかと。
必要なもの
-
電源など
※前提
raspberry piには、OSがインストールされ、sshとかネットワークの設定が完了していること。
まずは配線
sym | pin | |
---|---|---|
VCC | → | 11 |
GND | → | 6 |
SCL | → | 5 |
SDA | → | 3 |
CSB | → | 17 |
SDO | → | 6 or 14 |
pin番号はこの向きで
2 | 4 | 6 | 8 | 10 | 12 | 14 | 16 | 18 | 20 |
1 | 3 | 5 | 7 | 9 | 11 | 13 | 15 | 17 | 19 |
って感じになっています。
とりあえず、動作確認だけであれば、はんだ付けはしなくても大丈夫。
raspberry pi zero
I2C用モジュールの有効化
$ sudo raspi-config
あとはメニューを閉じて完了。
※メニューに関してはOSのバージョンによって違うので注意です。
インストール
$ sudo apt-get install i2c-tools
$ sudo apt-get install python3-smbus
動作確認
$ sudo i2cdetect -y 1
接触不良だと何も出てこない。
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
きちんと接続されていると
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 --
スイッチサイエンスさんがサンプルプログラムを公開しています。
bme280_sample.py
適当なディレクトリで
$ curl -L -O https://raw.githubusercontent.com/SWITCHSCIENCE/BME280/master/Python27/bme280_sample.py
とりあえず、実行してみる。とpythonのバージョン違いでエラーになります。
$ python bme280_sample.py
File "/home/Workspace/bme280_sample.py", line 95
print "pressure : %7.2f hPa" % (pressure/100)
^
SyntaxError: invalid syntax
printを括弧で囲みます。(3箇所)
- print "pressure : %7.2f hPa" % (pressure/100)
+ print("pressure : %7.2f hPa" % (pressure/100))
で実行すると、またエラー
$ python bme280_sample.py
Traceback (most recent call last):
File "/home/Workspace/bme280_sample2.py", line 3, in <module>
from smbus2 import SMBus
ModuleNotFoundError: No module named 'smbus2'
エラーとなるので修正:3行目
- from smbus2 import SMBus
+ from smbus import SMBus
ふたたび、実行。
$ python bme280_sample.py
temp : 28.97 ℃
pressure : 1011.68 hPa
hum : 57.37 %
とりあえず、値が取れているので、今回はここまで。
次回は、この値をどっかに保存しようかと思います。
参考
http://tk-thunder.hateblo.jp/entry/2018/02/04/210650
https://qiita.com/kamujun/items/51f85339bfd582b27752
http://kashiwamochi-raspi.blogspot.com/2016/10/blog-post_19.html