@City IoT Plataforma en nube




iSys - Sistemas Intelixentes IoT Solucións









Sistemas IoE

Táboa de contidos

1. Introdución. 5

1.1 Tipos de dispositivos compatibles. 5

1.2. Tipos de produtos admitidos. 5

1.3. Protocolos de comunicación admitidos 5

1.4. Tecnoloxía de comunicación admitida dos dispositivos 6

1,5. @City Cloud Server 6

1.5.1. Servidor e pasarelas de comunicación 7

1.5.2 Integración HTTP LoRaWAN 7

1.5.3. Interfaz frontal 8

1.5.3. Dereitos de acceso ao servidor 8

1.6. Dispositivos intelixentes 9

1.6.1. Dispositivos CIoT - GSM 9

1.6.3. BAS, BMS, IoT - Dispositivos Ethernet e WiFi 9

1.6.2. Devices Dispositivos LoRaWAN 9

1.7. Opcións de empresa a empresa (B2B) 9

2. @City IoT Funcionalidade da plataforma 10

3. Páxina principal 11

4. Formulario principal 11

4.1. Cabeceira 12

4.1.1. Ligazón de inicio - (abre a táboa de resultados reais) 12

4.1.2. Caixa de verificación "X": abre / pecha o formulario de consulta 12

4.1.3. Caixa de verificación "V": abre / pecha o formulario de campos 12

4.1.4. Iconas gráficas: ligazóns a resultados de visualización (editables) 12

4.2. Formulario: 12

4.2.1. Caixa de verificación "X": abre / pecha o formulario 12 de consulta completo

4.2.2. CSS: selecciona o tema de visualización 12

4.2.3.Cadro de verificación Campos visibles: mostra / oculta a lista de filtros de campos 12

4.2.4. Pestana: Nome da pestaña para engadir ou eliminar 12

4.2.5. Engadir / Eliminar botóns: engada ou elimine pestanas co nome no campo Tab 12

4.2.6. Selecciona o botón principal 12

4.2.7. Deseleccionar todo o botón 12

4.2.7. Selecciona o botón Todo 12

4.2.8. Ocultar filtro: ocultar o formulario completo 12

4.2.9. Botón Executar: cambia a configuración dos parámetros 13

4.2.10. Caixa de verificación "V": amosar / filtrar campos altos. 13

4.3. Pestanas 13

4.4. Contido da táboa 13

4.4.1. Executar: visualiza o tipo de resultado 13

4.4.2. Copiar (+/- ligazóns) 13

4.4.3. Ligazóns de cela de táboa 13

4.5. Orde de datos 13

4.6. Exemplo 13

5. Mapas 15

5.1. Inicialización do mapa 15

5.2. Configuración opcional para a consulta 15

5.2.1. Modificar escala MAP (nivel de zoom) 16

5.2.2. IMEI (Seleccionar campo do dispositivo) 16

5.2.3. Lon, Lat (campos de coordenadas Lonxitude, Latitude) 16

5.2.4. Modificar o estilo MAPA (tema) 16

5.2.5. ONDE cláusula 16

5.2.6. Executar (botón Executar consulta) 16

5.2.7. Deseleccionar todo (Eliminar todos os campos da consulta) 17

5.2.8. Caixa de verificación "V" (Abrir / pechar formulario de campo) 17

5.2.9. Caixa de verificación "X" (Mostrar / Ocultar formulario de consulta) 17

5.3. Exemplo 17

6. Mostrar resultados na táboa 18

6.1. Inicialización da táboa 18

6.2. Configuración opcional para a consulta 19

6.2.1. Ordenar - ordenar campo e ordenar ascendente / descendente 19

6.2.2. DB / IMEI - Selecciona o dispositivo 19

6.2.3. CSS: seleccione o estilo (tema de visualización) 20

6.2.4. Campos visibles: mostrar / ocultar o formulario 20 de campos

6.2.5. Eliminar baleiro: non mostre columnas baleiras 20

6.2.6. Caixa de verificación "X" (Mostrar / Ocultar formulario de consulta) 20

6.2.7. Cláusula Where (para a limitación de datos) 20

6.2.8. Selecciona o botón principal (Activa os campos máis comúns) 20

6.2.9. Deseleccionar todo o botón (Eliminar todos os campos da consulta) 20

6.2.10. Executar (botón Executar consulta) 20

6.2.11. Caixa de verificación "V" (Abrir / pechar formulario de campo) 20

7. Gráficos de barras. 21

8. Gráficos históricos. 22

8.1. Inicialización de gráficos históricos 22

8.2. Configuración opcional de gráficos históricos 23

8.2.1. IMEI - (Seleccione Dispositivo para amosar datos históricos) 23

8.2.2. Límite mínimo valor mínimo do primeiro campo 23

8.2.3. Valor máximo do límite máximo do primeiro campo 23

8.2.4. "V": Mostrar / Ocultar o formulario 23 de campos

8.2.5. De: establecer data / hora mínima (*) 23

8.2.6. Para: establecer data / hora máxima (*) 23

8.2.7. Caixa de verificación "X" (Mostrar / Ocultar formulario de consulta) 23

8.2.8. "Onde" Cláusula 23

8.2.9. Deseleccionar todo o botón (Eliminar todos os campos da consulta) 23

8.2.10. Executar (botón Executar consulta) 23

8.2.11. Caixa de verificación "V" (Abrir / pechar formulario de campo) 24

8.3. Variante de barras: (amosa só os datos dispoñibles) 24

8.4. Variante continua (cos mesmos datos): 24

9. Compatibilidade do navegador web 25

10. Personalización de temas 26

11. Actualización de algoritmos 27

12. Estrutura da base de datos 28

12.1. Estrutura 29 das táboas "ithings_" e "*"

12.2. Táboa "* _c" da cola de comandos do dispositivo (eventos) - estrutura 30

12.3. Acceso a resultados de bases de datos: nivel medio (lectura de datos) 30

12.3.1. Obtén os estados actuais de todos os dispositivos 30

12.3.2. Obter datos históricos do dispositivo 31

12.3.3. Obtén a lista de dispositivos: campo único dos estados actuais coa limitación 32


1. Introdución.

@City IoT Plataforma Cloud está dedicada "micro-nube" sistema para clientes individuais. A plataforma non se pode compartir e só un cliente ten acceso ao servidor físico ou virtual (VPS ou servidores dedicados). O cliente pode seleccionar un dos decenas de centros de datos en Europa ou no mundo.

1.1 Tipos de dispositivos compatibles.

A plataforma @City is dedícase a seguir os produtos iSys.PL



1.2. Tipos de produtos admitidos.

@City (eCity) Cloud IoT Platform é un sistema de varios tamaños para produtos IP called (chamados xuntos como @City Hardware ou Dispositivos CioT ):


1.3. Protocolos de comunicación compatibles

A plataforma @City supports admite os seguintes protocolos de comunicación:

Os datos enviados desde o controlador ao servidor na nube e viceversa están cifrados en formato binario único para un tamaño de datos máis baixo e unha maior seguridade. Cada socio recibe a súa propia clave de cifrado exclusiva para a autorización do dispositivo, a comprobación da validez dos datos, etc.


Para dispositivos non eHouse / eCity podemos proporcionar algoritmos de cifrado individuais ( "C" código fonte) para cada socio para microprocesador para protexer os datos antes da comunicación.

Neste caso, os datos son completamente seguros durante a comunicación bidireccional a través dos medios de comunicación públicos (internet, Air, etc.) ).


1.4. Tecnoloxía de comunicación admitida dos dispositivos

A plataforma @City supports admite:


@City IoT A plataforma está dedicada a dispositivos / nodos:


1,5. @City Cloud Server

O software @City funciona en Linux basado en VPS (Virtual Private Server) ou Dedicated Server, dependendo do rendemento solicitado do Servidor (chamado servidor posterior):


Existen varias variantes de VPS dependendo de:


Existen decenas de servidores dedicados dependendo de:


A plataforma @City IoT está dedicada a un único cliente:


Debido a que non é un servidor compartible entre clientes, simplifica os problemas de acceso e rendemento de seguridade. Por esta razón, só o cliente é responsable da seguridade efectiva, estabilidade, eficiencia, rendemento de datos, etc. En caso de rendemento insuficiente, o cliente pode adquirir un plan superior (VPS ou servidor dedicado), máis óptimo que o rendemento e funcionalidade esperados.

En casos especiais "Cloud to cloud" a comunicación pode implementarse para a globalización e centralización de datos en áreas máis grandes en vez de na nube multi-cliente.

1.5.1. Servidor e pasarelas de comunicación

A comunicación de @City Server realízase baseada nunha aplicación de baixo nivel para maximizar o rendemento.

As principais características da aplicación @City Server son:

O software @City Server é o mesmo para cada usuario e non se pode personalizar para clientes diferentes.

1.5.2 Integración HTTP LoRaWAN

Os controladores LoRaWAN intégranse coa nube @City a través da interface HTTP (webhooks) dispoñible na rede / servidor de aplicacións LoRaWAN.

Admítense varios tipos de rede / servidor de aplicacións:

TTN (tempo limitado "No Aire" e o número máximo de comandos enviados ao controlador e que non admiten a actualización do firmware)

LoraWAN-Stack (Require aloxamento nun dispositivo físico con acceso a Internet).

LoraServer.Io (Require aloxamento nun dispositivo físico con acceso a Internet: só ​​envía datos ao servidor e non admite a actualización de firmware)



O @City Cloud para os controladores LoRaWAN divídese do mesmo xeito que para outras interfaces. Fálase no capítulo anterior.

1.5.3. Interfaz frontal

