Raspberry PI

Raspberry PI - DS18B20

 Los temas a tratar son los siguientes:

  • Adición del Soporte OneWire
  • Determinar el número de Serie del DS18B20
  • Verificación de la temperatura utilizando Python

Adición del Soporte OneWire

La Raspberry PI utiliza el pin GPIO 04 par realizar la lectura de los valores de la temperatura del sensor DS10B20 y para comprobar el funcionamiento realizaremos en la Raspberry la conexión del sensor según se indica en el siguiente diagrama:

01 Conexiones

Figura 1: Diagrama de Conexión

El pin GPIO 04 es utilizado para trabajar con el protocolo One Wire y para habilitar el mismo es necesario editar el archivo de configuración para lo cual realizamos lo siguiente:

  • Procedemos a ingresar al archivo config.txt con el siguiente comando sudo nano /boot/config.txt
  • Nos dirigimos hacia el final del archivo y digitamos la siguiente linea  dtoverlay=w1-gpio
  • Finalmente guardamos y reiniciamos las raspberry con el comando sudo shutdown -r now

Determinar el número de Serie del DS18B20

Para determinar el numero de serie ejecutamos los siguientes comandos:

  • sudo modprobe w1-gpio
  • sudo modprobe w1-therm
  • cd /sys/bus/w1/devices
  • ls

02 Comandos

Figura 2: Comandos para adcion del soporte OneWire

Una vez ejecutado el comando ls se despliega el número de serie del sensor, así que con este número ejecutamos cd 28-0000063fce8a  y procedemos a verificar el valor de la temperatura, ejecutando more w1_slave , finalmente el valor será de 19,937 °C.

Verificación de la temperatura utilizando Python

Para realizar esto nos direccionaremos hacia el escritorio con el comando cd Desktop y crearemos un nuevo archivo llamado Temperatura.py con el comando sudo nano Temperatura.py

03 Python

Figura 3: Programa Python

Procedemos a digitar lo siguiente:

import os
import glob
import time

os.system('modprobe w1-gpio')
os.system('modprobe w1-therm')

_direccion = '/sys/bus/w1/devices/'
dispositivo_folder = glob.glob(_direccion + '28*')[0]
dispositivo_pad = dispositivo_folder + '/w1_slave'

def leer_temperatura():
    f = open(dispositivo_pad, 'r')
    lineas = f.readlines()
    f.close()
    return lineas

def determinar_valores():
    lineas = leer_temperatura()
    while lineas[0].strip()[-3:] != 'YES':
        time.sleep(0.2)
        lineas = leer_temperatura()
    igual_pos = lineas[1].find('t=')
    if igual_pos != -1:
        temp_string = lineas[1][igual_pos+2:]
        temp_c = float(temp_string) / 1000.0
        temp_f = temp_c * 9.0 / 5.0 + 32.0
        return temp_c, temp_f
while True:
 print("centigrados,fahrenheit")
 print(determinar_valores())
 time.sleep(1)

Seguidamente guardamos, salimos, se ejecuta el comando sudo python Temperatura.py y observaremos los valores de la temperatura.

04 Python DS18B20

Figura 4: Programa Python

Finalmente para salir de este lazo loop del programa de python presionamos las teclas Control + C

© 2017 Innova Domotics - Todos los derechos reservados