@City IoT Plataforma en la nube
iSys - Sistemas inteligentes IoT Soluciones
IoE.Systems
Tabla de contenido
1. Introducción. 5
1.1 Tipos de dispositivos compatibles. 5
1.2. Tipos de productos admitidos. 5
1.3. Protocolos de comunicación compatibles 5
1.4. Tecnología de comunicación admitida de los dispositivos 6
1.5. @City Cloud Server 6
1.5.1. Pasarelas de comunicación y servidor 7
1.5.2 Integración HTTP LoRaWAN 7
1.5.3. Interfaz de usuario 8
1.5.3. Derechos de acceso al servidor 8
1.6. Dispositivos inteligentes 9
1.6.1. CIoT - dispositivos GSM 9
1.6.3. BAS, BMS, IoT: dispositivos Ethernet y WiFi 9
1.6.2. IoT -Dispositivos LoRaWAN 9
1.7. Opciones de empresa a empresa (B2B) 9
2. @City IoT Funcionalidad de la plataforma 10
3. Página principal 11
4. Formulario principal 11
4.1. Encabezado 12
4.1.1. Vínculo con el hogar - (abre la tabla de resultados reales) 12
4.1.2. Casilla de verificación "X": abre / cierra el formulario de consulta 12
4.1.3. Casilla de verificación "V": abre / cierra los campos Formulario 12
4.1.4. Iconos gráficos: vínculos a los resultados de visualización (editables) 12
4.2. Forma: 12
4.2.1. Casilla de verificación "X": abre / cierra todo el formulario de consulta 12
4.2.2. CSS: seleccione el tema de visualización 12
4.2.3 Casilla de verificación Campos visibles: muestra / oculta la lista de filtros de campo 12
4.2.4. Pestaña: Nombre de la pestaña para agregar o eliminar 12
4.2.5. Agregar / quitar botones: agregue o elimine pestañas con el nombre en el campo de pestañas 12
4.2.6. Seleccionar el botón principal 12
4.2.7. Botón Deseleccionar todo 12
4.2.7. Botón Seleccionar todo 12
4.2.8. Ocultar filtro - Ocultar formulario 12 completo
4.2.9. Botón Ejecutar - Cambiar la configuración de los parámetros 13
4.2.10. Casilla de verificación "V": mostrar / campos de filtro alto. 13
4.3. Pestañas 13
4.4. Contenido de la tabla 13
4.4.1. Ejecutar: visualiza el tipo de resultado 13
4.4.2. Copiar (+/- enlaces) 13
4.4.3. Vínculos de celda de tabla 13
4.5. Orden de datos 13
4.6. Ejemplo 13
5. Mapas 15
5.1. Inicialización del mapa 15
5.2. Configuración opcional para la consulta 15
5.2.1. Modificar escala MAP (nivel de zoom) 16
5.2.2. IMEI (Seleccionar campo de dispositivo) 16
5.2.3. Lon, Lat (campos de coordenadas de longitud y latitud) 16
5.2.4. Modificar estilo MAP (tema) 16
5.2.5. DONDE Cláusula 16
5.2.6. Ejecutar (botón Ejecutar consulta) 16
5.2.7. Deseleccionar todo (eliminar todos los campos de la consulta) 17
5.2.8. Casilla de verificación "V" (formulario de campo Abrir / Cerrar) 17
5.2.9. Casilla de verificación "X" (Mostrar / Ocultar formulario de consulta) 17
5.3. Ejemplo 17
6. Mostrar resultados en la tabla 18
6.1. Inicialización de la tabla 18
6.2. Configuración opcional para la consulta 19
6.2.1. Ordenar - ordenar campo y ordenar ascendente / descendente 19
6.2.2. DB / IMEI - Seleccionar dispositivo 19
6.2.3. CSS: seleccione el estilo (tema de visualización) 20
6.2.4. Campos visibles: formulario 20 para mostrar / ocultar campos
6.2.5. Eliminar vacío: no mostrar columnas vacías 20
6.2.6. Casilla de verificación "X" (Mostrar / Ocultar formulario de consulta) 20
6.2.7. Where Cláusula (para limitación de datos) 20
6.2.8. Seleccione el botón principal (habilite los campos más comunes) 20
6.2.9. Botón Deseleccionar todo (Eliminar todos los campos de la consulta) 20
6.2.10. Ejecutar (botón Ejecutar consulta) 20
6.2.11. Casilla de verificación "V" (formulario de campo Abrir / Cerrar) 20
7. Gráfica 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 - (Seleccionar dispositivo para mostrar datos históricos) 23
8.2.2. Mínimo - límite del valor mínimo del primer campo 23
8.2.3. Max: límite del valor máximo del primer campo 23
8.2.4. "V": formulario 23 para mostrar / ocultar campos
8.2.5. Desde: establecer fecha / hora mínima (*) 23
8.2.6. Para: establecer fecha / hora máxima (*) 23
8.2.7. Casilla de verificación "X" (Mostrar / Ocultar formulario de consulta) 23
8.2.8. "Dónde" Cláusula 23
8.2.9. Botón Deseleccionar todo (Eliminar todos los campos de la consulta) 23
8.2.10. Ejecutar (botón Ejecutar consulta) 23
8.2.11. Casilla de verificación "V" (formulario de campo Abrir / Cerrar) 24
8.3. Variante de barras: (muestra solo los datos disponibles) 24
8.4. Variante continua (con los mismos datos): 24
9. Compatibilidad del navegador web 25
10. Personalización de temas 26
11. Actualización de algoritmos 27
12. Estructura de la base de datos 28
12.1. Estructura de las tablas "ithings_" y "*" 29
12.2. Tabla de cola de comandos de dispositivo (eventos) "* _c" - estructura 30
12.3. Acceso a resultados de bases de datos - Nivel medio (lectura de datos) 30
12.3.1. Obtener estados actuales de todos los dispositivos 30
12.3.2. Obtener datos históricos del dispositivo 31
12.3.3. Obtener lista de dispositivos: campo único de los estados actuales con limitación 32
@City IoT Cloud Platform está dedicado "micro-nube" sistema para clientes individuales. La plataforma no se puede compartir y solo un cliente tiene acceso al servidor físico o virtual (VPS o servidores dedicados). El cliente puede seleccionar uno de los numerosos centros de datos de Europa o del mundo.
La plataforma @City IoT está dedicada a seguir los productos iSys.PL
IoT - RF / LoRaWAN (Internet de las cosas)
CIoT - GSM / 2G / 3G / 4G / CATM1 / NBIoT (Internet celular de las cosas)
Wifi
Ethernet
@City (eCity) Cloud IoT Platform es un sistema de varios tamaños para productos IP IoT (llamados juntos como @City Hardware o Dispositivos CioT ):
@Ciudad
@Luz
@Medida
@Rastro
@AirQ
@Compartimiento
La plataforma @City IoT admite los siguientes protocolos de comunicación:
UDP: sugerido para sensores / dispositivos CIoT (especialmente NBIoT): menor utilización de datos
TCPIP - sugerido para dispositivos con comunicación bidireccional - protocolo de enlace / confirmación
HTTP: sugerido solo para acceso / visualización / exportación de datos / "nube a nube"
Webhooks HTTP: para la comunicación LoRaWAN entre la red / servidor de aplicaciones LoRaWAN y @City Cloud.
Los datos enviados desde el controlador al servidor en la nube y viceversa se cifran en un formato binario único para obtener el tamaño de datos más bajo y una mayor seguridad. Cada socio obtiene su propia clave de cifrado única para la autorización del dispositivo, la verificación de la validez de los datos, etc.
Para dispositivos que no sean eHouse / eCity, podemos proporcionar algoritmos de cifrado individuales ( "C" código fuente) para cada socio para que el microprocesador proteja los datos antes de la comunicación.
En este caso, los datos están completamente seguros durante la comunicación bidireccional a través de los medios de comunicación públicos (internet, aire, etc. ).
La plataforma @City IoT admite:
GSM: 2G, 3G, 4G (LTE), CATM1 (LTEM1), NBIoT - dispositivos (comunicación UDP / TCPIP)
Dispositivos LoRaWAN (Webhooks HTTP): a través de la puerta de enlace LoRaWAN y la red LoRaWAN / servidores de aplicaciones
Controladores Ethernet (comunicación UDP / TCP)
Controladores WiFi (comunicación UDP / TCP)
Futuros productos de PI
Productos no IP a través de @ City / eHouse local adicional. Puerta de enlace de hardware
La plataforma @City IoT está dedicada a dispositivos / nodos:
Productos nativos de iSys:
CIoT (GSM / 2G / 3G / 4G / CATM1 / NBIoT)
IoT (LoRaWAN)
WiFi: productos dedicados para @City Platform
Ethernet: productos dedicados para la plataforma @City
Productos de coproducción (fabricados por terceros bajo licencia iSys y marca externa)
Productos en franquicia (fabricados por terceros bajo licencia iSys con logotipos iSys)
El software @City funciona en VPS (Servidor Privado Virtual) basado en Linux o Servidor Dedicado en el lado de Internet, dependiendo del rendimiento solicitado del Servidor (llamado servidor posterior):
acceso público / privado
recuento total de dispositivos
actualización de la frecuencia del estado de los dispositivos
frecuencia de actualización de datos
Existen varias variantes de VPS dependiendo de:
Precio
geolocalización del centro de datos
Núcleos de procesador virtual (1-8)
RAM virtual (1-32 GB)
Disco SSD (20GB-1TB)
Existen docenas de servidores dedicados dependiendo de:
Precio
geolocalización del centro de datos
Núcleos de procesador (4 .. 32)
RAM (16 .. 512 GB)
SSD / HDD (256 GB .. 8 TB)
La plataforma @City IoT está dedicada a un solo cliente:
gobiernos y autoridades locales (ciudad, comunidad, país)
B2B (para terceros propietarios)
Debido a que no es un servidor que se pueda compartir entre clientes, simplifica el acceso a la seguridad y los problemas de rendimiento. Por esta razón, solo el cliente es responsable de la seguridad, estabilidad, eficiencia, rendimiento de datos, etc. En caso de rendimiento insuficiente, el cliente puede comprar un plan superior (VPS o servidor dedicado), más óptimo para la funcionalidad y el rendimiento esperados.
En casos especiales "Cloud to cloud" la comunicación podría implementarse para la globalización y centralización de datos a áreas más grandes en lugar de la nube de múltiples clientes.
La comunicación de @City Server se realiza en base a una aplicación de bajo nivel para maximizar el rendimiento.
Las principales características de la aplicación @City Server son:
recibir datos de dispositivos de forma asíncrona (a través de protocolos: UDP, TCP IP, HTTP)
minimizar la utilización de datos y sus costos entre dispositivos y la nube (mediante el uso de protocolos de comunicación de bajo nivel UDP, TCP IP)
recibir el estado encriptado de los dispositivos (a través de cualquier medio de comunicación)
autorización y validación de datos de dispositivos descifrando sus estados
decodificar el estado de los dispositivos y actualizarlo en tablas MariaDB / MySQL directamente (en formato de datos sin procesar)
tabla de datos actual (contiene solo el estado más reciente de cada dispositivo)
tabla de datos históricos (contiene todos los estados para un solo dispositivo)
enviar comandos pendientes (eventos) a los dispositivos
asegurando el apretón de manos, la verificación y las confirmaciones
El software @City Server es el mismo para cada usuario y no se puede personalizar para diferentes clientes.
Los controladores LoRaWAN están integrados con la nube @City a través de la interfaz HTTP (webhooks) disponible en la red / servidor de aplicaciones LoRaWAN.
Se admiten varios tipos de servidor de red / aplicaciones:
TTN (tiempo limitado "En el aire" y el número máximo de comandos enviados al controlador y no son compatibles con la actualización del firmware)
LoraWAN-Stack (Requiere alojamiento en un dispositivo físico con acceso a Internet).
LoraServer.Io (Requiere alojamiento en un dispositivo físico con acceso a Internet; solo envía datos al servidor y no admite actualización de firmware)
@City Cloud para controladores LoRaWAN se divide de la misma manera que para otras interfaces. Se trata en el capítulo anterior.
La interfaz de usuario se realiza con scripts PHP para extraer datos personalizados de @City Cloud Database. Utiliza un mecanismo de búsqueda muy elástico, basado en consultas SQL originales para limitar los datos deseados. La interfaz proporciona los resultados de la consulta en formato JSON para su posterior decodificación y procesamiento por parte de la "aplicación" Web front-end.
La interfaz de usuario original es la misma para cada usuario y no se puede personalizar para diferentes clientes.
La interfaz superpuesta puede ser creada por nuestro personal o en cooperación para asegurar la personalización para el cliente.
Los derechos de acceso del cliente (al servidor físico) son limitados.
Acceso a archivos solo para el directorio de "plantillas" (archivos de texto nativos: .txt, .js, .css, .html):
agregar, eliminar, modificar archivos HTML puros (interfaz gráfica de usuario / desarrollo de interfaz)
agregar, eliminar, modificar archivos puros JavaScript (interfaz gráfica de usuario / desarrollo de interfaces y algoritmos)
agregar, eliminar, modificar archivos CSS puros (Front-End - Vistas / Temas personalizados)
agregar, eliminar, modificar archivos de texto de plantillas (interfaz gráfica de usuario)
agregar, eliminar, modificar pestañas, accesos directos, enlaces a resultados de datos
Otros derechos de acceso:
Acceso completo a @City Cloud Database MySQL / MariaDB donde se almacenan todos los datos de los dispositivos
El acceso a los Servicios Web se define (credenciales) para el cliente.
El cliente no puede pasar credenciales a terceros (el acceso múltiple a los resultados puede afectar el rendimiento, la estabilidad y la seguridad del sistema en general).
En circunstancias especiales y en el uso de un servidor dedicado de alto rendimiento, se puede configurar una cuenta pública para observar la mayoría de los datos actuales (no históricos).
El usuario puede duplicar datos en su propio servidor MySQL y realizar su propio análisis y procesamiento de datos, para no afectar el rendimiento de @City Server
iSys, personal de Intelligent Systems, tiene acceso ilimitado a todo el servidor, incluida la cuenta raíz y el acceso completo a la base de datos para el mantenimiento.
Bajo ciertas circunstancias, iSys puede otorgar derechos limitados adicionales al cliente (scripts PHP, archivos) después de verificar el código fuente, ejecutar pruebas, si no afecta la seguridad, estabilidad y rendimiento general del sistema.
Nuestros dispositivos contienen microcontrolador y módulo GSM / GPS / GNSS (2G..4G, NBIoT, CATM1) para la comunicación. El microcontrolador contiene un cargador de arranque encriptado para una actualización segura del firmware OTA. Esto permite crear muchas variantes del sistema basadas en el mismo "Dispositivo inteligente CIoT".
Los controladores Ethernet y WiFi permiten la comunicación basada en IP con el sistema (sin cobrar por la transferencia de datos al operador GSM). Estos dispositivos también tienen un cargador de arranque encriptado y los dispositivos pueden actualizarse a través de su interfaz nativa. Para WiFi tiene actualización de firmware OTA desde el servidor principal
LoRaWAN permite la transmisión de datos a distancias muy largas (hasta aprox. 15km). Este rango depende de la velocidad de transmisión de datos, la cantidad de datos, la urbanización del área y la eficiencia de las rutas de radio de los dispositivos.
Nuestros dispositivos incluyen un microcontrolador y un módulo LoRaWAN para la comunicación. El microcontrolador contiene un cargador de arranque encriptado para una actualización segura del software OTA. Esto le permite crear múltiples variantes del sistema basadas en el mismo "IoT smart device". Los dispositivos operan en la banda abierta ISM sin tarifas de suscripción adicionales. Es necesario utilizar LoRaWAN Gateways para cubrir toda el área con acceso a Internet. En el caso de puertas LoRaWAN existentes dentro del rango de dispositivos (configuradas para servidor TTN), es posible enviar información a través de ellas. La actualización del firmware requiere un servidor LoRaWAN de aplicación / red propia y un buen alcance para la comunicación.
Hay varias opciones para negocios y cooperación:
productos listos para importar / exportar (centralitas, dispositivos) - productos finales
Importar / exportar productos OEM (PCB, controladores, etc.): productos intermedios, repuestos.
franquicia - producción basada en nuestra licencia para los mercados locales (suministramos solo microcontroladores programados) bajo iSys - Intelligent Systems Brands
Coproducción - (como arriba) pero bajo marcas externas
La plataforma @City admite plantillas de front-end personalizables para visualización, consulta, limitación y procesamiento de datos (datos actuales / históricos):
visualizar datos seleccionados en el mapa (geolocalización)
muestra los datos seleccionados y los resultados en las tablas
muestra los datos seleccionados en gráficos de barras
muestra datos seleccionados en gráficos históricos
exportar datos a aplicaciones de terceros y su posterior procesamiento
otras funciones se actualizarán en solicitudes individuales.
Se puede acceder al Front-End del usuario a través de IP estática o dominio / subdominio / archivo de redirección de DNS, si está disponible.
Instalación ejemplar y de demostración (está habilitada solo para clientes potenciales).
Infórmenos cuando quiera probarlo, para permitir el acceso público a la plataforma.
Podría requerir una IP estática de una computadora remota para permitir la comunicación con la plataforma @City.
La página principal se deja vacía intencionalmente por razones de seguridad: http: //% YourIP% / IoT /
Puede habilitarse y editarse individualmente y contener enlaces a todos los servicios disponibles de @Ciudad IoT Plataforma si es necesario
El formulario principal está destinado a crear nuevos ajustes preestablecidos y pestañas: http: //%IP%/IoT/que.php
Esta es la forma inicial para crear resultados, vistas y pestañas para cada configuración.
Descripciones (desde arriba y de izquierda a derecha)
El archivo CSS Modify Visualization Theme debe existir en "plantillas / css /" directorio - listado automáticamente.
Seleccione los campos principales visibles en la tabla. Eso está actualizado automáticamente.
Anule la selección de todos los campos (debe seguirse seleccionando algunos de ellos manualmente)
Seleccionar todos los campos (debe seguirse con anular la selección de algunos de ellos manualmente)
Esto es equivalente a todas las casillas de verificación (X)
Pestañas creadas individualmente con nombres y preajustes (almacenadas en cfg / tabs.cfg expediente).
En realidad, el archivo contiene el nombre y la URL (separados por caracteres de tabulación).
Muestra todos los campos limitados por Filtro de campo.
Campos en la tabla:
mapa- resultados del mapeo en el mapa (se puede seleccionar uno o más campos)
historia - gráficos históricos (se pueden seleccionar uno o más campos)
tab - muestra la tabla (se puede seleccionar cualquier combinación de campos)
bar - solo se muestra un campo en el gráfico de barras
Al presionar uno de sus valores, se abrirán nuevos resultados con los campos seleccionados (para la fila actual).
Agregar / eliminar una pestaña con el nombre establecido en Pestaña campo. Utiliza solo campos seleccionados en la misma fila de la tabla.
Al presionar cualquier otro nombre de campo, se iniciará la visualización de datos del campo seleccionado para la fila seleccionada.
El orden de los campos mostrados es como su orden en el formulario de campos (sin embargo tm el campo siempre se envía al final del texto). Este orden solo se puede cambiar con la edición directa de los parámetros de la URL (parte del orden de los campos).
Por ejemplo: Pestaña de configuración con Seguimiento de activos nombre y contiene mapa con tiempo y velocidad en el mapa
Toda la descripción se refiere a la fila donde "Map" el texto está en "Correr" columna.
Ingrese su nombre "Seguimiento de activos" en Pestaña campo (sin comillas)
Asegúrese de que todas las columnas no estén seleccionadas en la fila.
Seleccione tm, gps_speed_km solo en la fila
prensa + botón donde en la fila
Los mapas se pueden iniciar desde MainForm con preconfiguración
La inicialización del mapa se realiza manualmente cuando se ejecuta directamente con el enlace: > http: //%IP%/IoT/maps.php
El usuario debe anular la selección de todos los campos (presione Deseleccionar Botón)
Presione alguna casilla de verificación para los campos mostrados (p. Ej. Ain5 (para el nivel de smog) y tm (para fecha / hora de medición)
prensa "V" casilla de verificación para ocultar el formulario de campos
prensa Ejecutar botón para ejecutar la consulta de la base de datos y mostrar la información actual de todos los sensores / dispositivos
El mapa con datos se actualiza después de 30 segundos o más.
Configuración descrita de izquierda a derecha (en la captura de pantalla anterior).
El nivel de zoom se puede modificar usando los botones (+/-) para la escala (current_scale * 2 o current_scale / 2 respectivamente). Al presionar uno de estos botones se modificará automáticamente la escala.
Otra forma es seleccionar Nivel de zoom en Zoom Campo Cuadro combinado y presione Ejecutar botón. En este caso, toda la Vista / Mapa se recarga y actualiza (lleva un tiempo durante la inicialización).
IMEIEl campo contiene un ID único de dispositivo o un alias único para un dispositivo. La configuración predeterminada es * (asterisco) que muestra los valores más recientes y la geolocalización de cada dispositivo.
Si configura IMEI en cualquier otro valor, se mostrarán los datos históricos del dispositivo seleccionado. Tiene sentido solo para sensores móviles y en movimiento; de lo contrario, los resultados se superpondrán en el mapa en la misma posición.
Establecer la posición central del mapa. Este campo se establece en la posición del cursor cuando se presiona el botón del mouse en el mapa.
El estilo / tema del mapa se puede seleccionar entre Map Campo ComboBox (p. Ej. Oscuro, Gris, Topográfico).
Varios temas de mapa pueden tener diferentes niveles de zoom máximos, por lo que podría aplicar el tema adecuado para aumentar la escala del mapa.
Where Clause se usa para una cadena de consulta adicional {WHERE part} para MySQL / MariaDB.
Esta cláusula se tiene en cuenta para construir una cadena QUERY completa para el resultado de la base de datos. Puede limitar los datos, el tiempo y cualquier otro valor al limitar el recuento de resultados. En este campo se deben utilizar los nombres de campo de la tabla original (no alias). P.ej.
gps_speed_km> 10 // la velocidad es superior a 10 km / h
ain5> 3 // ain5 es mayor que 3 (con conteo de partículas de 2.5um - nivel de smog)
gps_speed_km> 10 y ain6> 5 // la velocidad es superior a 10 km / hy ain6 es superior a 5 (con conteo de partículas de 10um - nivel de smog)
Se requiere presionar este botón para cambiar cualquier configuración, parámetro (excepto presionar +/- botones).
El mapa se carga desde el principio con nuevos ajustes preestablecidos.
El mapa no se carga en absoluto cuando no hay datos disponibles para la consulta actual.
Después de presionar este botón, se debe seleccionar al menos un campo manualmente para mostrar los resultados en el mapa.
Esta casilla de verificación se utiliza para mostrar / ocultar el selector de campos para mostrar.
Esta casilla de verificación permite ocultar el formulario completo excepto ( +/- botones)
Los resultados en el mapa se actualizan y actualizan continuamente con nuevos valores.
Por ejemplo, resultados de smog (sensor instalado en el automóvil): partículas de nivel de smog 2.5um (Ain5), velocidad (gps_speed_km), fecha / hora (tm), mapa (2 - topográfico), nivel de zoom 16,
Dónde cláusula:
"gps_fix = 3 y tm> "2019-02-18 00:00:00" y tm <"2019-02-19 00:00:00" y gps_speed_km> 0".
// GPS = resultados 3D válidos y fecha = 2019-02-18 y velocidad> 0 km / h
Muestra los resultados en la tabla.
En "Forma principal" prensa "mesa" elemento, después de seleccionar algunos campos para mostrar la tabla preconfigurada
Cuando la mesa está abierta desde el enlace http: //%IP%/IoT/que.php? func = tabs requiere una inicialización previa de la configuración.
Puede seleccionar campos visibles (presionando "Campos visibles" ) casilla de verificación.
Presione todas las casillas de verificación requeridas para los campos mostrados
Presione la casilla de verificación "Campos visibles" para ocultar el formulario de campos
Presione el botón Ejecutar para ejecutar la consulta de la base de datos y mostrar la tabla
Los ajustes se describen de izquierda a derecha (en la captura de pantalla).
Ordenar campo es equivalente a presionar el encabezado de columna.
IMEIEl campo contiene un ID único de dispositivo o un alias único para un dispositivo. Con valor vacío muestra tabla de valores más recientes.
Si configura IMEI en cualquier otro valor, se mostrarán los datos históricos del dispositivo seleccionado.
Este es un sufijo para la cadena de consulta adicional de MySQL / MariaDB {WHERE part}
Esta cláusula se tiene en cuenta para construir la cadena QUERY completa para el resultado de la base de datos. Puede limitar los datos, el tiempo y cualquier otro valor al limitar el recuento de resultados. En este campo se deben utilizar los nombres de campo de la tabla original (no alias). P.ej.
gps_speed_km> 10 // la velocidad es superior a 10 km / h
ain5> 3 // ain5 es mayor que 3 (con conteo de partículas de 2.5um - nivel de smog)
gps_speed_km> 10 y ain6> 5 // la velocidad es superior a 10 km / hy ain6 es superior a 5 (con conteo de partículas de 10um - nivel de smog)
Después de presionar este botón, se debe seleccionar al menos un campo manualmente para mostrar los resultados en el mapa.
Se requiere presionar este botón para cambiar cualquier configuración, parámetro (excepto presionar +/- botones).
La mesa se recarga desde el principio con nuevos ajustes preestablecidos.
Esta casilla de verificación se utiliza para mostrar / ocultar el selector de campos para mostrar.
Los resultados de la tabla se ordenan según Clasificar ajuste de campo. El orden de clasificación se puede cambiar presionando el encabezado de la fila (una vez para una dirección dos veces para otra dirección).
Algunos resultados en columnas se vinculan a más pantallas de visualización (codificados).
Cuando se muestran datos históricos para el dispositivo, debe limitarse para no mostrar la información completa del historial, ya que puede provocar problemas de rendimiento o falta de memoria.
Los gráficos de barras deben ejecutarse desde el formulario principal presionando un solo campo en la fila "Barra".
Muestra barras ordenadas normalizadas al valor máximo, de mayor a menor orden.
Es útil para comprobar rápidamente resultados extremos y realizar algunas acciones.
El evento Mouse Over mostrará información adicional para el dispositivo.
Los gráficos históricos se pueden iniciar desde MainForm al presionar la columna seleccionada en la fila "Historial" (para un solo campo).
Para varios campos en la fila "Historial", los campos deseados deben estar marcados y el enlace "Historial" debe presionarse en la columna "Ejecutar".
Los resultados históricos están limitados a las últimas 24 horas + las próximas 24 horas (para eventuales gráficos de actualización), cuando no se establecieron límites.
Los gráficos históricos cuando se abren desde el enlace principal requieren inicialización como otros resultados, cuando se abren desde el enlace sin parámetros de preferencias.
Se pueden seleccionar varios campos para mostrar varios elementos. También se puede configurar en Formulario de filtro de campo.
Presione todas las casillas de verificación requeridas para los campos mostrados
Presione la casilla de verificación "Campos visibles" para ocultar el formulario de campos
Presione el botón Ejecutar para ejecutar la consulta DB y mostrar la tabla
Elementos descritos de arriba a abajo y de izquierda a derecha (en la captura de pantalla).
IMEIEl campo contiene un ID único de dispositivo o un alias único para un dispositivo. Con el valor * (asterix) muestra una tabla de valores más recientes que no tiene sentido.
Si configura IMEI en cualquier otro valor, se mostrarán los datos históricos del dispositivo seleccionado.
Cláusula para limitar los resultados de los datos MySQL / MariaDB Cadena de consulta adicional {WHERE part}.
Esta cláusula se tiene en cuenta para construir una cadena QUERY completa para el resultado de la base de datos. Puede limitar los datos, el tiempo y cualquier otro valor al limitar el recuento de resultados. En este campo se deben utilizar los nombres de campo de la tabla original (no alias) y una sintaxis SQL válida. P.ej.
gps_speed_km> 10 // la velocidad es superior a 10 km / h
ain5> 3 // ain5 es mayor que 3 (con conteo de partículas de 2.5um - nivel de smog)
gps_speed_km> 10 y ain6> 5 // la velocidad es superior a 10 km / hy ain6 es superior a 5 (con conteo de partículas de 10um - nivel de smog)
Después de presionar este botón, se debe seleccionar al menos un campo manualmente para mostrar los resultados históricos.
Se requiere presionar este botón para cambiar cualquier configuración, parámetro (excepto mostrar campos o panel de consulta). La mesa se recarga desde el principio con nuevos ajustes preestablecidos.
Esta casilla de verificación se utiliza para mostrar / ocultar el selector de campos para mostrar.
El puntero del mouse muestra los valores de las mediciones y la fecha / hora.
Función / navegador WWW | Cromo 72 | FireFox 65 | Borde | Ópera 58 |
Mapas | + | + | + | + |
Histórico | + | + (*) | + | + |
Barras | + | + | + | + |
Pestañas | + | + | + | + |
* - Firefox no admite el selector de fecha / hora (el campo de texto debe editarse manualmente con el formato de fecha y hora adecuado).
Internet Explorer no es compatible (use Borde en lugar de)
No se probaron otros navegadores web.
Las páginas web se basan en un archivo de plantilla general ubicado en "plantillas" directorio "* .template".
Además, cada tipo de página contiene:
Archivo "* .head" que almacena el encabezado de la página (enlaces, CSS importado, JavaScript Archivos, etc. )
Archivos "* .foot" que almacenan el pie de página de la página (enlaces, etc. )
El tema de visualización se puede cambiar de acuerdo con las preferencias del usuario haciendo frente y modificando archivos CSS. Los archivos CSS se encuentran en "plantillas / css" directorio. Se pueden usar diferentes temas de páginas web para crear optimizados para, por ejemplo. impresión, SmartPhones, plantillas de PAD.
Pestañale vistas: tiene un campo seleccionable para elegir el archivo CSS para una modificación completa del tema (almacenado en "templates / css / tabs" directorio).
Map puntos de vista - el tema general es seleccionado por "mapa" escriba el cuadro combinado. Además, hay un archivo CSS predeterminado "templates / css / map.css" que contiene algunas funciones adicionales como ocultar / colorear resultados en función de sus valores. El resto de este archivo CSS está prácticamente limitado a formularios de consulta y campo.
La mayoría de @City Platform Se aceptan archivos PHP para visualización cssparámetro con valor de nombre de archivo para el tema (sin extensión). El archivo debe estar ubicado en el directorio "templates / css" y el nombre distingue entre mayúsculas y minúsculas.
Algunos elementos de la visualización del tema se encuentran directamente en el archivo JavaScript ubicado en "plantilla / js" directorio.
Principal @Ciudad texto"@ City.js" se encuentra en el directorio superior. No hay posibilidad de modificación en este ubicación, sin embargo, la secuencia de comandos se puede copiar a "templates / js" directorio y modificado allí. El uso de un script individual requiere actualizar todos los archivos de encabezado.
Algunos sensores únicos pueden requerir funciones de cálculo dedicadas.
No hay posibilidad de actualizar y mantener múltiples variantes de @City Server Software, Interfaz PHP de front-end, lo que causaría muchos problemas, versiones, errores.
La mejor y más fácil forma de lograrlo es actualizar los archivos de "superposición" para mostrar correctamente el valor / descripción.
Los scripts JS originales son archivos de texto abiertos y pueden adaptarse a las necesidades del cliente. Como se indicó en el capítulo anterior, deben copiarse a "templates / js" directorio donde el cliente tiene derechos de acceso para modificación.
Aspecto técnico sobre programación de @Ciudad El sistema no es un tema de este documento, sin embargo, el desarrollador web con conocimientos básicos de HTML y JS puede personalizar la aplicación web de front-end según las necesidades individuales del cliente.
@City Base de datos con un nombre "IoT" o "* IoT" se divide en tablas (donde el asterisco es el prefijo según el servidor de alojamiento, si es necesario). La base de datos se puede observar en PHPAdmin (aplicación web) en el enlace http: //% IP% / phpmyadmin
Conjunto de tablas para cada dispositivo (dónde * {asterix} es la dirección IMEI - ID único):
"* _t" - tokens para la autorización de usuarios actuales (no se utilizan para nubes de un solo cliente)
"*_C" - cola de comandos (eventos) - para ser enviados al dispositivo
"*" - todos los resultados de estado decodificados.
Otras tablas:
"ithings_" tabla: contiene el estado actual descodificado de todos los dispositivos (se copia durante la actualización de cualquiera de "*" mesas). Estructura de ithings_ La mesa es casi la misma que la "*" mesas. "ithings_" tener campos adicionales para la dirección postal y descripciones.
La tabla "usuarios" está restringida y debe modificarse.
"idx" - índice
"tm" - marca de tiempo automática
"dt" - marca de tiempo unix
"imei" - dirección de dispositivo única
"rssi" - Nivel de señal RSSI
"rsrp" - señal RSRP
"eventos" - eventos en espera para ser enviados al controlador
"out1" .. "out16" - estado de las salidas decodificadas
"En 1" .. "in16" - estado de las entradas decodificadas
"ain1" .. "ain8" - valores ADC decodificados (RAW)
"sens1" .. "sens8" - valores de sensor convertidos (depende del tipo de dispositivo)
"dimm1" .. "dimm8" - valores de dimmers decodificados (depende del tipo de dispositivo)
"int1" .. "int6" - valores de contadores decodificados (depende del tipo de dispositivo)
"texto 1" .. "texto6" - valores de texto decodificados (depende del tipo de dispositivo)
"creación" - fecha / hora de creación del dispositivo
"último" - última fecha / hora
"usuario": uso futuro
"pasar" - uso futuro
"sn": número de serie gsm
"estado" - estado actual del controlador no decodificado en formato hexadecimal
"hash_code": uso futuro
"addr" - dirección de dispositivo corta
"fwnr" - firmware nr
"desactivado": dispositivo desactivado (no realizado)
"gsm_nr": número gsm de CIoT
"proveedor": código de proveedor (para franquicia / coproducción)
"timezone": desplazamiento de la zona horaria
"dst": usar la configuración de ahorro diario
"gps_lat" - Latitud GPS
"gps_long" - Longitud GPS
"gps_hdop" - GPS HDOP
"gps_alt" - Altitud GPS
"gps_fix" - Fijación GPS (debe ser 3 - para obtener resultados válidos)
"gps_cog" - GPS Cog
"gps_speed_km" - Velocidad GPS en [km / h]
"gps_sat" - Satélites GPS encontrados
"continente", "país", "región", "subregión", "subsubregión", "ciudad", "distrito", "calle", "street_nr", "item_nr" - Campos de descripción y dirección del cliente (!!!! No disponible para "*" tablas históricas)
"log" - datos de registro
Los nombres de los campos son importantes para crear consultas SQL para aumentar la funcionalidad de búsqueda porque el nombre original debe usarse en la declaración SQL.
Esta tabla es una cola de eventos / comandos para cada dispositivo y tiene la siguiente estructura:
"comando": comando que se enviará o ya se enviará al controlador
"confirmado": marca de confirmación si ya se envió y se confirmó
"fecha": marca de tiempo Unix del evento
"actualizado": indicador de actualización automática (fecha y hora de la marca de tiempo)
Se puede acceder a los datos sin la aplicación web front-end. El sistema @City contiene un script con funciones de nivel medio. Los resultados se devuelven en formato JSON.
http: //%IP%/IoT/que.php? func = devsjson
La consulta devuelve todo "_ithings" tabla (estados actuales de todos los dispositivos) en formato JSON:
[{ "país":"", "ciudad":"", "continente":"", "país":"", "región":"", "subregión":"", "subsubregion":"", "ciudad":"", "distrito":"", "calle":"", "street_nr":"", "item_nr":"", "gps_lat":"0000.0000N", "gps_long":"00000.0000E", "tm":"2019-02-10 12:56:23", "creación":"2019-02-09 18:12:38", "último":"0000-00-00 00:00:00", "eventos":"", "usuario":"", "aprobar":"", "imei":"351580051067110", "sn":"", "estado":"73000200000f360033026800240000002c002c002dffffffffffffffff5b63000001c1000001c2000000000000000009250a4f0a760a7a0a750a780a7e0000031d032205fc34029b025c025600460eb305320000", "código hash":"", "addr":"", "fwnr":"", "discapacitado":"", "gsm_nr":"", "vendedor":"", "zona 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":"", "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", "En 1":"0", "en 2":"0", "en 3":"0", "in4":"0", "in5":"0", "in6":"0", "in7":"0", "in8":"0", "in9":"0", "in10":"0", "in11":"0", "in12":"0", "in13":"0", "in14":"0", "in15":"0", "in16":"0", "ain1":"3894", "ain2":"51", "ain3":"616", "ain4":"36", "ain5":"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":"", "texto4":"", "texto5":"", "texto6":"" }]
Consultar datos históricos de un solo dispositivo por IMEI nr:
http: //%IP%/IoT/que.php? func = imeijson & imei = 356345080018095
Debido a que la tabla completa puede contener millones de filas, debe limitarse con la cláusula WHERE para no colgar el servidor.
Parámetros adicionales de URL:
func - imeijson
imei - IMEI del dispositivo
campo - campos que se mostrarán en los resultados (lista separada por coma)
min - valor mínimo para el primer campo de la lista
max - valor máximo para el primer campo de la lista
sot - campo para ordenar
tm - el campo se agrega automáticamente a los resultados.
where - cláusula where para limitar los datos
Ejemplo:
Queremos obtener el siguiente resultado
para dispositivo con imei=356345080018095
mostrar campos: ain5, ain6, gps_lat, gps_long
y limite ain5 en el rango ( 1, 10000 ) - debe ser el primer campo de la lista
y GPS tener datos validos (gps_fix = 3)
y fecha / hora (tm) from2019-02-14 23:00:19 to 2019-02-15 00:00:00
Cadena de URL construida:
http: //%IP%/IoT/que.php? func =imeijson& imei =356345080018095& campo =ain5, ain6, gps_lat, gps_long& min =1& max =1000& donde =gps_fix = 3 y tm> "2019-02-14 23:00:19" y tm <"2019-02-15 00:00:00"
Resultados de la consulta:
[{ "ain5":"66","ain6":"68","gps_lat":"5202.7326N","gps_long":"02115.8073E","tm":"2019-02-14 23:04:31" }, { "ain5":"67","ain6":"76","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"2019-02-14 23:05:42" }, { "ain5":"63","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8074E","tm":"2019-02-14 23:06:05" }, { "ain5":"58","ain6":"77","gps_lat":"5202.7328N","gps_long":"02115.8075E","tm":"2019-02-14 23:06:32" }, { "ain5":"58","ain6":"68","gps_lat":"5202.7328N","gps_long":"02115.8076E","tm":"2019-02-14 23:06:55" }]
Esta función devuelve datos limitados de la tabla "_ithings"
http: //%IP%/IoT/que.php? func = fieldjson & field = ain5 & min = 13 & max = 5000
Parámetros:
func - fieldjson
campo - campo que se mostrará en los resultados - imei y tm se agregan automáticamente
min - valor mínimo para el campo
max - valor máximo para el campo
Para la cadena de consulta anterior, devuelve resultados de ain5, imei, tm campos:
Si ain5 está en el rango (13,5000)
Resultados de la consulta:
[{"imei":"353080090069142", "tm":"2019-03-14 11:51:01", "ain5":"14" },
{"imei":"356345080018095", "tm":"2019-02-20 09:13:04", "ain5":"115" },
{"imei":"karczew", "tm":"2019-03-07 13:08:22", "ain5":"103" }]