Table des matières:

Projet Arduino : Plage de test du module LoRa RF1276 pour la solution de suivi GPS : 9 étapes (avec photos)
Projet Arduino : Plage de test du module LoRa RF1276 pour la solution de suivi GPS : 9 étapes (avec photos)

Vidéo: Projet Arduino : Plage de test du module LoRa RF1276 pour la solution de suivi GPS : 9 étapes (avec photos)

Vidéo: Projet Arduino : Plage de test du module LoRa RF1276 pour la solution de suivi GPS : 9 étapes (avec photos)
Vidéo: Концепция EP19 - Измерение ВЧ-мощности своими руками 2024, Novembre
Anonim
Projet Arduino: Testez le module LoRa RF1276 pour la solution de suivi GPS
Projet Arduino: Testez le module LoRa RF1276 pour la solution de suivi GPS

Connexion: USB - Série

Besoin: Navigateur Chrome

Besoin: 1 X Arduino Mega

Besoin: 1 X GPS

Besoin: 1 X carte SD

Besoin: 2 X Modem LoRa RF1276

Fonction: Arduino Envoyer la valeur GPS à la base principale - Données de stockage de la base principale dans le module Lora du serveur Dataino: RF1276 ultra longue portée d'APPCONWIRELESS LoRa est une nouvelle technique de modulation privée et à spectre étalé qui permet d'envoyer des données à des débits de données extrêmement bas à extrêmement longues portées. Le faible débit de données (jusqu'à quelques octets par seconde) et la modulation LoRa conduisent à une très faible sensibilité du récepteur, ce qui signifie dans ce test plus de 10 km.

Étape 1: Construction de la station de base

Station de base du bâtiment
Station de base du bâtiment
Station de base du bâtiment
Station de base du bâtiment

Connexion Internet de largeur d'ordinateur et un modem LoRa connecté au port USB.

Kit voiture Arduino ·

La boite métrique

Anduino Mega connecté au récepteur série 2 au récepteur GPS et au modem série 1 au modem LoRa. Une carte SD est utilisée pour stocker les données.

Étape 2: Le premier test

Le premier essai
Le premier essai

· 10,6 km sur un sentier à travers les centres urbains, les galeries et le long de la côte fait de boucles

Le rapport réception/transmission a été de 321/500TX point

Point de réception

Étape 3: créer l'interface

Créer l'interface
Créer l'interface
Créer l'interface
Créer l'interface

1 - Mettre en place un nouveau projet LoRa

Appuyez sur l'icône rouage pour ouvrir la configuration du projet

Étape 4: ajouter une jauge

Ajouter une jauge
Ajouter une jauge

2) Ouvrez le curseur de la jauge.

· 3) Faites défiler jusqu'au GPS.

· 4) Ajoutez-en un au bureau.

Étape 5: Faites glisser la jauge GPS et ajoutez OpenStreetMap

Faites glisser la jauge GPS et ajoutez OpenStreetMap
Faites glisser la jauge GPS et ajoutez OpenStreetMap
Faites glisser la jauge GPS et ajoutez OpenStreetMap
Faites glisser la jauge GPS et ajoutez OpenStreetMap

· 5) Ajouter la carte OpenStreetMap au bureau

En faisant glisser le composant GPS sur la carte des icônes, la carte OpenStreet est générée.

Créer l'interface

· 6) Modifier l'actualisation de la carte

Changer le temps de rafraîchissement de la carte de 5000 à 10000

Étape 6: Faites glisser la jauge GPS et ajoutez le journal de la table

Faites glisser la jauge GPS et ajoutez un journal de table
Faites glisser la jauge GPS et ajoutez un journal de table

· 7) Ajoutez une jauge de journal de table.

En faisant glisser la jauge au-dessus de la table d'icônes GPS est créé le journal de la table de jauge

· 8) Actualisation du journal de la table des modifications. Changer le temps de rafraîchissement de la carte de 5000 à 10000

Ajuster la position des jauges

· 9) Les jauges de glissement ajustent la position des jauges en les faisant glisser sur l'écran.

· 10) Enregistrer le projet

Étape 7: Obtenez le code

Obtenir le code
Obtenir le code

10) Activer le conteneur de code

