Raspberry Pi Zero WHで温度センサーDS18B20を使う
手軽に使える温度センサーDS18B20を買ってみましたので
Raspberry Pi Zero WHにつないで温度を計測してみたいと思います。
使用するものは 1-Wire と Python と W1ThermSensor だけで手軽に取得します。
1-Wire を有効にします。
まず 1-Wire を使えるようにします。
設定の追加
/boot/config.txt に以下の記述を追加します。
dtoverlay=w1-gpio-pullup,gpiopin=4
カーネルにモジュールの追加
カーネルにw1-gpio、w1-thermを追加します。
$ sudo modprobe w1-gpio $ sudo modprobe w1-therm
一旦再起動します。
$ sudo reboot
有効になっているか確認します。
$ lsmod | grep w1
以下の2つがあれば有効になっています。
w1_gpio w1_therm
温度センサーDS18B20を繋ぐ。
以下のように適当に繋いでみます。
正しくつながっているとRaspberry Pi側で検知され以下のようなフォルダが作られます。
/sys/bus/w1/devices/28-0000********
Pythonを使って取得する。
W1ThermSensor をインストールする。
$ git clone https://github.com/timofurrer/w1thermsensor.git $ cd w1thermsensor $ sudo python setup.py install
コード
sensor.py
# -*- coding: utf-8 -*- from w1thermsensor import W1ThermSensor sensor = W1ThermSensor() celsius = sensor.get_temperature() print("ただいまの温度は {0:.2f}℃です。".format(celsius))
実行結果
$ python sensor.py ただいまの温度は 21.62℃です。
これを前回入れた音声読み上げにパイプで渡せば読み上げもしてくれます。