Lectura de los sensores DHT22 y BMP180


En la siguiente entrada voy a explicaros como instalar las librerías Python en la Raspberry para poder utilizar los sensores DHT22 y BMP180,  y cómo obtener los datos de dichos sensores.

Para empezar, tenéis que acceder a la RPI, ya sea mediante la conexión de pantalla, teclado y ratón o vía un cliente SSH (Putty) tal y como se ha hecho en las entradas anteriores. 

Es necesario que tengáis las herramientas de desarrollo Python instaladas en la RPI, así como tener habilitados los buses GPIO e I2C. En el caso de que os falte alguno de estos tres pasos, en mi anterior post encontaréis cómo se hace:



Una vez configurado, procedemos a descargarnos la librería de Adafruit para el DHT22 y la instalamos (para ello necesitaréis acceso a Internet en la RPI, también explicado en anteriores entradas):

    sudo apt-get install git
    git clone https://github.com/adafruit/Adafruit_Python_DHT.git
    cd Adafruit_Python_DHT
    sudo python setup.py install

A continuación, nos descargamos e instalamos la librería de Adafruit para el BMP180:

    git clone https://github.com/adafruit/Adafruit_Python_BMP.git
    cd Adafruit_Python_BMP
    sudo python setup.py install


La lectura de los sensores se realiza utilizando las funciones de sus respectivas librerías. El código se implementa en un archivo .py a fin de que las herramientas Python de la RPI puedan interpretarlo y ejecutarlo. Este archivo podéis crearlo directamente en la RPI, o en vuestro PC y posteriormente transferirlo a la RPI mediante un cliente FTP. Yo lo haré de la segunda forma. 

El código para obtener los datos de los sensores es el siguiente:

DHT22

  import RPi.GPIO as GPIO
  import Adafruit_DHT

  GPIO.setmode(GPIO.BCM)
  GPIO.setup(22,GPIO.IN)
  
  humedad,temperatura=Adafruit_DHT.read_retry(Adafruit_DHT.DHT22,22)
  print 'DHT22 -> T = '+str(temperatura)+'ºC'
  print '      -> H = '+str(humedad)+'%'

Importamos las librerías del GPIO y DHT22, configuramos el pin GPIO al que hemos conectado el sensor y finalmente, leemos los valores que proporciona el sensor y los enseñamos por pantalla.

BMP180

  import Adafruit_BMP.BMP085 as BMP085

  sensorBMP180=BMP085.BMP085()
  presion = sensorBMP180.read_pressure()
  print 'BMP180 -> P = '+ str(presion)+'Pa'
  
Importamos la librería del BMP180, creamos un objeto de tipo BMP085 del cual leemos la presión y la enseñamos por pantalla.

Para cargar el archivo .py en la Raspberry, utilizaremos un cliente FTP (WinSCP) que os podéis descargar en vuestro PC de la siguiente página:


Una vez instalado, seguid los siguientes pasos:

 I. Conectaros a la RPI mediante cable Ethernet o Wifi.
II. Abrir WinSCP, seleccionar el Protocolo: SFTP poner la IP de la RPI, Puerto: 22,  y usuario/contraseña de la RPI.

Fig .1: Transferencia de archivos a la Raspberry mediante WinSCP

Los directorios de la derecha pertenecen a la RPI, y los de la izquierda a nuestro PC. Podemos crear nuevas carpetas en ambos directorios con las barras de herramientas que presentan. Así pues, seleccionamos el archivo .py que hemos creado y lo subimos a la carpeta de la RPI que queramos (en mi caso he creado una carpeta 'Practica_TIC'). Una vez nos aparezca en los directorios de la RPI, podemos cerrar el WinSCP.

Por último, volved a acceder a la RPI mediante el método habitual que utilicéis y dirigios al directorio donde habéis guardado el archivo .py, en mi caso (/home/pi/Practica_TIC):

    cd /home/pi/Practica_TIC
    python Python_EstacionAmbiental.py

Espero que este post os sea de ayuda, y en caso de tener alguna duda o sugerencia, ¡Estaré encantado de responder a vuestros comentarios!




Comentarios