Étape 2: programmation
Actuellement, il y a 2 versions de bibliothèques de LoRaWAN pour Arduino :
1. https://github.com/matthijskooijman/arduino-lmic - cette bibliothèque est porté de IBM LoRaWAN dans la bibliothèque C. Le problème avec c’est qu’il utilise beaucoup de mémoire (surtout à cause de la part d’encription AES) et ne pourrait pas être utilisé comme sur Arduino UNO à cause de cela. Mais il peut être utilisé après la désactivation de certaines fonctionnalités (qui rendre le code plus petit).
2. https://github.com/things4u/LoRa-LMIC-1.51 - c’est le même port, elle puise dans IBM mais avec différente lib pour encription AES (version réduite).
J’ai eu des problèmes avec l’exécution d’une esquisse de deuxième option et a décidé d’arrêter sur le premier.
Pour faire la même chose, vous devez télécharger la bibliothèque depuis le lien ci-dessus (Matthijs Kooijman version) et placez-le dans votre dossier de « bibliothèques » Arduino (décompressé). Puis redémarrez IDE Arduino et vous le verrez dans les bibliothèques et les exemples.
Tout d’abord, allez dans le dossier avec Bibliothèque et fichier ouvert « config.h ». Vérifier que la ligne
'#define CFG_sx1276_radio 1' est décommenté et « //#define 1 CFG_sx1272_radio » est commenté.
Décommentez les lignes « #define DISABLE_PING » et « #define DISABLE_BEACONS » pour économiser de l’espace pour Arduino UNO (Mega vous pouvez ignorer cela).
Ouvrez dans IDE Arduino : fichier -> exemples -> IBM PRITI cadre -> ttn
Vérifiez épingles, devrait être comme ceci :
Broche de cartographie
const lmic_pinmap lmic_pins = {.nss = 10, .rxtx = LMIC_UNUSED_PIN, homme = 5, .dio = {2, 5, 6},} ;
La valeur NWKSKEY, APPSKEY, DEVADDR comme vous il réussi dans votre serveur de réseau.
Voir fichiers joints comme exemple.
Publiez votre sketch Arduino. Fait !
Il va commencer à envoyer des paquets à votre passerelle et ensuite transmis au serveur réseau.
Si vous utilisez « loriot » vous pouvez voir les paquets à destination de votre serveur sur la page : https://www.loriot.io/apps/gwtap.html?gw=B8-27-EB-... (Mettez ici le MAC de votre GW)
Et aussi, vous pouvez consulter les messages à venir dans votre serveur (Voir photos).
Vous pouvez convertir HEX ASCII données ici : http://www.rapidtables.com/convert/number/hex-to-a...
Dans mon cas 48 65 6C 6C 6f 2C 20 77 6f 72 6C 64 21' signifie "Hello, world!"
Prochaines étapes :
Connectez vos capteurs réels à arduino et programmez-le pour envoyer des données au lieu de "Hello World".