@City IoT Cloud Platform




iSys - Sistemas Inteligentes IoT Soluções









IoE.Systems

Índice

1 Introdução. 5

1.1 Tipos de dispositivos suportados. 5

1.2. Tipos de produtos suportados. 5

1.3. Protocolos de comunicação suportados 5

1.4. Tecnologia de Comunicação Suportada dos Dispositivos 6

1,5. @City Cloud Server 6

1.5.1. Servidor e gateways de comunicação 7

1.5.2 Integração HTTP LoRaWAN 7

1.5.3. Interface de front-end 8

1.5.3. Direitos de acesso ao servidor 8

1.6. Dispositivos Inteligentes 9

1.6.1. CIoT - dispositivos GSM 9

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

1.6.2. IoT Dispositivos LoRaWAN 9

1.7. Opções Business to Business (B2B) 9

2 @City IoT Funcionalidade da plataforma 10

3 Página principal 11

4 Formulário Principal 11

4.1. Cabeçalho 12

4.1.1. Home Link - (abre a tabela de resultados reais) 12

4.1.2. Caixa de seleção "X" - abre / fecha o Formulário de Consulta 12

4.1.3. Caixa de seleção "V" - abre / fecha o Formulário 12 dos Campos

4.1.4. Ícones gráficos - links para resultados de visualização (editáveis) 12

4.2. Formulário: 12

4.2.1. Caixa de seleção "X" - abre / fecha todo o Formulário de Consulta 12

4.2.2. CSS - Selecione o tema de visualização 12

4.2.3 Caixa de seleção Campos Visíveis - mostra / oculta a Lista de Filtros de Campo 12

4.2.4. Guia: Nome da guia para adicionar ou remover 12

4.2.5. Adicionar / Remover Botões - Adicionar ou remover guias com o nome no campo Guia 12

4.2.6. Selecione o botão principal 12

4.2.7. Botão Desmarcar tudo 12

4.2.7. Botão Selecionar Tudo 12

4.2.8. Ocultar Filtro - Ocultar todo o Formulário 12

4.2.9. Botão Executar - Alterar configurações de parâmetros 13

4.2.10. Caixa de seleção "V" - mostrar / campos de filtro alto. 13

4.3. Tabs 13

4,4. Conteúdo da Tabela 13

4.4.1. Executar - visualiza o tipo de resultado 13

4.4.2. Copiar (+/- links) 13

4.4.3. Tabela Cell Links 13

4.5. Ordem de dados 13

4,6. Exemplo 13

5 Maps 15

5.1. Inicialização do mapa 15

5,2 Configurações opcionais para a consulta 15

5.2.1. Modificar escala de MAP (nível de zoom) 16

5.2.2. IMEI (Selecione o campo do dispositivo) 16

5.2.3. Lon, Lat (campos de coordenadas de longitude, latitude) 16

5.2.4. Modificar Estilo MAP (Tema) 16

5.2.5. WHERE Cláusula 16

5.2.6. Executar (Botão Executar Consulta) 16

5.2.7. Desmarcar tudo (remover todos os campos da consulta) 17

5.2.8. Caixa de seleção "V" (formulário de campo aberto / fechado) 17

5.2.9. Caixa de seleção "X" (Mostrar / ocultar formulário de consulta) 17

5.3. Exemplo 17

6 Mostrar resultados na Tabela 18

6.1. Inicialização da tabela 18

6,2 Configurações opcionais para consulta 19

6.2.1. Classificar - campo de classificação e ordem crescente / decrescente 19

6.2.2. DB / IMEI - Selecione o dispositivo 19

6.2.3. CSS - selecione o estilo (Tema de visualização) 20

6.2.4. Campos Visíveis - Mostrar / Ocultar Campos do Formulário 20

6.2.5. Remover Vazio - Não exibe colunas vazias 20

6.2.6. Caixa de seleção "X" (Mostrar / ocultar formulário de consulta) 20

6.2.7. Cláusula Where (para limitação de dados) 20

6.2.8. Selecione o botão principal (habilitar os campos mais comuns) 20

6.2.9. Botão Desmarcar tudo (remover todos os campos da consulta) 20

6.2.10. Executar (Botão Executar Consulta) 20

6.2.11. Caixa de seleção "V" (formulário de campo aberto / fechado) 20

7 Gráficos de barra. 21

8 Gráficos históricos. 22

8,1 Inicialização de gráficos históricos 22

8,2. Configurações opcionais de gráficos históricos 23

8.2.1. IMEI - (Selecione o dispositivo para exibir dados históricos) 23

