@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
@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.
A plataforma @City is dedícase a seguir os produtos iSys.PL
IoT - RF / LoRaWAN (Internet das cousas)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (Internet móbil das cousas)
Wifi
Ethernet
@City (eCity) Cloud IoT Platform é un sistema de varios tamaños para produtos IP called (chamados xuntos como @City Hardware ou Dispositivos CioT ):
@Cidade
@Lixeiro
@Medición
@Trace
@AirQ
@Bin
A plataforma @City supports admite os seguintes protocolos de comunicación:
UDP - suxerido para sensores / dispositivos CIoT (especialmente NBIoT): menor utilización de datos
TCPIP - suxerido para dispositivos con comunicación bidireccional - apretón de mans / confirmación
HTTP: suxerido só para o acceso de datos / visualización / exportación / "nube a nube"
HTTP Webhooks: para a comunicación LoRaWAN entre o servidor de aplicacións de rede / rede LoRaWAN e @City Cloud.
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.) ).
A plataforma @City supports admite:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), dispositivos NBIoT (comunicación UDP / TCPIP)
Dispositivos LoRaWAN (HTTP Webhooks) - a través da pasarela LoRaWAN e servidores de rede / aplicacións LoRaWAN
Controladores Ethernet (comunicación UDP / TCP)
Controladores WiFi (comunicación UDP / TCP)
Produtos IP futuros
Produtos non IP a través de pasarela de hardware local @ City / eHouse.PRO adicional
@City IoT A plataforma está dedicada a dispositivos / nodos:
Produtos nativos de iSys:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT (LoRaWAN)
WiFi: produtos dedicados a @City Platform
Produtos dedicados a Ethernet para @City Platform
Produtos de coprodución (fabricados por terceiros baixo licenza iSys e marca externa)
Produtos de franquía (fabricados por terceiros baixo licenza iSys con logotipos iSys)
O software @City funciona en Linux basado en VPS (Virtual Private Server) ou Dedicated Server, dependendo do rendemento solicitado do Servidor (chamado servidor posterior):
acceso privado / público
conta total de dispositivos
actualización da frecuencia de estado dos dispositivos
taxa de actualización de datos
Existen varias variantes de VPS dependendo de:
Prezo
xeolocalización do centro de datos
Núcleos de procesador virtual (1-8)
RAM virtual (1-32 GB)
Disco SSD (20 GB-1 TB)
Existen decenas de servidores dedicados dependendo de:
Prezo
xeolocalización do centro de datos
Núcleos de procesador (4 .. 32)
RAM (16 .. 512 GB)
SSD / HDD (256 GB .. 8 TB)
A plataforma @City IoT está dedicada a un único cliente:
gobernos e autoridades locais (cidade, comunidade, país)
B2B (para terceiro propietario)
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.
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:
recibir datos asíncronamente de dispositivos (a través de protocolos: UDP, TCP IP, HTTP)
minimizar a utilización de datos e os seus custos entre dispositivos e Cloud (mediante o uso de protocolos de comunicación de baixo nivel UDP, TCP IP)
recibir o estado cifrado dos dispositivos (a través de calquera medio de comunicación)
autorización e validación de datos de dispositivos descifrando o seu estado
descodificar o estado dos dispositivos e actualizalo directamente nas táboas MariaDB / MySQL (en formato de datos en bruto)
táboa de datos actual (só contén o estado máis recente de cada dispositivo)
táboa de datos histórica (contén todos os estados dun dispositivo único)
enviar comandos pendentes (Eventos) aos dispositivos
asegurando o aperto de mans, a verificación e as confirmacións
O software @City Server é o mesmo para cada usuario e non se pode personalizar para clientes diferentes.
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.
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.
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):
engadir, eliminar e modificar ficheiros HTML puros (Front-End GUI / Desenvolvemento de interface)
engadir, eliminar, modificar ficheiros pure puros (Front-End GUI / Interface Development and Algorithms)
engadir, eliminar e modificar ficheiros CSS puros (Front-End - Vistas / Temas personalizados)
engadir, eliminar, modificar ficheiros de texto de modelos (Front-End GUI)
engadir, eliminar, modificar pestanas, atallos, ligazóns a resultados de datos
Outros dereitos de acceso:
Acceso completo á base de datos @City Cloud MySQL / MariaDB onde se almacenan todos os datos dos dispositivos
Defínese o acceso aos servizos web (credenciais) para o cliente.
Non se lle permite ao cliente pasar as credenciais a terceiros (o acceso múltiple dos resultados pode afectar o rendemento, a estabilidade e a seguridade do sistema xeral)
En circunstancias especiais e uso do servidor dedicado de alto rendemento, pódese configurar unha conta pública para observar a maioría dos datos actuais (non históricos).
O usuario pode duplicar datos no seu propio servidor MySQL e realizar a súa propia análise e procesamento de datos, para non afectar o rendemento de @City Server
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.
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".
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
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.
Hai varias opcións para a empresa e a cooperación:
importación / exportación de produtos listos (cadros, dispositivos) - produtos finais
importación / exportación de produtos OEM (PCB, controladores, etc.): produtos intermedios, recambios
franquía - produción baseada na nosa licenza para mercados locais (só fornecemos microcontroladores programados) baixo iSys - Marcas de sistemas intelixentes
Coprodución - (como arriba) pero baixo marcas externas
A plataforma @City admite un modelo front-end personalizable para a visualización, consulta, limitación e procesamento de datos (datos actuais / históricos):
visualizar os datos seleccionados no mapa (xeolocalización)
mostra os datos e resultados seleccionados nas táboas
mostra os datos seleccionados nos gráficos de barras
mostra os datos seleccionados en gráficos históricos
exportar datos a aplicacións de terceiros e procesalos posteriormente
outras funcionalidades actualizaranse en solicitudes individuais.
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.
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
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)
O ficheiro CSS Modificar o tema de visualización debe existir en "modelos / css /" directorio - listado automaticamente.
Selecciona os campos principais visibles na táboa. El actualízase automaticamente.
Deseleccione todos os campos (débese seguir seleccionando algúns deles manualmente)
Seleccione todos os campos (débese seguir deseleccionando algúns deles manualmente)
Isto equivale a toda a caixa de verificación (X)
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).
Mostra todos os campos limitados polo filtro de campos.
Campos da táboa:
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).
Engadir / eliminar unha guía co nome definido en Pestana campo. Emprega só campos seleccionados na mesma fila da táboa.
Ao premer calquera outro nome de campo iniciarase a visualización de datos do campo seleccionado para a fila seleccionada.
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).
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.
Introduza o nome "Seguimento de activos" dentro Pestana campo (sen comiñas)
Asegúrese de que todas as columnas non están seleccionadas na fila
seleccionar tm, gps_speed_km só na fila
prema + botón onde está na fila
Os mapas pódense lanzar desde MainForm con preconfiguración
A inicialización do mapa realízase manualmente cando se executa directamente coa ligazón: > http: //%IP%/IoT/maps.php
O usuario debe deseleccionar todos os campos (prema Deseleccionar Botón)
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)
prema "V" caixa de verificación para ocultar o formulario de campos
prema Executar botón para executar a consulta de DB e amosar a información actual de todos os sensores / dispositivos
O mapa con datos actualízase despois de 30 segundos ou máis.
Configuración descrita de esquerda a dereita (na captura de pantalla superior).
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.
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).
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.
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.
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.
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.
gps_speed_km> 10 // a velocidade é superior a 10 km / h
ain5> 3 // ain5 é maior que 3 (que contén 2.5um de partículas - nivel de smog)
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)
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.
Despois de premer este botón, hai que seleccionar polo menos un campo manualmente para amosar os resultados no mapa.
Esta caixa de verificación úsase para mostrar / ocultar o selector dos campos que se amosarán.
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
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
Mostrar resultados na táboa.
Encendido "Formulario principal" prema "mesa" elemento, despois de seleccionar algúns campos para amosar a táboa preconfigurada
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.
Prema todas as caixas de verificación necesarias para os campos amosados
Prema a caixa de verificación "Campos visibles" para ocultar os campos
Preme o botón Executar para executar a consulta de DB e amosar a táboa
A configuración descríbese de esquerda a dereita (na captura de pantalla).
O campo de ordenación equivale a premer a cabeceira da columna.
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.
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.
gps_speed_km> 10 // a velocidade é superior a 10 km / h
ain5> 3 // ain5 é maior que 3 (que contén 2.5um de partículas - nivel de smog)
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)
Despois de premer este botón, hai que seleccionar polo menos un campo manualmente para amosar os resultados no mapa.
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.
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.
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.
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.
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.
Prema todas as caixas de verificación necesarias para os campos amosados
Prema a caixa de verificación "Campos visibles" para ocultar os campos
Prema o botón Executar para executar a consulta de DB e amosar a táboa
Elementos descritos desde arriba e de esquerda a dereita (na captura de pantalla).
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.
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.
gps_speed_km> 10 // a velocidade é superior a 10 km / h
ain5> 3 // ain5 é maior que 3 (que contén 2.5um de partículas - nivel de smog)
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)
Despois de premer este botón, hai que seleccionar polo menos un campo manualmente para amosar os resultados históricos.
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.
Esta caixa de verificación úsase para mostrar / ocultar o selector dos campos que se amosarán.
O punteiro do rato mostra os valores das medidas e a data / hora.
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.
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:
Ficheiro "* .head" que almacena a cabeceira da páxina (ligazóns, CSS importados, JavaScript Ficheiros, etc. )
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.
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.
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):
"* _t" - fichas para a autorización dos usuarios actuais (non usadas para as nubes dun cliente único)
"* _c" - colas de comandos (Eventos) - para enviar ao dispositivo
"*" - todos os resultados do estado descodificado.
Outras táboas:
"ithings_" táboa - contén o estado actual decodificado de todos os dispositivos (copiase durante a actualización calquera dos "*" táboas). Estrutura de ithings_ táboa é case o mesmo que o "*" táboas. "ithings_" ten campos adicionais para o enderezo postal e as descricións.
a táboa "usuarios" está restrinxida e debería modificarse.
"idx" - índice
"tm" - marca de tempo automática
"dt" - marca de tempo unix
"imei" - enderezo único do dispositivo
"rssi" - Nivel de sinal RSSI
"rsrp" - Sinal RSRP
"eventos" - eventos en espera para ser enviados ao controlador
"fóra1" .. "fóra16" - estado das saídas decodificadas
"en1" .. "en16" - estado de entradas descodificadas
"ain1" .. "ain8" - valores ADC descodificados (RAW)
"sens1" .. "sens8" - valores do sensor convertidos (depende do tipo de dispositivo)
"dimm1" .. "dimm8" - valores de atenuadores decodificados (depende do tipo de dispositivo)
"int1" .. "int6" - valores de contadores descodificados (depende do tipo de dispositivo)
"texto1" .. "texto6" - valores de texto descodificados (depende do tipo de dispositivo)
"creación" - data / hora de creación do dispositivo
"último" - última data / hora
"usuario": uso futuro
"pasar" - uso futuro
"sn" - gsm serie nr
"estado" - o estado actual do controlador non está descodificado en formato hexadecimal
"hash_code" - uso futuro
"addr": enderezo curto do dispositivo
"fwnr" - firmware nr
"disabled" - dispositivo desactivado (non realizado)
"gsm_nr": número gsm de CIoT
"provedor" - código de provedor (para franquía / coprodución)
"zona horaria": desprazamento da zona horaria
"dst": usa a configuración de aforro diario
"gps_lat" - Latitude GPS
"gps_long" - Lonxitude GPS
"gps_hdop" - GPS HDOP
"gps_alt" - Altitude GPS
"gps_fix" - Fixación GPS (debe ser 3 - para obter resultados válidos)
"gps_cog" - GPS Cog
"gps_speed_km" - Velocidade GPS en [km / h]
"gps_sat" - Atopáronse satélites GPS
"continente", "país", "rexión", "subrexión", "subsubrexión", "cidade", "distrito", "rúa", "rúa_nr", "elemento_nr" - Enderezos do cliente e campos de descrición (!!!! Non dispoñible para "*" táboas históricas)
"log": datos de rexistro
Os nomes dos campos son importantes para crear consultas SQL para aumentar a funcionalidade de busca porque o nome orixinal debe empregarse na instrución SQL.
Esta táboa é unha cola de eventos / comandos para cada dispositivo e ten a seguinte estrutura:
"comando": comando que se enviará ou xa se enviará ao controlador
"confirmado": marca de confirmación se xa foi enviado e confirmado
"data": marca de tempo unix do evento
"actualizado" - marca de actualización automática (data / hora de marca de tempo)
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.
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":"" }]
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" }]
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" }]