1-Wireモジュールの確認

1-Wireの温度センサーDS18B20を接続するにためにどうすれば良いか調査しました。

まずは1-Wire用のモジュールが有効かを確認

> dmesg | grep wire  

モジュールが有効にするには

modprobe w1-gipo modprobe w1-therm

 

PINのオーバーレイの作成

/dts-v1/; /plugin/; /{     compatible = "ti,beaglebone", "ti,beaglebone-black";     part-number = "BB-W1";     version = "00A0";      /* state the resources this cape uses */     exclusive-use =     "P9.22",   /* the pin header uses */     "gpio0_2"; /* the hardware IP uses */      fragment@0 {         target = <&am33xx_pinmux>;         __overlay__ {             dallas_w1_pins: pinmux_dallas_w1_pins {                 pinctrl-single,pins = < 0x150 0x37 >;             };         };     };      fragment@1 {         target = <&ocp>;         __overlay__ {             onewire@0 {                 compatible = "w1-gpio";                 pinctrl-names = "default";                 pinctrl-0 = <&dallas_w1_pins>;                 status = "okay";                 gpios = <&gpio1 2 0>;             };         };     }; };

 

コンパイルを行います。

dtc -O dtb -o BB-1WIRE-P9-22-00A0.dtbo -b o -@ BB-1WIRE-P9-22-00A0.dts cp BB-1WIRE-P9-22-00A0.dtbo /lib/firmware/

 

オーバーレイの確認

 

cat /sys/devices/bone_capemgr.9/slots

 

/sys/bus/w1/devicesに28-XXXXXというディレクリが作成されています。XXXXX 部分がデバイスIDです。

 

温度の取得

cat /sys/bus/w1/devices/28-000004027af4/w1_slave 25 01 4b 46 7f ff 0b 10 65 : crc=65 YES 25 01 4b 46 7f ff 0b 10 65 t=18312

t=18312が温度の値です。1000で割れば摂氏の値が取得できます。

 

参考にしたページ

 

http://interactingobjects.com/ds18b20-temperature-sensor-on-a-beaglebone-black-running-ubuntu/

参考図書

 

ラズパイマガジン (日経BPパソコンベストムック)

新品価格
¥2,300から
(2015/1/3 15:44時点)
 

 

LinuxガジェットBeagleBone BlackでI/O: ハードウェア制御の大本命! (インターフェースSPECIAL)

新品価格
¥3,024から
(2015/1/3 15:45時点)
 

機器

 

Raspberry Pi Type B 512MB

新品価格
¥5,800から
(2015/1/3 15:43時点)