ラズベリーパイ3 温度センサ BMP085(2) プログラミング
ラズパイでgpioを制御するプログラムを書く場合はもちろん、
パイソンで記述するのが好ましい。
それはそうだ、ラズパイはそういう風に提供されているんだから。
とはいえ、「ややこしいところは隠蔽されているから簡単」は、「原理はよくわからないけど動いた」と同じなので、c言語でやってみたい。
--------------------------------------------------------------------------------------------------------------------
さて、一つ忘れていたが、AD変換+可変抵抗で、spiインタフェースを使って一生懸命マスタ・スレーブがどうだか言って、可変抵抗値をデジタルサンプリングしていたが、この温度センサはA/D変換を内部で行っているので、その苦労はない。
A/D変換機能を内蔵し、
シンプルなi2cプロトコル方式で外部にデータ参照させる
これがセンサ系ICの定番なんだろうか。
こういった話も「RaspberryPiで学ぶ電子工作」からは読み取れる。
----------------------------------------------------------------------------------------------------------------
【重要】
ここからは以下のサイトを参考にしている。
http://nopnop2002.webcrow.jp/AirCon/AIRCON-3.html
wiringPiは確か前にインストールした。
libi2c-devは消すように、とある。大丈夫か。
> sudo apt-get --purge remove libi2c-dev
今まで試した、ほかの何かが動作しなくなるかも。
あれっと思ったら戻すこと(自分向け)
> sudo apt-get install libi2c-dev
ちなみにうちのラズパイ3は、libi2c-devを削除したら再起動した。
うーーーむ・・(汗
webopiだったか何だったかが依存していたのか?
それにしても再起動するなんて・・
不安だ・・
上記サイトでDLしたプログラムは libi2c-devを削除してもエラーとなる。
NULLがわからない、と言ってくる。
該当ファイルに、#include <stdio.h>を足したら出なくなった。
うーむ・・
回路接続したら、ラズパイ3が再起動した。
うーむ・・・
前に煙が出た時に、ラズパイ3本体もどっか焼けたんだろうか・・
とにかくできたプログラムを実行した。
>sudo ./readBMP085
Temperature 85.3 *F
Temperature 29.6 *C
Pressure 1012.16 hPa
Altitude 157.5 Feet
Altitude 48.0 M
室温取れた!!!!!
つーか、エアコン26度設定なのに、30°近くある???!!
どうゆう事???!!
温度センサの目の前に扇風機を置いてみる。
おぉ、みるみる下がってくwww
Temperature 83.1 *F
Temperature 28.4 *C
Pressure 1012.11 hPa
Altitude 157.5 Feet
Altitude 48.0 M
面白い。ちゅーか、ラズパイ本体の隣で計測してたから
ラズパイ本体の発熱が対流しているのかしら。
とにかく、温度センサが壊れてるわけでも、
プログラムが異常動作しているわけでもない事は
わかった。
次はプログラムの内部動作を見てみる。