Tabla de contenido:
- Paso 1: construcción de la estación base
- Paso 2: la primera prueba
- Paso 3: crea la interfaz
- Paso 4: agregar calibre
- Paso 5: Arrastra el GPS del medidor y agrega OpenStreetMap
- Paso 6: Arrastre el indicador GPS y agregue el registro de la tabla
- Paso 7: Obtén el código
- Paso 8: IDE de Arduino
- Paso 9: Detalles de codificación
Video: Proyecto Arduino: Módulo RF1276 de rango de prueba LoRa para solución de rastreo GPS: 9 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:43
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
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
· 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
1 - Configurar un nuevo proyecto LoRa
Presione el icono de engranaje para abrir la configuración del proyecto
Paso 4: agregar calibre
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
· 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
· 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
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
· 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:
Interfaz del módulo de rango ultrasónico HC-SR04 con Arduino: 5 pasos
Interfaz del módulo de rango ultrasónico HC-SR04 con Arduino: ¡Hola, chicos! Aquí Akarsh de CETech. Este proyecto mío es un poco más simple pero tan divertido como los otros proyectos. En este proyecto, vamos a conectar un módulo de sensor de distancia ultrasónico HC-SR04. Este módulo funciona por generatin
[2020] Iluminación LED para rastreo nocturno: 9 pasos (con imágenes)
[2020] Iluminación LED para rastreo nocturno: Valenta Off-RoaderValenta Off-Roader es un automóvil todoterreno RC con micro: bit. Es compatible con Lego Technic y está equipado con dos (x2) micro motores de engranajes en las ruedas traseras y (x1) servo de dirección basado en el mecanismo del brazo Roberval. Humming Works LLC y
Uso del sensor de huellas dactilares para el tiempo de asistencia en combinación con la solución XAMP: 6 pasos (con imágenes)
Uso del sensor de huellas dactilares para el tiempo de asistencia en combinación con la solución XAMP: para un proyecto escolar, buscábamos una solución sobre cómo realizar un seguimiento de la asistencia de los estudiantes. Muchos de nuestros estudiantes llegan tarde. Es un trabajo tedioso comprobar su presencia. Por otro lado, hay mucha discusión porque los estudiantes a menudo dirán
La última solución "a prueba de futuro" del controlador USB Wifi High Sierra 10.13 de MacOS / Hackintosh con Raspberry Pi: 4 pasos
La última solución "Future Proof" del controlador Wifi USB de MacOS / Hackintosh High Sierra 10.13 con Raspberry Pi: uno de los problemas más frustrantes con la última versión de macOS / Hackintosh es la disponibilidad del controlador wifi USB. macOS High Sierra 10.13Mi último wifi USB es panda inalámbrico, sin embargo, el controlador es compatible con macO
Cortinas para el hogar automatizadas - Mini proyecto con módulo BluChip de MakerChips (nRF51 BLE): 7 pasos (con imágenes)
Cortinas para el hogar automatizadas: mini proyecto con el módulo BluChip de MakerChips (nRF51 BLE): imagina que te despiertas y quieres que un rayo de sol atraviese las ventanas, o que cierras las cortinas para que puedas dormir más, sin el esfuerzo de acercarte. a las cortinas, sino más bien con el toque de un botón en su teléfono inteligente