読者です 読者をやめる 読者になる 読者になる

ラズベリーパイ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

 

面白い。ちゅーか、ラズパイ本体の隣で計測してたから

ラズパイ本体の発熱が対流しているのかしら。

とにかく、温度センサが壊れてるわけでも、

プログラムが異常動作しているわけでもない事は

わかった。

 

次はプログラムの内部動作を見てみる。