@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
@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.
A plataforma @City IoT é dedicada aos seguintes produtos iSys.PL
IoT - RF / LoRaWAN (Internet das coisas)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (Internet das coisas por celular)
Wi-fi
Ethernet
@City (eCity) Cloud IoT Platform é um sistema de vários tamanhos para produtos IP IoT (chamados juntos como @City Hardware ou Dispositivos CioT ):
@Cidade
@Luz
@Medição
@Vestígio
@AirQ
@Bin
A plataforma @City IoT suporta os seguintes protocolos de comunicação:
UDP - sugerido para sensores / dispositivos CIoT (especialmente NBIoT) - menor utilização de dados
TCPIP - sugerido para dispositivos com comunicação bidirecional - handshaking / confirmação
HTTP - sugerido apenas para acesso / visualização / exportação / dados "nuvem para nuvem"
HTTP Webhooks - para comunicação LoRaWAN entre LoRaWAN Network / Application Server e @City Cloud.
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. )
A plataforma @City IoT suporta:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - dispositivos (comunicação UDP / TCPIP)
Dispositivos LoRaWAN (HTTP Webhooks) - via gateway LoRaWAN e rede LoRaWAN / servidores de aplicativos
Controladores Ethernet (comunicação UDP / TCP)
Controladores WiFi (comunicação UDP / TCP)
Futuros produtos IP
Produtos não IP via local adicional @ City / eHouse.PRO Hardware Gateway
A plataforma @City IoT é dedicada a dispositivos / nós:
Produtos nativos iSys:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT (LoRaWAN)
WiFi - produtos dedicados para a plataforma @City
Ethernet - produtos dedicados para a plataforma @City
Produtos de coprodução (fabricados por terceiros sob licença iSys e marca externa)
Produtos de franquia (fabricados por terceiros sob licença iSys com logotipos iSys)
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):
acesso privado / público
contagem geral de dispositivos
atualização da frequência de status dos dispositivos
taxa de atualização de dados
Existem várias variantes de VPS, dependendo de:
Preço
localização geográfica do data center
Núcleos de processador virtual (1-8)
RAM virtual (1-32 GB)
Disco SSD (20 GB-1 TB)
Existem dezenas de servidores dedicados, dependendo de:
Preço
localização geográfica do data center
Núcleos do processador (4 .. 32)
RAM (16 .. 512 GB)
SSD / HDD (256 GB .. 8 TB)
A plataforma @City IoT é dedicada a um único cliente:
governos e autoridades locais (cidade, comunidade, país)
B2B (para terceiros)
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.
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:
receber dados de dispositivos de forma assíncrona (por meio de protocolos: UDP, TCP IP, HTTP)
minimizar a utilização de dados e seus custos entre dispositivos e nuvem (usando protocolos de comunicação de baixo nível UDP, TCP IP)
receber status criptografado de dispositivos (por meio de qualquer meio de comunicação)
autorização e validação de dados de dispositivos, descriptografando seus status
decodificar o status dos dispositivos e atualizá-lo nas tabelas MariaDB / MySQL diretamente (em formato de dados brutos)
tabela de dados atual (contém apenas o status mais recente de cada dispositivo)
tabela de dados históricos (contém todos os status para um único dispositivo)
enviar comandos pendentes (eventos) para dispositivos
garantindo handshaking, verificação e confirmações
O software @City Server é o mesmo para cada usuário e não pode ser personalizado para clientes diferentes.
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.
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.
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):
adicionar, remover, modificar arquivos HTML puros (GUI de front-end / desenvolvimento de interface)
adicionar, remover e modificar arquivos JavaScript puros (interface de usuário / desenvolvimento de interface e algoritmos)
adicionar, remover e modificar arquivos CSS puros (Front-End - Visualizações / Temas personalizados)
adicionar, remover, modificar arquivos de texto de modelos (interface de usuário front-end)
adicionar, remover, modificar guias, atalhos, links para resultados de dados
Outros direitos de acesso:
Acesso total ao banco de dados @City Cloud MySQL / MariaDB, onde todos os dados dos dispositivos são armazenados
O acesso aos Web Services são definidos (credenciais) para o cliente.
O cliente não tem permissão para passar credenciais a terceiros (o acesso múltiplo dos resultados pode afetar o desempenho, a estabilidade e a segurança do sistema geral)
Sob circunstâncias especiais e uso de Servidor Dedicado de alto desempenho, a conta pública pode ser configurada para observar a maioria dos dados atuais (não históricos).
O usuário pode duplicar dados em seu próprio servidor MySQL e realizar sua própria análise e processamento de dados, para não afetar o desempenho do @City Server
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.
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".
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
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.
Existem várias opções de negócios e cooperação:
produtos prontos para importação / exportação (painéis, dispositivos) - produtos finais
importar / exportar produtos OEM (PCBs, controladores, etc) - produtos intermediários, peças de reposição
franquia - produção baseada em nossa licença para mercados locais (fornecemos apenas microcontroladores programados) sob iSys - Intelligent Systems Brands
Coprodução - (como acima), mas sob marcas externas
A plataforma @City suporta template Front-End personalizável para visualização de dados, consulta, limitação e processamento (dados atuais / históricos):
visualizar os dados selecionados no mapa (geo-localização)
mostra os dados selecionados e os resultados nas tabelas
mostra os dados selecionados em gráficos de barras
mostra os dados selecionados em gráficos históricos
exportar dados para aplicativos de terceiros e processamento posterior
outras funcionalidades serão atualizadas em solicitações individuais.
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.
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
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)
O arquivo CSS do tema de visualização de modificação deve existir em "templates / css /" diretório - listado automaticamente.
Selecione os campos principais visíveis na tabela. Isto é atualizada automaticamente.
Desmarque todos os campos (deve ser seguido selecionando alguns deles manualmente)
Selecione todos os campos (deve ser seguido desmarcar alguns deles manualmente)
Isso é equivalente a todas as caixas de seleção (X)
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).
Exibe todos os campos limitados pelo Filtro de campo.
Campos da tabela:
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).
Adicionar / remover uma guia com o nome definido em Aba campo. Ele usa apenas os campos selecionados na mesma linha da tabela.
Pressionar qualquer outro nome de campo iniciará a visualização de dados do campo selecionado para a linha selecionada.
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).
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.
Insira o nome "Acompanhamento de bens" dentro Aba campo (sem aspas)
Certifique-se de que todas as colunas estão desmarcadas na linha
selecionar tm, gps_speed_km apenas na fila
Aperte + botão onde na linha
Os mapas podem ser iniciados a partir do MainForm com pré-configuração
A inicialização do mapa é realizada manualmente quando executada diretamente com o link: > http: //%IP%/IoT/maps.php
O usuário deve desmarcar todos os campos (pressione Deselecionar Botão)
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)
Aperte "V" caixa de seleção para ocultar o formulário de campos
Aperte Executar botão para executar a consulta de banco de dados e exibir informações atuais de todos os sensores / dispositivos
O mapa com dados é atualizado após 30 segundos ou mais.
Configurações descritas da esquerda para a direita (na imagem acima).
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.
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).
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.
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.
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.
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.
gps_speed_km> 10 // a velocidade é superior a 10km / h
ain5> 3 // ain5 é maior que 3 (contando partículas de 2,5um - nível de smog)
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)
É 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.
Depois de pressionar este botão, pelo menos um campo deve ser selecionado manualmente para exibir os resultados no mapa.
Esta caixa de seleção é usada para mostrar / ocultar o seletor de campos a serem exibidos.
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
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
Mostra os resultados na tabela.
Sobre "Formulário Principal" Aperte "tabela" item, após selecionar alguns campos para exibir a tabela pré-configurada
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.
Pressione todas as caixas de seleção necessárias para os campos exibidos
Pressione a caixa de seleção "Campos Visíveis" para ocultar o formulário de campos
Pressione o botão Executar para executar a consulta do banco de dados e exibir a tabela
As configurações são descritas da esquerda para a direita (na imagem).
O campo de classificação é equivalente a pressionar o cabeçalho da coluna.
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.
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.
gps_speed_km> 10 // a velocidade é superior a 10km / h
ain5> 3 // ain5 é maior que 3 (contando partículas de 2,5um - nível de smog)
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)
Depois de pressionar este botão, pelo menos um campo deve ser selecionado manualmente para exibir os resultados no mapa.
É 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.
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.
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.
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.
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.
Pressione todas as caixas de seleção necessárias para os campos exibidos
Pressione a caixa de seleção "Campos Visíveis" para ocultar o formulário de campos
Pressione o botão Executar para executar a consulta do banco de dados e exibir a tabela
Itens descritos de cima e da esquerda para a direita (na imagem).
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.
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.
gps_speed_km> 10 // a velocidade é superior a 10km / h
ain5> 3 // ain5 é maior que 3 (contando partículas de 2,5um - nível de smog)
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)
Após pressionar este botão, pelo menos um campo deve ser selecionado manualmente para exibir os resultados históricos.
É 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.
Esta caixa de seleção é usada para mostrar / ocultar o seletor de campos a serem exibidos.
O ponteiro do mouse exibe os valores das medições e data / hora.
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.
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:
Arquivo "* .head" que armazena o cabeçalho da página (links, CSS importado, arquivos JavaScript, etc. )
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.
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.
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):
"* _t" - tokens para autorização de usuários atuais (não usados para nuvens de cliente único)
"* _c" - fila de comandos (eventos) - a serem enviados para o dispositivo
"*" - todos os resultados de status decodificados.
Outras tabelas:
"ithings_" tabela - contém o status atual decodificado de todos os dispositivos (é copiado durante a atualização de qualquer um dos "*" tabelas). Estrutura de ithings_ mesa é quase a mesma para o "*" tabelas. "ithings_" têm campos adicionais para endereço postal e descrições.
A tabela "usuários" é restrita e deve ser modificada.
"idx" - índice
"tm" - carimbo de data / hora automático
"dt" - carimbo de data / hora unix
"imei" - endereço de dispositivo exclusivo
"rssi" - nível de sinal RSSI
"rsrp" - sinal RSRP
"eventos" - aguardando eventos para serem enviados ao controlador
"out1" .. "out16" - status das saídas decodificadas
"em 1" .. "in16" - status de entradas decodificadas
"ain1" .. "ain8" - valores ADC decodificados (RAW)
"sens1" .. "sens8" - valores de sensor convertidos (depende do tipo de dispositivo)
"dimm1" .. "dimm8" - valores de dimmers decodificados (depende do tipo de dispositivo)
"int1" .. "int6" - valores de contadores decodificados (depende do tipo de dispositivo)
"texto 1" .. "text6" - valores de texto decodificados (depende do tipo de dispositivo)
"criação" - data / hora de criação do dispositivo
"durar" - última data / hora
"usuário" - uso futuro
"passar" - uso futuro
"sn" - número de série gsm
"status" - o status atual do controlador não é decodificado em formato hexadecimal
"hash_code" - uso futuro
"addr" - endereço curto do dispositivo
"fwnr" - firmware nr
"desativado" - dispositivo desativado (não realizado)
"gsm_nr" - número gsm CIoT
"vendedor" - código do vendedor (para franquia / co-produção)
"fuso horário" - diferença de fuso horário
"dst" - Use as configurações de economia diária
"gps_lat" - Latitude GPS
"gps_long" - Longitude GPS
"gps_hdop" - GPS HDOP
"gps_alt" - Altitude GPS
"gps_fix" - Fixação GPS (deve ser 3 - para resultados válidos)
"gps_cog" - GPS Cog
"gps_speed_km" - Velocidade do GPS em [km / h]
"gps_sat" - Satélites GPS encontrados
"continente", "país", "região", "sub-região", "sub-região", "cidade", "distrito", "rua", "rua", "item_nr" - Endereço do cliente e campos de descrição (!!!! Não disponível para "*" tabelas históricas)
"log" - dados de log
Os nomes dos campos são importantes para criar consultas SQL para aumentar a funcionalidade de pesquisa porque o nome original deve ser usado na instrução SQL.
Esta tabela é a fila de eventos / comandos para cada dispositivo e tem a seguinte estrutura:
"comando" - comando a ser enviado ou já enviado para o controlador
"confirmado" - sinalizador de confirmação se já foi enviado e confirmado
"data" - carimbo de data / hora unix do evento
"atualizado" - sinalizador de atualização automática (data / hora do carimbo de data / hora)
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.
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":"" }]
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" }]
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" }]