LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 pasos (con fotos)

LTE Arduino GPS Tracker + IoT Dashboard (Parte 1): 6 pasos (con fotos)

Tabla de contenido:

Anonim

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, por lo 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, el GPS y el seguimiento de la temperatura, y le proporcionaré todo el código y la orientación que necesitará para salir a la carretera y probarlo.

Este Instructable se centra principalmente en el escudo LTE que yo personalmente diseñé y construí, 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, ya que solo es 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, el monitoreo remoto del clima, el rastreo automático de karma de karma de robo de automóviles, etc … ¡así que siga leyendo!

Suministros:

Paso 1: 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 escudo, doble antena LTE / GPS uFL y apilamiento de encabezados femeninos). ¡Asegúrate de seguir este tutorial para seleccionar una versión adecuada!
  • Holograma de la tarjeta SIM. ¡La primera tarjeta SIM (llamada "tarjeta SIM de" desarrollador) es completamente gratuita y viene con 1 MB de datos por mes! En los Estados Unidos, lo más probable es que esté en la red de Verizon si usa la tarjeta Hologram SIM. También puedes recogerlo junto con el escudo de Botletics si te resulta más conveniente.
  • Batería LiPo de 3.7V (se recomienda una capacidad de 1000mAH o mayor).
  • Cable USB para programar tu Arduino o para alimentarlo.

Para la prueba de seguimiento de GPS!

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

Paso 2: Montaje físico

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

  • Suelde los cabezales hembra apilables en el escudo. Vea este tutorial sobre cómo hacer eso.
  • Enchufe el escudo en el Arduino, asegurándose de alinear todos los pines para que no los dañe.
  • Inserte la tarjeta SIM como se muestra en la imagen. Los contactos metálicos miran hacia abajo y toman nota de la ubicación de la muesca en la esquina.
  • Enchufe la batería LiPo al conector JST en el protector
  • Conecte su Arduino a su computadora con un cable USB. Es posible que note que el LED de alimentación verde del escudo no se enciende. Eso es perfectamente normal porque el pin PWRKEY del escudo necesita pulsarse un poco para que se encienda. ¡El ejemplo de dibujo de Arduino en la siguiente sección se encargará de eso por ti!
  • 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!
  • Estás listo para el software!

Paso 3: Arduino Setup & Device Testing

Arduino IDE Setup

Si aún no lo ha hecho, consulte los pasos de "Configuración de Arduino IDE" y "Ejemplo de Arduino" en el producto principal Instructable 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, debe haber probado la conexión de red, el GPS y la publicación de datos en dweet.io.

Bosquejo del ejemplo de IoT

Ahora que ha probado las funciones principales de su escudo, cargue el boceto "IoT_Example" en el IDE de Arduino. También puedes encontrarlo aquí en Github. Cargue este código en su Arduino y abra el monitor de serie; verá que 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 publique 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 Hologram.

De manera predeterminada, verá que la siguiente línea define la tasa de muestreo (bueno, en realidad el retraso entre las publicaciones).

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

Si esta línea se deja sin comentarios, el Arduino publicará los datos, los retrasará 30 segundos, los publicará nuevamente, repetirá, etc. Durante los 30 segundos de demora, puede hacer cosas como poner el Arduino en modo de bajo consumo y cosas sofisticadas como esa, pero para cosas simples, solo usaré la función de retraso () para pausar la operación. Si comenta esta línea, el Arduino publicará los datos y luego irá directamente al modo de suspensión de bajo consumo de forma indefinida hasta que presione el botón de reinicio de su Arduino. Esto es útil si está probando algo y no quiere quemar sus preciosos datos libres (aunque honestamente, cada publicación no usa prácticamente nada) o quizás tenga un circuito externo para reiniciar el Arduino (¿temporizador 555? ¿Interrupción RTC? ¿Interrupción del acelerómetro? Sensor de temperatura ¿Interrumpir? ¡Piense fuera de la caja!). En realidad, en el tutorial de Burgalert 7000, le muestro cómo puede usar un detector de movimiento PIR para activar el microcontrolador.

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

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

También tenga en cuenta que este ejemplo obtiene automáticamente el número IMEI del SIM7000, específico del módulo y globalmente, y lo utiliza como el 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é que te lo haría saber:)

Para verificar si sus datos realmente se están enviando 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 sustituirse por el número IMEI que se imprime en el monitor serie al principio, justo después de que Arduino lo encuentre. Después de ingresar esa URL en su navegador, debería ver una respuesta JSON como la siguiente:

{"this": "successed", "by": "getting", "the": "dweets", "with": {"thing": "112233445566778", "created": "2017-12-28T23: 32: 39.803Z "," content ": {" lat ": 11.223344," long ": - 55.667788," speed ": 10," head ": 75," alt ": 330.7," temp ": 21.2," batt ": 3630}}}

