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 updateInstalamos GIT
sudo apt-get install git-coreSe puede crear un carpeta llamada "librerías" donde almacenaremos los paquetes necesarios.
mkdir libreriasEl 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.gitA 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-devCambiamos de directorio hacia la carpeta en que nos hemos descargado la librería
cd Adafruit_Python_DHTFinalmente 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-smbusAhora es necesario habilitar en el nucleo de la RPi el bus I2C:
sudo raspi-configEn 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
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 tightvncserveruna 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 dhcpcd5Sin 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