A interface front-end realízase con scripts PHP para extraer datos personalizados da base de datos @City Cloud. Utiliza un mecanismo de busca moi elástico, baseado en consultas SQL orixinais para limitar os datos desexados. A interface ofrece resultados de consultas en formato JSON para a súa posterior descodificación e procesamento mediante a "aplicación" web front-end.

A interface frontal orixinal é a mesma para cada usuario e non se pode personalizar para clientes diferentes.

O noso persoal pode crear unha interface de superposición ou en colaboración para garantir a personalización do cliente.

1.5.3. Dereitos de acceso ao servidor

Os dereitos de acceso do cliente (ao servidor físico) son limitados.

Acceso a ficheiros só para o directorio "modelos" (ficheiros de texto nativos - .txt, .js, .css, .html):

Outros dereitos de acceso:


iSys - Persoal de sistemas intelixentes - ten acceso ilimitado a todo o servidor, incluída a conta root e acceso completo á base de datos para o mantemento.

En determinadas circunstancias, iSys pode conceder dereitos limitados adicionais ao cliente (scripts PHP, ficheiros) despois de comprobar o código fonte, realizar probas, se non afecta a seguridade, estabilidade e rendemento do sistema.


1.6. Dispositivos intelixentes

1.6.1. CIoT - Dispositivos GSM

Os nosos dispositivos conteñen microcontrolador e módulo GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) para a comunicación. O microcontrolador contén un cargador de arranque cifrado para a actualización segura do firmware OTA. Isto permite crear moitas variantes do sistema baseadas no mesmo "Dispositivo intelixente CIoT".


1.6.3. BAS, BMS, IoT - Dispositivos Ethernet e WiFi


Os controladores Ethernet e WiFi permiten a comunicación baseada en IP ao sistema (sen cobrar por transferencia de datos ao operador GSM). Estes dispositivos tamén teñen o cargador de arranque cifrado e os dispositivos poden actualizarse a través da súa interface nativa. Para WiFi ten actualización de firmware OTA desde o servidor principal


1.6.2. IoT - Dispositivos LoRaWAN

LoRaWAN permite a transmisión de datos a distancias moi longas (ata aprox. 15 km). Este rango depende da velocidade de transmisión de datos, da cantidade de datos, da urbanización da zona e da eficiencia das rutas de radio dos dispositivos.

Os nosos dispositivos inclúen un microcontrolador e un módulo LoRaWAN para a comunicación. O microcontrolador contén un cargador de arranque cifrado para a actualización segura do software OTA. Isto permítelle crear varias variantes de sistema baseadas nas mesmas "IoT smart device". Os dispositivos funcionan na banda aberta ISM sen custos de subscrición adicionais. É necesario usar as pasarelas LoRaWAN para cubrir toda a área con acceso a Internet. No caso de portas LoRaWAN existentes dentro do rango de dispositivos (configurado para o servidor TTN), é posible enviar información a través delas. A actualización de firmware require un servidor LoRaWAN de rede / aplicación propia e un bo alcance para a comunicación.

1.7. Opcións de empresa a empresa (B2B)


Hai varias opcións para a empresa e a cooperación:

2. @City IoT Funcionalidade da plataforma

A plataforma @City admite un modelo front-end personalizable para a visualización, consulta, limitación e procesamento de datos (datos actuais / históricos):


O front-end do usuario é accesible a través de IP estático ou dominio / subdominio / ficheiro de redirección DNS se está dispoñible.


Instalación exemplar e de demostración (só está habilitada para clientes potenciais).

Infórmenos cando queiras probalo - para habilitar o acceso público á plataforma.

Podería requirir unha IP estática dun ordenador remoto para permitir a comunicación coa plataforma @City.


3. Páxina principal

A páxina principal queda baleira intencionadamente por motivos de seguridade: http: //% YourIP% / IoT /

Pode habilitarse e editarse individualmente e conter ligazóns a todos os servizos dispoñibles de Plataforma @City IoT se é necesario


4. Formulario principal

O formulario principal está destinado a crear novas predefinicións e pestanas: http: //%IP%/IoT/que.php

Esta é a forma inicial para crear resultados, vistas e pestanas para cada configuración




Descricións (de arriba a esquerda e á dereita)

4.1. Cabeceira

4.1.1. Ligazón á casa - (abre a táboa de resultados reais)

4.1.2. "X" caixa de verificación: abre / pecha o formulario de consulta

4.1.3. "V" caixa de verificación: abre / pecha o formulario Campos

4.1.4. Iconas gráficas - ligazóns a resultados de visualización (editables)


4.2. Formulario:

4.2.1. "X" caixa de verificación: abre / pecha o formulario de consulta completo

4.2.2. CSS - Seleccione Tema de visualización

O ficheiro CSS Modificar o tema de visualización debe existir en "modelos / css /" directorio - listado automaticamente.

