Buscar..


Ejemplo - sensor de temperatura

Interfaz de DS18B20 con Raspberry pi

Conexión de DS18B20 con Raspberry pi

introduzca la descripción de la imagen aquí

Se puede ver que hay tres terminales.

  1. Vcc
  2. Gnd
  3. Datos (protocolo de un cable)

introduzca la descripción de la imagen aquí

R1 es una resistencia de 4.7k ohmios para elevar el nivel de voltaje

  1. Vcc debe conectarse a cualquiera de los pines 5v o 3.3v de la Raspberry pi (PIN: 01, 02, 04, 17).
  2. Gnd debe estar conectado a cualquiera de los pines Gnd de Raspberry pi (PIN: 06, 09, 14, 20, 25).
  3. Los datos deben estar conectados a (PIN: 07)

Habilitando la interfaz de un cable desde el lado RPi

  1. Inicie sesión en Raspberry pi utilizando putty o cualquier otro terminal linux / unix.

  2. Después de iniciar sesión, abra el archivo /boot/config.txt en su navegador favorito.

    nano /boot/config.txt

  3. Ahora agregue esta línea dtoverlay=w1–gpio al final del archivo.

  4. Ahora reinicie el Raspberry pi sudo reboot .

  5. Inicia sesión en Raspberry pi y ejecuta sudo modprobe g1-gpio

  6. Luego ejecute sudo modprobe w1-therm

  7. Ahora vaya al directorio / sys / bus / w1 / devices cd /sys/bus/w1/devices

  8. Ahora descubrirá un directorio virtual creado con su sensor de temperatura a partir de 28 - ********.

  9. Ir a este directorio cd 28-********

  10. Ahora hay un nombre de archivo w1-slave , este archivo contiene la temperatura y otra información como CRC. cat w1-slave .

Ahora escribe un módulo en python para leer la temperatura

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)

Sobre el módulo de python se imprimirá la temperatura frente a la dirección durante un tiempo infinito. El parámetro RATE se define para cambiar o ajustar la frecuencia de la consulta de temperatura del sensor.

Diagrama de pin GPIO

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow