2015年7月2日 星期四

使用 iio device driver 驅動 DHT11

先說結論:
  • 現在新版的kernel(我用3.18以上)都有附一些硬體的iio device driver,例如DHT11
  • 使用方式請看 /boot/overlays/README
  • 不過就DHT11的部份:它不是很好用(失敗率超高,還沒我自己寫的穩定)
大略說一下使用方法(根據/boot/overlays/README),假設DHT11已經接好,使用gpio pin2讀取資料:
  • 確認kernel已經含有Industrial I/O support (在Device Driver下)
(我是懶得看直接把Industrial I/O support內的細項都選了,因為以後可能用得到,不想花時間的話只選dht11也行)
  • 編輯/boot/config.txt (記得用sudo)
    • 加入:dtoverlay=dht11,gpiopin=2,存檔離開
    • 重新開機
如果一切OK,在/dev下應該會看到有裝置iio:device0,這個裝置就是dht11

然後進到/sys/bus/iio/devices/iio:device0:
可以看到這些variables,他們代表:
dev : device number
in_humidityrelative_input : 溼度(RH%)*1000 (老實說我不知道為何要*1000)
in_temp_input:溫度(C)*1000
name: 名稱(預設為dht11)
uevent:一些設定

沒有留言:

張貼留言

Google Code Prettify