8.2.2. Mín - valor mínimo limite do primeiro campo 23

8.2.3. Máx - valor máximo limite do primeiro campo 23

8.2.4. "V" - Mostrar / Ocultar Campos do Formulário 23

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

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

8.2.7. Caixa de seleção "X" (Mostrar / ocultar formulário de consulta) 23

8.2.8. "Onde" Cláusula 23

8.2.9. Botão Desmarcar tudo (remover todos os campos da consulta) 23

8.2.10. Executar (Botão Executar Consulta) 23

8.2.11. Caixa de seleção "V" (formulário de campo aberto / fechado) 24

8,3. Variante de barras: (exibe apenas os dados disponíveis) 24

8.4. Variante contínua (com os mesmos dados): 24

9 Compatibilidade do navegador da Web 25

10 Personalização de Temas 26

11 Atualização de algoritmos 27

12 Estrutura do Banco de Dados 28

12,1. estrutura das tabelas "ithings_" e "*" 29

12,2. Tabela "* _c" da fila de comandos do dispositivo (eventos) - estrutura 30

12,3. Acessando resultados de bancos de dados - Nível médio (leitura de dados) 30

12.3.1. Obtenha o status atual de todos os dispositivos 30

12.3.2. Obtenha dados históricos para o dispositivo 31

12.3.3. Obter lista de dispositivos - campo único de status atuais com limitação de 32


1 Introdução.

@City IoT Cloud Platform é dedicado "micro nuvem" sistema para clientes individuais. A plataforma não é compartilhável e apenas um cliente tem acesso ao servidor físico ou virtual (VPS ou servidores dedicados). O cliente pode selecionar um dos vários data centers na Europa ou no mundo.

1.1 Tipos de dispositivos suportados.

A plataforma @City IoT é dedicada aos seguintes produtos iSys.PL



1.2. Tipos de produtos suportados.

@City (eCity) Cloud IoT Platform é um sistema de vários tamanhos para produtos IP IoT (chamados juntos como @City Hardware ou Dispositivos CioT ):


1.3. Protocolos de comunicação suportados

A plataforma @City IoT suporta os seguintes protocolos de comunicação:

Os dados enviados do controlador para o servidor em nuvem e vice-versa são criptografados em formato binário exclusivo para o menor tamanho de dados e maior segurança. Cada parceiro obtém sua própria chave de criptografia exclusiva para autorização do dispositivo, verificação de validade de dados, etc.


Para dispositivos não eHouse / eCity, podemos fornecer algoritmos de criptografia individuais ( "C" código-fonte) para cada parceiro do microprocessador para proteger os dados antes da comunicação.

Neste caso, os dados estão completamente seguros durante a comunicação bidirecional nos meios de comunicação públicos (Internet, Ar, etc. )


1.4. Tecnologia de Comunicação Suportada dos Dispositivos

A plataforma @City IoT suporta:


A plataforma @City IoT é dedicada a dispositivos / nós:


1,5. @City Cloud Server

O software @City funciona em VPS (Servidor Privado Virtual) baseado em Linux ou Servidor Dedicado no lado da Internet, dependendo do desempenho solicitado do Servidor (chamado posteriormente de Servidor):


Existem várias variantes de VPS, dependendo de:


Existem dezenas de servidores dedicados, dependendo de:


A plataforma @City IoT é dedicada a um único cliente:


Por não ser um servidor compartilhável entre clientes, ele simplifica o acesso à segurança e os problemas de desempenho. Devido a este motivo, apenas o cliente é responsável pela segurança efetiva, estabilidade, eficiência, processamento de dados, etc. Em caso de desempenho insuficiente, o cliente pode adquirir um plano superior (VPS ou Servidor Dedicado), mais otimizado para a funcionalidade e desempenho esperados.

Em casos especiais "Cloud to cloud" a comunicação pode ser implementada para globalização e centralização de dados em áreas maiores, em vez de nuvem de vários clientes.

1.5.1. Servidor e gateways de comunicação

A comunicação do @City Server é realizada com base em um aplicativo de baixo nível para maximizar o desempenho.

Os principais recursos do aplicativo @City Server são:

O software @City Server é o mesmo para cada usuário e não pode ser personalizado para clientes diferentes.

1.5.2 Integração HTTP LoRaWAN

Os controladores LoRaWAN são integrados à nuvem @City por meio da interface HTTP (webhooks) disponível na rede / servidor de aplicativos LoRaWAN.

Vários tipos de rede / servidor de aplicativos são suportados:

TTN (tempo limitado "No ar" e o número máximo de comandos enviados ao driver e não suportam atualização de firmware)