Al mirar el "contenido" debe ver la latitud, la longitud de su ubicación, su velocidad (en kilómetros por hora), la dirección en dirección (grados, con 0 grados al norte), la altitud (metros), la temperatura (* C, pero libre para convertir en el código), y la tensión de alimentación en mili-voltios (que es VBAT, la tensión 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 comando SIM7000 AT.

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

Paso 4: 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 una nota importante, el arrastre de los paneles en freeboard.io no parece funcionar en Chrome, así que usa Firebox o Microsoft Edge en su lugar. ¡Si no lo hace, puede ser un "panel" real 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 "COMENZAR AHORA" en la página de inicio de freeboard.io, ingrese las credenciales y haga 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 paneles que configura para sus proyectos. Obviamente, si la cuenta es nueva, no verá nada aquí, así que solo ingrese un nuevo nombre de proyecto y haga clic en "Crear nuevo" en la parte superior derecha. Esto lo llevará a un panel de control vacío donde puede configurar la interfaz tal como le guste. En el francobordo, puede configurar varios "paneles", y cada panel puede tener uno o varios "widgets", que son elementos como gráficos, mapas, indicadores, etc. que muestran sus datos de alguna manera.
  • Lo primero que debemos hacer ahora es configurar la fuente de datos real, que es su escudo Arduino + LTE. Para hacerlo, haga clic en "AGREGAR" en la parte superior derecha bajo "Fuentes de datos". A continuación, seleccione "Dweet.io" e ingrese el nombre que desee en el campo "Nombre". Sin embargo, asegúrese de que bajo el campo "Nombre de la cosa" ingrese el número IMEI del escudo en lugar de cualquier nombre arbitrario, ya que eso es lo que freeboard usará para extraer datos de los datos.
  • Después de hacer clic en "Guardar", debería ver que su dispositivo aparece debajo de "Fuentes de datos", así como la última vez que envió datos a la publicación. También puede hacer clic en el botón de actualización para verificar los últimos valores, pero el freeboard se actualizará solo, por lo que normalmente no debería tener que usar ese botón.

Configuración del panel

¡Ahora veamos 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, no hay nada aquí todavía porque no hemos agregado ningún widget!
  • Para agregar un widget, haga clic en el pequeño botón "+" en el panel. Esto abrirá un menú desplegable con varias opciones de widgets. Ya que vamos a hacer un seguimiento de GPS, vamos a elegir el widget "Google Map". Entonces deberías ver dos campos, la latitud y la longitud. Para completar esto correctamente, su dispositivo ya debe estar publicado para que funcione. Suponiendo que así sea, debería poder hacer clic en "+ Fuente de datos", hacer clic en la fuente de datos (el "Rastreador de GPS SIM7000"), luego hacer clic en "lat", que es el nombre de la variable que usa el escudo para publicar. 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ías ver un pequeño mapa de tu ubicación aproximada! Para probar si el mapa funciona, intente cambiar su latitud / longitud actual del GPS a algo ligeramente diferente cambiando, por ejemplo, el primer dígito después del punto decimal de los valores de latitud / longitud en la URL del dato que se imprimió en el monitor serie en Arduino IDE cuando el escudo publicó datos. Después de ajustarlos, 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, vuelva al francobordo y verá que graficó su ubicación modificada y dibujó una línea naranja entre los puntos. Cosas geniales eh? Así que creo que obtienes la imagen de que nuestro rastreador de GPS enviará los datos de ubicación para que los veas en freeboard en tiempo real o después de que tu aventura haya terminado.

Extras

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

  • Comencemos agregando un nuevo panel y luego agregando 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 estamos interesados ​​en obtener para este indicador. ¡Entonces deberías ver un buen indicador en tu tablero!
  • Repita esto para los valores de altitud y temperatura.
  • Ahora para el encabezado vamos a agregar un "puntero" en su lugar. Esto es esencialmente una brújula porque comienza apuntando hacia arriba (Norte) a 0 grados y gira en sentido horario para los encabezados positivos.. ¡Perfecto!
  • Para cambiar el tamaño del panel, coloque el cursor sobre el panel que contiene el mapa y verá un pequeño símbolo de llave en la parte superior derecha. Haga clic en eso e ingrese un título para el panel e ingrese "2" debajo de "Columnas" para aumentar el ancho del panel.
  • Para cambiar la ubicación de los paneles, simplemente arrástrelos. También puede experimentar la adición de un "Sparkline" 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 te gusta porque estamos listos para salir de excursión!

Paso 5: Pruebas

Para probar su configuración, recomendaría establecer el tiempo de muestreo en un valor más bajo, como 10-20 para que pueda capturar su viaje con mayor resolución. También dejaría comentada la variable "turnOffShield" 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 con un adaptador USB para automóvil. También necesitará una batería de 3.7V LiPo enchufada en el protector como se mencionó anteriormente; El escudo que se muestra en la imagen de arriba es una versión antigua y no tenía soporte de batería LiPo, pero ahora es necesario en todas las versiones más nuevas.

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

Paso 6: Resultados

Para esta prueba, mi padre y yo fuimos a comprar unos tambores de pollo en Trader Joe's (omnomnomnom …) y recopilamos datos bastante precisos. Hice que el dispositivo enviara datos cada 10 segundos y la velocidad máxima del viaje fue de aproximadamente 92 km / h (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 ahora tan bueno!

Sin embargo, tal vez la no tan buena noticia es que el widget del mapa en el freeboard no es tan bueno como originalmente pensé. No le permite mover la ubicación de su mouse y se mantiene centrado en la última ubicación, por lo que es ideal para cosas como un rastreador de GPS para autos, 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 de 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 puedes agregar más escudos y convertir esto en un registrador de datos solares de bajo consumo! (¡Podría estar planeando hacer un tutorial sobre eso en el futuro!). Debido a las limitaciones del mapa de francobordo, también estoy planeando crear un nuevo tutorial sobre cómo crear su propia aplicación de Android que recupere los datos del dato y le permitirá graficar la ubicación del rastreador en Google Maps con inicio, ¡Pausa, y deja de características para tu viaje! ¡Manténganse al tanto!

  • Si te gustó este proyecto, por favor dale un corazón!
  • Si tiene alguna pregunta, comentario, sugerencia sobre un nuevo tutorial, o ha intentado 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 estar actualizado con mis últimos proyectos de Arduino! Soy un joven ingeniero con una pasión por compartir lo que he aprendido, ¡así que definitivamente habrá más tutoriales pronto!
  • Si quieres apoyar lo que hago para compartir hardware de código abierto y documentarlo a fondo con fines educativos, ¡considera comprar tu propio escudo en Amazon.com para jugar!