====== Capteur température MAX6675 ======
Un capteur MAX6675 de température UEXT pour olimex qui cause sur un bus spi.
et envoi en OSC 9001 : /TEMP ,f 26.25
il faut spidev pour python:
mkdir python-spi
cd python-spi
wget https://raw.github.com/doceme/py-spidev/master/setup.py
wget https://raw.github.com/doceme/py-spidev/master/spidev_module.c
wget https://raw.github.com/doceme/py-spidev/master/README.md
wget https://raw.github.com/doceme/py-spidev/master/CHANGELOG.md
sudo python setup.py install
le code python :
{{:python:temperature.py|}}
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Lecture du module max6675 capteur de température , UEXT Olimex
# transmission des donnees en OSC
import spidev,time,liblo,sys
PORTOSC=9001
IPOSC="localhost"
if len(sys.argv) > 1 :
PORTOSC=sys.argv[1]
if len(sys.argv) > 2 :
PORTOSC=sys.argv[1]
IPOSC=sys.argv[2]
# ouverture spidev du bus spi
spi=spidev.SpiDev()
spi.open(2,0)
# ouverture port OSC
try:
targetOSC = liblo.Address(IPOSC,PORTOSC)
except liblo.AddressError, err:
print str(err)
sys.exit()
# Lecture du max6675
while (True):
try:
x=spi.readbytes(2)
temp=((x[0] << 8 | x[1]) >> 3) * 0.25
# print temp
liblo.send(targetOSC,"/TEMP", temp)
time.sleep(1.0)
except KeyError:
pass
except KeyboardInterrupt:
quit()