4.2.3.Campos visibles caixa de verificación: mostra / oculta a lista de filtros de campos

4.2.4. Pestana: Nome da pestana para engadir ou eliminar

4.2.5. Engadir / Eliminar Botóns: engada ou elimine pestanas co nome dentro Pestana campo

4.2.6. Selecciona Núcleo Botón

Selecciona os campos principais visibles na táboa. El actualízase automaticamente.

4.2.7. Deseleccionar todo Botón

Deseleccione todos os campos (débese seguir seleccionando algúns deles manualmente)

4.2.7. Seleccionar todo Botón

Seleccione todos os campos (débese seguir deseleccionando algúns deles manualmente)

4.2.8. Ocultar filtro - Ocultar o formulario completo

Isto equivale a toda a caixa de verificación (X)

4.2.9. Executar Botón - Cambia a configuración dos parámetros

4.2.10. "V" caixa de verificación - amosar / campos de filtro alto.


4.3. Pestanas

Pestanas creadas individualmente con nomes e predefinidos (almacenados en cfg / tabs.cfg ficheiro).

O ficheiro realmente contén nome e URL (separados por caracteres de tabulación).


4.4. Contido da táboa

Mostra todos os campos limitados polo filtro de campos.


Campos da táboa:

4.4.1. Executar - tipo de resultado de vistas

mapa- resultados da cartografía no mapa (pódese seleccionar un ou máis campos)

historia - gráficos históricos (pódese seleccionar un ou máis campos)

tab - mostra a táboa (pódese seleccionar calquera combinación de campos)

barra - só se mostra un campo no gráfico de barras

Ao premer un dos seus valores abrirá novos resultados cos campos seleccionados (para a fila actual).


4.4.2. Copiar (+/- ligazóns)

Engadir / eliminar unha guía co nome definido en Pestana campo. Emprega só campos seleccionados na mesma fila da táboa.


4.4.3. Ligazóns de cela de táboa

Ao premer calquera outro nome de campo iniciarase a visualización de datos do campo seleccionado para a fila seleccionada.


4.5. Orde de datos


A orde dos campos mostrados é como a súa orde nos campos (con todo tm campo sempre se envía ao final do texto). Esta orde só se pode cambiar coa edición directa de parámetros de URL (parte da orde de campos).


4.6. Exemplo

Por exemplo: Axustar Tab con Seguimento de activos nome e contén o mapa con tempo e velocidade no mapa

Toda a descrición referida á fila onde "Map" o texto está dentro "Corre" columna.

  1. Introduza o nome "Seguimento de activos" dentro Pestana campo (sen comiñas)

  2. Asegúrese de que todas as columnas non están seleccionadas na fila

  3. seleccionar tm, gps_speed_km só na fila

  4. prema + botón onde está na fila






5. Mapas

Os mapas pódense lanzar desde MainForm con preconfiguración


5.1. Inicialización do mapa

