Tabla de contenido:

Rastreador GPS casero en tiempo real (SIM800L, Ublox NEO-6M, Arduino): 8 pasos
Rastreador GPS casero en tiempo real (SIM800L, Ublox NEO-6M, Arduino): 8 pasos

Video: Rastreador GPS casero en tiempo real (SIM800L, Ublox NEO-6M, Arduino): 8 pasos

Video: Rastreador GPS casero en tiempo real (SIM800L, Ublox NEO-6M, Arduino): 8 pasos
Video: Modulo GPS GY-NEO-6M-V2 con Arduino Uno 2024, Noviembre
Anonim
Rastreador GPS casero en tiempo real (SIM800L, Ublox NEO-6M, Arduino)
Rastreador GPS casero en tiempo real (SIM800L, Ublox NEO-6M, Arduino)

¿Entonces tienes un módulo GSM por ahí como yo? ¿También un rastreador GPS?

¡Pensamos igual!

En estos instructivos, trataré de guiarlo sobre cómo lograr su objetivo desde la perspectiva de un novato.

Como no tenía conocimientos previos de ingeniería eléctrica (para ser honesto, el proyecto no necesita tanto, pero no) y no tenía ni idea de cómo hacer un dispositivo que bombee datos en tiempo real a un servidor web, encontré numerosos problemas. Aún así, finalmente logré que las cosas funcionaran.

Entonces, en este tutorial, quiero enfatizar los errores que puede cometer un principiante y construir el proyecto en consecuencia.

Recuerde: ¡Tenga siempre cuidado cuando trabaje con electricidad!

NOTA: no soy un profesional. Es posible que el código no sea lo suficientemente sofisticado para todas sus necesidades. El proyecto pretende ser un "proyecto de afición", ¡pero! funcionó para mí. Y si funcionó para mí, ¡también funcionaría para usted!

Paso 1: requisitos previos

Prerrequisitos
Prerrequisitos
Prerrequisitos
Prerrequisitos
Prerrequisitos
Prerrequisitos

MÓDULO GSM - SIM800L

  • Bastante pequeño, fácil de usar
  • Capaz de utilizar Internet móvil (GPRS)
  • Barato

MÓDULO GPS - Ublox NEO6M

  • También pequeño
  • Maneja muy bien su trabajo

Un microcontrolador, puede ser cualquier cosa, puede usar el famoso Arduino Uno o el Nano para liberar espacio

Batería: utilicé una celda 18650 como principal y única fuente de alimentación (nominal 3,7 V)

Soporte de batería: ¿por qué? - porque soldar una batería 18650 es bastante peligroso debido al calor.

DC-DC Boost Converter Step Up Module 5V - Debe tenerlo, ya que el Arduino que usé necesita 5V

Herramientas, cosas básicas que pueden ser útiles:

Alambres, soldador, placa de pruebas para pruebas

Paso 2: Concepto principal

Concepto principal
Concepto principal

El concepto principal del sistema es el siguiente:

Consta de 3 partes:

  1. Un dispositivo, que tiene las coordenadas GPS adecuadas y puede conectarse a un servidor de forma remota y enviarle datos.
  2. Un servidor web, que puede recibir datos entrantes, almacenarlos y servir a otros clientes.
  3. La plataforma, donde podemos ver las coordenadas, idealmente debería ser ahora una aplicación móvil o un sitio web

Paso 3: el módulo SIM800L

El módulo SIM800L
El módulo SIM800L
El módulo SIM800L
El módulo SIM800L

Pasé momentos difíciles con el módulo.

Me gustaría comenzar con algunas características y referencias.

Según la hoja de datos:

  • Opera entre 3.4V - 4.4V
  • Puede enviar SMS, hacer llamadas de voz a otros teléfonos e incluso conectarse a Internet.
  • ¡Podemos comunicarnos con él a través de comandos AT!
  • ¡Puede usar hasta 2A en horas pico! Nota: probablemente no podrá medirlo con un multímetro, debido a sus bajas tasas de muestreo.

Mi experiencia es que el SIM800L por debajo de 3.8V realmente no funciona.

Para obtener más información, visite: hoja de datos

