Installation d’un Croquis RadioShuttle pour LongRa (compatible Arduino Zero)

Ce chapitre couvre l’installation des croquis de RadioShuttle. Pour plus d’informations sur la carte LongRa, cliquez ici. Veuillez lire ce chapitre pour les instructions de mise en service.

Conditions préalables

RadioShuttle utilise le C++ moderne, qui n’est que partiellement activé dans Arduino. De plus, un nom de fonction est défini deux fois en Arduino et en C++, il faut donc modifier ce qui suit dans l’installation Arduino pour utiliser RadioShuttle ou des solutions C++ similaires.

Activer C++ correctement

Quitter Arduino. Dans le fichier « platform.txt » sous le chemin d’accès suivant (à partir du dossier utilisateur), veuillez modifier ce qui suit :

Mac: « Library/Arduino15/packages/arduino/hardware/samd/1.6.19 »
Windows: « AppData\Local\Arduino15\packages\arduino\hardware\samd\1.6.19 »

ancien: compiler.c.elf.cmd=arm-none-eabi-gcc
nouveau: compiler.c.elf.cmd=arm-none-eabi-g++

Attention, les modifications seront supprimées si vous installez Arduino à nouveau et doivent être modifiées à nouveau.

Remarque :
L’étape ci-dessus n’a pas été effectuée dans le cas du message d’erreur suivant : … undefined reference to `std::__detail::_List_node_base …

Activer la mémoire permanente D21 pour les réglages

« bossac » est un petit programme de programmation de la mémoire flash dans la puce D21, qui doit être installée sur la plate-forme que vous utilisez.

Important :
« bossac » doit être installé avant la première utilisation de la carte LongRa. Sinon, toutes les propriétés prédéfinies seront effacées !

Téléchargez l’archive « BOSSAC.zip » ici. Après avoir décompressé l’archive, vous trouverez le programme pour trois plates-formes différentes :

NomPlateformeRépertoire
bossac-linux64Linux.arduino15/packages/arduino/tools/bossac/1.7.0/
bossac-macosmacOSLibrary/Arduino15/packages/Arduino/tools/bossac/1.7.0/
bossac.exeWindowsAppData\Local\Arduino15\packages\arduino\tools\bossac\1.7.0\

Copiez le binaire approprié pour la plate-forme que vous utilisez dans le répertoire ci-dessus et renommez-le en « bossac » (« bossac.exe » pour la plate-forme Windows ne sera pas renommé). Pour plus de sécurité, vous devez d’abord sauvegarder le bossac déjà présent, par exemple sous la forme « bossac.save ».

Installation de la bibliothèque RadioShuttle

Le logiciel RadioShuttle complet est livré dans une archive Zip et peut être chargé ici en entrant un code à huit chiffres. Le code se trouve au dos de la carte, par exemple « 0x67bedf1 ».
Une archive Zip est chargée avec le logiciel actuel, par exemple : « RadioShuttle Arduino-2018-05-10.zip ».
L’archive zip doit être décompressée et le contenu du dossier « libraries » copié dans le dossier « Documents/Arduino/libraries ».

Remarque :
Le contenu d’une bibliothèque RadioShuttle existante doit être complètement écrasé (ne pas fusionner) !

Après la copie, vous devriez voir les éléments suivants dans le répertoire « libraries » :

  • « Adafruit_Si7021 » (bibliothèque pour le capteur de température/humidité)
  • « Arduino-mbed-APIs » (pilotes supplémentaires et nouvelles fonctions de minuterie pour les puces ESP32 et D21)
  • « Arduino-TR-064-SOAP-Library » (bibliothèque pour le protocole TR-064 à utiliser avec les FRITZ!Box)
  • « ds3231 » (bibliothèque pour l’horloge RTC de la carte ECO Power)
  • « OLED » (bibliothèque pour les écrans SSD1306, voir information technique Utilisation de la Carte ECO Power avec un Écran OLED)
  • « pubsubclient » (bibliothèque qui fournit un client pour publier/abonner des messages simples avec un serveur compatible MQTT)
  • « RadioShuttle » (logiciel de protocole radio et exemples)
  • « RTCZero » (bibliothèque RTC pour la puce Atmel D21)
  • « SX1276GenericLib » (pilote pour la puce radio LoRa)

Personnaliser « PinMap.h »

Le fichier « PinMap.h » définit les connexions du SAMD21 MCU avec la puce radio et les autres périphériques. Il doit être vérifié et, si nécessaire, adapté à chaque programme nouvellement installé. Vous pouvez le trouver dans l’EDI Arduino ci-dessus comme un onglet supplémentaire.

Carte LongRa (Rév. 7.2)

Pour faire correspondre le code du programme et la révision de la carte, recherchez #define D21_LONGRA_REV_720 et assurez-vous que cette ligne est active. Si vous avez une autre version de la carte LongRa, activez la ligne correspondante et désactivez les autres révisions :

// #define D21_LONGRA_REV_630 1 // board with LiPo power supply …
#define D21_LONGRA_REV_720 1 // Maker Faire Hannover revision, micro USB

Carte LongRa (Rév. 7.5 ou plus récent)

Pour faire correspondre le code du programme et la révision de la carte, recherchez #define D21_LONGRA_REV_750 et assurez-vous que cette ligne est active. Si vous avez une autre version de la carte LongRa, activez la ligne correspondante et désactivez les autres révisions :

// #define D21_LONGRA_REV_630 1 // board with LiPo power supply …
// #define D21_LONGRA_REV_720 1 // Maker Faire Hannover revision …
#define D21_LONGRA_REV_750 1 // LongRa revision with more pins, micro USB

Exemple d’application « PropertyEditor »

Il existe une mémoire dans laquelle les réglages qui doivent être conservés sur la carte après l’installation d’un nouveau programme (« Sketch ») peuvent être sauvegardés définitivement. Ici, il est judicieux d’enregistrer des paramètres tels que les données d’accès WiFi ou similaires. Les applications d’exemple « PropertyEditor » et « PropertyTest » (voir tableau plus bas) peuvent être utilisées à cet effet. La page Mémoire permanente pour les réglages explique en détail les différences entre les différents types de mémoire.

Après le démarrage de l’EDI Arduino, l’entrée « Arduino/Genuino Zero (Native USB-Port) » doit être sélectionnée pour la carte LongRa sous « Outils > Type de carte », car l’EDI Arduino affiche toujours uniquement les bibliothèques qui sont exécutables sur la carte actuellement sélectionnée.

L’exemple « PropertyEditor » peut ensuite être chargé dans l’EDI Arduino via le menu « Fichier > Exemples > Arduino-mbed-API > « PropertyEditor ».

Ouvrir la fenêtre « Moniteur série » (voir Ouvrir la fenêtre « Moniteur série » d’Arduino ci-dessous) et charger le croquis « PropertyEditor » avec la fonction « Téléverser » sur la carte LongRa. Si tout s’est bien passé, vous devriez voir ce texte dans la fenêtre :

Pour lister toutes les propriétés disponibles, entrez « l » (pour list) dans la ligne de saisie, comme montré dans l’image ci-dessus, et cliquez sur le bouton « Envoyer » :

Pour définir une valeur pour une propriété, vous devez entrer un « s » (pour set) dans la ligne de saisie, suivi du numéro de la propriété et de sa valeur. Dans cet exemple, la propriété « LORA_DEVICE_ID » (numéro 10) reçoit la valeur « 15 » :

Après un nouvel appel de liste, on peut voir que la propriété « LORA_DEVICE_ID » a reçu la valeur « 15 » :

En saisissant la commande « d » (pour delete), des propriétés individuelles peuvent être effacées de la mémoire.

Définition des propriétés pour « RadioTest »

Une simple application de test RadioShuttle (« RadioTest ») est destinée aux débutants. Il y a deux appareils qui communiquent entre eux et échangent un simple message. Un appareil est appelé un nœud et le second est une station. Un message est transmis du nœud à la station par simple pression d’un bouton (bouton « A »). Cela fonctionne également dans l’autre sens, la station peut également transmettre un message au nœud, en supposant que le nœud a été configuré comme Nœud en ligne (par défaut est Nœud hors ligne).

Pour l’exemple d’application « RadioTest », au moins les propriétés suivantes doivent être définies avec l’application PropertyEditor :

PropriétéTypeExplication
LORA_DEVICE_IDT_32BITID du dispositif de la carte (par défaut, si non défini !)
LORA_CODE_IDT_32BITCode de la carte (par défaut, si non défini !)
LORA_RADIO_TYPET_32BITType d’utilisation (non défini) :
1 = Nœud hors ligne (fonctionnement comme capteur radio en mode « deepsleep »)
3 = Nœud en ligne (fonctionnement en tant que capteur radio, prêt à recevoir en permanence)
4 = Station basic (fonctionnement en tant que serveur pour les petits réseaux)
5 = Station serveur (fonctionnement en tant que serveur pour les grands réseaux)
LORA_REMOTE_IDT_32BITID de communication du station distant (non défini)
LORA_APP_PWD
(optional)
T_STRDéfinit le mot de passe de cryptage AES-128 par application

Si ce n’est pas déjà fait, écrire une valeur pour la propriété « LORA_DEVICE_ID » dans la mémoire. Vous trouverez cette valeur au dos de votre carte sous « ID : ».

Faites de même avec les propriétés « LORA_CODE_ID » (cette valeur se trouve également au dos de votre carte sous « Code : »), « LORA_REMOTE_ID » et « LORA_RADIO_TYPE ».

Si « LORA_REMOTE_ID » et « LORA_RADIO_TYPE » ne sont pas définis et que #define USE_DEMOBOARD_PAIR est actif dans le fichier « RadioTest.ino », un mode démo test est utilisé entre les deux cartes (voir Personnaliser RadioTest.ino ci-dessous).

Activation de l’exemple d’application « RadioTest »

Après le démarrage de l’EDI Arduino, l’entrée « Arduino/Genuino Zero (Native USB-Port) » doit être sélectionnée pour la carte LongRa sous « Outils > Type de carte », car l’EDI Arduino affiche toujours uniquement les bibliothèques qui sont exécutables sur la carte actuellement sélectionnée.

L’exemple « RadioTest » est chargé dans l’EDI via le menu « Fichier > Exemples > RadioShuttle > Radio Test ». Cet exemple de programme peut être utilisé pour envoyer des messages d’un nœud à une station ou vice versa. Il se compose des fichiers « PinMap.h », « RTCUtil.cpp » et « RadioTest.ino ».

Les réglages suivants doivent être effectués avant l’utilisation :

Personnaliser RadioTest.ino

La ligne #define USE_DEMOBOARD_PAIR peut être désactivée comme suit :
// #define USE_DEMOBOARD_PAIR

Cette ligne a été utilisée pour faire correspondre automatiquement les paires de cartes expédiées.

Vérifier l’exemple d’application « RadioTest »

Il suffit d’appuyer sur le bouton gauche « A » au niveau du nœud. Un message réseau est ensuite envoyé du nœud au serveur. Pendant la transmission des messages, les LED d’émission et de réception doivent clignoter brièvement. Ceci est également possible vice versa en appuyant sur le bouton « A » sur le serveur et le nœud doit recevoir un message

De plus, les messages sont affichés dans la fenêtre « Moniteur série ».

Ouvrir la fenêtre « Moniteur série » d’Arduino

La fenêtre « Monitor série » doit s’ouvrir dans les trois secondes suivant l’installation du logiciel ou la réinitialisation de la carte pour que tous les messages soient visibles. La fenêtre doit être rouverte pendant l’installation ou la réinitialisation.

Si la fenêtre n’est pas ouverte dans les cinq secondes, la carte éteint l’interface USB (« Monitor série ») et la LED 13 clignote brièvement pour confirmer que l’USB a été éteint. La connexion USB est automatiquement coupée pour économiser de l’énergie.

Exemple A: Lancement réussi du logiciel RadioShuttle

Si « Monitor série » s’ouvre dans les cinq secondes suivant le démarrage ou la réinitialisation, vous devriez voir un message similaire à celui ci-dessus.
Des paramètres importants tels que la fréquence, la largeur de bande et le facteur d’étalement sont visibles. Le message « TimeOnAir » indique combien de temps les données voyagent avec les paramètres réglés. Le temps, s’il est disponible, est pris du temps du RTC, sinon le temps de compilation est utilisé. Il est également important d’indiquer le numéro du nœud (ici « ID=14 ») ainsi que le réglage de l’exécution du système en tant que nœud ou station.

Exemple B: Message envoyé avec succès

Après avoir appuyé sur le bouton « A », un message de test a été envoyé à un deuxième nœud. Celui-ci a confirmé la réception.

Example C: Timeout d’attente pour l’envoi d’un message

Après avoir appuyé sur le bouton « A », un message de test a été envoyé. Mais la réception n’a pas été confirmée. Après trois tentatives, ce processus est interrompu et un message d’erreur (« MSG_SentTimeout ») apparaît.

Mémoire permanente pour les réglages

Il existe une mémoire dans laquelle les réglages qui doivent être conservés sur la carte après l’installation d’un nouveau croquis peuvent être sauvegardés définitivement. Ici, il est judicieux d’enregistrer des paramètres tels que les données d’accès WiFi ou similaire, etc. Les exemples d’applications « PropertyEditor » et « PropertyTest » (voir tableau ci-dessous) peuvent être utilisés à cet effet. La page Mémoire permanente pour les réglages explique cela en détail.

Vue d’ensemble de tous les exemples d’applications

NomBibliothèqueExplication
BlinkyArduino-mbed-APIsClignotement périodique d’une LED
BlinkyEnhancedArduino-mbed-APIsClignotement commandé par minuterie d’une LED
BlinkyEnhanced_C_Plus_PlusArduino-mbed-APIsClignotement commandé par minuterie d’une LED (en C++)
CPUBenchArduino-mbed-APIsMesure les performances des CPU flottants et entiers
DisplayI2CSampleArduino-mbed-APIsUtilisation d’un écran OLED (128×64 pixels, I2C). Voir Utilisation de la Carte ECO Power avec un Écran OLED
HelloWorldArduino-mbed-APIsExemple de sortie simple ; explique les différentes options « printf »
LongRaPowerSwitchTestArduino-mbed-APIsIndique comment activer 5 V ou 3,3 V avec une carte LongRa
PMSensorRadioRadioShuttleCapteur d’environnement ; mesure périodiquement la concentration de poussière en µg/m3 (selon les normes PM10 et PM2,5)
PropertyEditorArduino-mbed-APIsProgramme de réglage des paramètres (propriétés), qui sont stockés de manière permanente sur la carte. Restez après le redémarrage ou même après l’installation d’un nouveau programme. Voir aussi Mémoire Permanente pour les Réglages
PropertyTestArduino-mbed-APIsMontre comment les propriétés, telles que, les chaînes de caractères et les valeurs numériques peuvent être stockées dans la mémoire flash permanente pour être utilisées dans les croquis. Voir aussi Mémoire Permanente pour les Réglages
RadioTestRadioShuttleVoir l’explication détaillée ci-dessus
TimerTestArduino-mbed-APIsExemple d’appel de plusieurs minuteries asynchrones qui appellent les fonctions de fin d’appel lorsqu’un timeout d’attente est en attente. Fonctionne avec précision et économise de l’énergie

Vidéo didactique : Non-volatile settings (NV Property)

Fiche produit PDF