Repositorio del módulo de proyecto de Desarrollo de Aplicaciones Multiplataforma en Egibide Arriaga.
La carpeta docs contiene el sitio web con la documentación.
El proyecto consta de dos partes.
- Recepción de datos del Photon en servidor mosquitto, registro en base de datos MySQL a través de aplicación Java y visualización de gráficas en página Web. Control de la calefacción mediante plataforma OPENHABIAN, creando "things", items y reglas. Regulación con termostato y presencia detectada por la luz o telefonos móviles.
- Control con termostato y presencia mediante la Web y la aplicación Java. Evitando las reglas de Openhabian.
Controlaremos un calefactor con una Raspberry Pi con la distribución OpenHabianPi instalada, un stick USB Zwave y un switch Zwave. Recibiremos los datos de la estancia desde una placa Particle Photon, que a través del protocolo MQTT publica estos datos en un "Topic" en el "Broker" Mosquitto instalado en la máquina virtual scotchBox. Con una aplicación desarrollada en JAVA nos suscribimos al "topic" y registramos la temperatura, humedad y luz en una base de datos MySQL. Estos datos podremos consultarlos mediante una Web que nos mostrará una gráfica con el valor del instante y tres gráficas con el historico de los tres datos almacenados, temperatura, humedad y luz. La web, lee los registros de la base de datos MySQL.
- Raspberry Pi
- USB Zwave
- Enchufe Zwave
- Particle Photon
- Adafruit DHT22
- Fotoresistor, viene con el photon
- Alguna resistencia
-
Raspberry Pi
- Instalación de OpenHabianPi, lo más cómodo es grabar una imagen del SO en un tarjeta SD.
-
Particle Photon
- Hacemos la puesta en marcha del Photon, subscribiendolo a nuestra red Wi-Fi.
- Nos logeamos en la nube de Particle.
- Montamos el circuito según el esquema.
- Grabamos el sketch en nuestro photon.
-
Vagrant scotchBox
- Instalamos la máquina virtual vagrant scotchBox.
- En el fichero Vagrantfile que se encuentra en la carpeta de la máquina virtual vagrant, añadimos la siguiente línea:
config.vm.network "public_network", ip: "10.1.100.100", netmask: "255.255.255.0"
- Con esto habilitamos el acceso a la máquina virtual desde la red inforwifi, para que el photon se pueda comunicar con Mosquitto.
- Arrancamos la máquina y nos conectamos por ssh.
- Creamos la base de datos con el siguiente script.
- Instalamos Mosquitto.
sudo apt update sudo apt install mosquitto
- Instalamos Java runtime.
sudo apt install default-jre
- Descargamos el repositorio en la carpeta home.
cd /home sudo git clone https://github.com/inakidml/proyecto-2017
- Ejecutamos el programa java.
cd proyecto-2017 cd Java_MQTT_MySQL cd builds java -jar proy.jar
- Copiamos la web al directorio de apache
sudo cp -r /home/proyecto-2017/WebProyecto /var/www/public/WebProyecto
- Accedemos a la web del proyecto desde el explorador de la máquina anfitrión, en la dirección http://192.168.33.10/WebProyecto/
-
OpenHabian
- Accedemos a nuestra raspberry desde un explorador.
- Añadimos los "Bindings" necesarios.
-
Añadimos los telefonos móviles.
- Pulsamos sobre el simbolo +
- Entramos en Network Binding.
-
Configuramos los terminales con su dirección IP.
-
En Yahoo weather creamos una localización nueva.
-
Nos conectamos por ssh a la raspberry para copiar varios ficheros. La carpeta contiene todos los ficheros necesarios con la estructura de las carpetas.
sudo cp -r /home/proyecto-2017/openhab2 etc/openhab2
- Ya podemos acceder al sitemap de control del proyecto, en el que podemos seleccionar la temperatura del termostato o activar las reglas de presencia. También podemos ver los datos climaticos de Vitoria.
http://10.1.3.14:8080/basicui/app?sitemap=default
- En el PaperUI de openhab se crean los "things", pero después, debemos crear un item por cada thing para poder utilizarlo en las reglas.
- Necesitamos saber el ID del "thing" para poder referenciarlo desde los items.
- El sitemap default se actualiza automaticamente. Cualquiera con otro nombre, no.
- Si queremos que la aplicación arranque desde el inicio del sistema operativo como servicio:
cd /home/proyecto-2017
cp scotchbox/proyecto /etc/init.d/proyecto
cd /etc/init.d
sudo chmod +x proyecto
sudo update-rc.d proyecto start 20 2 . stop 20 0 1 6 .
- Podemos parar el servicio con el siguiente comando:
sudo services proyecto stop
- También podemos arrancar el servicio con el siguiente comando:
sudo services proyecto start
Hemos creado una web con un panel de control del termostato. Este control se realiza mediante la aplicación Java, a la cual le enviamos los datos del termostato por un socket, así, seguira funcionando una vez cerremos la web.