Entonces, su trabajo es proporcionar al menos 3.8V al módulo (idealmente 4V), una fuente de alimentación que emite al menos 2A.

Antes de usar el módulo en el dispositivo final, le sugiero que establezca comunicación con su SIM800L y su computadora para asegurarse de que su dispositivo esté funcionando correctamente.

Lo primero es lo primero, conecte la tarjeta SIM como se muestra en la imagen de arriba.

Para conectarlo con su PC, puede usar un convertidor de USB a TTL o un Arduino.

Ahora, voy con el Arduino.

Conecte el SIM800L VCC y GND a sus terminales de fuente de alimentación.

Conecte TX al pin digital 10 de Arduino, RX al pin digital 11 de arduino.

Descarga el código que vinculé en este paso.

Con el código, puede enviar comandos y recuperarlos en su Serial Monitor.

Algunos comandos simples:

AT Devuelve OK, si la conexión es correcta.

ATD + 123456789; Llame a un número de teléfono determinado. Nota: No olvide terminarlo con un punto y coma.

AT + CPIN? Devuelve el estado de la tarjeta SIM (bloqueada o no)

Si desea enviar un SMS, debe finalizar su entrada con un carácter especial, se puede hacer con el símbolo '$'.

Para más comandos interesantes, le sugiero que lea esto.

Hay varios comandos, familiarízate con ellos, son realmente útiles.

Hay un LED de estado rojo que le indica en qué operación se encuentra el SIM800L.

64 MS ON - 800MS OFF - SIM800L no está registrado en la red.

64 MS ON - 3000MS OFF - SIM800L está registrado en la red.

64 MS ENCENDIDO - 300MS APAGADO - SIM800l está en modo GPRS

Si el SIM800L sigue reiniciando después de aproximadamente 8-10 parpadeos, puede deberse a la falta de una fuente de alimentación eficiente.

Si no está bien después de AT, ¡verifique el cableado! Si tiene un multímetro, verifique la continuidad de los cables.

¡Compruebe las conexiones de los cables y las uniones soldadas! El módulo solo funcionará cuando parpadee.

Paso 4: Ublox Neo 6m

Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m

Algunas caracteristicas

  • Voltaje máximo: 3.6V - Lo encendí con el pin 3.3V de Arduino
  • El consumo máximo de corriente es de 67 mA, por lo que puede alimentarlo desde arduino
  • Rango de temperatura: -40-85 Celsius (supongo que te quedará)

La unidad que pedí venía con una antena que se ve en la imagen, simplemente la conecto en la ranura correspondiente.

El dispositivo cuando tiene señales, parpadea con LED azul.

Primero, verifique cómo funciona un GPS aquí, si no lo sabe.

Cuando el dispositivo está encendido y encuentra 3 satélites, envía muchos valores separados por comas al Arduino como arriba.

Para ayudar en nuestro trabajo, podemos usar algunas bibliotecas externas para analizar estos datos para que sean más legibles por humanos.

Puede utilizar la biblioteca TinyGps o la biblioteca NeoGPS. Usé el segundo porque es más ligero.

Para la prueba, debe conectar los pines de alimentación a arduino 3.3V y GND.

Descargue este código y utilícelo con su GPS. Clavija digital RX 10, clavija digital TX 11

Nota: No olvide utilizar el módulo en exteriores, preferiblemente cuando no haya nubes.

Después de medio minuto, el dispositivo debería parpadear y emitir sus coordenadas GPS.:)

Una vez que sepa que su módulo SIM800L y GPS funcionan correctamente, puede continuar con el siguiente paso.

Paso 5: Circuito

Circuitería
Circuitería

El circuito es como en la foto.

Entonces, la batería 3.4V - 4.2V 18650 es la principal fuente de energía. Sim800L obtiene la energía directamente de él. Hay un condensador entre ellos en paralelo para mejorar la estabilidad del circuito.

Cuando elige un capacitor, debe elegir un capacitor de ESR bajo.

Un convertidor elevador de 5 V aumenta el voltaje de la batería a 5 V (se necesita ir porque Arduino funciona con 5 V).

