RaspberryPi4で遊んでみる(2)-とりあえず温度とか-
まぁLちかでも良かった
Lちかはね。いいんんだけど、気分が温度だったので以下を購入.現地点ではハンダゴテ無いので、、、、以下で対応。ちなみにセンサーはくっついていないので、後にハンダ付けが必要です。
BMP280ですね。よくわからんけど気温と湿度と気圧測れるらしい。
reviewによると、mainは湿度と気圧でcompensateするために温度であって、温度はexactではない。自身の発熱で+1~2℃になるらしい。正直そこまで求めてないのでOK
アキバに行きたかったけど、コロナのおかげやっていないので、amazonで買い合せもしたかったので、amazonでBMP280と基板と導線を購入しやした
まぁ導線は多いけど腐るもんじゃないし!
ハードの設計
超簡単。せんさーはvin, sda, scl, grd(grand)さえあればよいので、頑張って導線つなげます。
あまりにも簡単なので、基板いらんと思いましたが、そこは雰囲気作り。
つまり、1,3,5,6しか使いません。
sclはserial clock、sda:serial dataを示していてi2c通信の要ですね。ってかその程度しかしらん
https://www.raspberrypi.org/documentation/usage/gpio/
この表は便利ね。
raspiサイドの設定
1 2 3 4 5 6 7 |
#validate I2C through CUI #interface setting -> i2c #This setting is able to be changed by GUI #Click upper left setting (Preference) sudo raspi-config --> open GUI $ sudo apt-get install i2c-tools |
1 |
$ sudo apt-get install i2c-tools |
pythonを使いたかったので事前にraspi専用Condaを入れました。Raspi4ではまだ未対応らしいですが、3対応のやつを突っ込みました。現在地点では問題なく動いています。将来的にdependencyとかしっかりしてくれるのかはわかりませんが、、、
1 2 3 4 5 6 7 8 9 10 11 12 |
### install conda ### # pls check installer url before install $mkdir ~/tmp $cd ~/tmp $wget https://github.com/jjhelmus/berryconda/releases/download/<strong>v2.0.0/Berryconda3-2.0.0-Linux-armv7l.sh</strong> $./<strong>Berryconda3-2.0.0-Linux-armv7l.sh</strong> # [important] IF console says "whether append path of conda to PATH?", pls input "YES" #### make virtual env ### $ source ~/.bashrc $ conda create -n env_name python=<strong>3.6.1</strong> $ source activate env_name |
condaを入れたのはいいんですが、実はこのあとpipが必要になります。まぁ以下のpackageがcondaにないので先に入れておきます。seiral bus (sda & sclでのデータ通信)をなんとかしてくれるpackageです
1 |
pip install smbus2 |
動かす
まずはセンサーが認識されているかです。レジスタの0x76にセンサーの値が入っているので0x76使っているよー!って表示されていればOK。それ以外は使ってなければ– ってなる。
1 2 3 |
#Check accessing to sensor $sudo i2cdetect -y 1 -->> display "76" , then OK |
ここで0x76をscrutiinzeすれば、センサーの値を読めます。でも、基本バイナリなので正直目的外かつ嫌なので、今回は公式のスクリプトでチェックします
1 |
#Dump register stored values<br data-rich-text-line-break="true" />$sudo i2cdump -y 1 0x76 |
https://github.com/SWITCHSCIENCE/BME280/blob/master/Python27/bme280_sample.py
リンクはswitch scienceさん(製造元)のものです。ありがたいです。
python環境下で適当に実行すれば通ります。
でもpython2系なので3の場合はprint文をfixしてください。あとこれglobal宣言が多いので、後にコレをbaseとするには…って人は書き換えが必要かと思います。
とはいえ、byte列を解読してくれているので超感謝です。(本来byte列読むのが醍醐味のような気もする)
Btw.. How to describe circuit?
これからいっぱい試していくにあたって、いろいろ見ているけれども、
なんでみんなきれいなイケてる回路図かけてるのってことで、ぐぐった。へぇ。