GithubHelp home page GithubHelp logo

inakidml / proyecto-2017 Goto Github PK

View Code? Open in Web Editor NEW

This project forked from egibide-dam/proyecto-2017

0.0 2.0 0.0 11.44 MB

Proyecto DAM 2017.

License: Apache License 2.0

Java 25.77% HTML 33.56% PHP 6.72% CSS 25.42% JavaScript 8.53%

proyecto-2017's Introduction

Proyecto DAM 2017

Iker e Iñaki

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.

Introducción

El proyecto consta de dos partes.

  1. 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.
  2. Control con termostato y presencia mediante la Web y la aplicación Java. Evitando las reglas de Openhabian.

Control de calefactor con 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.

Material necesario:

Instalación

  • Raspberry Pi

  • 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.

    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
  • OpenHabian

    • Accedemos a nuestra raspberry desde un explorador.

    openhabian

    • Añadimos los "Bindings" necesarios.

    bindmqtt

    bindyahoo

    bindnetwork

    • Añadimos los telefonos móviles.

      • Pulsamos sobre el simbolo +

    inboxadd

    • Entramos en Network Binding.

    addphone

    • 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
    

sitemap

Tips

  • 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

Control de calefactor desde Web

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.

web http://10.1.100.100/WebProyecto

GitHub Page

proyecto-2017's People

Contributors

ikerlorente11 avatar ijaureguialzo avatar inakidml avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.