El riel de alimentación de 5 V está conectado al Nano aquí. El Sim800L y Neo6m están conectados con Nano como en la imagen. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 está conectado a RST, por lo que podemos reiniciar el sistema mediante programación (excepto el SIM800L). NOTA: Este método de reinicio puede no ser la mejor práctica)

Y por último, dos LEDS están conectados al NANO, por lo que podemos avisar al usuario, si se está produciendo algún error.

Paso 6: Código

El código está adjunto a Instructables o echa un vistazo a github.

Puede modificarlo para que funcione correctamente según sus necesidades, o puede usar el código de otro si lo desea.

waitUntilResponse (); La función auxiliar se tomó de su código. ¡Comprueba su trabajo y el código también!

Brevemente, en la función de configuración, necesitamos habilitar la conexión GPRS de nuestro módulo SIM800L. Sabemos si tiene éxito si el LED parpadea rápidamente. (setupGPRSConnection ())

En la función de bucle, cada 15 segundos se llama a la función sendData (), que tiene la solicitud

Usé cadenas de consulta para enviar datos al servidor web en este formato:

dirección ip / file.php? key = value & key = value p. ej.

Si ocurre algún error, se encenderá el LED correspondiente. (SIM, GPS)

Paso 7: servidor web

Servidor web
Servidor web

Para nuestro uso, un servidor web simple y ligero es suficiente.

Hay algunas opciones entre las que puede elegir:

  1. Podría utilizar un servidor remoto de una empresa, por el que probablemente deba pagar con regularidad.
  2. Podrías usar tu propia computadora. Solo lo sugiero para probar, no es realmente eficiente ejecutarlo 24 horas al día, 7 días a la semana, debido al desperdicio de energía y problemas de seguridad.
  3. Podrías usar una computadora pequeña, como Raspberry PI. Ligero, barato, no consume mucha energía.

Probé la segunda y tercera opción, funcionaron bien. Bueno, el objetivo principal no son los servidores de estos instructables, pero les sugiero algunos consejos.

Si usa una PC, probablemente use Windows. Si yo fuera usted, instalaría un servidor Apache o XAMPP en él.

XAMPP ya tiene PHP, además de que también viene con HTML, Perl y un sistema de administración de bases de datos. Con PHP, puede crear un servidor dinámico. Si desea utilizar el servidor local que acaba de crear desde cualquier lugar del mundo, debe asignar una IP estática a su PC y realizar un reenvío de puertos. Un tutorial útil para IP estática:

Y todo el reenvío de puertos:

Si tiene una frambuesa, es una buena práctica usarla. Puede familiarizarse con los comandos de Linux y ejecutar su propio servidor 24 horas al día, 7 días a la semana.

El sistema operativo era Raspbian Jessie con una configuración sin cabeza (sin teclado, monitor); lo controlé con mi computadora con conexión SSH.

Usé Putty para iniciar sesión en mi Raspberry. No olvide cambiar la contraseña de su cuenta para que otros no puedan iniciar sesión en su Pi. El valor predeterminado es: pi, contraseña: frambuesa.

Instalé un servidor web lighttpd con sqlite3. Buen tutorial encontrado aquí:

Usé principalmente PHP en el código del servidor. Con PHP puede recibir datos, leer / escribir bases de datos - codificar una consulta en un formato json, etc.… Este tutorial le ayudará mucho sobre cómo administrar su base de datos con PHP.

También puede ver mi código en github, en la carpeta server_files.

Y, por supuesto, debe habilitar el reenvío de puertos a su Pi en su enrutador, si desea acceder a eso de forma remota.

Paso 8: Finalización / Experiencia

Aún no se ha hecho un cerramiento.

Mi experiencia es que el sistema no funciona tan mal. Pero hay mejoras de estabilidad esperando.

Si el rastreador no funcionó con el código que adjunté, no se preocupe. Intente asegurarse de que SIM800L y NEO 6M funcionen como deberían. Puedes modificar libremente mi código o buscar uno mejor. Solo espero poder mostrarte un ejemplo de cómo puedes completar este proyecto.

Acepto cualquier consejo, corrección de comentarios. Siéntete libre de preguntar.

Recomendado: