OWFS på Rasperry Pi
Här följer en beskrivning för att komma igång med OWFS på Raspberry Pi - Guiden fungerar oavsett om du använder i2c-kortet eller USB-adaptern.
Mål
Att få igång 1-wire på Raspberry Pi via i2c 1wire module.
Programvaror
- Noobs 1.3.12 (2015-02-02) / Raspian Wheezy
- OWFS (senast testat på 3.0p0)
Hårdvara
Förutsättningar
Denna beskrivning bygger på att du har en helt ren installation av Raspbian Wheezy installerad via Noobs 1.3.12 (2015-02-02).
Moduler och /boot/config.txt
Om du använder USB-adaptern behöver du inte ändra något som är relaterat till dessa moduler.
Se till att modulerna i2c-bcm2708 och i2c-dev ligger i /etc/modules
sudo nano /etc/modules
Lägg till dem på egna rader i filen.
i2c-bcm2708 i2c-dev
Öppna /boot/configt.txt
sudo nano /boot/config.txt
Lägg till följande rader längst ner i filen
dtparam=i2c1=on dtparam=i2c_arm=on
Starta sedan om:
sudo reboot
Verifiera att du har kontakt med i2c-kortet
Om du använder USB-adaptern kan du hoppa över detta steg
Installera paketet i2c-tools som innehåller i2cdetect:
sudo apt-get install i2c-tools
Kör sedan:
sudo i2cdetect -y 1
Vilket ger output som denna:
0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- 1b -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
Ser du 1b i resultatet hittas i2c-kortet (resultat "18" kan också förekomma)
Installation av OWFS
Snabba sättet
owfs finns som färdigt paket till Raspian Wheezy. Perfekt för dig som inte behöver/vill köra senaste versionen av owfs.
OBS OBS OBS 2021-03-29 - Det har kommit in rapporter att det inte går att kompilera owfs pga förändringar i GlibC. Det snabba sättet är rekommenderat sätt! För att installera skriver du:
sudo apt-get install owfs
Gå sedan till Testa installationen
Kompilera själv
Installera paket som behövs för att kunna kompilera och installera OWFS
sudo apt-get update sudo apt-get install automake autoconf autotools-dev gcc-4.7 libavahi-client-dev libtool libusb-dev libusb-1.0-0-dev libfuse-dev swig python2.7-dev tcl8.5-dev php5-dev
Svara JA på eventuella frågor.
Ladda ned senaste versionen av OWFS (2015-02-07 är senaste versionen 3.0p0.)
cd /usr/src sudo wget -O owfs-latest.tgz http://sourceforge.net/projects/owfs/files/latest/download
Packa upp OWFS
sudo tar xzvf owfs-latest.tgz
Kompilera och installera OWFS
cd owfs-3.0p0 (eller motsvarande för vilken version som är senast) sudo ./configure
Resultatet bör då bli
Current configuration: Deployment location: /opt/owfs Compile-time options: Caching is enabled USB is enabled I2C is enabled HA7Net is enabled W1 is enabled Multithreading is enabled Parallel port DS1410E is enabled TAI8570 barometer is enabled Thermocouple is enabled Zeroconf/Bonjour is enabled Debug-output is enabled Profiling is DISABLED Tracing memory allocation is DISABLED 1wire bus traffic reports is DISABLED Module configuration: owlib is enabled owshell is enabled owfs is enabled owhttpd is enabled owftpd is enabled owserver is enabled owexternal is enabled ownet is enabled ownetlib is enabled owtap is enabled owmon is enabled owcapi is enabled swig is enabled owperl is enabled owphp is DISABLED owpython is DISABLED owtcl is enabled
Sedan kompilering och installationen som kan ta upp till 30 minuter på Raspberry Pi A/B/A+/B+, och upp till 5 minuter på Raspberry Pi 2
A/B/A+/B+:
sudo make && sudo make install
Pi 2: (-j 4 gör att samtliga 4 kärnor används när owfs kompileras, vilket gör att det går mycket snabbare att kompilera)
sudo make -j 4 && sudo make install
Testa installationen
Har du kommit så här långt är det bara att testa din installation
Skapa först katalogen för OFWS att mounta i.
sudo mkdir /mnt/1wire
För att FUSE skall fungera smärtfritt måste konfigurationen justeras. Öppna konfigurationen för FUSE
sudo nano /etc/fuse.conf
Ändra
#user_allow_other
till
user_allow_other
Har du installerat owfs-paketet via apt-get install owfs kör du:
sudo /usr/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/
Har du följt hela guiden och kompilerat senaste versionen kör du:
sudo /opt/owfs/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/
Om du använder USB-adpatern DS9490R byter du ut "--i2c=ALL:ALL" mot "-u" - gäller oavsett installationssätt.
Kontrollera att det fungerar (ändra sensor till vad du har)
cat /mnt/1wire/10.F6877C010800/temperature
Om allt står rätt till så skall det nu komma upp en temperatur på skärmen
Se till så att OWFS startar automatiskt vid boot
För att se till så att OWFS skall starta automatiskt vid start av datorn så får vi lägga till ett lite startscript.
Skapa ett startscript i /etc/init.d/
cd /etc/init.d sudo nano start1wire.sh
Lägg till följande, och spara sen
#!/bin/bash ### BEGIN INIT INFO # Provides: start1wire # Required-Start: $local_fs $syslog # Required-Stop: $local_fs $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Start OWFS at boot time # Description: Start OWFS at boot time ### END INIT INFO # Starts OWFS /opt/owfs/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire
Om du installerat det färdiga paketet byts "/opt/owfs/bin/owfs" ut mot "/usr/bin/owfs" Om du använder USB-adapter DS9490R byter du ut "--i2c=ALL:ALL" mot "-u"
För att skriptet skall bli körbart måste vi lägga till körrättigheter på det
sudo chmod +x start1wire.sh
Sen för att se till att scriptet körs vid boot
sudo update-rc.d start1wire.sh defaults
Så nu skall OWFS startas automatiskt vid boot!
Fortsätt
För att fortsätta med loggning och att rita graf med RRDtool läs RRDtool HowTo