Tabla de contenido:

Proyecto Arduino: Módulo RF1276 de rango de prueba LoRa para solución de rastreo GPS: 9 pasos (con imágenes)
Proyecto Arduino: Módulo RF1276 de rango de prueba LoRa para solución de rastreo GPS: 9 pasos (con imágenes)

Video: Proyecto Arduino: Módulo RF1276 de rango de prueba LoRa para solución de rastreo GPS: 9 pasos (con imágenes)

Video: Proyecto Arduino: Módulo RF1276 de rango de prueba LoRa para solución de rastreo GPS: 9 pasos (con imágenes)
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Mes de julio
Anonim
Proyecto Arduino: Módulo LoRa de rango de prueba RF1276 para solución de rastreo GPS
Proyecto Arduino: Módulo LoRa de rango de prueba RF1276 para solución de rastreo GPS

Conexión: USB - Serie

Necesita: navegador Chrome

Necesita: 1 X Arduino Mega

Necesita: 1 X GPS

Necesita: 1 X tarjeta SD

Necesita: 2 X LoRa Modem RF1276

Función: Arduino Enviar valor de GPS a la base principal - Datos de la tienda de la base principal en el servidor Dataino Módulo Lora: RF1276 de rango ultralargo de APPCONWIRELESS LoRa es una técnica de modulación nueva, privada y de amplio espectro que permite enviar datos a velocidades de datos extremadamente bajas a extremadamente rangos largos. La baja tasa de datos (hasta unos pocos bytes por segundo) y la modulación LoRa conducen a una sensibilidad del receptor muy baja, lo que significa en esta prueba más de 10 km.

Paso 1: construcción de la estación base

Edificio de la estación base
Edificio de la estación base
Edificio de la estación base
Edificio de la estación base

Conexión a Internet de ancho de computadora y un módem LoRa conectado al puerto USB.

Kit de coche Arduino ·

La caja métrica

Anduino Mega conectado al serial 2 al receptor GPS y al Serial 1 al módem LoRa. Se utiliza una tarjeta SD para almacenar datos.

Paso 2: la primera prueba

La primera prueba
La primera prueba

· 10,6 Km de recorrido por núcleos urbanos, galerías y borde de la costa realizado con bucles

La relación de recepción / transmisión ha sido de 321 / 500TX punto

Punto RX

Paso 3: crea la interfaz

Crea la interfaz
Crea la interfaz
Crea la interfaz
Crea la interfaz

1 - Configurar un nuevo proyecto LoRa

Presione el icono de engranaje para abrir la configuración del proyecto

Paso 4: agregar calibre

Agregar indicador
Agregar indicador

2) Abra el control deslizante del indicador.

· 3) Desplácese hasta el GPS.

· 4) Agregue uno al escritorio.

Paso 5: Arrastra el GPS del medidor y agrega OpenStreetMap

Arrastra el GPS del medidor y agrega OpenStreetMap
Arrastra el GPS del medidor y agrega OpenStreetMap
Arrastre GPS Gauge y agregue OpenStreetMap
Arrastre GPS Gauge y agregue OpenStreetMap

· 5) Agregar mapa de OpenStreetMap al escritorio

Arrastrando el componente GPS en el mapa de iconos, se genera el mapa de OpenStreet.

Crea la interfaz

· 6) Cambiar la actualización del mapa

Cambiar el tiempo de actualización del mapa de 5000 a 10000

Paso 6: Arrastre el indicador GPS y agregue el registro de la tabla

Arrastre el indicador GPS y agregue el registro de la tabla
Arrastre el indicador GPS y agregue el registro de la tabla

· 7) Agregue un medidor de registro de tabla.

Al arrastrar el medidor por encima de la tabla de iconos de GPS se crea el registro de la tabla de medidores

· 8) Cambiar la actualización del registro de la tabla. Cambiar el tiempo de actualización del mapa de 5000 a 10000

Ajustar la posición de los medidores

· 9) Los indicadores de arrastre ajustan la posición de los indicadores arrastrándolos por la pantalla.

· 10) Guardar proyecto

Paso 7: Obtén el código

Obtener código
Obtener código

10) Activar contenedor de código

Botón en el botón superior derecho, seleccione todo y copie el código base.

Paso 8: IDE de Arduino

IDE de Arduino
IDE de Arduino

· 11) Pegar código en Arduino IDE

· 12) Editar código Agrega esta línea en la definición

Paso 9: Detalles de codificación

Agregue esta línea en la definición

//*************************************************************************

//** BIBLIOTECA ** //***************************************** *******************************

#include // ++ biblioteca de GPS

#include // ++ biblioteca SPI #include

// ++ biblioteca SD //

*************************************************************************

//** DAKOTA DEL SUR ** //***************************************** *******************************

// * Tarjeta SD conectada al bus SPI de la siguiente manera:

// ** UNO: MOSI - pin 11, MISO - pin 12, CLK - pin 13, CS - pin 4

// (el pin CS se puede cambiar) y el pin # 10 (SS) debe ser una salida

// ** Mega: MOSI - pin 51, MISO - pin 50, CLK - pin 52, CS - pin 53

// (el pin CS se puede cambiar) y el pin # 52 (SS) debe ser una salida

// ** Leonardo: Conéctese al hardware SPI a través del encabezado ICSP

// Pin 4 usado aquí para coherencia con otros ejemplos de Arduino const int chipSelect = 53;

// ++ Selector de pines SD

//*************************************************************************

//** GPS ** //***************************************** *******************************

TinyGPS gps; // ++ GPS en Serial2

void gpsdump (TinyGPS & gps); // ++

bool newdataGPS = false; // ++

Agregue esta línea en la configuración ()

//***********************************************************************

// ** Configuración de serie GPS ** // ************************************* *******************************

Serial2.begin (9600); // ++

retraso (1000); // ++

//***********************************************************************

// ** SD Inicializando ** // ************************************** ******************************

// asegúrese de que el pin de selección de chip predeterminado esté configurado en // ++

// salida, incluso si no la usa: // ++

pinMode (SS, SALIDA); // ++

Serial.println (F ("Inicializando tarjeta SD…")); // ++

// ver si la tarjeta está presente y se puede inicializar: // ++

if (! SD.begin (chipSelect)) {// ++

Serial.println (F ("Tarjeta fallida o no presente")); // ++

// no hagas nada más: // ++

regreso; // ++

} más {// ++

Serial.println (F ("Tarjeta SD OK")); // ++

} // ++

Agregue estas líneas en loop () void

serialEvent2 (); // ++ llamar al evento de serie del GPS

Agregar código SeriaEvent2

//*************************************************************************

// ** GPS serialEvent ** // ************************************** ********************************

void serialEvent2 () {// ++

while (Serial2.available ()) {// ++

char c = Serial2.read (); // ++

//Serial.print(c); // descomenta para ver datos GPS sin procesar // ++

if (gps.encode (c)) {// ++

newdataGPS = verdadero; // ++

rotura; // ¡Descomenta para imprimir nuevos datos inmediatamente! // ++

} // ++

} // ++

} // ++

Agregar voud de volcado de GPS

//*************************************************************************

// ** gps dump ** // ************************************** ********************************

// ** El rango válido de latitud en grados es -90 y +90. **

// ** La longitud está en el rango -180 y +180 **

// ** especificando la posición este-oeste **

//** "123456789 1234567890" **

//** "000.00000;0000.00000" ** //*************************************************************************

void gpsdump (TinyGPS y gps) // ++

{ // ++

int año; // ++

byte mes, día, hora, minuto, segundo, centésimas; // ++

larga edad sin firmar; // ++

gps.f_get_position (& LATGP00, & LONGP00, & age); // ++

gps.crack_datetime (y año, mes, día y hora, // ++

& minuto, & segundo, & centésimas y & edad); // ++

long lat, lon; // ++

gps.get_position (& lat, & lon, & age); // ++

// *********************************************************************

// ** crea una cadena para ensamblar los datos para registrar: **

// *********************************************************************

String dataString = ""; // ++

dataString + = (lat / 100000); // ++

dataString + = "."; // ++

dataString + = lat - (lat / 100000) * 100000; // ++

dataString + = ";"; // ++

dataString + = (lon / 100000); // ++

dataString + = "."; // ++

dataString + = lon - (lon / 100000) * 100000; // ++

dataString + = ";"; // ++

dataString + = String (static_cast (día)); // ++

dataString + = "/"; // ++

dataString + = String (static_cast (mes)); // ++

dataString + = "/"; // ++

dataString + = String (año); // ++

dataString + = ";"; // ++

dataString + = String (static_cast (hora)); // ++

dataString + = ":"; // ++

dataString + = String (static_cast (minuto)); // ++

dataString + = ":"; // ++

dataString + = String (static_cast (segundo)); // ++ // ****************************************** ****************************

// ** GUARDAR EN SD ** // ************************************* *********************************

// abre el archivo. tenga en cuenta que solo se puede abrir un archivo a la vez, **

// entonces tienes que cerrar este antes de abrir otro. ** // ******************************************** ***************************

Archivo dataFile = SD.open ("gps00.txt", FILE_WRITE); // ++

// ***********************************************************************

// ** si el archivo está disponible, escríbalo: **

// ***********************************************************************

if (archivo de datos) {// ++

dataFile.println (dataString); // ++

dataFile.close (); // ++

} más {// ++

Serial.println (F ("ERROR SD Write")); // ++

} // ++

}

Si desea descargar el código, visite esta página.

Recomendado: