Proyecto (II): Configuración del Software - Una bonita ración de...

NUEVAS ENTRADAS

jueves, 15 de marzo de 2018

Proyecto (II): Configuración del Software


Con el objeto de poder comenzar a escribir el script de Python que obtenga mediciones de los sensores y lo envíe al canal público de ThingSpeak 391121, debemos preguntarnos qué tipo de librerías y metodología vamos a seguir para programar.

En nuestro caso hemos trabajado contra la Rpi programando con el IDE Thonny de Raspbian. Antes de nada se deben instalar las librerías que nos permitan leer de los sensores. Por tanto para el uso del sensor DHT-22 escribimos en la consola de Raspbian:

Como punto de partida instalaremos GIT en nuestra Rpi para poder tener disponible el control de versiones.

Actualizamos los paquetes instalados

sudo apt-get update
Instalamos GIT

sudo apt-get install git-core
Se puede crear un carpeta llamada "librerías" donde almacenaremos los paquetes necesarios.

mkdir librerias
El fabricante original del sensor DHT-22 Adafruit, nos provee a través de un proyecto en GitHub la librería que vamos a instalar, por tanto, clonamos el proyecto

git clone https://github.com/adafruit/Adafruit_Python_DHT.git
A partir de esta linea es cuando se procede a la instalación de la librería. Primero instalamos el software que nos permita agregar librerías sobre Python

sudo apt-get install build-essential python-dev
Cambiamos de directorio hacia la carpeta en que nos hemos descargado la librería

cd Adafruit_Python_DHT
Finalmente instalamos la librería:

sudo python setup.py install
¡Bien! ahora ya podremos utilizar sensores de la familia DHT.
El próximo paso es configurar las dependencias necesarias para usar el sensor BMP-180. Este sensor es accesible por la RPi vía el Bus I2C . El siguiente comando nos instalará de forma automática  'i2c-tools' , pero se puede instalar de manera manual con sudo apt-get install i2c-tools . De forma automática haremos:

sudo apt-get install python-smbus
Ahora es necesario habilitar en el nucleo de la RPi el bus I2C:

sudo raspi-config
En la siguiente interfaz gráfica habilitaremos el Bus I2C, para ello:


-Adavanced Options/ A7 - Habilitar kernel I2C / Aceptamos en Habilitar interfaz I2C.

Recibiremos un mensaje que nos informa de que ahora el bus I2C está habilitado por defecto.

Ahora los pasos a realizar son similares a los del sensor previo, ejecutamos:

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

Realizamos siempre una actualización de los paquetes instalados para asegurarnos de tener siempre la última versión. Posteriormente nos clonamos al directorio de trabajo el proyecto de la librería propia del sensor BMP , cambiamos el directorio al de la libreria y por último la instalamos.


Nos pareció interesante configurar la tarjeta para poder acceder a ella de forma remota desde un portátil o cualquier otro equipo ya que de esa forma no dependíamos de tener la RPi conectada a un monitor. Nos decantamos por VNC:


Los pasos para configurarlo en la Rpi los dejamos a continuación, en windows es tan simple como instalar el software 'VNC viewer'

sudo apt-get update
sudo apt-get upgrade
sudo apt-get install tightvncserver
una vez instalado, para configurarlo es tan simple como poner una password y decir que no queremos el servidor únicamente para observar.

Por último, para terminar con esta entrada de configuración, era requisito del proyecto dotar a la placa de la capacidad a conectarse y poder trabajar con redes WiFi Eduroam (del ámbito académico).
Debemos desinstalar de nuestra placa el paquete 'dhcp5' (deshabilitamos el protocolo dhcp), para ello:

sudo apt-get remove dhcpcd5
Sin protocolo dchp no tendremos la capacidad de requerimiento IP por lo que deberemos modificar dentro de la ruta : etc/network/interfaces un fichero llamado "interfaces" que no tiene otra función más que proveer de la interfaces de red conocidas por la placa. En nuestro caso deberemos realizar tantas interfaces como a redes wifi nos queramos conectar.

El fichero es accesible vía consola pero nosotros al ser "hijos de windows" utilizamos la interfaz gráfica de raspbian y damos permisos de root a la edición del fichero abriéndolo como "sudo leafpad".  Lo modificamos de tal forma que:


auto lo 
iface lo inet loopback
 
allow-hotplug eth0                                  
iface eth0 inet dhcp                                
 
allow-hotplug wlan0                                 
iface wlan0 inet manual                             
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf    
iface MOVISTAR_1041 inet dhcp                                
iface eduroam inet dhcp                             

Una vez realizado eso, debemos modificar otro fichero situado en la ruta: etc/wpa-supplicant/wpa-supplicant.conf y de la misma forma que el fichero anterior escribimos:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
   update_config=1
 
   network={
     ssid="MOVISTAR_1041"             
     key_mgmt=WPA-PSK          
     psk="XXXXXXX"             
     id_str="MOVISTAR_1041"             
   }
 
   network={                               
     ssid="eduroam"          
     key_mgmt=WPA-EAP        
     eap=TTLS                             
     phase2="auth=PAP"        
     identity="XXXXXXXXX"      
     password="XXXXXXXXX"      
     id_str="eduroam"          
   }

Por último, para verificar que todo funciona correctamente (en los campos XXXXX colocar la identidad académica de cada usuario) reiniciaremos la placa con el comando:

sudo reboot

No hay comentarios:

Publicar un comentario