OSOYOOのサイトで
「Raspberry Piで温度センサーを作動する」に詳しく書いてあるのですが、 Raspberry Pi2 での説明であることと、初心者のため、エディタの使い方などでちょっと戸惑って大変だったので、覚書として残しました。
Raspberry Pi3 Model B では、もっと簡単にできました。
動かし方
-
- まずはつなげる。
上記のように「-」と書いてある側から、GND、5V、GPIO4につなげます。
Raspberry PiのGPIOポートにDS18B20の3つのPINをつなげるだけではなく、5KΩ~10KΩの抵抗を5VとGPIO4ピンにつなぐ間に入れます。
ここで、必ずGPIO4を使うこと。固定です。 次に1-Wire通信モジュールのインストール。
ターミナル(LXTerminal)で以下の2行を順番に入力。sudo modprobe w1-gpio
sudo modprobe w1_therm- 1-Wireモジュールの有効化
raspberry piの設定で「インターフェイス」の 1-Wire を有効にして「OK」をして、再起動。OSOYOOのサイトに書かれている config.txt ファイルの修正は新バージョンでは必要ないと思います。
もしかすると 2.のモジュールもインストールされていたかもしれませんが、実行してしまったのでわかりません・・・。実際に試してみました、2は不要です。 - ターミナル(LXTerminal)でls -l /sys/bus/w1/devices/と入力すると /sys/bus/w1/devices/ フォルダの中のフォルダやファイルが表示されます。
ここに表示される「28-xxxx」フォルダ名を使用してcat /sys/bus/w1/devices/【28-xxxx】/w1_slaveと入力。
表示される2行目の「t=xxxx」の部分が温度の1000倍とのことです。
1000で割ると現在の温度が確認できるとか。(この場合25.437℃)
- ここまでできちんとできていることを確認したら、
osoyooでサンプルコードを提供してくれているので、動かしてみるといいです。
上記のcatコマンドでは、w1_slaveファイル内をそのまま表示させているだけらしく
このサンプルコードも w1_slave ファイルをオープンし、読みだして、「t=xxxx」の数字部分を数値として変換して、1000で割って、画面に表示させています。
- まずはつなげる。
追記:
今回は /boot/config.txt ファイルを編集せずに行ったのですが、このファイルに以下のように入力して使う、という方法が書かれていました。
dtoverlay=w1-gpio-pullup,gpiopin=4
これを使えば、1.で抵抗を使わなければいいのではないかと思います。
追記
今回、Raspberry Piで学ぶ電子工作を読みながら、初めてラズベリーパイを使いました。
一緒に購入したキットがRaspberry Piで学ぶ電子工作 専用 実験キットというもので、本書に出ているものと違うものが少しあったのが原因で、初心者としては対応するのに苦労しました。
覚書の覚書
エディタ
プログラムを記述するためのエディタの一つであるViエディタは、ターミナルで「vi ファイル名」とすることで使うことができます。
これにはコマンドモードと入力モードがあり
何もしなければコマンドモードで、コマンドを入力することで1行削除したり、ファイルを保存したりでき、例えば「i」を入力すると、文字を追加できる入力モードになります。
この状態でEscキーを押すと入力モードがコマンドモードに変わります。
詳しくはviエディタの使い方にコマンドがわかりやすく書かれています!
Linux コマンド
ターミナルで使ったCATやLSなどのコマンド、意味が知りたいときには
IT Pro の Linuxコマンド集を使わせていただきました。