Avant de commencer, assurez-vous que le pilote SPI est chargé sur votre distribution Raspberry Pi.
L’exemple Python suivant lit chaque seconde à partir d’un capteur de température analogique TMP36. Il convertit les données brutes de température en millivolts, degrés Celsius et Fahrenheit. Pour une communication SPI fiable et efficace (pas de bit banging), l’échantillon dépend de la py-spidev Module Python. À installer py-spidev, procédez comme suit, en supposant que les packages ‘git’ et ‘python-dev’ sont déjà installés sur le Raspberry Pi:
git clone https://github.com/doceme/py-spidev.git cd / py-spidev python setup.py install
Ensuite, à l’aide de l’éditeur «nano», procédez comme suit:
nano tmp36.py
Collez l’exemple de code ci-dessous dans l’éditeur, enregistrez-le et quittez.
Ensuite, rendez exécutable tmp36.py et exécutez-le.
chmod + x tmp36.py ./tmp36.py
La sortie du script devrait ressembler à ceci:
température brute = 206 mV = 663,8671875 Celsius = 16,38671875 Fahrenheit = 61,49609375
Ouais, mon bureau est un peu nippy en ce moment;)
#! / usr / bin / python
importer spidev
temps d’importation
spi = spidev.SpiDev ()
spi.open (0,0)
# lire les données SPI à partir de l’une des huit entrées possibles du MCP3008 (0 à 7)
def readadc (adcnum):
si ((adcnum> 7) ou (adcnum <0)):
retour -1
r = spi.xfer2 ([1,(8+adcnum)<<4,0])
adcout = ((r[1]& 3) << 8) + r[2]
retourner adcout
# Capteur de température TMP36 connecté à l’entrée ADC 0
TempSensor = 0
tandis que True:
rawTemp = readadc (TempSensor)
# Convertissez l’entrée ADC brute en milliVolts, degrés Celsius et Fahrenheit
milliVolts = rawTemp * (3300.0 / 1024.0)
tempCelsius = ((milliVolts – 100,0) / 10,0) – 40,0
tempFahrenheit = (tempCelsius * 9.0 / 5.0) + 32
imprimer « raw temp = », rawTemp
imprimer « mV = », milliVolts
imprimer « Celsius = », tempCelsius
imprimer « Fahrenheit = », tempFahrenheit
time.sleep (1)
Auteur original: Fabien Royer, nwazet.com