Tabla de contenido:

LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 pasos (con imágenes)
LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 pasos (con imágenes)

Video: LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 pasos (con imágenes)

Video: LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 pasos (con imágenes)
Video: NEO 6M GPS Module with Arduino : Introduction Video 2024, Mes de julio
Anonim
Rastreador GPS LTE Arduino + Tablero IoT (Parte 1)
Rastreador GPS LTE Arduino + Tablero IoT (Parte 1)
Rastreador GPS LTE Arduino + Tablero IoT (Parte 1)
Rastreador GPS LTE Arduino + Tablero IoT (Parte 1)
Rastreador GPS LTE Arduino + Tablero IoT (Parte 1)
Rastreador GPS LTE Arduino + Tablero IoT (Parte 1)

Introducción

¿Qué pasa chicos? Este Instructable es un seguimiento de mi primer Instructable sobre el uso del escudo Botletics LTE / NB-IoT para Arduino, así que si aún no lo ha hecho, léalo para obtener una buena descripción general de cómo usar el escudo y de qué se trata.. En este tutorial, me centraré en el registro de datos de IoT y, específicamente, en el seguimiento de la temperatura y el GPS, y le proporcionaré todo el código y la guía que necesitará para salir a la carretera y probarlo.

Este Instructable se centra principalmente en el escudo LTE que diseñé y construí personalmente, pero todo aquí (incluida la biblioteca Github Arduino) debería funcionar en los módulos 2G y 3G de SIMCom como el SIM800 / 808/900/5320 también, ya que es solo una actualización versión de la biblioteca Adafruit FONA. Independientemente del hardware, el concepto es exactamente el mismo y puede hacer muchas cosas interesantes con esto, incluido el registro de datos de sensores, monitoreo remoto del clima, rastreo automático de karma por robo de autos, etc., ¡así que siga leyendo!

Paso 1: Reúna las piezas

Reúna las piezas
Reúna las piezas
Reúna las piezas
Reúna las piezas
Reúna las piezas
Reúna las piezas

¡La lista es la misma que en mi primer tutorial y es realmente simple!

  • Arduino Uno, Mega o Leonardo. Alternativamente, puede usar cualquier otro microcontrolador de 3.3V o 5V pero tendría que conectar los pines externamente.
  • Botletics SIM7000 Shield Kit (viene con el protector, antena dual LTE / GPS uFL y conectores hembra apilables). ¡Asegúrese de seguir este tutorial para seleccionar una versión adecuada!
  • Tarjeta SIM con holograma. La primera tarjeta SIM (llamada tarjeta SIM de "desarrollador") es completamente gratuita y viene con 1 MB de datos al mes. En los EE. UU., Lo más probable es que estés en la red de Verizon si usas la tarjeta SIM Hologram. También puede recogerlo junto con el escudo Botletics si le resulta más conveniente.
  • Batería LiPo de 3,7 V (se recomienda una capacidad de 1000 mAH o superior).
  • Cable USB para programar tu Arduino o para alimentarlo.

¡Para la prueba de rastreo GPS!

  • Puede usar un adaptador USB para automóvil para alimentar su Arduino mientras prueba el escudo en la carretera.
  • Alternativamente, puede usar un paquete de baterías (7-12V) para alimentar el Arduino a través de los pines VIN y GND.

Paso 2: Montaje físico

Ensamblaje físico
Ensamblaje físico
Ensamblaje físico
Ensamblaje físico
Ensamblaje físico
Ensamblaje físico

Ahora que tiene todas sus piezas, aquí hay un resumen rápido de lo que debe hacer para configurar su hardware:

  • Suelde los cabezales hembra apilables al escudo. Vea este tutorial sobre cómo hacerlo.
  • Enchufe el escudo en el Arduino, asegurándose de alinear todos los pines para no dañarlos.
  • Inserte la tarjeta SIM como se muestra en la imagen. Los contactos de metal miran hacia abajo y anote la ubicación de la muesca en la esquina.
  • Enchufe la batería LiPo al conector JST en el escudo
  • Conecte su Arduino a su computadora con un cable USB. Puede notar que el LED de encendido verde del escudo no se enciende. Eso es perfectamente normal porque el pin PWRKEY del escudo debe pulsarse bajo durante un rato para encenderlo. ¡El boceto de Arduino de ejemplo en la siguiente sección se encargará de eso por usted!
  • Conecte la antena dual LTE / GPS a los conectores uFL en el borde derecho del protector. Tenga en cuenta que los cables se entrecruzarán, ¡así que no conecte los incorrectos!
  • ¡Ya está listo para el software!

Paso 3: configuración de Arduino y prueba del dispositivo

Configuración de Arduino y prueba de dispositivos
Configuración de Arduino y prueba de dispositivos

