以前Arduinoでやった温度測定をRaspberry pi でやって外から温度を見れるようにする。
まずはRaspberry Pi がI2C接続できるようにする。以下サイトを参考に設定
http://www.gvc-on.net/?p=288
pi@raspberrypi ~ $ sudo diff /etc/modules /etc/modules.org
8d7
< i2c-dev
pi@raspberrypi ~ $ sudo diff /etc/modprobe.d/raspi-blacklist.conf /etc/modprobe.d/raspi-blacklist.conf.org
4c4
< #blacklist i2c-bcm2708
---
> blacklist i2c-bcm2708
再起動。
ちゃんとI2Cデバイスモジュールが読み込まれているか確認。
pi@raspberrypi ~ $ dmesg | grep i2c
[ 4.899135] bcm2708_i2c_init_pinmode(0,0)
[ 4.906241] bcm2708_i2c_init_pinmode(0,1)
[ 5.086692] bcm2708_i2c bcm2708_i2c.0: BSC0 Controller at 0x20205000 (irq 79) (baudrate 100000)
[ 5.277198] bcm2708_i2c_init_pinmode(1,2)
[ 5.368575] bcm2708_i2c_init_pinmode(1,3)
[ 5.374680] bcm2708_i2c bcm2708_i2c.1: BSC1 Controller at 0x20804000 (irq 79) (baudrate 100000)
[ 11.249426] i2c /dev entries driver
I2C用ツールをインストール。
pi@raspberrypi ~ $ sudo apt-get install i2c-tools
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libnet-daemon-perl libplrpc-perl
これを削除するには 'apt-get autoremove' を利用してください。
提案パッケージ:
libi2c-dev python-smbus
以下のパッケージが新たにインストールされます:
i2c-tools
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
59.5 kB のアーカイブを取得する必要があります。
この操作後に追加で 223 kB のディスク容量が消費されます。
取得:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main i2c-tools armhf 3.1.0-2 [59.5 kB]
59.5 kB を 1秒 で取得しました (47.1 kB/s)
以前に未選択のパッケージ i2c-tools を選択しています。
(データベースを読み込んでいます ... 現在 71037 個のファイルとディレクトリがインストールされています。)
(.../i2c-tools_3.1.0-2_armhf.deb から) i2c-tools を展開しています...
man-db のトリガを処理しています ...
i2c-tools (3.1.0-2) を設定しています ...
配線。
Raspberry Piのピン配置
http://elinux.org/RPi_Low-level_peripherals
pi@raspberrypi ~ $ 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: -- -- -- -- -- -- -- -- -- -- -- UU -- -- -- --
40: -- -- -- -- -- -- -- -- 48 -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
bcのインストール
pi@raspberrypi ~ $ sudo apt-get install bc
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
libnet-daemon-perl libplrpc-perl
これを削除するには 'apt-get autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
bc
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
106 kB のアーカイブを取得する必要があります。
この操作後に追加で 257 kB のディスク容量が消費されます。
取得:1 http://mirrordirector.raspbian.org/raspbian/ wheezy/main bc armhf 1.06.95-2 [106 kB]
106 kB を 1秒 で取得しました (79.4 kB/s)
以前に未選択のパッケージ bc を選択しています。
(データベースを読み込んでいます ... 現在 71054 個のファイルとディレクトリがインストールされています。)
(.../bc_1.06.95-2_armhf.deb から) bc を展開しています...
menu のトリガを処理しています ...
install-info のトリガを処理しています ...
man-db のトリガを処理しています ...
bc (1.06.95-2) を設定しています ...
menu のトリガを処理しています ...
#!/bin/bash
hexraw=$(sudo i2cget -y 1 0x48 0x00 w)
while [ "$hexraw" == "" ]; do
hexraw=$(sudo i2cget -y 1 0x48 0x00 w)
done
msb=$(echo ${hexraw:4:2})
lsb=$(echo ${hexraw:2:1})
dec=$(printf "%d\n" "0x$msb$lsb")
echo "scale=4; $dec*0.0625" | bc
~
~
~
無事温度測定できました^^
pi@raspberrypi ~ $ ./tmp102.sh
29.1250
pi@raspberrypi ~ $ ./tmp102.sh
31.5000
pi@raspberrypi ~ $ ./tmp102.sh
31.6875
pi@raspberrypi ~ $ ./tmp102.sh
31.8125
pi@raspberrypi ~ $ ./tmp102.sh
31.8750
pi@raspberrypi ~ $ ./tmp102.sh
31.9375
pi@raspberrypi ~ $ ./tmp102.sh
31.9375
pi@raspberrypi ~ $ ./tmp102.sh
32.0000
pi@raspberrypi ~ $ ./tmp102.sh
32.0625
pi@raspberrypi ~ $ ./tmp102.sh
30.5000
pi@raspberrypi ~ $ ./tmp102.sh
30.3750
pi@raspberrypi ~ $ ./tmp102.sh
30.3750
pi@raspberrypi ~ $ ./tmp102.sh
30.3125
pi@raspberrypi ~ $ ./tmp102.sh
30.3125
pi@raspberrypi ~ $ ./tmp102.sh
30.2500
pi@raspberrypi ~ $ ./tmp102.sh
30.2500
pi@raspberrypi ~ $ ./tmp102.sh
30.1875
pi@raspberrypi ~ $ ./tmp102.sh
30.1875
pi@raspberrypi ~ $ ./tmp102.sh
30.1875
次はVPN接続して外からブラウザ上で温度が見れるようにする。
0 件のコメント:
コメントを投稿