Tabla de contenido:
- Paso 1: configuración de la base de datos
- Paso 2: API
- Paso 3: Aplicación GPS / Python
- Paso 4: página web del proyecto
Video: EAL: recopilación de datos GPS de la industria 4.0 en automóviles Rc: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:40
En este Instructable, hablaremos sobre cómo configuramos un módulo GPS en un automóvil RC y publicamos los datos recopilados en una página web para facilitar el monitoreo. Anteriormente, hicimos un instructivo sobre cómo hicimos nuestro automóvil RC, que se puede encontrar aquí. Esto está usando la misma construcción, aunque hemos decidido descartar los sensores de ultrasonido y aplicar el módulo GPS en su lugar. En el proyecto, hemos configurado una base de datos que contiene los datos del GPS y hemos creado una página web en la que se pueden encontrar los datos, así como la hemos aplicado a un mapa, para que pueda ver dónde ha estado el automóvil. Visite Joerha.dk para ver la página web.
En el diagrama de flujo de la parte superior, puede ver una descripción general de las tecnologías que se han utilizado en este proyecto. Para aprovechar al máximo este Instructable, debe estar familiarizado con algunas, si no todas, las tecnologías utilizadas. Está vinculado según el uso. Tener conocimiento de Github también ayudará, ya que nos hemos vinculado a nuestros repositorios de github.
Lista de utilidades:
- Github
-
Frambuesa PI / Raspbian
Pitón
-
Node.js
- Express.js
- Sequelize.js
- MySQL
-
HTML, CSS, JS
Oreja
Paso 1: configuración de la base de datos
En este segmento hablaremos sobre cómo construimos el sistema de base de datos del que se extraen nuestros datos GPS. La base de datos está construida en MySQL de acuerdo con la imagen de arriba, donde tenemos dos tablas: “Usuarios” y “Entradas GPS”. En los usuarios tenemos "Id" como nuestra clave principal. Se utiliza como identificador único. "Nombre" es el nombre del usuario actualmente conectado. "Apikey" es la clave única que se le da al usuario para acceder a la API. "Activo" es para verificar si el usuario está activo, podemos desactivar al usuario, para que no pueda acceder a la base de datos. "CreatedAt" y "UpdatedAt" se crea mediante el proceso que usamos para construir la base de datos.
En la tabla “GPSEntries” tenemos todos los atributos que contienen datos del módulo GPS. “Hora” es la hora actual del módulo GPS, la usamos para mostrar la hora de la publicación. Luego tenemos la posición en coordenadas, así como "velocidad" y "rumbo". También tenemos muchos atributos de error, que muestran si hay un error en los datos del GPS, fx en las coordenadas. Los hemos agregado a la base de datos, pero no los mostramos en la página web. "UserId" es una clave externa que contiene el "id" de la tabla de usuarios. Eso se usa para mostrar qué usuario publicó los datos.
Paso 2: API
En este segmento hablaremos sobre la API que controla la base de datos y pega los datos en ella. La API web está construida con Node.js, que utiliza Express.js y Sequalize.js.
Node.js se usa para ejecutar JavaScript en el lado del servidor, donde normalmente se usa principalmente para scripts del lado del cliente en una página web.
Express.js es el marco que usamos para construir la API.
Sequalize.js se usa para hacer los enlaces entre los datos de Gps y los atributos de la base de datos. Utiliza un método llamado ORM (Object-Relational Mapping) para hacer esto. Aquí es también donde se crea "CreatedAt" y "UpdatedAt" (se muestra en el paso 1).
La API se puede utilizar visitando api.joerha.dk. Luego agregue / gps a la URL, que mostrará todos los datos en la base de datos en formato JSON. Para controlar cuántas entradas desea, puede agregar / 2 (el usuario) y / x (número de entradas) a la URL. Fx api.joerha.dk/gps/2/10 mostrará las 10 últimas entradas. En la imagen de arriba se muestra una toma de los datos formateados.
El código se puede encontrar aquí: Github
Paso 3: Aplicación GPS / Python
En este segmento hablaremos sobre el script que se ejecuta en la frambuesa, recopila los datos del GPS y los envía a la API.
Para recopilar los datos del GPS estamos usando un demonio llamado gpsd (Imagen 1). Aquí es donde recopilamos los datos que publicamos en la base de datos y la base de nuestra tabla GPSEntries. El script que extrae los datos de gpsd y los publica en la API está escrito en Python.
La aplicación inicializa un hilo, por lo que puede ejecutar tanto gpsd como nuestro programa al mismo tiempo. Los datos de Gpsd se transmiten continuamente mientras el GPS está activo (Imagen 2).
Luego, hacemos un ciclo while que publica continuamente su carga útil en la API que contiene los datos del GPS. Los datos tienen el formato JSON. La carga útil consta de los atributos que se ven en el GPSD. La etiqueta.fix actúa como una instantánea de los datos actuales y los envía a la API. Esto se realiza mediante request.post y utiliza la URL y la clave API. Print (r.status_code) se envía al usuario para saber si los datos se transmitieron correctamente. Time.sleep (0.5) es la frecuencia con la que se publican los datos (Imagen 3)
El código se puede encontrar aquí: Github
Paso 4: página web del proyecto
En este segmento hablaremos sobre cómo hicimos nuestra página web que muestra los datos, y otra información sobre el proyecto. El sitio está construido con HTML, CSS y JS. Para empezar usamos Bootstrap 4.0, que es una biblioteca para HTML, css y JS. Viene con muchas funciones que lo ayudan a construir su sitio web. Lo hemos usado para la barra de navegación en la parte superior, así como para la configuración de filas y columnas con las que se construye el sitio. Luego tenemos otro pequeño script CSS que controla los colores del fondo y los encabezados. Después de eso, hemos hecho uso de una biblioteca llamada lightbox, por lo que puede hacer clic en las imágenes y aparecerán. El contenido del sitio contiene un mapa de Google, una tabla de datos, un video del automóvil en acción y un enlace a esta misma página.
El mapa de google es el más interesante. El mapa se carga a través de una API de Google, donde se inserta una clave API única para que funcione. Los datos se transmiten al mapa en un intervalo de 500 ms. Hemos creado una función en la que los últimos 100 puntos de datos de la base de datos se muestran como marcadores, para que pueda seguir dónde ha estado el automóvil. Esto se hace a través de lo que se llama una llamada AJAX.
Los conjuntos de datos de la tabla de datos GPS se solicitan de la misma manera. En la tabla se pueden ver las últimas 10 entradas, actualizadas en tiempo real cuando el GPS está activo. Recuperamos datos de la base de datos en un intervalo de 500 ms.
El código se puede encontrar aquí: Github
Recomendado:
Sistema de alerta de estacionamiento en reversa para automóviles Arduino - Paso a paso: 4 pasos
Sistema de alerta de estacionamiento en reversa para automóviles Arduino | Paso a paso: en este proyecto, diseñaré un circuito de sensor de estacionamiento inverso de automóvil Arduino simple usando Arduino UNO y el sensor ultrasónico HC-SR04. Este sistema de alerta de marcha atrás de coche basado en Arduino se puede utilizar para una navegación autónoma, rango de robot y otros rangos r
Sistema de recopilación de comentarios: 4 pasos
Sistema de recopilación de comentarios: siempre es interesante recopilar comentarios después de los eventos y talleres. Para resolver ese problema, hemos creado un sistema de recolección de retroalimentación basado en arduino. En este proyecto, crearemos un dispositivo electrónico que recopilará retroalimentación según el botón presionado
Cambus - Sistema de recopilación de datos en autobuses urbanos: 8 pasos
Cambus - Sistema de Recolección de Datos en Bus Urbano: Entre los problemas y dificultades que se conocen en el transporte público, la población carece de información en tiempo real y con la menor asertividad. La masificación de los autobuses de transporte público aleja a los usuarios, que prefieren utilizar sus propios vehículos, incluso
Visualización de temperatura y humedad y recopilación de datos con Arduino y procesamiento: 13 pasos (con imágenes)
Visualización de temperatura y humedad y recopilación de datos con Arduino y procesamiento: Introducción: Este es un proyecto que utiliza una placa Arduino, un sensor (DHT11), una computadora con Windows y un programa de procesamiento (descarga gratuita) para mostrar datos de temperatura, humedad en formato digital y forma de gráfico de barras, muestra la hora y la fecha y ejecuta un conteo progresivo
Centro de recopilación de datos de sensores habilitado para IoT con ESP8266 y PubNub: 9 pasos (con imágenes)
Centro de recopilación de datos de sensores habilitado para IoT con ESP8266 y PubNub: la mayoría de los tutoriales sobre ESP8266 se encuentran en el nivel de novato (parpadeando un LED de forma remota) o son demasiado complejos para alguien que está buscando algo para mejorar y actualizar sus habilidades de parpadeo de LED. instructable tiene como objetivo cerrar esta brecha para crear