Configuración de Arduino IDE

Si aún no lo ha hecho, consulte los pasos "Configuración de Arduino IDE" y "Ejemplo de Arduino" en el Instructable del producto principal para asegurarse de que su placa esté funcionando correctamente. En esas instrucciones, deberá descargar la biblioteca en la página de Github y abrir el código de ejemplo "LTE_Demo". Después de seguir esas instrucciones, debería haber probado la conexión de red, el GPS y los datos de publicación en dweet.io.

Bosquejo de ejemplo de IoT

Ahora que ha probado las características principales de su escudo, cargue el boceto "IoT_Example" en Arduino IDE. También puedes encontrarlo aquí en Github. Sube este código a tu Arduino y abre el monitor serial y deberías ver que el Arduino encuentra el módulo SIM7000, se conecta a la red celular, habilita el GPS y sigue intentándolo hasta que obtenga una solución en la ubicación, y publica los datos en dweet.io. Todo esto debería ejecutarse sin cambiar ninguna línea del código, asumiendo que está utilizando el escudo LTE y la tarjeta SIM de holograma.

De forma predeterminada, verá que la siguiente línea define la frecuencia de muestreo (bueno, en realidad, la demora entre publicaciones).

#define samplingRate 30 // El tiempo entre publicaciones, en segundos

Si esta línea no se comenta, el Arduino publicará datos, retrasará 30 segundos, publicará datos nuevamente, repetirá, etc. Durante el retraso de 30 segundos, puede hacer cosas como poner el Arduino en modo de bajo consumo y cosas elegantes como esas, pero para mantener cosas simples, solo usaré la función delay () para pausar la operación. Si comenta esta línea, Arduino publicará datos y luego irá directamente al modo de suspensión de bajo consumo de forma indefinida hasta que presione el botón de reinicio en su Arduino. Esto es útil si está probando algo y no quiere quemar sus valiosos datos gratuitos (aunque, sinceramente, cada publicación no usa prácticamente nada) o tal vez tiene un circuito externo para restablecer el Arduino (temporizador 555, interrupción del RTC, interrupción del acelerómetro, sensor de temperatura ¿Interrumpir? ¡Piense fuera de la caja!). De hecho, en el tutorial de Burgalert 7000 muestro cómo se puede utilizar un detector de movimiento PIR para activar el microcontrolador.

La siguiente línea establece si el escudo se apagará después de publicar datos o permanecerá encendido. Puede optar por la primera opción descomentando la línea si solo está muestreando de vez en cuando, pero si tiene una frecuencia de muestreo relativamente alta, querrá dejar la línea comentada para que el escudo permanezca encendido y no tenga para reinicializar, reactivar GPRS y GPS, etc. Cuando el escudo se deja encendido, se puede publicar extremadamente rápido.

// # define turnOffShield // Desactiva el escudo después de publicar datos

También tenga en cuenta que este ejemplo obtiene automáticamente el número IMEI específico del módulo y globalmente único del SIM7000 y lo usa como la ID del dispositivo (o "nombre" si lo prefiere) para identificar el dispositivo cuando publica datos en dweet.io. Puedes cambiar esto si quieres, así que pensé en avisarte:)

Para verificar si sus datos se están enviando realmente a dweet.io, simplemente complete la información apropiada y copie / pegue la URL en cualquier navegador:

dweet.io/get/latest/dweet/for/{deviceID}

donde {deviceID} debe ser sustituido por el número IMEI que está impreso en el monitor serial al principio, justo después de que Arduino lo encuentra. Después de ingresar esa URL en su navegador, debería ver una respuesta JSON como la siguiente:

Al mirar el "contenido", debería ver la latitud, la longitud de su ubicación, su velocidad (en kilómetros por hora), la dirección del rumbo (grados, siendo 0 grados el norte), la altitud (metros), la temperatura (* C, pero se siente libre para convertir en el código), y el voltaje de suministro en milivoltios (que es VBAT, el voltaje de la batería). Para obtener más información sobre la cadena de datos NMEA, puede consultar la página 149 del manual de comandos SIM7000 AT.

Una vez que verifique que su configuración está enviando datos con éxito a dweet, ¡configuremos el tablero para ver todos nuestros datos en una interfaz agradable!

Paso 4: Configuración de Freeboard.io

Configuración de Freeboard.io
Configuración de Freeboard.io
Configuración de Freeboard.io
Configuración de Freeboard.io
Configuración de Freeboard.io
Configuración de Freeboard.io

