OWFS på Rasperry Pi
Här följer en beskrivning för att komma igång med OWFS på Raspberry Pi tillsammans med i2c 1wire module
Bakgrund
Raspberry Pi är en billig plattform som lämpar sig ypperligt för att köra OWFS på.
Mål
Att få igång 1-wire på Raspberry Pi via i2c 1wire module.
Programvaror
- Raspian Wheezy
- OWFS (senast testat på 2.8p20)
Hårdvara
Raspberry Pi i2c 1wire breakout board
Beskrivning
Denna beskrivning bygger på att du har en helt ren installation av Raspbian Wheezy.
Moduler
Se till att modulen till i2c-bussen inte ligger i blacklist
sudo nano /etc/modprobe.d/raspi-blacklist.conf
Lägg till "#" före
blacklist i2c-bcm2708
så raden ser ut så här:
#blacklist i2c-bcm2708
Se till att modulen i2c-dev ligger i /etc/modules
sudo nano /etc/modules
Lägg till i2c-dev på en egen rad i filen.
Installation av OWFS
Installera lite paket som behövs för att kunna installera och kompilera OWFS senare.
sudo apt-get update sudo apt-get install automake autoconf autotools-dev gcc-4.7 libtool libusb-dev libfuse-dev swig python2.6-dev tcl8.4-dev php5-dev i2c-tools
Svara JA på eventuella frågor.
Ladda ned senaste versionen av OWFS (när guiden skrivs är det 2.8p20.)
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-2.8p20 (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 själva installationen som kan ta upp till 40 minuter
sudo make && sudo make install
Skapa katalogen för OFWS att mounta i.
sudo mkdir /mnt/1wire
För att FUSE skall funka så måste vi även lägga till en sak i konfigurationen för den. Öppna konfigurationen för FUSE
sudo nano /etc/fuse.conf
Ändra
#user_allow_other
till
user_allow_other
Nu skall det bara vara att starta OWFS!
sudo /opt/owfs/bin/owfs --i2c=ALL:ALL --allow_other /mnt/1wire/
Byt ut -u (USB) mot -d /dev/ttyS0 för att använda en seriell adapter istället.
Kontrollera att det funkar (ä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ämren
Se till så att OWFS startar automatiskt vid boot
För att se till så att OWFS skall starata automatiskt vi 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
(Sektionen "INIT INFO" behövs för att slippa få ett felmeddelande om "missing LSB information" när man kör update-rc.d enligt nedan.)
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