SolarMobi

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

Introducción

Proxecto de innovación premiado na Resolución do 22 de maio de 2018 da Dirección Xeral de Educación, Formación Profesional e Innovación Educativa pola que se resolven os premios para o desenvolvemento de proxectos de innovación tecnolóxica ou científica e proxectos de innovación didáctica no ámbito da Formación Profesional en centros públicos dependentes da Consellería de Cultura, Educación e Ordenación Universitaria, onde se impartan ensinanzas de Formación Profesional, convocados na resolución do 4 de decembro de 2017.

Obxetivos do proxecto

No proxecto SolarMobi deseñouse e construíuse unha instalación de enerxía solar fotovoltaica que alimenta a un punto de recarga de vehículos eléctricos.

A instalación está xestionada por unha aplicación web propia deseñada para tal efecto e que é quen de xestionar un conxunto amplo de estacións, puntos de carga e clientes con un ou varios vehículos eléctricos. Esta aplicación web tamén da soporte informático para a xestión de quendas de recarga, así toda a comunidade educativa poderá darse de alta como usuario ao través da web, e solicitar unha quenda de recarga.

A recarga dos vehículos será totalmente gratuíta para toda a comunidade educativa sempre que estea dispoñible enerxía renovable.

Recursos

Fonte de enerxía fotovoltaica

Estructura

Materiais empregados

Consulta de enerxía e información

A enerxía fotovoltaica xerada, é xestionada a través do inversor. Neste inversor temos instalada unha Raspberry que se encarga de transmitir as medicións de enerxía xerada ó servidor central SolarMobi.

Na web de SolarMobi, as persoas encargada de administrar cada centro, poderán ver as gráficas de enerxía dende o menú: Admin. -> Gráficos Nesa opción poderemos seleccionar ano, mes e día que queremos consultar. Por defecto ó acceder amósase a gráfica do día actual.

Exemplo de gráfico de enerxía obtido en SolarMobi:

SolarMobi-grafico-energia-generada.jpg

Tamén se poderán obter as medicións dende a API REST de SolarMobi: API REST SolarMobi

Cargador de coches eléctricos marca Legrand

Características

As características do cargador Legrand empregado en SolarMobi son as indicadas no seguinte gráfico: Trátase dunha borna monofásica de 230V cunha potencia de 3.7/4.6kW.

Dispón de 2 conectores:

  • 1 de tipo doméstico
  • 1 de tipo vehículos eléctricos EV (Modo 3)


Cargador-legrand-059030.jpg

Rexistros dispoñibles

O cargador Legrand facilita unha serie de rexistros que se poden consultar a través de modBus.

Eses rexistros dan diferentes tipos de información e permiten realizar diferentes tarefas como activar o cargador, parar a carga, consultar o estado, etc.

Aquí está unha lista completa en PDF dos rexistros dispoñibles no cargador Legrand: Archivo:Green-UP-Charging-Station-Registros.pdf

Metodoloxía empregada

Para a realización do proxecto contamos cun cargador Legrand monofásico de 230V ref.: 0590030 de 3.7 /4.6kW

Raspberry Pi en cargador Legrand

Para a toma de datos e activación/desactivación da carga, empregarase unha Raspberry Pi 3 conectaremos ao cargadador Legrand. A conexión farase cun adaptador USB RS485 e Modbus que irá, no lado da Raspberry conectado a un porto USB e, no lado do cargador, ao Modbus. Veremos nos seguintes apartados os pasos a seguir para acadar esta configuración.

Instalación básica

Raspberry Pi 3

A configuración que se lle debe realizar á Raspberry que fai de enlace có cargador é a seguinte:

# Instalar a imaxen por defecto na microSD
# Conectarlle un monitor e teclado.
# Acceder có usuario: pi e contrasinal: raspberry

# Configuración de dirección IP:
# Editar el siguiente archivo:
nano /etc/dhcpcd.conf

# Añadir al final del archivo lo siguiente (ejemplo):
# Configuracion IP de Ejemplo:
interface eth0
static ip_address=10.0.0.15/16
static routers=10.0.0.254
static domain_name_servers=8.8.8.8
#static ip6_address=fd51:42f8:caae:d92e::ff/64

# Para habilitar la wifi:
sudo raspi-config

2 Network Options  (Configure network settings)
N2 Wi-fi  (Enter SSID and passphrase)

# Configuración xenérica de raspberry:
sudo raspi-config
# Ver interfacing-options para habilitar SSH

# Configuración de IP estática:
nano /etc/dhcpcd.conf

# Editar os parámetros correspondentes:

# Actualización da Raspberry:
nano /home/pi/updates.sh
#!/bin/bash
clear
apt update
apt upgrade
apt dist-upgrade
apt auto-remove
rpi-update

# Cambiar permisos:
chmod 755 /home/pi/updates.sh

# Executar o script como sudo para actualizar a Raspbery
sudo /home/pi/updates.sh

Instalación software adicional y aplicación

Necesitaremos instalar algunhas librerías máis para traballar có adaptador USB RS485 e Modbus:

Modbus-USB.jpg

# Como root: 
sudo su

# Python xa aparece instalado por defecto:

# Instalamos python-pip
apt-get install python-pip

# Instalamos o módulo minimalmodbus:
pip install minimalmodbus

# Copiaremos os arquivos do .zip á carpeta /home/pi:

# Consultaremos có administrador do centro para que nos envíe o arquivo estacion.json correspondente á nova estación.
# O arquivo é necesario para que a Raspberry poida comunicar coa central:

# Exemplo de arquivo específico para unha estación:

{
	"idestacion":"35",
	"nombreestacion":"Estación Legrand",
	"codigoseccom":"7382xr5",
	"servidor_ws":"solarmobi.iessanclemente.net",
	"puerto_ws":"8080"
}

# Permisos ó script de arrancar node:
chmod 755 /home/pi/legrand/arrancarnode.sh

# Editaremos a tarea do cron para que se arranque o proceso arrancarnode.sh no reboot:
crontab -e

# Engadiremos a seguinte liña:

# Arranque de client.js en reboot
@reboot /home/pi/legrand/arrancarnode.sh

# Instalación de Node.js versión 11 como root:
curl -sL https://deb.nodesource.com/setup_11.x | bash -
apt-get install -y nodejs

# Instalación de forever:
npm install -g forever

# Instalación de módulos adicionais (xa incluídos no .zip), pero si queremos executaremos o seguinte:
cd /home/pi/legrand
npm install log-timestamp
npm install socket.io-client

Conexión do conversor RS485 ó cargador eléctrico Legrand

Aspecto da conexión do adaptador USB RS485 para a comunicación có cargador eléctrico LEGRAND:

Conexion-USB-RS485-Cargador-Legrand-1.jpg Conexion-USB-RS485-Cargador-Legrand-2.jpg Conexion-USB-RS485-Cargador-Legrand-3.jpg Conexion-USB-RS485-Cargador-Legrand-4.jpg

Interacción con aplicación SolarMobi y cargador Legrand

Cada vez que se da de alta un Centro en solarMobi (tenemos un inversor y varias estaciones). El inversor será el que envíe los datos a la central SolarMobi y para ello hay que copiar un fichero de configuración específico para cada inversor de cada centro. Ese fichero lo genera la aplicación y se llama inversor.json

Hay que leer ese fichero y procesarlo ya que ahí están varios de los datos necesarios para hacer la petición de envío de datos a SolarMobi.

Contenido de ese fichero:

{
    "idcentro":"1",
    "centronombre":"Universidade Laboral",
    "codigoseccom":"6cf232342sdfasd",
    "api":"https://solarmobi.iessanclemente.net/api/v1/mediciones/1"
}


Para enviar las mediciones a SolarMobi, hay que leer ese fichero inversor.json (procesarlo para sacar de ahí parte de la información que se necesita para enviar los datos). El envío de datos se puede hacer con una petición CURL de tipo POST.

Información de la petición:
    Método de envío POST
    URL de envío, es la dirección que aparece en el campo "api" (se saca de inversor.json)
    Campos a enviar:
        codigoseccom: (se saca de inversor.json)
        medicion: Será una cadena JSON con los siguientes campos:
            {"fechahora":"2019-03-20 06:55:02","potenciatotalac":"8500","energiadiaria":"105000","energiatotal":"2500","pool":"7200"}


Como respuesta de la petición a SolarMobi podemos obtener:

Si se han grabado correctamente los datos obtendremos un mensaje .json con este contenido (cabecera 201 Created):

{"status":"ok","datos":"Energia recibida correctamente."}

Si faltan datos en la petición (cabecera 422 Unprocessable Entity):

{"status":"error","datos":"Faltan datos de medicion."}

Si el códigoseccom (código de seguridad de la comunicación) es incorrecto (cabecera 403 Forbidden):

{"status":"error","datos":"Codigo de seguridad de comunicacion es incorrecto"}

Comunicación con servidor Web

Raspberry Pi en Inversor SMA

Instalación básica

Instalación software adicional e aplicación

Programación de aplicación web

Tecnoloxías empregadas

A aplicación web foi programada empregando as seguintes linguaxes:

  • PHP (backend)
  • HTML5, CSS, JavaScript, jQuery (frontend)
  • NodeJs (Backend cargador Legrand e servidor central)
  • Python (backend cargador Legrand)

A comunicación entre as diferentes estructuras amósase no seguinte gráfico:

GRAFICO DE INTERCONEXIONADO

Comunicación con Raspberry Pi

Servizo de notificacións a través do Bot de Telegram @SolarMobiBot

Aplicación web SolarMobi

Aspecto da aplicación

Cómo rexistrarse na aplicación

1.- Para poder facer uso da aplicación hai que rexistrarse a través do enlace Rexistro. Cubriremos o formulario seguinte e seleccionaremos o centro ó cal pertencemos.

Solarmobi-formulario-rexistro.jpg

2.- Ó pulsar en Rexistrarse recibiremos unha mensaxe como ésta:

Solarmobi-formulario-confirmacion-rexistro.jpg

3.- A continuación teremos que consultar o noso correo para validar o rexistro. Recibiremos un correo similar a éste:

Solarmobi-formulario-validacion-rexistro.jpg

4.- Pulsaremos no enlace para confirmar o noso correo e mostrarásenos algo similar a:

Solarmobi-formulario-validacion-rexistro-confirmacion.jpg

5.- Agora teremos que esperar a confirmación por parte do administrador do centro para que nos permita acceder á web. Cando confirme a nosa conta recibiremos unha mensaxe no correo similar a:

Solarmobi-validacion-admincentro-rexistro.jpg

Menú de Cliente de SolarMobi

Cando accedemos á web de SolarMobi (unha vez validada a nosa conta polo administrador do centro), teremos as seguintes opcións:

Opción Idioma

Dende aquí poderemos seleccionar o idioma da interfaz, en Galego ou Español.

Solarmobi-menu-idioma.jpg

Opción Xestión

As opcións de xestión que temos como usuarios son as seguintes:

Solarmobi-menu-xestion.jpg

Control de carga

Dende aquí poderemos controlar a carga do noso vehículo. Si temos unha reserva feita e está activa (estamos dentro do horario de comenzo e de final da reserva), entón dende aquí poderemos Activar a Carga, Parar a Carga ou Consultar o estado da mesma e Tempo restante da reserva ou ver o historial de cargas feitas.

As miñas reservas

Nesta sección poderemos facer reservas de carga, tendo en conta as seguintes características das reservas:

  • Soamente se permite unha reserva activa por cliente.
  • Non se poderá facer outra reserva ata que a reserva activa caduque ou sexa borrada antes de que comece.
  • Nas reservas activas (aquela que xa comenzou e non rematou), poderemos parar a carga ou activar a carga cando o desexemos.
  • As cargas pararanse automaticamente cando chegue a hora de remate.
  • Antes de comezar a reserva o cliente recibirá unha notificación (por correo electrónico e Telegram) 1 hora e 30 minutos antes da reserva, para recordarlle que ten unha reserva.
  • Cando remate a reserva o cliente recibirá unha notificación (por correo electrónico e Telegram) informando do remate da reserva e da carga do vehículo (si estivera cargando).
  • Exemplo de creación dunha reserva:

Solarmobi-creacion-reserva.jpg

  • Exemplo dunha reserva activa:

Solarmobi-reserva-activa.jpg

  • Exemplo dunha reserva programada:

Solarmobi-reserva-programada.jpg

Estacións de carga

Aquí poderemos ver todas as estacións de carga dispoñibles no noso centro.

Nese listado amósase a dirección onde se atopa a estación, así como as coordenadas e o estado da mesma. Na parte inferior do listado temos unha lenda có significado das iconas.

Solarmobi-estado-estaciones.jpg

Vehículos

Para poder facer unha reserva é necesario ter dado de alta polo menos 1 vehículo.

Na sección de vehículos poderemos dar de alta novos vehículos dos que somos propietarios/as, editar a información dos mesmos ou ben borrar o automóvil.

Solarmobi-listado-vehiculos.jpg

Para dar de alta un novo vehículo teremos que facer click na icona có simbolo +

Solarmobi-alta-vehiculos.jpg

Telegram
  • A sección Telegram permítenos rexistrarnos no Bot SolarMobiBot. A través deste bot poderemos xestionar a carga do noso vehículo eléctrico, así como parar a carga, ver o estado da mesma, etc.

Solarmobi-telegram.jpg

Os meus datos
  • Para editar os nosos datos persoais, poderemos facelo dende esta opción:

Solarmobi-datos-persoais.jpg

Administrador de Centros en SolarMobi

Menú Administración

  • Este menú aparecerá cando somos administradores/as de Centros.
  • As opcións dispoñibles son as seguintes:
Gráficos
  • Permítenos ver un gráfico coa enerxía xerada polos paneis solares do Centro.
  • Ademáis poderemos seleccionar unha data específica para visualizar os datos.

Solarmobi-graficos.jpg

Estacións
  • Permítenos dar de alta novas estacións de carga pertencentes ó Centro que administramos.

Solarmobi-alta-estacions.jpg

  • Tamén poderemos Editar/Borrar as estacións e tamén descarga o aquivo de configuración que se deberá instalar na Raspberry da estación.

Solarmobi-listado-estacions.jpg

  • Pulsando na latitude e lonxitude da estación abriráse un mapa coa localización da estación.

Solarmobi-mapa-estacions.jpg

Medicións
  • Nesta sección podemos ver as derradeiras medicións recibidas dende o Inversor que recibe a enerxía dos paneis solares.

Solarmobi-medicions.jpg

Usuarios
  • Listado dos usuarios dados de alta no noso centro:

Solarmobi-listado-usuarios.jpg


  • Para cada un dos usuarios, a Aplicación permite editar (validar o e-mail, bloquear o acceso)/borrar os usuarios pertencentes ó noso centro:

Solarmobi-edicion-usuario.jpg

Autorizacións
  • Nesta sección o administrador/a do Centro autorizará a darse de alta aos usuarios pendentes de confirmación de acceso.
  • Cando hai usuarios pendentes de confirmación aparecerán neste listado, cunha icona dunha chave azul.
  • Ademáis se o usuario tamén confirmou o seu correo aparecerá un sobre de cor verde.

Solarmobi-autorizacions.jpg

  • Ó facer click na chave autorízase o usuario para poder acceder á web.

Solarmobi-autorizacions-confirmacion.jpg

Admin. Reservas
  • A sección de Admin. reservas permítenos ver o listado de todas as reservas pasadas e futuras.
  • O único que nos deixaría facer é borrar cada reserva de xeito individual.

Solarmobi-historico-reservas.jpg

Super-administrador en SolarMobi

  • Como super-administrador/a da aplicación SolarMobi, poderemos tamén dar de alta Novos Centros e xestionar os que xa temos.


Menú Centros

  • Aquí podemos ver o listado de Centros rexistrados na aplicación SolarMobi.

Solarmobi-listado-centros.jpg

  • Podemos tamén, editar/borrar e descargar a configuración do Centro que teremos que colocar na Raspberry instalada no Inversor dos paneis solares da central.

Solarmobi-descarga-inversonr-configuracion.jpg

SolarMobiBot en Telegram

Cómo rexistrarse no bot de Telegram

Temos dúas opcións de rexistro no bot @SolarMobiBot de Telegram:

  • Rexistro via aplicación web
- A través do menú Gestión -> Telegram, poderemos rexistrarnos prácticamente de xeito automático no Bot. O único requisito é que teñamos instalado un cliente de Telegram no dispositivo (PC/Tablet/móvil, etc..)
  • Rexistro dende Telegram
- Accedemos ó cliente de Telegram e buscamos o bot: SolarMobiBot

Solarmobibot-busqueda-bot.jpg

  • Pulsamos no botón Iniciar

Solarmobibot-inicio-bot.jpg

  • Pulsamos no botón Registro

Solarmobibot-registro.jpg Solarmobibot-registro-info.jpg

  • Recibiremos un correo coa solicitude de rexistro en Telegram.

Solarmobibot-correo-rexistro-bot.jpg

  • Confirmación de rexistro en Telegram

Solarmobibot-confirmacion-rexistro-bot.jpg

  • Pulsaremos o botón chequeo de Activación no cliente de Telegram e entón amosarase o Texto de benvida e opcións dispoñibles

Solarmobibot-texto-benvida-opcions.jpg

Comandos e opcións dispoñibles no Bot

  • Dende Telegram podemos usar os botóns de comandos ou teclealos.
  • Un comando dun bot comezará coa barra /
  • Listado de comandos dispoñibles:

Solarmobibot-comandos-bot.jpg

BOTÓNS de comandos do Bot SolarMobiBot

Unha vez dados de alta poderemos realizar as seguintes accións empregando os "botóns de comandos".

Mis Datos

Solarmobibot-mis-datos.jpg

Fecha

Solarmobibot-fecha.jpg

Reservas

  • Se non temos ningunha reserva:

Solarmobibot-reservas 01.png

  • Se xa temos algunha reserva feita:

Solarmobibot-reservas 03.png

Borrar Reserva

Elimina a reserva e mostra a mensaxe de que xa non temos ningunha reserva programada.

Solarmobibot-borrar-reserva.jpg

Activar

Permítenos iniciar unha carga, se a carga está activa.

Solarmobibot-activar-carga.jpg

Parar Carga

Solarmobibot-activar-carga.jpg

Progreso

Amosa o progreso dunha carga, indicando o estado da mesma.

Solarmobibot-progreso-carga.jpg

NOVIDADE:

  • Cando falten 15 minutos para terminar a cargar, si pulsamos no botón de Progreso, comprobará si podemos ampliar a carga, e amosará os botóns correspondentes para ampliar a +30 minutos, +60 minutos, etc..

Histórico

Mostra o histórico de cargas.

Solarmobibot-historico-cargas.jpg

Cercanas

  • Permítenos localizar as estacións de carga máis preto á nosa localización actual.

Solarmobibot-cercanas-estacions.jpg

Status

  • Amosará o estado de todas as estacións pertencentes ó nos Centro de referencia.

Solarmobibot-status-estacions.jpg

Info.

  • Amosa a información do proxecto

Solarmobibot-informacion.jpg

Activar Notificacións

  • Se pulsamos este botón recibiremos por Telegram os avisos previos á carga e á finalización da mesma.

Solarmobibot-activar-notificacions.jpg

Desactivar Notificacións

  • Se pulsamos este botón desactivaremos as notificacións por Telegram. Deste xeito deixaremos de recibir os avisos previos á carga e á finalización da mesma.

Solarmobibot-desactivar-notificacions.jpg

Estadísticas dp proxecto

  • 7000 lineas de código PHP
  • 1500 lineas de código JavaScript
  • + Python, CSS, HTML ...