Bouton en haut à droite, sélectionnez tout et copiez le code de base.

Étape 8: IDE Arduino

IDE Arduino
IDE Arduino

· 11) Coller le code sur Arduino IDE

· 12) Editer le code Ajouter cette ligne dans la définition

Étape 9: Codage des détails

Ajouter cette ligne dans la définition

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

//** UNE BIBLIOTHÈQUE ** //***************************************** ********************************

#include // ++ bibliothèque GPS

#include // ++ bibliothèque SPI #include

// ++ bibliothèque SD//

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

//** DAKOTA DU SUD ** //***************************************** ********************************

// * Carte SD connectée au bus SPI comme suit:

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

// (la broche CS peut être modifiée) et la broche #10 (SS) doit être une sortie

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

// (La broche CS peut être modifiée) et la broche #52 (SS) doit être une sortie

// ** Leonardo: Se connecter au matériel SPI via l'en-tête ICSP

// La broche 4 utilisée ici pour la cohérence avec d'autres exemples Arduino const int chipSelect = 53;

// ++ Sélecteur de broche SD

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

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

GPS TinyGPS; // ++ GPS sur Serial2

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

bool newdataGPS = false; // ++

Ajoutez cette ligne dans le setup()

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

//** Configuration série GPS ** //****************************************** ********************************

Serial2.begin(9600); // ++

retard(1000); // ++

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

//** Initialisation SD ** //****************************************** *******************************

// assurez-vous que la broche de sélection de puce par défaut est définie sur // ++

// sortie, même si vous ne l'utilisez pas: // ++

pinMode(SS, SORTIE); // ++

Serial.println(F("Initialisation de la carte SD…")); // ++

// voir si la carte est présente et peut être initialisée: // ++

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

Serial.println(F("La carte a échoué ou n'est pas présente")); // ++

// ne fais plus rien: // ++

revenir; // ++

} else { // ++

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

} // ++

Ajoutez ces lignes dans loop() void

serialEvent2(); // ++ appelle l'événement série GPS

Ajouter le code SeriaEvent2

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

//** Série GPS Événement ** //****************************************** *********************************

void serialEvent2() { // ++

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

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

//Série.print(c); // décommentez pour voir les données GPS brutes // ++

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

nouvellesdonnéesGPS = vrai; // ++

Pause; // décommentez pour imprimer les nouvelles données immédiatement ! // ++

} // ++

} // ++

} // ++

Ajouter un vidage GPS

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

//** vidage gps ** //****************************************** *********************************

//** La plage de latitude valide en degrés est -90 et +90. **

//** La longitude est comprise entre -180 et +180 **

//** en précisant la position est-ouest **

//** "123456789 1234567890" **

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

vide gpsdump (TinyGPS & gps) // ++

{ // ++

int année; // ++

octet mois, jour, heure, minute, seconde, centièmes; // ++

âge long non signé; // ++

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

gps.crack_datetime(&année, &mois, &jour, &heure, // ++

&minute, &seconde, &centièmes, &age); // ++

long lat, long; // ++

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

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

// ** crée une chaîne pour assembler les données à enregistrer: **

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

Chaîne dataString = ""; // ++

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

chaîne de données += "."; // ++

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

chaîne de données += ";"; // ++

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

chaîne de données += "."; // ++

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

chaîne de données += ";"; // ++

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

chaîne de données += "/"; // ++

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

chaîne de données += "/"; // ++

dataString += String(année); // ++

chaîne de données += ";"; // ++

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

dataString += ":"; // ++

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

dataString += ":"; // ++

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

//** ENREGISTRER SUR SD ** //****************************************** **************************************

// ouvre le fichier. notez qu'un seul fichier peut être ouvert à la fois, **

// vous devez donc fermer celui-ci avant d'en ouvrir un autre. ** //************************************************ ***************************

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

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

// ** si le fichier est disponible, écrivez-y: **

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

if (fichier de données) { // ++

dataFile.println(dataString); // ++

dataFile.close(); // ++

} else { // ++

Serial.println(F("ERREUR écriture SD")); // ++

} // ++

}

Si vous souhaitez télécharger le code, veuillez visiter cette page.

Conseillé: