Outils pour utilisateurs

Outils du site


python:temperature

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 : 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()
python/temperature.txt · Dernière modification: 2017/04/11 15:13 (modification externe)