Showing posts with label 1-wire. Show all posts
Showing posts with label 1-wire. Show all posts

Wednesday, 17 September 2014

Banana Pi: Temperature Sensor (DS18B20) - Tutorial


Requirements

    --> Banana Pi running Raspbian for Banana Pi
    --> Breadboard
    --> Jumper Wires
    --> DS18b20
    --> 4.7K Ohm resistor
    --> Breakout cobbler

       

      Hardware Setup

      Refer to the graphic for the correct wiring. Make sure the Banana Pi is switched off to prevent any possible damage.

      Banana Pi Temperature Sensor - DS18B20

      Software Setup

      Double check the wiring and boot the device. In order to be able to access the temperature data, we need to make some minor adjustments to the script.bin file, which is a binary configuration file used by Allwinner SOC.
      sudo apt-get install git
      git clone https://github.com/linux-sunxi/sunxi-tools
      cd sunxi-tools
      make
      
      #location of the script.bin file
      cd /boot/bananapi/
      
      #get the fex file
      sudo /home/bananapi/sunxi-tools/bin2fex script.bin bananapi.fex
      
      #edit the fex file
      sudo nano bananapi.fex
      
      #add the following at the end, save (CTRL + O) and close
      [w1_para]
      gpio = 4
      
      #.fex back to .bin
      sudo /home/bananapi/sunxi-tools/fex2bin bananapi.fex script.bin
      
      sudo reboot

      Reading raw data from the sensor

      After successfully rebooting your device, you will notice that /sys/bus/w1/devices is no longer empty.
      bananapi@lemaker ~ $ cd /sys/bus/w1/devices
      bananapi@lemaker /sys/bus/w1/devices $ ls
      28-000006203041  w1_bus_master1
      bananapi@lemaker /sys/bus/w1/devices $ cd 28-000006203041
      bananapi@lemaker /sys/bus/w1/devices/28-000006203041 $ ls
      driver  id  name  power  subsystem  uevent  w1_slave
      bananapi@lemaker /sys/bus/w1/devices/28-000006203041 $ cat w1_slave
      5e 01 4b 46 7f ff 02 10 8d : crc=8d YES
      5e 01 4b 46 7f ff 02 10 8d t=21875
      t=21875 is the number we are looking for. E.g.: 21.9 degree Celsius (°C) in my case.

      Banana Pi Temperature Sensor (DS18B20)
      my setup