Python Language Exemple - Capteur de température


Exemple

Interfaçage de DS18B20 avec Raspberry Pi

Connexion de DS18B20 avec Raspberry Pi

entrer la description de l'image ici

Vous pouvez voir qu'il y a trois terminaux

  1. Vcc
  2. Gnd
  3. Données (protocole à un fil)

entrer la description de l'image ici

R1 est une résistance de 4,7k ohms pour augmenter le niveau de tension

  1. Vcc doit être connecté à l'une des broches 5v ou 3.3v de Raspberry pi (PIN: 01, 02, 04, 17).
  2. Gnd devrait être connecté à n’importe quelle punaise de Raspberry pi (PIN: 06, 09, 14, 20, 25).
  3. DATA doit être connecté à (PIN: 07)

Activer l'interface à un fil du côté RPi

  1. Connectez-vous à Raspberry Pi en utilisant un mastic ou tout autre terminal Linux / Unix.

  2. Après la connexion, ouvrez le fichier /boot/config.txt dans votre navigateur préféré.

    nano /boot/config.txt

  3. Ajoutez maintenant la ligne dtoverlay=w1–gpio à la fin du fichier.

  4. Maintenant, redémarrez le Raspberry Pi sudo reboot .

  5. Connectez-vous à Raspberry pi et exécutez sudo modprobe g1-gpio

  6. Ensuite, lancez sudo modprobe w1-therm

  7. Maintenant, allez dans le répertoire / sys / bus / w1 / devices cd /sys/bus/w1/devices

  8. Vous allez maintenant découvrir un répertoire virtuel créé à partir de votre capteur de température à partir du 28 - ********.

  9. Allez dans ce répertoire cd 28-********

  10. Maintenant, il y a un nom de fichier w1-slave , Ce fichier contient la température et d'autres informations comme le CRC. cat w1-slave .

Maintenant, écrivez un module en python pour lire la température

import glob
import time

RATE = 30
sensor_dirs = glob.glob("/sys/bus/w1/devices/28*")

if len(sensor_dirs) != 0:
    while True:
        time.sleep(RATE)
        for directories in sensor_dirs:
            temperature_file = open(directories + "/w1_slave")
            # Reading the files
            text = temperature_file.read()
            temperature_file.close()
            # Split the text with new lines (\n) and select the second line.
            second_line = text.split("\n")[1]
            # Split the line into words, and select the 10th word
            temperature_data = second_line.split(" ")[9]
            # We will read after ignoring first two character.
            temperature = float(temperature_data[2:])
            # Now normalise the temperature by dividing 1000.
            temperature = temperature / 1000
            print 'Address : '+str(directories.split('/')[-1])+', Temperature : '+str(temperature)

Le module ci-dessus python imprimera la température en fonction de l'adresse pour une durée infinie. Le paramètre RATE est défini pour modifier ou ajuster la fréquence de la requête de température du capteur.

Diagramme de broche GPIO

  1. [ https://www.element14.com/community/servlet/JiveServlet/previewBody/73950-102-11-339300/pi3_gpio.png][3]