SPGPSTRACK - Mappage GPS Lorawan
Ce programme est un tracker GPS Lorawan à des fins de cartographie.
- configuré comme ABP afin que vous puissiez alimenter l'appareil aux endroits où vous n'avez pas de couverture
- transmettra l'emplacement tous les x mètres
- Vous pouvez choisir le format de charge utile entre Cayennelpp et une fonction manuelle de décodeur de charge utile
- Le logiciel prend en charge la liaison montante confirmée et l'Arduino bip
- Vous pouvez lire le GPS en série matérielle ou en série logicielle, il est donc plus facile pour le développement si vous voyez ce qui se passe lors de l'opération réelle
- En cas d'utilisation en série matérielle, vous pouvez activer une série logicielle pour le débogage
Faire
- Transmission chronométrée, qui s'exécute également lorsque le tracker ne se déplace pas. Par exemple, chaque heure, pour voir si le tracker est toujours en vie.
- option de faible puissance
Support ESP32 [État: en travail, voir Branch Develop. La configuration SPI produit des backtraces] matériel: ESP32 Uno, marqué comme wemos ESP32 déjà implémenté- Position wifi alternative pour ESP32
Démarrage rapide
- Dans la console TTN, créez une application, enregistrez un nouvel appareil (comme ABP)
- Copiez les informations et les clés de l'appareil Lorawan dans l'esquisse
- Empilez les planches et téléchargez l'esquisse sur la planche. Pour télécharger l'esquisse, vous devez garder le bouton de réinitialisation sur le dragino appuyé. (Si vous pouvez télécharger sans appuyer sur ce bouton, cela pourrait être un signe que vous avez quelque chose de mal dans les cavaliers Dragino ou les paramètres en série de votre croquis)
- Lorsque vous voyez le trafic dans la console TTN, vous pouvez procéder à la configuration de la fonction de décodeur de charge utile.
- (Si vous ne voyez pas de trafic dans la console TTN, bien que vous soyez sûr que vous êtes à bonne distance jusqu'à une passerelle, vérifiez le compteur du cadre et les cavaliers Dragino)
- Configurez l'intégration ttnmapper, spécifiez un nom d'expérience pour le moment des premiers essais (ou vous divulguerez votre emplacement à domicile avec un nuage de points de connexion réussis)
- Vous devriez trouver votre nouvelle expérience à la fin de cette liste.
ESP32
Pour le paramètre PIN T22_07 SPI non implémenté en LMIC encore! -> Matthijskooijman / arduino-lmic # 164
-> modifier les broches SPI directement dans la bibliothèque
Attention!!! N'oubliez pas de réinitialiser cela, si vous utilisez également d'autres matériels avec LMIC
Hal.cpp Line 79
static void hal_spi_init () {
//SPI.begin();
SPI . begin ( 5 , 19 , 27 );
}Dépendances
- Arduino LMIC
- Tinygps ++
- Cayennelpp (facultatif) Installation à partir du gestionnaire de bibliothèque Arduino
Configuration:
- Txdist - définit la distance [en mètres], après quoi la position est envoyée
- SF - Définissez le facteur de propagation de Lorawan (DR_SF7 - DR_SF12) 7 et 8 recommandés pour la cartographie
- Single_Channel - Utilisez uniquement le canal Lorawan 0 pour les passerelles à canal unique
- Confirmé - Active les liaisons montantes confirmées, activez uniquement, si vous concevez un buzzer pour épingler D5! Sinon, cette fonctionnalité est inutile
- Soft_Serial - Uncomment pour utiliser la série matérielle, sinon la série logicielle est utilisée. Dans ce cas, connectez le module GPS à RXPIN et TXPIN
- Debug - Si vous utilisez du matériel de série, vous pouvez activer le débogage, pour obtenir la sortie de débogage sur une série logicielle. Laissez les handicapés pour ne pas utiliser du tout le logiciel
- Cayennelpp - Si vous souhaitez utiliser Cayennelpp comme format de charge utile, utilisez autrement la fonction de charge utile du décodeur
Fonction de charge utile
function Decoder ( bytes , port ) {
var decoded = { } ;
// if (port === 1) decoded.led = bytes[0];
decoded . latitude = ( ( bytes [ 0 ] << 16 ) >>> 0 ) + ( ( bytes [ 1 ] << 8 ) >>> 0 ) + bytes [ 2 ] ;
decoded . latitude = ( decoded . latitude / 16777215.0 * 180 ) - 90 ;
decoded . longitude = ( ( bytes [ 3 ] << 16 ) >>> 0 ) + ( ( bytes [ 4 ] << 8 ) >>> 0 ) + bytes [ 5 ] ;
decoded . longitude = ( decoded . longitude / 16777215.0 * 360 ) - 180 ;
var altValue = ( ( bytes [ 6 ] << 8 ) >>> 0 ) + bytes [ 7 ] ;
var sign = bytes [ 6 ] & ( 1 << 7 ) ;
if ( sign )
{
decoded . altitude = 0xFFFF0000 | altValue ;
}
else
{
decoded . altitude = altValue ;
}
decoded . hdop = bytes [ 8 ] / 10.0 ;
return decoded ;
}