En este tutorial veremos como hacer un rastreador a tracker GPS, con módulo LORA y Arduino. También veremos un webserver básico con ESP32, donde podremos abrir una URL en google maps, con los datos de latitud y longitud en tiempo real.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Componentes electrónicos
Dos resistores de 1 Kohm
Dos diodos led
Arduino nano
El Arduino Nano es una placa pequeña, completa y compatible con la placa de pruebas basada en el ATmega328 (Arduino Nano 3.x). Tiene más o menos la misma funcionalidad del Arduino Duemilanove, pero en un paquete diferente. Solo carece de un conector de alimentación de CC y funciona con un cable USB Mini-B en lugar de uno estándar.
Microcontrolador | ATmega328 |
Arquitectura | AVR |
Tensión de funcionamiento | 5 V |
Memoria flash | 32 KB de los cuales 2 KB utiliza el gestor de arranque |
SRAM | 2 KB |
Velocidad de reloj | 16 MHz |
Pines analógicos IN | 8 |
EEPROM | 1 KB |
Corriente CC por pines de E / S | 40 mA (pines de E / S) |
Voltaje de entrada | 7-12 V |
Pines de E / S digitales | 22 (6 de los cuales son PWM) |
Salida PWM | 6 |
El consumo de energía | 19 mA |
Tamaño de PCB | 18 x 45 mm |
Peso | 7 g |
Diagrama de pines
Pines hembra
Módulo GPS GT-7U
Tenga en cuenta que cuando el módulo GPS funciona, el indicador verde en el módulo GPS parpadeará (el rojo es para indicación de encendido), y las cifras relativas, la hora(UTC), latitud, longitud, y más. Si establecemos una conexión entre el módulo GPS, y un programa de terminal serial en nuetra pc obtendremos datos. Es importante tratar de estar en un area despejada para lograr captar señales satelitales, al menos necesitamos 3 salelites, para obtener datos de latitud y longitud, pero mientras más cantidad de satélites consigamos mejor será la experiencia de navegación y precisión.
Descripción del producto
Descripción del artículo:
Características: módulo GT-U7. Módulo de alta sensibilidad, baja desviación estática, bajo consumo de energía y poco volumen.
Miniaturización: gracias a la extremadamente alta sensibilidad de seguimiento, la posición de la cubierta se ha mejorado considerablemente.
– Alta precisión: En un cielo urbano estrecho, en entornos densos de la jungla, el GT-U7 puede colocarse con gran precisión.
Fácil de usar: con la interfaz de antena IPEX se puede colocar la distribución estándar de la antena activa rápidamente. Tabla de pilas de botón recargables. Onboard E2PROM permite el almacenamiento de datos de parámetros.
-Compatible con: el formato de salida es compatible con NEO-6M.
– Ámbito de aplicación: vehículos, dispositivos móviles como PDA, vigilancia de vehículos, teléfonos móviles, videocámaras y otros sistemas de localización móvil, uso compartido de bicicletas, fuente de alimentación móvil común.
Contenido del paquete:
1 módulo GPS GT-U7 .
1 antena activa con interfaz IPEX.
Especificación:
Con la interfaz de antena IPEX, la distribución predeterminada de la antena activa, se puede colocar rápidamente
Voltaje de funcionamiento: 3.6V-5V (o fuente de alimentación USB directa)
Velocidad de transmisión en baudios: 9600 (se puede modificar)
Batería de botón recargable a bordo
Memoria E2PROM a bordo
Formato de salida NEMA de datos de parámetros es compatible con NEO-6M
Tamaño: 27.6 mm * 26.6 mm se puede insertar o seleccionar un parche (con orificios de posicionamiento)
Áreas de aplicación: Dispositivos portátiles montados en vehículos como PDA
Monitoreo de vehículos
Teléfonos móviles, videocámaras y otros sistemas de posicionamientos móviles
PinOut
PPS: Pulso por segundo
TXD: Pin de transmisión de datos
RXD: Pin de transmisión de datos
GND: Tierra
VCC: Voltage de alimentación 3.6 a 5.5 voltios
Visión general
La serie de módulos GT-U7 es una familia de receptores GPS autónomos con alto rendimiento con motor de posicionamiento u-blox 6. Estos receptores flexibles y rentables ofrecen numerosos opciones de conectividad en un paquete en miniatura de 16 x 12,2 x 2,4 mm. Su arquitectura compacta y las opciones de alimentación y memoria hacen que los módulos GT-U7 sean ideales para dispositivos móviles que funcionan con baterías con
limitaciones de espacio y costos muy estrictos. El motor de posicionamiento u-blox 6 de 50 canales cuenta con
Time-To-First-Fix (TTFF) de menos de 1 segundo. El motor de adquisición dedicado, con 2 millones correladores, es capaz de realizar búsquedas masivas de espacio de tiempo / frecuencia en paralelo, lo que le permite encontrar
satélites al instante. El diseño y la tecnología innovadores suprimen las fuentes de interferencia y mitigan efectos multi trayecto, dando a los receptores GPS GT-U7 un excelente rendimiento de navegación incluso en la mayoría
entornos desafiantes.
GPS asistido (A-GPS)
Suministro de información de ayuda como efemérides, almanaque, última posición aproximada y hora y satélite
el estado y una señal de sincronización de tiempo opcional reducirán significativamente el tiempo para arreglar por primera vez y mejorar la sensibilidad de adquisición. Todos los módulos GT-U7 son compatibles con u-blox AssistNow Online y los servicios AssistNow Offline A-GPS11 y son compatibles con OMA SUPL.
AssistNow Autónomo
AssistNow Autonomous proporciona una funcionalidad similar al GPS asistido sin la necesidad de un host o conexión de red externa. Basado en datos de efemérides satelitales transmitidos previamente descargado y almacenado por el receptor GPS, AssistNow Autonomous genera automáticamente datos orbitales satelitales precisos («datos autónomos de AssistNow») que se pueden utilizar para futuros posiciones GPS. Los datos de AssistNow Autonomous son fiables hasta 3 días después de la captura inicial.
Protocolos e interfaces
Tipo de protocolo
Entrada / salida NMEA, ASCII, 0183, 2.3 (compatible con 3.0) Entrada / salida UBX, binaria, u-blox entrada RTCM patentada, 2.3
UART
Los módulos GT-U7 incluyen una interfaz UART configurable para comunicación en serie.
USB
Los módulos GT-U7 proporcionan una interfaz USB versión 2.0 FS (velocidad completa, 12 Mbit / s) como alternativa a la UART. La resistencia pull-up en USB_DP está integrada para señalar un dispositivo de velocidad completa al host. El pin VDDUSB suministra la interfaz USB. u-blox proporciona un controlador USB certificado por Microsoft® para Sistemas operativos Windows XP, Windows Vista y Windows 7.
Interfaz de periféricos en serie (SPI)
La interfaz SPI permite la conexión de dispositivos externos con una interfaz en serie, p. Ej. de serie flash para guardar la configuración y los datos de AssistNow Offline A-GPS o para conectarse a una CPU host. La interfaz se puede operar en modo maestro o esclavo. En modo maestro, una señal de selección de chip es disponible para seleccionar esclavos externos. En modo esclavo, una señal de selección de chip único permite comunicación con el anfitrión.
Gestión de energía
Los receptores u-blox admiten diferentes modos de energía. Estos modos representan estrategias de cómo controlar los motores de adquisición y seguimiento con el fin de lograr el mejor posible rendimiento o buen rendimiento con consumo de energía reducido.
Modo de rendimiento máximo
Durante un arranque en frío, un receptor en modo de rendimiento máximo despliega continuamente el motor de adquisición para buscar todos los satélites. Una vez que el receptor tiene una posición fija (o si información de posicionamiento previo está disponible), el motor de adquisición sigue utilizándose para buscar todos los satélites visibles que no están siendo rastreados.
Modo ecológico
Durante un arranque en frío, un receptor en modo Eco funciona exactamente como en el modo de rendimiento máximo. Una vez que se puede calcular una posición y se está rastreando un número suficiente de satélites, el motor de adquisición se apaga, lo que genera importantes ahorros de energía. El motor de seguimiento rastrea continuamente los satélites adquiridos y adquiere otros satélites disponibles o emergentes.
Modo ahorro de energía
El modo de ahorro de energía (PSM) permite una reducción en el consumo de energía del sistema al encender y apagar partes del receptor.
Módulo Lora
Acerca de los módulos lora
El módulo de radio LoRa es un tipo de módem de radio de datos de baja velocidad de datos de largo alcance basado en Sx1276 de Semtech. Es un módulo transceptor de bajo costo de menos de 1 GHz diseñado para operaciones en las bandas ISM (Industrial Scientific Medical) y LPRD sin licencia. La modulación / demodulación del espectro de frecuencia, la operación multicanal, la alta eficiencia de ancho de banda y el rendimiento antibloqueo hacen que los módulos LoRa sean fáciles de realizar gracias al enlace inalámbrico robusto y confiable.
El módulo puede funcionar en dos modos diferentes: modo estándar y modo de red Star. En el modo estándar, actúa como módem de radio de datos transparente que se comunica con el host en el formato de datos preestablecido sin necesidad de codificación / decodificación. En el modo de red de inicio, un módulo se configurará para el nodo central y otros módulos se configurarán como módulos de nodo. La comunicación entre el módulo central y el módulo de nodo es bidireccional, pero los módulos de nodo no pueden comunicarse entre sí. Tenga en cuenta que el módulo no contiene el protocolo lorawan. Por lo tanto, la función de red en estrella de este módulo se utiliza con el protocolo en sí mismo, por lo que no es compatible con lorawan.
CARACTERÍSTICAS
- Espectro de frecuencia LoRa
- Banda de frecuencia 433 / 490Mhz ISM
- -137 dBm recibir sensibilidad
- 20 dBm máx. potencia de salida
- Puerto serie de activación
- Despertador inalámbrico
- Capacidad de red en estrella
- Tensión de alimentación 3.4 ~ 5.5V
ESPECIFICACIÓN
- Voltaje de funcionamiento: 2.1 ~ 3.6V (alimentado por batería) o 4.5 ~ 5.5V
- Banda de frecuencia de trabajo: 433 MHz
- Modulación: espectro extendido LoRa
- Potencia de salida: ≤ 20dBm
- Sensibilidad de recepción: -148dBm
- Corriente de emisión: ≤120mA
- Recibiendo corriente: ≤15.2mA
- Corriente del sueño: ≤ 3.9uA
- Tiempo de sueño: opcional 2S, 4S, 6S, 8S, 10S
- Tiempo de respiración: opcional 2ms, 4ms, 8ms, 16ms, 32ms, 64ms
- Hora de despertarse: despertarse inmediatamente
- Interfaz de comunicación: comunicación serial TTL
- Velocidad de transmisión en serie: 1200 ~ 57600,9600bps (predeterminado)
- Verificación de puerto serie: 8E1,8O1,8N1 (opcional)
- Temperatura de funcionamiento: -40 ° C – + 80 ° C
- Tamaño del producto: 34,2 * 18,4 mm / 1,35 * 0,72 pulgadas
Hojas de Datos
PIN OUT
Conexión Módulo con adaptador USB Serial
CONFIGURACIÓN
Para algunas aplicaciones, los parámetros predeterminados pueden no ser la mejor opción, por lo que los usuarios pueden necesitar
para cambiar los parámetros Hay dos formas de ajustarlos: por MCU o por PC. En
modo de configuración, el pin EN debe estar conectado a GND y luego la herramienta de configuración o
los comandos pueden funcionar de manera efectiva
Por PC: DORJI ofrece una herramienta de configuración basada en PC que se puede usar para cambiar
parámetros a través de la interfaz gráfica. Los usuarios pueden insertar el módulo DRF1278DM en
adaptador usb serialy conéctelos a la computadora y ejecute la herramienta de configuración.
DRF TOOL
Esta herramienta nos permite configurar los módulos LoRa DRF1278DM y DRF1276DM
Descargar—>DRFTOOL
Descripción del programa
UART -> Los valores se fijan en 9.6k bps y sin verificación de paridad
RF frequency–> Indica la frecuencia central de la portadora RF
RF Mode–> Modo estándar, modo central y modo nodo
RF_Factor–> Factor de dispersión de Lora. Un Mayor valor significa mayor sensibilidad pero mayor
tiempo de transmisión de aire . Solo los usuarios pueden cambiarlo en modo estándar
RF_BW–> Ancho de banda de Lora. Un Mayor valor significa menor sensibilidad. Valor recomendado: 125K. Solo los usuarios pueden cambiarlo en modo estándar.
ID de nodo–> Solo se usa para módulos en modo nodo: 0 ~ 65535
Net ID–> Solo los módulos con la misma ID de red (0 ~ 255) pueden comunicarse
entre sí. Puede evitar interferencias de módulos
Power–> Se utiliza para configurar la potencia de salida del DRF1278D. Hay 7 niveles de potencia. El 7 significa el máximo. una potencia de salida: 20dBm y 0 significa la potencia de salida más baja
Breath–> El período de activación para el módulo en modo nodo. Solo disponible para firmware 2.0 o superior
Wake timer–> El tiempo para detectar la señal inalámbrica durante el período de break, solo está disponible para
firmware 2.7 o superior
Velocidad de transmisión en serie–> Define la velocidad de datos entre DRF1278DM y el host (pc o microcontrolador)
Paridad en serie–> Define la verificación de paridad entre DRF1278DM y el host (pc o microcontrolador)
MODO ESTANDAR
El modo estándar también se denomina modo transparente en el que el módulo recibe o envía
datos al host a través del puerto serie (UART) en el formato de datos preestablecido y los usuarios no necesitan preocuparse sobre el proceso de datos dentro del módulo. El pin AUX de DRF1278DM dará
Indicación acerca de los datos IN / OUT del puerto serie con 2 ms de anticipación, que se pueden usar para despertar el anfitrión. En este modo, el pin EN debe establecerse en lógica baja en caso de que el módulo ingrese
sueño profundo.
En el modo ESTANDAR o transparente, los nodos pueden funcionar con una conexión punto-a-punto (P2P) la principal característica de este modo es que no se requiere un dispositivo intermediario que administre la comunicación, los dispositivos pueden enviar entre ellos información directamente, esto es perfecto para comunicaciones simples como por ejemplo el encendido de una luz.
La otra forma es con un tipo red de estrella donde encontramos un nodo central que se encarga de administrar la red, sus desventaja es que esta limitada a 255 redes de 255 nodos* y a que el nodo coordinador solo puede escuchar un nodo a la vez.
MODO DE RED DE ESTRELLA
En este modo, un módulo DRF1278DM necesita establecer un módulo como módulo central y
otros módulos deben ser módulos nodo para redes en estrella. Para el módulo central, funciona en
el rendimiento completo por lo que su consumo de energía es el mismo que en el modo estándar y el EN
el pin debe estar conectado a la lógica baja. El nivel lógico del pin SET para el módulo central
debe ser el mismo que el módulo de nodo.
Tal vez pueda interesarte proyectos en arduino, pic, robótica, telecomunicaciones, suscribete en http://www.youtube.com/user/carlosvolt?sub_confirmation=1 mucho videos con código fuentes completos y diagramas
Circuito transmisor
Circuito impreso
Descarga el archivo gerber del siguiente link
Descaga el archivo gerber en –> Gerber_GPS_TRACKER_LORA_ARDUINO
Pines macho
Zócalo 30 pines para arduino
Código Fuente Tracker GPS
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <SoftwareSerial.h>//Librería para emular un puerto serial por software #include <TinyGPS.h>//Librería para obtener datos del GPS TinyGPS gps; SoftwareSerial ss(4, 3);//Pines donde conectaremos el módulo GPS void setup() { Serial.begin(9600);//Velocidad del puerto serial del Arduino ss.begin(9600);//Velocidad del módulo GPS Serial.println("Iniciando envío de coordenadas con TinyGPS v. "); Serial.println(TinyGPS::library_version()); } void loop() { bool nuevosDatos = false; unsigned long caracteres; unsigned short sentencias, fallas; // Analizamos si hay datos del módulo GPS cada 5 segundos for (unsigned long start = millis(); millis() - start < 5000;) { while (ss.available())//Se cumple mientras hay datos disponibles desde el GPS { char c = ss.read(); if (gps.encode(c)) // Si hay datos validos nuevosDatos = true;//Asignamos un valor "true" a la variable } } if (nuevosDatos) { float flat, flon;//Variables para almacenar la latitud y longitud gps.f_get_position(&flat, &flon); Serial.print("https://maps.google.com/maps?q=");//Formato url de google maps Serial.print(flat == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flat, 6);//Obtenemos la latitud Serial.print(","); Serial.println(flon == TinyGPS::GPS_INVALID_F_ANGLE ? 0.0 : flon, 6);//Obtenemos la longitud } //En el caso de que exista una mala conexión con el GPS, en el cableado, nos enviará una alerta gps.stats(&caracteres, &sentencias, &fallas); if (caracteres == 0) Serial.println("*No se han recibido caracteres del GPS: compruebe el cableado*"); } |
Cicuito web server
Código Fuente webserver
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
// Canal de youtube http://www.youtube.com/user/carlosvolt?sub_confirmation=1 //Tik-Tok https://www.tiktok.com/@carlosvolt //https://www.instagram.com/carlosvolt_electronic_robotic #include <WiFi.h> #include <Wire.h> String cadena; //Pines 16 y 17 para el módulo LORA #define RXD2 16 #define TXD2 17 //Atos de nuestra red wifi const char* ssid = "Tu_red_wifi"; const char* password = "Tu_clave_wifi"; WiFiServer server(80);//Puerto 80 para el navegador wep void setup() { Serial.begin(9600);//Velocidad del puerto Serial 1 Serial2.begin(9600,SERIAL_8N1,RXD2,TXD2);//Configuración del puerto serial 2 //Intentamos conectarnos a la red wifi Serial.print("Conectando a la red WiFi"); Serial.println(ssid); WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); //Si todo salió bien nos asigna una dirección ip que debemos colocar en el navegador Serial.println("Conectado con éxito a la red WiFi."); Serial.println("La dirección IP es: "); Serial.println(WiFi.localIP()); server.begin(); Serial.println("Servidor iniciado"); delay(2000); } void loop() { // Lectura de los caracteres en el terminal serial(si estan disponibles desde el módulo LORA) if (Serial2.available()) { cadena = String(""); while (Serial2.available()) { cadena = cadena + char(Serial2.read()); delay(1); } } //////Se cumple esta condición cada 5 segundos WiFiClient client = server.available(); if (client)//Si se cumple la condición, mostramos dotos en el webserver { Serial.println("Cliente web conectado "); String request = client.readStringUntil('\r'); client.println("HTTP/1.1 200 OK"); client.println("Content-type:text/html"); client.println("Connection: close"); client.println("Refresh: 5");//Refresco de la página web cada 5 segundos client.println(); client.println("<!DOCTYPE html><html>"); client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">"); client.println("<link rel=\"icon\" href=\"data:,\">"); client.println("</style></head><body><h1>Servidor Web con esp32 Gps Tracker arduino y Modulo LORA</h1>"); client.println("<h2>Tipo de GPS: GT-U7</h2>"); client.println("<h2>www.rogerbit.com</h2>"); client.println("<table><tr><th>Datos Obtenidos</th><th>Ubicacion</th></tr>"); client.println("<tr><td>Latitud y longitud:</td><td><span class=\"sensor\">"); client.println("<a href="); client.println(cadena);//Datos de lalitud y longitud client.println(">"); client.println(cadena);//Datos de lalitud y longitud para que los muestre como un hiper vinculo client.println("</a>"); client.println("</span></td></tr>"); client.println("</body></html>"); client.stop(); client.println(); Serial.println("Client disconnected."); Serial.println(""); } } |
Imagen del proyecto completo con el tracker GPS y el webserver.
PROYECTO RECOMENDADO