Suche…


Beispiel - Temperatursensor

Schnittstelle des DS18B20 mit Himbeer-Pi

Anschluss des DS18B20 mit Himbeer-Pi

Geben Sie hier die Bildbeschreibung ein

Sie können sehen, dass es drei Terminals gibt

  1. Vcc
  2. Gnd
  3. Daten (Ein-Draht-Protokoll)

Geben Sie hier die Bildbeschreibung ein

R1 ist ein Widerstand von 4,7 kΩ, um den Spannungspegel zu erhöhen

  1. Vcc sollte an einen der 5-V- oder 3,3-V-Pins von Raspberry Pi (PIN: 01, 02, 04, 17) angeschlossen werden.
  2. Gnd sollte mit einem der Gnd-Pins von Raspberry Pi verbunden werden (PIN: 06, 09, 14, 20, 25).
  3. DATA sollte verbunden sein (PIN: 07)

Aktivieren der Ein-Draht-Schnittstelle von der RPi-Seite

  1. Melden Sie sich mit Putty oder einem anderen Linux / Unix-Terminal bei Raspberry Pi an.

  2. Öffnen Sie nach dem Login die Datei /boot/config.txt in Ihrem bevorzugten Browser.

    nano /boot/config.txt

  3. dtoverlay=w1–gpio nun diese Zeile dtoverlay=w1–gpio am Ende der Datei hinzu.

  4. Starten Sie nun den Raspberry Pi sudo reboot .

  5. sudo modprobe g1-gpio bei Raspberry Pi an und führen Sie sudo modprobe g1-gpio

  6. Führen Sie dann sudo modprobe w1-therm

  7. Gehen Sie nun in das Verzeichnis / sys / bus / w1 / devices cd /sys/bus/w1/devices

  8. Nun werden Sie ein virtuelles Verzeichnis Ihres Temperatursensors ausgehend von 28 - ******** gefunden.

  9. Gehe in dieses Verzeichnis cd 28-********

  10. Nun gibt es einen Dateinamen w1-Slave . Diese Datei enthält die Temperatur und andere Informationen wie CRC. cat w1-slave .

Schreiben Sie nun ein Modul in Python, um die Temperatur abzulesen

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)

Über dem Python-Modul wird die Temperatur gegen Adresse für unendliche Zeit gedruckt. Der Parameter RATE ist definiert, um die Frequenz der Temperaturabfrage vom Sensor zu ändern oder anzupassen.

GPIO-Pin-Diagramm

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow