Si ce tutoriel vous est utile, pensez à donner une étoile ⭐ en haut à droit.
Ce tutoriel requiert un kit Nucleo LRWAN1.
Créez un compte sur MBed https://ide.mbed.com/compiler/
Importez la version 7:5077515 du démonstrateur LoRaWAN-demo-72 dans votre IDE MBed au moyen du bouton Import into Compiler.
Importez la version 9:ee9dcbb du démonstrateur LoRaWAN-demo-76 dans votre IDE MBed au moyen du bouton Import into Compiler.
Modifiez le fichier Commissioning.h en changeant la valeur de ENDPOINT_ID.
/*
/ _____) _ | |
( (____ _____ ____ _| |_ _____ ____| |__
\____ \| ___ | (_ _) ___ |/ ___) _ \
_____) ) ____| | | || |_| ____( (___| | | |
(______/|_____)_|_|_| \__)_____)\____)_| |_|
(C)2015 Semtech
Description: End device commissioning parameters
License: Revised BSD License, see LICENSE.TXT file include in the project
Maintainer: Miguel Luis and Gregory Cristian
*/
#ifndef __LORA_COMMISSIONING_H__
#define __LORA_COMMISSIONING_H__
/*!
* When set to 1 the application uses the Over-the-Air activation procedure
* When set to 0 the application uses the Personalization activation procedure
*/
#define OVER_THE_AIR_ACTIVATION 1
/*!
* Indicates if the end-device is to be connected to a private or public network
*/
#define LORAWAN_PUBLIC_NETWORK true
/*!
* IEEE Organizationally Unique Identifier ( OUI ) (big endian)
* \remark This is unique to a company or organization
*/
#define IEEE_OUI 0x0C, 0xAF, 0xCA
#define APP_ID 0x04
#define ENDPOINT_ID 0x72, 0x08
/*!
* Mote device IEEE EUI (big endian)
*/
#define LORAWAN_DEVICE_EUI { IEEE_OUI, 0x00, 0x00, APP_ID, ENDPOINT_ID }
/*!
* Application IEEE EUI (big endian)
*/
#define LORAWAN_APPLICATION_EUI { IEEE_OUI, 0x00, 0x00, APP_ID, 0xFF, 0xFF }
/*!
* AES encryption/decryption cipher application key
*/
#define LORAWAN_APPLICATION_KEY { APP_ID, ENDPOINT_ID, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C }
/*!
* Current network ID
*/
#define LORAWAN_NETWORK_ID ( uint32_t )0
/*!
* Device address on the network (big endian)
*/
#define LORAWAN_DEVICE_ADDRESS ( uint32_t )0x12345678
/*!
* AES encryption/decryption cipher network session key
*/
#define LORAWAN_NWKSKEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C }
/*!
* AES encryption/decryption cipher application session key
*/
#define LORAWAN_APPSKEY { 0x2B, 0x7E, 0x15, 0x16, 0x28, 0xAE, 0xD2, 0xA6, 0xAB, 0xF7, 0x15, 0x88, 0x09, 0xCF, 0x4F, 0x3C }
#endif // __LORA_COMMISSIONING_H__
Sélectionnez le modèle de la carte Nucleo (L073RZ, F411RE ...) puis lancez la compilation avec le bouton Compile.
Téléchargez et sauvez le fichier binaire produit puis copiez celui-ci dans le "disque" émulé sur votre machine par la carte Nucleo.
Lancez une application de terminal série (comme PuTTY sur Windows, ZTerm ou CoolTerm sur MacOS, ...).
Connectez vous à la console du programme embarqué via le port série de la carte avec les paramètres 115200/8/1/N.
Rafraichissez l'interface en appuyant sur la touche R de la console.
Créez une nouvelle application NUCLEO.
Ajoutez un device (device profile CLASS_A_OTAA) avec le DevEUI qui est la valeur de la macro LORAWAN_DEVICE_EUI et l'AppKey qui est la valeur de la macro LORAWAN_APPLICATION_EUI.
MQTT est le moyen par défaut pour envoyer un message descendant (down) vers un device https://www.loraserver.io/lora-app-server/integrate/data/
Actuellement, les commandes à utiliser sont:
ORGID=1 # l'id de votre ORGANISATION (ce n’est pas le username de votre compte utilisateur)
BROKER=lora.campusiot.imag.fr
MQTTUSER=org-$ORGID # le username de votre ORGANISATION (ce n’est pas le username de votre compte utilisateur)
MQTTPASSWORD=__SUPER_SECRET_TO_CHANGE__ # le mot de passe de votre ORGANISATION (ce n’est pas le username de votre compte utilisateur)
TLS="--cafile ca.crt -p 8883"
applicationID=1
devEUI=1234567890abcdef
# Send Downlink Messages (dn)
mosquitto_pub -h $BROKER -u $MQTTUSER -P $MQTTPASSWORD $TLS -t "application/$applicationID/device/$devEUI/tx" -m '{"reference": "abcd1234","confirmed": true, "fPort": 10,"data":"SGVsbG8gQ2FtcHVzSW9UICE="}'
Le champs data contient le message binaire encodé en base64.
Dans l’exemple, le message “Hello CampusIoT !” en hexadécimale est affiché dans le terminal serie.
La commande shell base64 permet de décoder et encoder des textes vers/depuis base64.
echo `echo SGVsbG8gQ2FtcHVzSW9UICE= | base64 --decode`
echo "Hello CampusIoT !" | base64

