2015.09.28
1-Wire接続の温度センサーDS18B20×Raspberry Piで温度測定に成功

購入したのは DS18B20という温度センサーの防水加工品。センサー自体は秋月で350円ほど、今回は防水加工されたものをAmazonで送料込み880円購入。
- デジタル温度センサ(1wire)DS18B20+: センサ一般 秋月電子通商 電子部品 ネット通販 2 users 27 Tweet
- DS18B20防水デジタル温度温度センサプローブ
(amazon)
接続のための前準備として
/etc/modules
に
w1-gpio
w1-therm
を追加。
/boot/config.txt
に
dtoverlay=w1-gpio-pullup
を追加。意味は分からん。これでデフォルトのGPIO4で1wire接続できるようになるらしい。GPIO4以外に接続するには
dtoverlay=w1-gpio-pullup,gpiopin=x
と書くらしい(未確認)。
また、Raspberry Pi内の回路を使ってプルアップするには
dtoverlay=w1-gpio-pullup,gpiopin=x,pullup=y
と書くらしいが、うまくいかなかった。信号線と3.3Vの間に抵抗入れてプルアップしないと動作しない。
あとは下記のように接続されているデバイス数を表示したり、デバイスコードを取得したり、温度を読み出したりと簡単。

センサーはオンデマンドで認識されるみたいでRaspberry Piの電源入れっぱなしでセンサーを接続すると5秒ぐらいで認識されだす感じ。t=xxxxxが摂氏温度の1000倍になっている。
Pythonで温度部分を抽出してネット上のサーバーに投げるスクリプトの例としては
--------------------------
import urllib
import time
import subprocess #外部コマンド実行モジュール
import re #正規表現のモジュール
resulttext = subprocess.check_output(["cat","/sys/bus/w1/devices/28-00000728de5e/w1_slave"])
print resulttext
temp=re.search('(?<=t=)(-*\d+)',resulttext) #正規表現でt=以降を取得
temp=float(temp.group(1))/1000 取得した部分はgroup(1)に入る
print str(temp)
r=urllib.urlopen('http://xxx.xx/xxx/xxx.cgi?'+str(temp))
print r.read()
--------------------------
本当は得意のperlで書きたかったんだけど、Raspberry Piでどうやっても途中で止まってしまってモジュールLWPをインストール出来なかった。orz
- 電子部品使い方:プルアップ/プルダウン回路 21 users 16 Tweet
- テッチャン☆ぶろぐ: [Raspberry pi]温度センサーDS18B20を使えたら素晴らしい
- Raspberry Pi で温度センサ(DS18B20+)を読んでみた - 完全に個人的な備忘録 1 users1イイネ
- RaspberryPi - Raspberry Piで1-Wireデジタル温度センサのDS18B20を使う - Qiita 1 Tweet
- 1-Wire の温度センサで遊ぶ | あたがわの日記 7 users 1 Tweet
- Raspberry Piブログ : [コラム] 第9回『1-wire温度センサーで部屋の温度を測定しよう』 13 users 3 Tweet
- Raspberry Pi と 1-wireデバイス | Linux & Android Dialy
Category:#電子工作 Raspberry Pi、Arduinoなど
Keyword:DS18B20/3
Follow @fetuin
■ ■ ■ コメント ■ ■ ■
いいっすね!=20
001 [09.29 02:21]匿名@Dion:cpanでのインストールで失敗するのはメモリ不足が原因だったような気がします。GPUメモリが初期値で64MB割り当てられているので、HDMIを使わないなら最小値の16MBにすると良いかも。 ↑(6)
002 [09.30 08:56]ふぇちゅいん(パパパパ) TW★56:>>001 情報サンキューです! ↑(5)
003 [10.01 02:23]匿名@Dion:あとswapが標準では100MBなので1024MBに変更したほうが良いかもしれません。やり方はぐぐると出てくると思います。 ↑(3)
DS18B20
本カテゴリーで直近コメントが書かれた記事
→カテゴリー:#電子工作 Raspberry Pi、Arduinoなど(記事数:243)
本カテゴリーの最近の記事(コメント数)




