#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.

Inscrivez-vous à la newsletter hebdomadaire

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

Promos à ne pas louper

Tags :

18
Poster un Commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  S’abonner  
Notifier de
remis

Bonjour,
Apres quelques pratiques de mysensor V2:
_si pas utilisation en mode PA_low , ( basse puissance) alors : ajouter un condensateur de filtrage de 100µF env sur les broches d’alim du module.
_Dans tous les cas alimenter le module en 3V3
_comme indiqué fixer manuellement lent l’ID : plus facile à debegguer
_utiilser un canal de transmission autre que celui utilisé par defaut, 76 = 2476 Mhz judicieusement choisi pour ne pas tomber sur les canaux wifi des equipements à proximité . par exemple la boxe internet a laquelle on est reliée en ETH.

Merci beaucoup Remis.

Philippe

La suite…..
Ca va fonctionner de suite après relance du RPi3 ?
J’ai des modules relais, un module température (votre sketch !) et un module de mesure de l’intensité lumineuse. Tout fonctionne bien, mais je souhaiterai améliorer la portée du signal !
Merci pour votre aide !
Philippe

Oui. Il NE FAUT PAS LE FAIRE, mais ça fonctionne même en échangeant l’antenne à chaud. Pour améliorer la portée du signal, j’ai essayer de consigner le maximum de mon expérience dans cet article https://www.projetsdiy.fr/mysensors-v2-materiel-configuration-augmenter-portee-nrf24l01/. Je vous conseille d’investir dans une antenne de meilleure qualité que celle livrée avec les modules nRF24L01+PA+LNA. J’ai perdu beaucoup de temps pour obtenir une transmission fiable. Maintenant j’équipe tous mes modules avec cette antenne http://bit.ly/2lE2Mex. A très bientôt

Philippe

Bonsoir, merci pour votre réponse super rapide ! Je n’aime pas également le faire à chaud…Je préfère faire le remplacement des modules une fois le RPi éteint. Je m’inspire effectivement de votre article. J’avais repéré cette antenne, mais pour l’instant elle n’est pas en stock ! Je vais donc tenter avec l’antenne fournie avec le module pour l’instant, a moins que vous me disiez que c’est inutile, car j’aurai trop de problème d’émission/réception….!! Pour répondre à votre message de ci-dessous, non je n’ai pas d’adaptateur, actuellement le + de mon module nRF24L01 est directement connecté sur le pin 3.3V de… Lire la suite »

Bonsoir Philippe. De rien, dès que c’est possible, j’essai de répondre le plus vite possible pour que vous puissiez avancer sur vos projets. Pour la puissance je n’ai pas rencontré de problème particulier même avec l’antenne indiquée. J’utilise cet Arduino nano (http://bit.ly/2khf6UE) pour mes montages sans aucun problème. Je n’ai pas rencontré de problème avec la puissance. J’ai vraiment rencontré des difficultés sur ces points en particulier : – La qualité de l’antenne. J’ai vraiment perdu du temps sur ce point. Même à – En extérieur, il faut être en champ libre. Le moindre arbre, mur… fait chuter rapidement la… Lire la suite »

Philippe

Merci, c’est sympa !
Je vais donc faire des tests et je ne manquerai pas de partager les résultats ! A bientôt,
Philippe

gandolfi

bonjour,

tu parles de cette antenne http://disq.us/url?url=http%3A%2F%2Fbit.ly%2F2lE2Mex%3AgZOn-bPoVbP1wXt1dOCSnP5AA74&cuid=4098367

Mais je ne comprend pas car elle est en 433 MHZ et le smodules NRF24l01 sont en 2.4 ghz non ?

Bonjour Gandolfi. Oui tu as parfaitement raison. La désignation commerciale stipule bien 433Mhz mais ça reste une antenne. Je l’utilise sur ma gateway et mes sondes depuis plusieurs mois sans aucun problème. Il faudrait regarder de plus près pour voir s’il y a des matériaux, une géométrie… à respecter en fonction de la fréquence utilisée. Je ne suis pas spécialiste dans le domaine. Si qq’un s’y connait, je peux faire un petit billet sur le sujet

gandolfi

Merci. je voulais être sur d’avoir bien compris. je vais la commander pour tester.

dx

une antenne ne reste pas une antenne ! je n’ai pas le moindre doute sur tes expériences ,et tes résultats que l’on appreci tous que tu partages. Mais la longueur d’antenne dépend de la longueur d’onde ,qui elle dépend de la fréquence. Il existe ensuite des coeff reducteur k , et des démultiplicateurs ,souvent on utilise des antennes dite quart d’onde (1/4 de la longueur d’ondes,et application d’un coeff pr les puriste). Il semblerait que cette antenne soit en réalité une antenne pr du 2.4Ghz et non du 433Mhz (meme si le vendeur qui n’y connais rien , ou meme… Lire la suite »

Philippe

bonsoir!
Petite question: ma gateway (Arduino nano en USB sur RPi3) a été montée avec un nRF24L01 : peut on simplement remplacer ce module par un module nRF24L01+PA+LNA (antenne 2 dBi pour l’instant) ?
Pas de configuration spéciale à faire ? Ca va

Bonjour Philippe. Oui c’est possible. Si vous avez acheté un adaptateur, il suffit de faire l’échange. C’est complètement transparent.

gandolfi

Bonjour,
Quel type d’adaptateur faut il acheter si l’on branche un esp8266 ou un module radio sur un lipo ?
On peut esperer quelle durée pour une charge ?
Merci

Bonjour Gandolfi. Pour brancher une batterie LiPo sur un ESP8266, tout va dépendre de la tension de celle-ci et du module. Partons du cas le plus courant, une batterie LiPo 3.7V. On directement alimenter l’ESP mais le mieux est d’utiliser un module qui permet de recharger la batterie (via un cable usb) en même temps que l’ESP fonctionne, par exemple celui-ci http://s.click.aliexpress.com/e/M3bY7Q7. Pour la durée, il est impossible de répondre précisément à cette question. En effet, cela va dépendre de beaucoup de paramètres : la puissance de la batterie, la fréquence d’envoi des données, la mise en veille (ou pas)… Lire la suite »

gandolfi

Merci pour ta réponse.
– Tu branches ce module en plus sur l’ESP8266 ? Il fait régulateur de tension ?
– Peut on brancher un régulateur de tension minimaliste avec une prise femelle lipo pour rendre le montage plus petit ? Ce n’est pas trop gênant de ne pas avoir le chargeur surtout si la lipo n’a besoin d’etre chargée qu’une fois par mois par exemple.

Bonjour Gandolfi. Oui c’est exactement ça. Ce module s’occupe de charger la batterie LiPo ‘proprement’ et alimenter une carte ESP. En l’occurence c’est un module adapté à la Wemos D1 Mini. Il vient donc s’empiler sur les autres modules. C’est assez compact. Tu as raison, on peut aussi utiliser un simple régulateur de tension. J’aime un peu moins à cause des risques (bien isoler les broches pour éviter les court-circuits, ça chauffe fort en fonction de la tension d’alimentation…). En tout cas, n’hésite pas à partager ton expérience avec nous. A très bientôt.

gandolfi

Merci. Ja vais regarder cela j’ai un wemos dans un carton. Pour l’instant grace à ton site je me fais la main sur ESP8266 version developpement board avec jeedom et easystep.

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