LoraWAN-Stack (requer hospedagem em um dispositivo físico com acesso à Internet).

LoraServer.Io (Requer hospedagem em um dispositivo físico com acesso à internet - apenas envia dados para o servidor e não suporta atualização de firmware)



O @City Cloud para controladores LoRaWAN é dividido da mesma forma que para outras interfaces. Isso é discutido no capítulo anterior.

1.5.3. Interface de front-end

A interface front-end é realizada com scripts PHP para extrair dados personalizados do banco de dados @City Cloud. Ele usa um mecanismo de pesquisa muito elástico, baseado em consultas SQL originais para limitar os dados desejados. A interface fornece resultados de consulta no formato JSON para posterior decodificação e processamento por JavaScript "aplicativo" da Web de front-end.

A interface front-end original é a mesma para cada usuário e não pode ser personalizada para clientes diferentes.

A interface de sobreposição pode ser criada por nossa equipe ou em cooperação para garantir a personalização para o cliente.

1.5.3. Direitos de acesso ao servidor

Os direitos de acesso do cliente (ao servidor físico) são limitados.

Acesso ao arquivo apenas para o diretório "templates" (arquivos de texto nativos - .txt, .js, .css, .html):

Outros direitos de acesso:


iSys - Equipe de sistemas inteligentes - tem acesso ilimitado a todo o servidor, incluindo conta root e acesso total ao banco de dados para manutenção.

Sob certas circunstâncias, a iSys pode conceder direitos limitados adicionais ao cliente (scripts PHP, arquivos) após verificar o código-fonte, executar testes, se isso não afetar a segurança, estabilidade e desempenho geral do sistema.


1.6. Dispositivos Inteligentes

1.6.1. CIoT - dispositivos GSM

Nossos dispositivos contêm microcontrolador e módulo GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) para comunicação. Microcontrolador contém bootloader criptografado para atualização de firmware OTA seguro. Isso permite a criação de muitas variantes de sistema com base no mesmo "Dispositivo CIoT Smart".


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


Os controladores Ethernet e WiFi permitem a comunicação baseada em IP para o sistema (sem cobrar pela transferência de dados para a operadora GSM). Esses dispositivos também criptografaram o bootloader e os dispositivos podem ser atualizados por meio de sua interface nativa. Para WiFi, tem atualização de firmware OTA do servidor principal


1.6.2. IoT - Dispositivos LoRaWAN

LoRaWAN permite a transmissão de dados em distâncias muito longas (até aprox. 15km). Esse alcance depende da velocidade de transmissão de dados, da quantidade de dados, da urbanização da área e da eficiência das vias de rádio dos dispositivos.

Nossos dispositivos incluem um microcontrolador e módulo LoRaWAN para comunicação. O microcontrolador contém um carregador de inicialização criptografado para atualização segura do software OTA. Isso permite que você crie várias variantes de sistema com base na mesma "IoT smart device". Os dispositivos operam na banda aberta ISM sem taxas de assinatura adicionais. É necessário usar os Gateways LoRaWAN para cobrir toda a área com acesso à Internet. No caso de portas LoRaWAN existentes dentro da faixa de dispositivos (configuradas para servidor TTN), é possível enviar informações através delas. A atualização de firmware requer servidor LoRaWAN de rede / aplicativo próprio e bom alcance para comunicação.

1.7. Opções Business to Business (B2B)


Existem várias opções de negócios e cooperação:

2 Funcionalidade da plataforma @City IoT

A plataforma @City suporta template Front-End personalizável para visualização de dados, consulta, limitação e processamento (dados atuais / históricos):


O front-end do usuário pode ser acessado via IP estático ou domínio / subdomínio / arquivo de redirecionamento de DNS, se disponível.


Instalação exemplar e de demonstração (habilitada apenas para clientes em potencial).

Informe-nos quando quiser testá-lo - para permitir o acesso público à plataforma.

Pode exigir IP estático do computador remoto para permitir a comunicação com a plataforma @City.


3 Página principal

A página principal foi deixada em branco intencionalmente por razões de segurança: http: //% YourIP% / IoT /

Pode ser habilitado e editado individualmente e conter links para todos os serviços disponíveis de @City IoT Platform se for necessário


4 Formulário Principal

O formulário principal destina-se a criar novas predefinições e guias: http: //%IP%/IoT/que.php

Este é o formulário inicial para a criação de resultados, visualizações e guias para cada configuração




Descrições (do topo e da esquerda para a direita)

4.1. Cabeçalho

4.1.1. Home Link - (abre a tabela de resultados reais)