A inicialización do mapa realízase manualmente cando se executa directamente coa ligazón: > http: //%IP%/IoT/maps.php


  1. O usuario debe deseleccionar todos os campos (prema Deseleccionar Botón)

  2. Prema algunha caixa de verificación para os campos amosados ​​(por exemplo. Ain5 (para o nivel Smog) e tm (para data / hora de medición)

  3. prema "V" caixa de verificación para ocultar o formulario de campos

  4. prema Executar botón para executar a consulta de DB e amosar a información actual de todos os sensores / dispositivos

  5. O mapa con datos actualízase despois de 30 segundos ou máis.


5.2. Configuración opcional para a consulta

Configuración descrita de esquerda a dereita (na captura de pantalla superior).

5.2.1. Modificar escala MAP (nivel de zoom)

  1. O nivel de zoom pode modificarse usando botóns (+/-) para a escala (current_scale * 2 ou current_scale / 2 respectivamente). Ao premer un destes botóns modificarase automaticamente a escala.

  2. Outro xeito é seleccionar o nivel de zoom Zoom Campo Combo Box e prema Executar botón. Neste caso, a vista / mapa enteira recárgase e actualízase (leva un tempo durante a inicialización).

5.2.2. IMEI (Seleccionar campo do dispositivo)

IMEIO campo contén ID único do dispositivo ou alias único dun dispositivo. A configuración predeterminada é * (asterisco) que mostra os valores e a xeolocalización máis recentes para cada dispositivo.

Ao configurar IMEI a calquera outro valor, mostraranse os datos históricos do dispositivo seleccionado. Só ten sentido para os sensores móbiles e móbiles, se non, os resultados se solapan no mapa na mesma posición.


5.2.3. Lon, lat (Lonxitude, campos de coordenadas de latitude)

Establecer a posición central do mapa. Este campo está configurado na posición do cursor cando se preme o botón do rato no mapa.


5.2.4. Modificar estilo MAPA (tema)

Pode seleccionarse o estilo / tema do mapa Map Campo ComboBox (por exemplo. Escuro, Gris, Topográfico).

Varios temas de mapas poden ter niveis de zoom máximos diferentes polo que pode aplicar un tema adecuado para aumentar a escala do mapa.


5.2.5. Cláusula ONDE

Where Clause úsase para unha cadea de consulta adicional {WHERE part} para MySQL / MariaDB.

Esta cláusula tense en conta para construír unha cadea QUERY completa para o resultado da base de datos. Pode limitar os datos, o tempo e calquera outro valor limitando o reconto de resultados. Os nomes orixinais dos campos da táboa (non alias) deben empregarse neste campo. Por exemplo.

  1. gps_speed_km> 10 // a velocidade é superior a 10 km / h

  2. ain5> 3 // ain5 é maior que 3 (que contén 2.5um de partículas - nivel de smog)

  3. gps_speed_km> 10 e ain6> 5 // a velocidade é superior a 10km / h e ain6 é superior a 5 (con 10um de partículas contadas - nivel de smog)


5.2.6. Executar (Botón Executar consulta)

Ao premer este botón é necesario cambiar calquera configuración e parámetro (excepto premer +/- botóns).

O mapa cárgase desde o principio con novas predefinicións.

O mapa non se carga en absoluto cando non hai datos dispoñibles para a consulta actual.

5.2.7. Deseleccionar todo (Eliminar todos os campos da consulta)

Despois de premer este botón, hai que seleccionar polo menos un campo manualmente para amosar os resultados no mapa.


5.2.8. "V" Caixa de verificación (Abrir / pechar formulario de campo)

Esta caixa de verificación úsase para mostrar / ocultar o selector dos campos que se amosarán.


5.2.9. "X" Casilla de verificación (Mostrar / Ocultar formulario de consulta)

Esta caixa de verificación habilita ocultar o formulario completo excepto ( +/- botóns)


Os resultados no mapa actualízanse continuamente e actualízanse con novos valores

5.3. Exemplo

Por exemplo, resultados de Smog (sensor instalado no coche): nivel de Smog partículas de 2,5um (Ain5), velocidade (gps_speed_km), data / hora (tm), mapa (2 - topográfico), nivel de zoom 16,

Cláusula where:

"gps_fix = 3 e tm> "2019-02-18 00:00:00" e tm <"2019-02-19 00:00:00" e gps_speed_km> 0".

// GPS = resultados 3D válidos e data = 18/02/2019 e velocidade> 0 km / h



6. Mostrar resultados na táboa

Mostrar resultados na táboa.

Encendido "Formulario principal" prema "mesa" elemento, despois de seleccionar algúns campos para amosar a táboa preconfigurada




6.1. Inicialización da táboa

Cando a táboa está aberta desde a ligazón http: //%IP%/IoT/que.php? func = tabs require unha inicialización previa da configuración.

Pode seleccionar campos visibles (premendo "Campos visibles" ) caixa de verificación.



  1. Prema todas as caixas de verificación necesarias para os campos amosados

  2. Prema a caixa de verificación "Campos visibles" para ocultar os campos

  3. Preme o botón Executar para executar a consulta de DB e amosar a táboa


6.2. Configuración opcional para a consulta

A configuración descríbese de esquerda a dereita (na captura de pantalla).

6.2.1. Ordenar - ordenar campo e ordenar ascendente / descendente

O campo de ordenación equivale a premer a cabeceira da columna.

6.2.2. DB / IMEI - Selecciona Dispositivo

IMEIO campo contén ID único do dispositivo ou alias único dun dispositivo. Con valor baleiro mostra a táboa dos valores máis recentes.

Ao configurar IMEI a calquera outro valor, mostraranse os datos históricos do dispositivo seleccionado.


6.2.3. CSS - seleccionar estilo (tema de visualización)

6.2.4. Campos visibles - Mostrar / Ocultar formulario de campos

6.2.5. Eliminar baleiro - Non mostre columnas baleiras

6.2.6. "X" Casilla de verificación (Mostrar / Ocultar formulario de consulta)

6.2.7. Onde Cláusula (para a limitación de datos)

Este é o sufixo para a cadea de consulta adicional MySQL / MariaDB {WHERE part}

Esta cláusula tense en conta para construír unha cadea QUERY completa para o resultado da base de datos. Pode limitar os datos, o tempo e calquera outro valor limitando o reconto de resultados. Os nomes orixinais dos campos da táboa (non alias) deben empregarse neste campo. Por exemplo.

  1. gps_speed_km> 10 // a velocidade é superior a 10 km / h

  2. ain5> 3 // ain5 é maior que 3 (que contén 2.5um de partículas - nivel de smog)

  3. gps_speed_km> 10 e ain6> 5 // a velocidade é superior a 10km / h e ain6 é superior a 5 (con 10um de partículas contadas - nivel de smog)


6.2.8. Selecciona Núcleo Botón (Activar campos máis comúns)


6.2.9. Deseleccionar todo Botón (Eliminar todos os campos da consulta)

Despois de premer este botón, hai que seleccionar polo menos un campo manualmente para amosar os resultados no mapa.


6.2.10. Executar (Botón Executar consulta)

Ao premer este botón é necesario cambiar calquera configuración e parámetro (excepto premer +/- botóns).

A táboa recárgase desde o principio con novos preajustes.



6.2.11. "V" Caixa de verificación (Abrir / pechar formulario de campo)

Esta caixa de verificación úsase para mostrar / ocultar o selector dos campos que se amosarán.



Os resultados da táboa clasifícanse segundo Ordenar configuración do campo. A orde de clasificación pódese cambiar premendo o encabezado de fila (unha vez por unha dirección dúas veces por outra dirección).

Algúns resultados en columnas ligan a pantallas de visualización posteriores (codificadas).


Ao amosar datos históricos para o dispositivo, debería limitarse para non mostrar información completa do historial porque pode provocar problemas de rendemento ou de memoria.


7. Gráficos de barras.

Os gráficos de barras deben executarse desde o formulario principal premendo un único campo na fila "Barra".

Amosa barras ordenadas normalizadas ao valor máximo, mostrando de maior a menor orde.

É útil para comprobar rápidamente resultados extremos e realizar algunhas accións.





O evento Mouse Over amosará información adicional para o dispositivo.


8. Gráficos históricos.

Os gráficos históricos pódense iniciar desde o MainForm ao premer a columna seleccionada na fila "Historial" (para un campo único).

Para varios campos da fila "Historial", deben comprobarse os campos desexados e premer a ligazón "Historial" na columna "Executar".

Os resultados históricos están limitados ás últimas 24 horas + as próximas 24 horas (para eventuais gráficos refrescantes), cando non se estableceron límites.

8.1. Inicialización de gráficos históricos


Os gráficos históricos cando se abren desde a ligazón principal requiren inicialización como outros resultados, cando se abren desde unha ligazón sen parámetros de preferencias.

Pódense seleccionar varios campos para amosar varios elementos. Tamén se pode configurar no formulario de filtro de campo.




  1. Prema todas as caixas de verificación necesarias para os campos amosados

  2. Prema a caixa de verificación "Campos visibles" para ocultar os campos

  3. Prema o botón Executar para executar a consulta de DB e amosar a táboa


8.2. Configuración opcional de gráficos históricos

Elementos descritos desde arriba e de esquerda a dereita (na captura de pantalla).

8.2.1. IMEI - (Seleccione Dispositivo para amosar datos históricos)

IMEIO campo contén ID único do dispositivo ou alias único dun dispositivo. Con valor * (asterix) mostra a táboa dos valores máis recentes que non ten sentido.

Ao configurar IMEI a calquera outro valor, mostraranse os datos históricos do dispositivo seleccionado.

8.2.2. Min - valor mínimo do primeiro campo

8.2.3. Máx. valor máximo límite do primeiro campo

8.2.4. "V" - Mostrar / Ocultar formulario de campos

8.2.5. Desde: establecer data / hora mínima (*)

8.2.6. Para: establecer data / hora máxima (*)

8.2.7. "X" Casilla de verificación (Mostrar / Ocultar formulario de consulta)

8.2.8. "Onde" Cláusula

Cláusula para limitar os resultados de datos Cadea de consulta adicional MySQL / MariaDB {WHERE part}.

Esta cláusula tense en conta para construír unha cadea QUERY completa para o resultado da base de datos. Pode limitar os datos, o tempo e calquera outro valor limitando o reconto de resultados. Os nomes orixinais dos campos da táboa (non alias) deben usarse neste campo e unha sintaxe SQL válida. Por exemplo.

  1. gps_speed_km> 10 // a velocidade é superior a 10 km / h

  2. ain5> 3 // ain5 é maior que 3 (que contén 2.5um de partículas - nivel de smog)

  3. gps_speed_km> 10 e ain6> 5 // a velocidade é superior a 10km / h e ain6 é superior a 5 (con 10um de partículas contadas - nivel de smog)


8.2.9. Deseleccionar todo Botón (Eliminar todos os campos da consulta)

Despois de premer este botón, hai que seleccionar polo menos un campo manualmente para amosar os resultados históricos.


8.2.10. Executar (Botón Executar consulta)

Ao premer este botón é necesario cambiar calquera configuración, parámetro (excepto amosar campos ou panel de consulta). A táboa recárgase desde o principio con novos preajustes.

8.2.11. "V" Caixa de verificación (Abrir / pechar formulario de campo)

Esta caixa de verificación úsase para mostrar / ocultar o selector dos campos que se amosarán.


8.3. Barras Variante: (mostra só os datos dispoñibles)



8.4. Continuo variante (cos mesmos datos):



O punteiro do rato mostra os valores das medidas e a data / hora.

9. Compatibilidade do navegador web


Función / navegador WWW

Cromo 72

FireFox 65

Edge

Ópera 58

Mapas

+

+

+

+

Histórico

+

+ (*)

+

+

Barras

+

+

+

+

Pestanas

+

+

+

+


* - Firefox non admite o selector de data / hora (o campo de texto debe editarse manualmente usando o formato de hora adecuado).

Internet Explorer non é compatible (use Edge no seu lugar)

Non se probaron outros navegadores web.



10. Personalización de temas

As páxinas web están baseadas nun ficheiro de modelos xerais situado en "modelos" directorio "* .modelo".

Ademais, cada tipo de páxina contén:

  1. Ficheiro "* .head" que almacena a cabeceira da páxina (ligazóns, CSS importados, JavaScript Ficheiros, etc. )

  2. Ficheiros "* .foot" que almacenan o pé de páxina da páxina (ligazóns, etc.) )


O tema de visualización pódese cambiar segundo as preferencias do usuario copiando e modificando ficheiros CSS. Os ficheiros CSS atópanse en "modelos / css" directorio. Pódense usar diferentes temas de páxinas web para crear optimizados por exemplo. impresión, modelos de teléfonos intelixentes, PADs.


Pestanale vistas: ten un campo seleccionable para escoller o ficheiro CSS para a modificación completa do tema (almacenado en "templates / css / tabs" directorio).




Map vistas - selecciona o tema xeral por "mapa" escriba caixa combinada. Ademais hai un ficheiro CSS predeterminado "templates / css / map.css" que contén algunhas funcións adicionais como resultados de ocultación / coloración en función dos seus valores. O resto deste ficheiro CSS está practicamente limitado a formularios de consulta e campo.


A maioría de Plataforma @City Aceptan ficheiros PHP para visualización cssparámetro co valor do nome do ficheiro para o tema (sen extensión). O ficheiro debe estar situado no directorio "templates / css" e o nome distingue entre maiúsculas e minúsculas.


Algúns elementos da visualización de temas atópanse directamente no ficheiro located situado en "template / js" directorio.

Principal @Cidade guión"@ City.js" está no directorio superior. Non hai ningunha posibilidade de modificación nisto localización, porén pode copiarse o script "modelos / js" directorio e modificado alí. O uso de script individual require actualizar todos os ficheiros de cabeceira.

11. Actualización de algoritmos


Algúns sensores únicos poden requirir funcións de cálculo dedicadas.

Non hai posibilidade de actualizar e manter varias variantes de Software @City Server, Interfaz PHP frontal, o que causaría moitos problemas, versións, erros.

A mellor e máis sinxela forma de conseguilo é a actualización de ficheiros lay "superposición" para unha correcta visualización do valor / descrición.

Os scripts orixinais JS son un ficheiro de texto aberto e poden adoptarse segundo as necesidades do cliente. Como se dixo no capítulo anterior hai que copialos "modelos / js" directorio onde o cliente ten dereitos de acceso para a modificación.


Aspecto técnico sobre programación de @Cidade o sistema non é un asunto deste documento, pero o desenvolvedor web con coñecementos básicos de HTML e JS pode personalizar a aplicación web frontal para as necesidades do cliente.


12. Estrutura da base de datos


Base de datos @City cun nome "IoT" ou "* IoT" divídese en táboas (onde o asterixo é o prefixo dependendo do servidor de hospedaxe - se é necesario). DataBase pode observarse en PHPAdmin (aplicación web) na ligazón http: //% IP% / phpmyadmin




Táboas establecidas para cada dispositivo (onde * {asterix} é o enderezo IMEI - ID único):

Outras táboas:



12.1. Estrutura de táboas "ithings_" e "*"

12.2. Os comandos do dispositivo (eventos) fan cola táboa "* _c" - estrutura


Esta táboa é unha cola de eventos / comandos para cada dispositivo e ten a seguinte estrutura:



12.3. Acceso a resultados de bases de datos: nivel medio (lectura de datos)


Os datos pódense acceder sen unha aplicación web frontal. O sistema @City contén script con funcións de nivel medio. Os resultados devólvense en formato JSON.


12.3.1. Obtén os estados actuais de todos os dispositivos

http: //%IP%/IoT/que.php? func = devsjson


A consulta devolve enteira "_cousas" táboa (estados actuais de todos os dispositivos) en formato JSON:

[{ "país":"", "cidade":"", "continente":"", "país":"", "rexión":"", "subrexión":"", "subsubrexión":"", "cidade":"", "distrito":"", "rúa":"", "rúa_nr":"", "item_nr":"", "gps_lat":"0000,0000N", "gps_long":"00000.0000E", "tm":"2019-02-10 12:56:23", "creación":"09-02-2019 ás 18:12:38", "último":"0000-00-00 00:00:00", "eventos":"", "usuario":"", "pasar":"", "imei":"351580051067110", "sn":"", "estado":"73000200000f360033026800240000002c002c002dffffffffffffffff5b63000001c1000001c20000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600400", "código_hash":"", "addr":"", "fwnr":"", "desactivado":"", "gsm_nr":"", "vendedor":"", "franxa horaria":"", "dst":"", "rssi":"91", "rsrp":"99", "gps_lat":"0000,0000N", "gps_long":"00000.0000E", "gps_hdop":"", "gps_alt":"", "gps_fix":"4", "gps_cog":"", "gps_speed_km":"", "gps_sat":"", "eventos":"", "fóra1":"0", "fóra2":"0", "fóra3":"0", "fóra4":"0", "fóra5":"0", "fóra6":"0", "fóra7":"0", "fóra8":"0", "fóra9":"0", "saír10":"1", "fóra11":"0", "fóra12":"0", "fóra13":"0", "fóra14":"0", "fóra15":"0", "fóra16":"0", "en1":"0", "en2":"0", "en3":"0", "in4":"0", "en5":"0", "en6":"0", "en7":"0", "en8":"0", "en9":"0", "en10":"0", "en11":"0", "en12":"0", "en 13":"0", "en 14":"0", "en 15":"0", "en16":"0", "ain1":"3894", "ain2":"51", "ain3":"616", "ain4":"36", "aen5":"0", "ain6":"44", "ain7":"44", "ain8":"45", "sens1":"0", "sens2":"0", "sens3":"0", "sens4":"0", "sens5":"0", "sens6":"0", "sens7":"0", "sens8":"0", "dimm1":"255", "dimm2":"255", "dimm3":"255", "dimm4":"255", "dimm5":"255", "dimm6":"255", "dimm7":"255", "dimm8":"255", "int1":"-16776767", "int2":"450", "int3":"", "int4":"", "int5":"", "int6":"0", "texto1":"", "texto2":"", "texto3":"", "texto4":"", "texto5":"", "texto6":"" }]

12.3.2. Obter datos históricos do dispositivo

Consultar datos históricos dun único dispositivo por IMEI nr:

http: //%IP%/IoT/que.php? func = imeijson & imei = 356345080018095


Debido a que toda a táboa pode conter millóns de filas, debería limitarse coa cláusula WHERE para non colgar o servidor.

Parámetros adicionais parámetros de URL:

func - imeijson

imei - IMEI do dispositivo

campo - campos que se amosarán nos resultados (lista separada por coma)

min - valor mínimo para o primeiro campo da lista

máx - valor máximo para o primeiro campo da lista

sout - campo para ordenar

tm - o campo engádese automaticamente aos resultados.

where - cláusula where para limitar os datos


Exemplo:

Queremos obter o seguinte resultado

para dispositivo con imei=356345080018095

amosar campos: ain5, ain6, gps_lat, gps_long

e límite aen5 no alcance ( 1, 10000 ) - debe ser o primeiro campo da lista

e GPS ter datos válidos (gps_fix = 3)

e data / hora (tm) from2019-02-14 23:00:19 to 15-02-2019 00:00:00


Cadea de URL construída:

http: //%IP%/IoT/que.php? func =imeijson& imei =356345080018095& campo =aen5, ain6, gps_lat, gps_long& min =1& máx =1000e onde =gps_fix = 3 e tm> "14-02-2019 23:00:19" e tm <"15-02-2019 00:00:00"


Resultados da consulta:

[{ "aen5":"66","ain6":"68","gps_lat":"5202.7326N","gps_long":"02115.8073E","tm":"2019-02-14 23:04:31" }, { "aen5":"67","ain6":"76","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"2019-02-14 23:05:42" }, { "aen5":"63","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8074E","tm":"2019-02-14 23:06:05" }, { "aen5":"58","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"2019-02-14 23:06:32" }, { "aen5":"58","ain6":"68","gps_lat":"5202.7328N","gps_long":"02115.8076E","tm":"2019-02-14 23:06:55" }]

12.3.3. Obtén unha lista de dispositivos: campo único dos estados actuais con limitación

Esta función devolve datos limitados da táboa "_ithings"


http: //%IP%/IoT/que.php? func = fieldjson & field = ain5 & min = 13 & max = 5000



Parámetros:

func - fieldjson

campo - campo que se amosará nos resultados - imei e tm engádense automaticamente

min - valor mínimo para o campo

máx - valor máximo para o campo


Para a cadea de consulta anterior devolve resultados de ain5, imei, tm campos:

se aen5 está no alcance (13.5000)


Resultados da consulta:

[{"imei":"353080090069142", "tm":"2019-03-14 11:51:01", "aen5":"14" },

{"imei":"356345080018095", "tm":"2019-02-20 09:13:04", "aen5":"115" },

{"imei":"karczew", "tm":"07/03/2019 ás 13:08:22", "aen5":"103" }]