Para este tutorial usaremos freeboard.io, un panel de IoT realmente genial que puede conectarse con numerosas plataformas en la nube como PubNub y dweet, así como otras características como JSON y MQTT. Como probablemente habrá adivinado, también usaremos dweet.io, que se usa en el código de ejemplo de la sección anterior. Como nota importante, arrastrar paneles en freeboard.io no parece funcionar en Chrome, así que use Firebox o Microsoft Edge en su lugar. Si no lo hace, ¡puede ser un verdadero "panel" para reorganizar los elementos en su pantalla!

Configuración de cuenta y dispositivo

  • Lo primero que debe hacer es crear una cuenta haciendo clic en el botón rojo "EMPEZAR AHORA" en la página de inicio de freeboard.io, ingresar las credenciales y hacer clic en "Crear mi cuenta". A continuación, recibirá una notificación por correo electrónico confirmando su nueva cuenta.
  • Ahora haga clic en "Iniciar sesión" en la parte superior derecha de la página de inicio y, después de iniciar sesión, debería ver sus "tableros libres", que son solo tableros que configura para sus proyectos. Obviamente, si la cuenta es nueva, no verá nada aquí, así que ingrese un nuevo nombre de proyecto y haga clic en "Crear nuevo" cerca de la parte superior derecha. Esto luego lo llevará a un tablero vacío donde puede configurar la interfaz como desee. En el francobordo puede configurar varios "paneles", y cada panel puede tener uno o varios "widgets" que son cosas como gráficos, mapas, indicadores, etc. que muestran sus datos de alguna manera.
  • Lo primero que debemos hacer ahora es configurar la fuente real de datos, que es su escudo Arduino + LTE. Para hacer eso, haga clic en "AÑADIR" en la parte superior derecha debajo de "Fuentes de datos". A continuación, seleccione "Dweet.io" e introduzca el nombre que desee en el campo "Nombre". Sin embargo, asegúrese de que en el campo "Nombre de la cosa" ingrese el número IMEI del escudo en lugar de cualquier nombre arbitrario, porque eso es lo que usará el francobordo para extraer datos de dweet.
  • Después de hacer clic en "Guardar", debería ver que su dispositivo aparece en "Fuentes de datos", así como la última vez que envió datos al dweet. También puede hacer clic en el botón de actualización para verificar los valores más recientes, pero el francobordo se actualizará por sí solo, por lo que normalmente no debería tener que usar ese botón.

Configuración del tablero

¡Ahora echemos un vistazo a cómo configurar las campanas y silbidos reales que desea ver en su pantalla!

  • Para agregar un panel, haga clic en el botón "AGREGAR PANEL" en la parte superior izquierda y verá que agrega una pequeña ventana en su pantalla. Sin embargo, todavía no hay nada aquí porque no hemos agregado ningún widget.
  • Para agregar un widget, haga clic en el pequeño botón "+" del panel. Esto abrirá un menú desplegable con varias opciones de widgets. Como vamos a realizar un seguimiento por GPS, seleccionemos el widget "Mapa de Google". A continuación, debería ver dos campos, la latitud y la longitud. Para completarlos correctamente, su dispositivo debe haber publicado ya en dweet. Suponiendo que lo haya hecho, debería poder hacer clic en "+ Fuente de datos", hacer clic en la fuente de datos (el "Rastreador GPS SIM7000"), luego hacer clic en "lat", que es el nombre de la variable que usa el escudo al publicar en dweet. Repita el procedimiento para el campo de longitud y haga clic en el control deslizante en la parte inferior si desea que el mapa dibuje líneas entre los puntos de datos para marcar dónde ha estado.
  • ¡Ahora debería ver un pequeño mapa de su ubicación aproximada! Para probar si el mapa funciona, intente cambiar su lat / long GPS actual a algo ligeramente diferente cambiando, por ejemplo, el primer dígito después del punto decimal de los valores lat / long en la URL dweet que se imprimió en el monitor serial en Arduino IDE cuando el escudo publicó datos. Después de modificarlos, copie y pegue la URL y ejecútela en su navegador.

dweet.io/dweet/for/112233445566778?lat=11.223344&long=-55.667788&speed=0&head=10&alt=324.8&temp=22.88&batt=3629

¡Ahora regrese al francobordo y debería ver que graficaba su ubicación modificada y dibujaba una línea naranja entre los puntos! Cosas geniales, ¿eh? Así que creo que te das cuenta de que nuestro rastreador GPS enviará datos de ubicación a dweet para que los veas en el francobordo en tiempo real o después de que termine tu aventura

Extras