4.1.2. "X" caixa de seleção - abre / fecha o formulário de consulta

4.1.3. "V" caixa de seleção - abre / fecha o Formulário de Campos

4.1.4. Ícones gráficos - links para resultados de visualização (editáveis)


4.2. Forma:

4.2.1. "X" caixa de seleção - abre / fecha todo o formulário de consulta

4.2.2. CSS - Selecione o tema de visualização

O arquivo CSS do tema de visualização de modificação deve existir em "templates / css /" diretório - listado automaticamente.

4.2.3 Campos visíveis caixa de seleção - mostra / oculta a lista de filtros de campo

4.2.4. Aba: Nome da guia para adicionar ou remover

4.2.5. Adicionar / Remover Botões - Adicionar ou remover guias com o nome em Aba campo

4.2.6. Selecione o núcleo Botão

Selecione os campos principais visíveis na tabela. Isto é atualizada automaticamente.

4.2.7. Desmarcar todos Botão

Desmarque todos os campos (deve ser seguido selecionando alguns deles manualmente)

4.2.7. Selecionar tudo Botão

Selecione todos os campos (deve ser seguido desmarcar alguns deles manualmente)

4.2.8. Esconder o Filtro - Ocultar formulário inteiro

Isso é equivalente a todas as caixas de seleção (X)

4.2.9. Executar Botão - Alterar configurações de parâmetros

4.2.10. "V" caixa de seleção - mostrar / campos de filtro alto.


4.3. Abas

Guias criadas individualmente com nomes e predefinições (armazenadas em cfg / tabs.cfg Arquivo).

Na verdade, o arquivo contém o nome e o URL (separados por tabulação).


4,4. Conteúdo da Tabela

Exibe todos os campos limitados pelo Filtro de campo.


Campos da tabela:

4.4.1. Corre - visualiza tipo de resultado

mapa- resultados de mapeamento no mapa (um ou mais campos podem ser selecionados)

história - gráficos históricos (um ou mais campos podem ser selecionados)

tab - exibe a tabela (qualquer combinação de campos pode ser selecionada)

bar - apenas um campo é exibido no gráfico de barras

Ao pressionar um de seus valores, novos resultados serão abertos com os campos selecionados (para a linha atual).


4.4.2. Copiar (+/- links)

Adicionar / remover uma guia com o nome definido em Aba campo. Ele usa apenas os campos selecionados na mesma linha da tabela.


4.4.3. Links de célula de tabela

Pressionar qualquer outro nome de campo iniciará a visualização de dados do campo selecionado para a linha selecionada.


4.5. Ordem de Dados


A ordem dos campos exibidos é a mesma no formulário de campos (no entanto tm campo é sempre enviado para o final do texto). Esta ordem só pode ser alterada com edição direta dos parâmetros de URL (parte da ordem dos campos).


4,6. Exemplo

Por exemplo: Guia de configuração com Acompanhamento de bens nome e contém mapa com tempo e velocidade no mapa

Todas as descrições se referem à linha onde "Map" o texto está em "Corre" coluna.

  1. Insira o nome "Acompanhamento de bens" dentro Aba campo (sem aspas)

  2. Certifique-se de que todas as colunas estão desmarcadas na linha

  3. selecionar tm, gps_speed_km apenas na fila

  4. Aperte + botão onde na linha






5 Mapas

Os mapas podem ser iniciados a partir do MainForm com pré-configuração


5.1. Inicialização do mapa

A inicialização do mapa é realizada manualmente quando executada diretamente com o link: > http: //%IP%/IoT/maps.php


  1. O usuário deve desmarcar todos os campos (pressione Deselecionar Botão)

  2. Pressione alguma caixa de seleção para os campos exibidos (por exemplo, Ain5 (para o nível de poluição) e tm (para data / hora de medição)

  3. Aperte "V" caixa de seleção para ocultar o formulário de campos

  4. Aperte Executar botão para executar a consulta de banco de dados e exibir informações atuais de todos os sensores / dispositivos

  5. O mapa com dados é atualizado após 30 segundos ou mais.


5,2 Configurações opcionais para consulta

Configurações descritas da esquerda para a direita (na imagem acima).

5.2.1. Modificar a escala do MAP (nível de zoom)

  1. O nível de zoom pode ser modificado usando os botões (+/-) para escala (current_scale * 2 ou current_scale / 2 respectivamente). Pressionar um desses botões modificará automaticamente a escala.

  2. Outra forma é selecionar o nível de zoom Ampliação Campo Combo Box e pressione Executar botão. Neste caso, todo o View / Map é recarregado e atualizado (demora um pouco durante a inicialização).

5.2.2. IMEI (Selecione o campo do dispositivo)

IMEIcampo contém ID exclusivo do dispositivo ou alias exclusivo para um dispositivo. A configuração padrão é * (asterisco) que mostra os valores mais recentes e geolocalização para cada dispositivo.

Definir o IMEI com qualquer outro valor, mostrará os dados históricos do dispositivo selecionado. Faz sentido apenas para sensores móveis e móveis, caso contrário, os resultados se sobreporão no mapa na mesma posição.


5.2.3. Lon, Lat (Longitude, campos de coordenadas de latitude)

Defina a posição central do mapa. Este campo é definido para a posição do cursor quando o botão do mouse é pressionado no mapa.


5.2.4. Modificar o estilo do MAP (tema)

O estilo / tema do mapa pode ser selecionado de Map Campo ComboBox (por exemplo, Escuro, Cinza, Topográfico).

Vários temas de mapa podem ter diferentes níveis máximos de zoom, portanto, pode impor o tema adequado para aumentar a escala do mapa.


5.2.5. Cláusula WHERE

Onde Cláusula é usada para string de consulta adicional {WHERE part} para MySQL / MariaDB.

Esta cláusula é levada em consideração para construir a string QUERY completa para o resultado do banco de dados. Pode limitar dados, tempo e quaisquer outros valores, limitando a contagem de resultados. Nomes de campos de tabela originais (não alias) devem ser usados ​​neste campo. Por exemplo.

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

  2. ain5> 3 // ain5 é maior que 3 (contando partículas de 2,5um - nível de smog)

  3. gps_speed_km> 10 e ain6> 5 // a velocidade é maior que 10km / he ain6 é maior que 5 (mantendo a contagem de partículas de 10um - nível de smog)


5.2.6. Executar (Botão Executar Consulta)

É necessário pressionar este botão para alterar quaisquer configurações, parâmetros (exceto pressionar +/- botões).

O mapa é carregado desde o início com novas predefinições.

O mapa não é carregado quando não há dados disponíveis para a consulta atual.

5.2.7. Desmarcar todos (Remova todos os campos da consulta)

Depois de pressionar este botão, pelo menos um campo deve ser selecionado manualmente para exibir os resultados no mapa.


5.2.8. "V" Caixa de seleção (formulário de campo aberto / fechado)

Esta caixa de seleção é usada para mostrar / ocultar o seletor de campos a serem exibidos.


5.2.9. "X" Caixa de seleção (Mostrar / ocultar formulário de consulta)

Esta caixa de seleção permite ocultar todo o formulário, exceto ( +/- botões)


Os resultados no mapa são continuamente atualizados e atualizados com novos valores

5.3. Exemplo

Por exemplo, resultados da poluição atmosférica (sensor instalado no carro): nível de poluição 2,5um partículas (Ain5), velocidade (gps_speed_km), data / hora (tm), mapa (2 - topográfico), nível 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" and gps_speed_km> 0".

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



6 Mostrar resultados na tabela

Mostra os resultados na tabela.

Sobre "Formulário Principal" Aperte "tabela" item, após selecionar alguns campos para exibir a tabela pré-configurada




6.1. Inicialização da mesa

Quando a mesa é aberta a partir do link http: //%IP%/IoT/que.php? func = tabs requer a inicialização prévia das configurações.

Você pode selecionar os campos visíveis (pressionando "Campos Visíveis" ) caixa de seleção.



  1. Pressione todas as caixas de seleção necessárias para os campos exibidos

  2. Pressione a caixa de seleção "Campos Visíveis" para ocultar o formulário de campos

  3. Pressione o botão Executar para executar a consulta do banco de dados e exibir a tabela


6,2 Configurações opcionais para consulta

As configurações são descritas da esquerda para a direita (na imagem).

6.2.1. Ordenar - campo de classificação e ordem crescente / decrescente

O campo de classificação é equivalente a pressionar o cabeçalho da coluna.

6.2.2. DB / IMEI - Selecionar dispositivo

IMEIcampo contém ID exclusivo do dispositivo ou alias exclusivo para um dispositivo. Com o valor vazio mostra a tabela dos valores mais recentes.

Definir o IMEI com qualquer outro valor, mostrará os dados históricos do dispositivo selecionado.


6.2.3. CSS - selecione o estilo (tema de visualização)

6.2.4. Campos Visíveis - Mostrar / ocultar formulário de campos

6.2.5. Remover Vazio - Não exibe colunas vazias

6.2.6. "X" Caixa de seleção (Mostrar / ocultar formulário de consulta)

6.2.7. Onde Cláusula (para limitação de dados)

Este é o sufix para string de consulta adicional MySQL / MariaDB {WHERE part}

Esta cláusula é levada em consideração para construir a string QUERY completa para o resultado do banco de dados. Pode limitar dados, tempo e quaisquer outros valores, limitando a contagem de resultados. Nomes de campos de tabela originais (não alias) devem ser usados ​​neste campo. Por exemplo.

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

  2. ain5> 3 // ain5 é maior que 3 (contando partículas de 2,5um - nível de smog)

  3. gps_speed_km> 10 e ain6> 5 // a velocidade é maior que 10km / he ain6 é maior que 5 (mantendo a contagem de partículas de 10um - nível de smog)


6.2.8. Selecione o núcleo Botão (ativa os campos mais comuns)


6.2.9. Desmarcar todos Botão (remover todos os campos da consulta)

Depois de pressionar este botão, pelo menos um campo deve ser selecionado manualmente para exibir os resultados no mapa.


6.2.10. Executar (Botão Executar Consulta)

É necessário pressionar este botão para alterar quaisquer configurações, parâmetros (exceto pressionar +/- botões).

A tabela é recarregada desde o início com novos presets.



6.2.11. "V" Caixa de seleção (formulário de campo aberto / fechado)

Esta caixa de seleção é usada para mostrar / ocultar o seletor de campos a serem exibidos.



Os resultados na tabela são classificados de acordo com Ordenar configuração de campo. A ordem de classificação pode ser alterada pressionando o cabeçalho da linha (uma vez para uma direção duas vezes para outra direção).

Alguns resultados em colunas são vinculados a outras telas de visualização (codificadas).


Ao exibir dados históricos para o dispositivo, ele deve ser limitado para não exibir informações de histórico inteiras porque pode levar a problemas de desempenho ou falta de memória.


7 Gráficos de barra.

Os gráficos de barras devem ser executados a partir do formulário principal pressionando um único campo na linha "Barra".

Ele exibe barras classificadas normalizadas para o valor máximo, mostrando a ordem mais alta para a mais baixa.

É útil para verificar rapidamente resultados extremos e realizar algumas ações.





O evento Mouse Over exibirá informações adicionais para o dispositivo.


8 Gráficos históricos.

Os gráficos históricos podem ser iniciados a partir do MainForm ao pressionar a coluna selecionada na linha "Histórico" (para campo único).

Para campos múltiplos na linha "Histórico", os campos desejados devem ser marcados e o link "Histórico" deve ser pressionado na coluna "Executar".

Os resultados históricos são limitados às últimas 24 horas + nas próximas 24 horas (para eventuais gráficos de atualização), quando nenhum limite foi definido.

8,1 Inicialização de gráficos históricos


Os gráficos históricos quando abertos a partir do link principal requerem inicialização como outros resultados, quando abertos a partir do link sem parâmetros de preferências.

Vários campos podem ser selecionados para exibir vários itens. Também pode ser definido no Formulário de filtro de campo.




  1. Pressione todas as caixas de seleção necessárias para os campos exibidos

  2. Pressione a caixa de seleção "Campos Visíveis" para ocultar o formulário de campos

  3. Pressione o botão Executar para executar a consulta do banco de dados e exibir a tabela


8,2. Configurações opcionais de gráficos históricos

Itens descritos de cima e da esquerda para a direita (na imagem).

8.2.1. IMEI - (Selecione o dispositivo para exibir dados históricos)

IMEIcampo contém ID exclusivo do dispositivo ou alias exclusivo para um dispositivo. Com o valor * (asterisco), mostra a tabela dos valores mais recentes que não fazem sentido.

Definir o IMEI com qualquer outro valor, mostrará os dados históricos do dispositivo selecionado.

8.2.2. Min - limite o valor mínimo do primeiro campo

8.2.3. Max - limite o valor máximo do primeiro campo

8.2.4. "V" - Mostrar / ocultar formulário de campos

8.2.5. A partir de: definir data / hora mínima (*)

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

8.2.7. "X" Caixa de seleção (Mostrar / ocultar formulário de consulta)

8.2.8. "Onde" Cláusula

Cláusula para limitar os resultados dos dados, string de consulta adicional MySQL / MariaDB {WHERE part}.

Esta cláusula é levada em consideração para construir a string QUERY completa para o resultado do banco de dados. Pode limitar dados, tempo e quaisquer outros valores, limitando a contagem de resultados. Nomes de campo de tabela original (não alias) devem ser usados ​​neste campo e sintaxe SQL válida. Por exemplo.

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

  2. ain5> 3 // ain5 é maior que 3 (contando partículas de 2,5um - nível de smog)

  3. gps_speed_km> 10 e ain6> 5 // a velocidade é maior que 10km / he ain6 é maior que 5 (mantendo a contagem de partículas de 10um - nível de smog)


8.2.9. Desmarcar todos Botão (remover todos os campos da consulta)

Após pressionar este botão, pelo menos um campo deve ser selecionado manualmente para exibir os resultados históricos.


8.2.10. Executar (Botão Executar Consulta)

É necessário pressionar este botão para alterar quaisquer configurações, parâmetros (exceto mostrar campos ou painel de consulta). A tabela é recarregada desde o início com novos presets.

8.2.11. "V" Caixa de seleção (formulário de campo aberto / fechado)

Esta caixa de seleção é usada para mostrar / ocultar o seletor de campos a serem exibidos.


8,3. Barras Variante: (exibe apenas os dados disponíveis)



8.4. Contínuo variante (com os mesmos dados):



O ponteiro do mouse exibe os valores das medições e data / hora.

9 Compatibilidade do navegador da web


Função / Navegador WWW

Chrome 72

FireFox 65

Borda

Opera 58

Mapas

+

+

+

+

Histórico

+

+ (*)

+

+

Barras

+

+

+

+

Abas

+

+

+

+


* - O Firefox não oferece suporte ao selecionador de data / hora (o campo de texto deve ser editado manualmente usando o formato de hora e data adequado).

O Internet Explorer não é compatível (use Borda em vez de)

Outros navegadores da web não foram testados.



10 Personalização de Temas

As páginas da web são baseadas em um arquivo de modelo geral localizado em "modelos" diretório "* .template".

Além disso, cada tipo de página contém:

  1. Arquivo "* .head" que armazena o cabeçalho da página (links, CSS importado, arquivos JavaScript, etc. )

  2. Arquivos "* .foot" que armazenam o rodapé da página (links, etc. )


O tema de visualização pode ser alterado de acordo com as preferências do usuário, copiando e modificando os arquivos CSS. Os arquivos CSS estão localizados em "templates / css" diretório. Diferentes Temas de Página da Web podem ser usados ​​para criar conteúdo otimizado, por exemplo. impressão, SmartPhones, modelos de PADs.


Abale visualizações - têm campo selecionável para escolher o arquivo CSS para modificação completa do tema (armazenado em "templates / css / tabs" diretório).




Map Visualizações - o tema geral é selecionado por "mapa" digite a caixa de combinação. Além disso, há um arquivo CSS padrão "templates / css / map.css" que contém algumas funcionalidades adicionais, como ocultar / colorir os resultados com base em seus valores. O resto deste arquivo CSS é praticamente limitado a formulários de consulta e campo.


O máximo de @City Platform Arquivos PHP para visualização aceitam cssparâmetro com valor do nome do arquivo para o tema (sem extensão). O arquivo deve estar localizado no diretório "templates / css" e o nome diferencia maiúsculas de minúsculas.


Alguns elementos da exibição do tema estão localizados diretamente no arquivo JavaScript localizado em "template / js" diretório.

Principal @Cidade roteiro"@ City.js" está localizado no diretório superior. Não há possibilidade de modificação neste local, no entanto o script pode ser copiado para "templates / js" diretório e modificado lá. O uso de um script individual requer a atualização de todos os arquivos de cabeçalho.

11 Atualização de algoritmos


Alguns sensores exclusivos podem exigir funções de cálculo dedicadas.

Não há possibilidade de atualizar e manter múltiplas variantes de @City Server Software, Interface PHP front-end, o que causaria muitos problemas, versões, erros.

A melhor e mais fácil maneira de conseguir isso é atualizando files arquivos de "sobreposição" para exibição adequada do valor / descrição.

Os scripts JS originais são arquivos de texto abertos e podem ser adotados de acordo com as necessidades do cliente. Conforme declarado no capítulo anterior, eles devem ser copiados para "templates / js" diretório onde o cliente tem direitos de acesso para modificação.


Aspecto técnico na programação de @Cidade sistema não é um assunto deste documento, no entanto, o desenvolvedor da Web com conhecimento básico de HTML e JS pode personalizar o aplicativo Front-end da Web de acordo com as necessidades individuais do cliente.


12 Estrutura de banco de dados


Banco de dados @City com um nome "IoT" ou "* IoT" é dividido em tabelas (onde asterix é o prefixo dependendo do servidor de hospedagem - se necessário). A base de dados pode ser observada no PHPAdmin (aplicativo da web) no link http: //% IP% / phpmyadmin




Conjunto de tabelas para cada dispositivo (Onde * {asterix} é o endereço IMEI - ID exclusivo):

Outras tabelas:



12,1. estrutura das tabelas "ithings_" e "*"

12,2. Tabela "* _c" da fila de comandos do dispositivo (eventos) - estrutura


Esta tabela é a fila de eventos / comandos para cada dispositivo e tem a seguinte estrutura:



12,3. Acessando resultados de bancos de dados - Nível médio (leitura de dados)


Os dados podem ser acessados ​​sem o aplicativo Web front-end. O sistema @City contém script com funções de nível médio. Os resultados são retornados no formato JSON.


12.3.1. Obtenha o status atual de todos os dispositivos

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


A consulta retorna inteiro "_ithings" tabela (status atual de todos os dispositivos) no formato JSON:

[{ "país":"", "cidade":"", "continente":"", "país":"", "região":"", "sub-região":"", "sub-região":"", "cidade":"", "distrito":"", "rua":"", "street_nr":"", "item_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "tm":"10/02/2019 12:56:23", "criação":"09/02/2019 18:12:38", "durar":"0000-00-00 00:00:00", "eventos":"", "do utilizador":"", "passar":"", "imei":"351580051067110", "sn":"", "status":"73000200000f360033026800240000002c002c002dffffffffffffffff5b63000001c1000001c200000000000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb305320000", "hash_code":"", "addr":"", "fwnr":"", "Desativado":"", "gsm_nr":"", "fornecedor":"", "fuso horário":"", "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":"", "out1":"0", "out2":"0", "out3":"0", "out4":"0", "out5":"0", "out6":"0", "out7":"0", "out8":"0", "out9":"0", "out10":"1", "out11":"0", "out12":"0", "out13":"0", "out14":"0", "out15":"0", "out16":"0", "em 1":"0", "em 2":"0", "in3":"0", "em 4":"0", "em 5":"0", "em 6":"0", "in7":"0", "in8":"0", "in9":"0", "em10":"0", "in11":"0", "em12":"0", "em13":"0", "em14":"0", "in15":"0", "in16":"0", "ain1":"3894", "ain2":"51", "ain3":"616", "ain4":"36", "aem 5":"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", "texto 1":"", "texto2":"", "texto3":"", "texto 4":"", "texto 5":"", "text6":"" }]

12.3.2. Obtenha dados históricos para o dispositivo

Consultar dados históricos de um único dispositivo por IMEI nr:

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


Como a tabela inteira pode conter milhões de linhas, ela deve ser limitada com a cláusula WHERE para não desligar o servidor.

Parâmetros adicionais Parâmetros de url:

função - imeijson

imei - IMEI do dispositivo

campo - campos a serem exibidos nos resultados (lista separada por vírgulas)

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

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

sout - campo para classificar

tm - o campo é adicionado automaticamente aos resultados.

where - cláusula where para limitar os dados


Exemplo:

Queremos obter o seguinte resultado

para dispositivo com imei=356345080018095

mostrar campos: ain5, ain6, gps_lat, gps_long

e limite aem 5 no alcance ( 1, 10.000 ) - deve ser o primeiro campo da lista

e GPS tem dados válidos (gps_fix = 3)

e data / hora (tm) from14/02/2019 23:00:19 to 15/02/2019 00:00:00


String de URL construída:

http: //%IP%/IoT/que.php? func =imeijson& imei =356345080018095& field =aem 5, ain6, gps_lat, gps_long& min =1& max =1000& onde =gps_fix = 3 and tm> "2019-02-14 23:00:19" e tm <"2019-02-15 00:00:00"


Resultados da consulta:

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

12.3.3. Obter lista de dispositivos - campo único de status atuais com limitação

Esta função retorna dados limitados da tabela "_ithings"


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



Parâmetros:

função - fieldjson

campo - campo a ser exibido nos resultados - imei e tm são adicionados automaticamente

min - valor mínimo para o campo

max - valor máximo para o campo


Para a string de consulta acima, ele retorna resultados de ain5, imei, tm Campos:

E se aem 5 está no alcance (13.5000)


Resultados da consulta:

[{"imei":"353080090069142", "tm":"14/03/2019 11:51:01", "aem 5":"14" },

{"imei":"356345080018095", "tm":"20/02/2019 09:13:04", "aem 5":"115" },

{"imei":"Karczew", "tm":"07/03/2019 13:08:22", "aem 5":"103" }]