#Guide, comment augmenter la portée des modules radio nRF24L01 des projets MySensors v2 (matériel, configuration)

D’apparence simple sur le papier (l’écran !), la réalisation d’un objet connecté à base de nRF24L01 peut rapidement s’avérer compliqué à mettre au point si on veut transmettre des données à longue distance (plusieurs dizaines de mètre, voir centaines). Après avoir passé de nombreuses heures à tester différents matériels pour trouver les bons réglages, je vous propose cet article qui fait le bilan de quelques astuces pour réussir un projet MySensors à base de nRF24L01.

Avertissement. Cet article n’a pas pour prétention de répondre à toutes les configurations. Tous les conseils donnés dans cet article sont issus d’essais empiriques réalisés avec du matériel bon marché en provenance d’Asie accessible par tout le monde. Les résultats peuvent varier d’un matériel à l’autre, même s’il provient d’un même fabricant.

Le tutoriel a été rédigé avec la version 2.0 de la librairie MySensors, mais cela devrait aussi fonctionner avec les versions précédentes (1.4, 1.5…).

Points abordés :

  • Message d’erreur de transmission (!TSM:FAILURE)
  • Quel module radio nRF24L01 choisir ?
  • Quelle antenne choisir ?
  • Alimentation 3V3 régulée, câblage plus facile et moins (sans) de parasites
  • Impossible de présenter un noeud après un téléversement
  • Autres questions

MySensors : erreur !TSM:FAILURE

Lorsqu’on débute avec un projet MySensors, on peut rapidement être confronté à de nombreux messages difficiles à déchiffrer. Voici le message d’erreur le plus courant. Tout semble portant bien commencer

  • TSM: RADIO: OK, le branchement du module radio est correct.
  • TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:, ça commence bien
  • !TSM:FPAR:FAIL, et non
  • !TSM:FAILURE, tout est parterre !!!
TSM:INIT
TSM:RADIO:OK
TSM:FPAR
TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
TSM:FPAR
TSP:MSG:SEND 255-255-255-255 s=255,c=3,t=7,pt=0,l=0,sg=0,ft=0,st=bc:
!TSM:FPAR:FAIL
!TSM:FAILURE
TSM:PDT

Avec ce type d’erreur, ne cherchez pas du coté du câblage, de ce coté tout est bon. Il faut regarder du coté de la transmission des données qui peut être perturbée par plusieurs facteurs :

  • Une mauvaise alimentation électrique. Les modules nRF24L01 doivent être alimentés en 3,3V. La qualité du régulateur intégré aux clones d’Arduino Micro peut laisser à désirer. Non seulement, l’alimentation est instable mais en plus elle peut être source de perturbations. Dans ce cas, optez pour un adaptateur. Allez au paragraphe “Utiliser un adaptateur avec alimentation régulée”.
  • La tension d’alimentation est trop basse. Cela arrive souvent pour les projets sur batterie. Augmenter le nombre de piles ou utilisez une batterie LiPo plus puissante. “Utiliser un adaptateur avec alimentation régulée” et obligatoire dans ce cas.
  • Une antenne de mauvaise qualité. Les antennes 2dBi peuvent donner des résultats décevant. Allez au paragraphe “Quelle antenne choisir”
  • La librairie MySensors dans sa version 2 est capable d’attribuer un identifiant lorsqu’un nouveau noeud se présente. Dans la pratique ce mécanisme pose encore des problèmes. Pour le moment, le mieux est de continuer à attribuer ses propres identifiants. Allez au paragraphe “Problèmes de connexion après la mise à jour d’un noeud”.

Quel module nRF24L01 choisir ?

antenne nrf24l01 sma 15dbi

Le choix du module va dépendre de plusieurs critères dont voici les principaux:

  • Portée souhaitée :
    • En intérieur, quelques dizaines de mètres
    • Mixte
    • En extérieur. Le récepteur (la gateway) sera à l’intérieur
  • Configuration : dans une habitation, en extérieur, mixte
    • Mur : épaisseur, constitution (le béton armé n’aide pas vraiment) , nombre
    • Terrain plat ou relief
    • Végétation, grillage
    • Perturbation électromagnétiques : transformateur, pompes…
  •  L’application
    • Relevé de données ou commande d’actionneur simple (relai…). Un faible débit de données sera suffisant
    • Acquisition de données. Peu de données mais un fréquence élevée.

Quelque soit l’application, le mieux est d’installer une antenne haute performance (au moins 6dBi) sur la gateway pour garantir une réception optimale des données. Equipée d’un connecteur SMA, elle viendra remplacer l’antenne 2dBi qui équipe généralement les modules asiatiques bon marché.

nRF24L01, avec antenne gravée sur le PCB

Projet en intérieur ou courte distance (100m en champ libre).

nRF24L01+PA+LNA, avec antenne externe 2dBi

Ce module dispose d’un connecteur SMA permettant d’utiliser une antenne externe. En général, les modules sont livrés avec une antenne 2dBi permettant d’atteindre 1000m en champ libre (vraiment libre !). Le moindre végétal diminue fortement le signal. Si l’environnement est très difficile, il faudra songer à acheter une antenne 6dBi ou 15 dBi.

 

Utiliser un adaptateur avec alimentation régulée

adaptateur cablage nRF24L01Quelque soit le module radio nRF24L01 employé (standard ou PA+LNA, longue distance), il est préférable d’utiliser un adaptateur. En effet, ces modules intègre un régulateur (abaisseur) de tension qui permet d’alimenter le module radio en 3V3 de manière stable. Le régulateur d’alimentation est de meilleure qualité que ceux qui équipent les Arduino (ou Arduino Micro). Si l’alimentation est instable ou créatrice de perturbations, la réception ou l’émission des paquets de données peut être fortement perturbée.

nrf24l01 adpater plate

Quelle antenne choisir ?

Difficile de dire si tel ou tel module radio (en provenance d’Asie) va fonctionner. On ne sait pas très bien par qui ils sont fabriqués. Les modules standards nRF24L01 sans connecteur externe fonctionnent très bien en général. Ce sont plutôt les modules nRF24L01+PA+LNA (longue distance) qui peuvent poser problème, ou du moins le plus souvent l’antenne qui ne donne pas entière satisfaction. Dans ce cas vous pouvez la remplacer par une antenne de puissance supérieure. On obtient déjà d’excellents résultats (en intérieur, extérieur, mixte) avec une antenne 6dBi.

2-3 dBi, livrée avec le module 6 dBi, 75Ω, 28cm d’antenne, 1.5m de câble 15 dBi
Résultats incertains Conseillé Pas encore testé
antenne nrf24l01 sma 2dbi antenne nrf24l01 sma 15dbi antenne nrf24l01 sma 15dbi

Antenne 6dBi de remplacement

Antenne 15dBi de remplacement

Problèmes de connexion après la mise à jour d’un noeud

Des problèmes de connexion peuvent survenir après une mise à jour du code Arduino. Voici quelques piste pour les résoudre :

  • Attribuer un identifiant à chaque noeud. Théoriquement la version 2 intègre un système d’attribution automatique d’identifiant mais dans de nombreux cas, l’attribution est très longue ou ne fonctionne pas. Pour le moment, je vous conseil donc d’attribuer à chaque noeud un identifiant en ajoutant cette ligne au début du code (avant le setup)
#define MY_NODE_ID xx
  •  Si le problème persiste, effacez l’EEPROM dans laquelle MySensors stocke des variables interne. Le programme se trouve dans les exemples
  • Changez d’antenne. La qualité des antennes des modules bon marché semble très variable. Remplacer l’antenne peut résoudre le problème.

Autres questions

Peut-on mélanger des antennes courtes et longue distances ?

OUI, ça fonctionne très bien. Utilisez plutôt une antenne externe (d’au moins 6 dBi) pour la gateway.

Fonctionnement sur batterie, quelle alimentation choisir ?

Tout dépend de l’Arduino utilisé. S’il fonctionne à partir de 3.3V, vous pouvez utilisez 2 ou 3 piles AA (ou AAA). Dans ce cas utilisez impérativement un adaptateur pour ne pas dépasser 3.3V et obtenir un alimentation stabilisée. Si l’alimentation est trop faible, vous aurez des coupures de transmission ou le message !TSM:FAILURE tant redouté ! Dans ce cas optez pour une batterie LiPo plus puissante par exemple.

 

Si vous avez d’autres astuces, les commentaires sont là pour ça.

Print Friendly, PDF & Email

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Comparateur de prix

Bons plans

Les offres suivantes se terminent bientôt. Utilisez le coupon indiqué pour profiter du prix promo

Domotique et objets connectés à faire soi-même