Dado que nuestro pequeño rastreador de GPS envía no solo datos de latitud / longitud, sino también de altitud, velocidad, rumbo y temperatura, ¡agreguemos algunos widgets más para hacer que nuestro tablero sea más colorido!

  • Comencemos agregando un nuevo panel y luego para agregar un indicador dentro del nuevo panel, haga clic en el botón "+" en el panel y seleccione "Indicador". Al igual que antes, use la fuente de datos y seleccione "velocidad" como los datos que nos interesa obtener para este indicador. ¡Entonces debería ver un buen indicador en su tablero!
  • Repita esto para los valores de altitud y temperatura.
  • Ahora, para el título, agreguemos un "Puntero" en su lugar. Esto es esencialmente una brújula porque comienza apuntando hacia arriba (norte) a 0 grados y gira en el sentido de las agujas del reloj para rumbos positivos.. ¡Perfecto!
  • Para cambiar el tamaño del panel, coloque el cursor sobre el panel que contiene el mapa y debería ver un pequeño símbolo de llave inglesa en la parte superior derecha. Haga clic en eso e ingrese un título para el panel e ingrese "2" en "Columnas" para aumentar el ancho del panel.
  • Para cambiar la ubicación de los paneles, simplemente arrástrelos alrededor. También puede experimentar agregando un "Minigráfico" que es básicamente un gráfico de líneas para que pueda ver no solo los datos más recientes, sino también los datos históricos.

¡Diviértete y configúralo todo como quieras porque estamos listos para salir de excursión!

Paso 5: prueba

Image
Image
Pruebas
Pruebas

Para probar su configuración, recomendaría establecer el tiempo de muestreo en un valor más bajo, como 10-20 segundos, para que pueda capturar su viaje con una resolución más alta. También dejaría la variable "turnOffShield" comentada para que el escudo no se duerma. Esto le permite publicar datos en rápida sucesión.

Después de cargar el código en su Arduino, obtenga una batería (7-12V) para alimentar el Arduino o simplemente conecte el Arduino usando un adaptador USB para automóvil. También necesitará una batería LiPo de 3.7V conectada al protector como se mencionó anteriormente; el escudo que se muestra en la imagen de arriba es una versión anterior y no tenía soporte para baterías LiPo, pero ahora es necesario en todas las versiones más nuevas.

A continuación, abra el francobordo en algún lugar para que cuando regrese pueda ver los resultados. Una vez que conecte el Arduino, ¡estará listo! Comience a conducir, tome un café, regrese a casa y debería ver los datos trazados en el francobordo. Si realmente lo desea (no lo recomiendo mientras conduce …) puede ver los datos de francobordo en su teléfono en tiempo real mientras su amigo conduce el vehículo. ¡Cosas divertidas!

Paso 6: Resultados

Resultados
Resultados

Para esta prueba, mi papá y yo fuimos a comprar unos tambores de pollo en Trader Joe's (omnomnomnom…) y recopilamos algunos datos bastante precisos. Hice que el dispositivo enviara datos cada 10 segundos y la velocidad máxima del viaje fue de aproximadamente 92 khm (alrededor de 57 mph), lo cual es bastante preciso porque vigilamos el velocímetro todo el tiempo. El escudo LTE definitivamente hace su trabajo bastante bien y envía datos a la nube muy rápidamente. ¡Hasta aquí todo bien!

Sin embargo, quizás la noticia no tan buena es que el widget de mapa en el francobordo no es tan bueno como había pensado originalmente. No le permite mover la ubicación de su mouse y permanece centrado en la última ubicación, por lo que es ideal para cosas como un rastreador GPS de automóvil, pero no si desea analizar un viaje completo con todos los puntos de datos, especialmente si Fue un largo viaje.

En este tutorial aprendimos cómo usar el escudo LTE como rastreador GPS y registrador de datos y cómo ver rápidamente los datos en freeboard.io. Ahora usa tu imaginación y aplícala en tu propio proyecto. ¡Incluso puede agregar más escudos y convertir esto en un registrador de datos solar de baja potencia! (¡De hecho, podría estar planeando hacer un tutorial sobre eso en el futuro!). Debido a las limitaciones del mapa de francobordo, también planeo hacer un nuevo tutorial sobre cómo crear su propia aplicación de Android que obtenga los datos de dweet y le permitirá graficar la ubicación del rastreador en Google Maps con inicio, pausa y detiene las funciones de tu viaje. ¡Manténganse al tanto!

  • Si te gustó este proyecto, ¡dale un corazón!
  • Si tiene alguna pregunta, comentario, sugerencia sobre un nuevo tutorial o probó este proyecto usted mismo, ¡definitivamente comente a continuación!
  • Sígueme aquí en Instructables, suscríbete a mi canal de YouTube o sígueme en Twitter para mantenerte actualizado con mis últimos proyectos de Arduino. Soy un joven ingeniero con pasión por compartir lo que he aprendido, ¡así que definitivamente habrá más tutoriales pronto!
  • Si desea respaldar lo que hago al compartir hardware de código abierto y documentarlo a fondo con fines educativos, ¡considere comprar su propio escudo en Amazon.com para jugar!

Recomendado: