Meilleur choix pour les communications sans fil à faible puissance et à courte portée


9

Je travaille sur un projet qui repose sur la communication sans fil, et je recherche la meilleure alternative. Ce sont les exigences de conception:

  • Est facile à interfacer avec Arduino
  • Fonctionne sur une petite portée (5-6 mètres au maximum)
  • Consomme peu d'énergie - le moins possible
  • Les appareils ne doivent pas interférer les uns avec les autres
  • N'a pas besoin d'être en temps réel, le retard peut être de l'ordre de centaines de millisecondes
  • En général, les appareils ne sont pas visibles les uns des autres (ce qui signifie que les solutions IR et similaires ne fonctionneront pas)

Le scénario est le suivant:

Environ 10 appareils dans la même pièce, communiquant entre eux, s'envoyant de courts messages (30 caractères au maximum) de temps en temps, pendant quelques heures (sans changer les piles).

Le meilleur que j'ai pu trouver est le Bluetooth (BLE, en particulier), principalement parce qu'il y a quelques modules Arduino + Bluetooth prêts à l'emploi et le prometteur label "Low Energy" (au plus la moitié de la consommation d'énergie du Bluetooth normal), mais je adore obtenir un avis de personnes ayant plus d'expérience dans ce domaine.


2
Je vote pour Bluetooth.
nidhin

Donnez-nous quelques informations sur ce que vous avez décidé de ne pas utiliser, et votre justification.
Jason_L_Bens

5 à 6 mètres au maximum - le bluetooth peut fonctionner plus loin - est-ce que 6m ne doit pas dépasser la limite? Très peu de pouvoir - que diriez-vous de nommer et de faire honte à certains chiffres ici. Ne doit pas interférer les uns avec les autres - qu'est-ce que cela signifie précisément?
Andy aka

@Andyaka: Non, ce que je veux dire, c'est que les appareils seront distants de 6 mètres au maximum, donc il n'est pas nécessaire de supporter de plus grandes distances. Quant à "très peu de puissance", je prévois de faire fonctionner chaque appareil (Arduino + LCD + module sans fil) sur une ou deux piles AA au maximum, et ces appareils devraient pouvoir communiquer pendant au moins une heure sans changer les piles.
Giulio Muscarello

1
Cela ressemble à un piconet Bluetooth pour moi.
Ignacio Vazquez-Abrams

Réponses:


3

Jetez un coup d' oeil la XBee ligne de tranceivers. Il existe différents types en fonction de la plage de transmission et de la puissance nominale souhaitée.

Ces appareils s'interfacent également avec des projets Arduino de manière presque triviale. La Serialbibliothèque utilise le matériel UART de l'AVR qui est directement compatible avec la broche Rx du XBee. Notez également qu'aucun changement de niveau n'est nécessaire car la broche XBee Rx / Tx fonctionne avec 5V!

Notez cependant que le XBee doit être alimenté en 3,3 V, de sorte qu'un simple régulateur de tension LDO de 3,3 V peut être utilisé.


2

"Le meilleur" est difficile à définir, mais j'examinerais un émetteur-récepteur IEEE 802.15.4.

J'ai utilisé un MRF24J40MA pour un projet ( https://github.com/briksoftware/gradusnik ). Vous pouvez essayer de voir s'il y a du code que vous pouvez utiliser ici. Le projet est pour PIC, mais beaucoup de choses sont en fait indépendantes de la plateforme (en particulier les autres projets dont il dépend).

Le module consomme environ 20mA en rx / tx, ce qui n'est pas beaucoup. Cependant, pour obtenir une batterie longue durée, vous devez mettre le module en veille la plupart du temps. Vous pouvez utiliser un réseau activé par balise pour cela, avec un appareil agissant comme coordinateur. Le module consomme quelques µA en mode veille (consultez la fiche technique pour les nombres exacts)

Le seul problème d'interfaçage avec un Arduino est que vous avez besoin d'un décalage de niveau 5-> 3.3 (si Arduino utilise toujours 5v).

Un autre émetteur-récepteur populaire pour le protocole IEEE 802.15.4 est le module XBee, mais il est beaucoup plus cher.


2

Je ne le vois pas comme un problème sans fil mais plutôt comme un problème de protocole.

Si la conservation de la batterie est le nom du jeu et si un appareil peut, à travers une programmation appropriée, adopter le rôle de "maître" temporaire, alors chaque autre appareil peut se voir attribuer un intervalle de temps. Une fois l'allocation effectuée, le maître temporaire peut redevenir un pair, mais l'important est qu'un cadre de créneaux horaires a été créé et tous les pairs auront adhéré à ce cadre.

Qu'est-ce que cela fait? Avoir un intervalle de temps signifie que vous pouvez éteindre la radio pendant des centaines de millisecondes et vous réveiller pour voir s'il y a une transmission en cours destinée à être reçue. Lorsqu'un pair se réveille, il doit attendre de voir si l'un des 8 autres pairs lui envoie un message. Le timing est critique mais si vous voulez une longue durée de vie de la batterie, concentrez-vous sur le protocole. Cette réponse n'est qu'une bouffée d'idée. L'intervalle de temps de réveil sera subdivisé en 8 autres intervalles sur lesquels chacun des 8 autres homologues est alloué pour transmettre et, si l'un transmet, les autres peuvent écouter en premier pour vérifier s'ils peuvent transmettre. Quelque chose comme ça: -

entrez la description de l'image ici

Le créneau "suivant" permet à de nouveaux pairs de rejoindre le groupe.

Les émetteurs-récepteurs de faible puissance sont monnaie courante, donc je ne vais pas examiner cela.


2

Essayez les modules txrx 433 mhz bon marché. ils sont utiles et peuvent être facilement interfacés avec Arduino. Je les utilise pour mes projets personnels de robotique de loisir.


2

Juste curieux de savoir pourquoi le module émetteur-récepteur sans fil NRF24L01 2,4 GHz n'a pas été mentionné? Il s'agit d'une unité de faible puissance, peut être commutée en mode veille pour une consommation encore plus faible. Il fonctionne à partir de 3,3 V, peut donc utiliser soit un Arduino de faible puissance ou un séparateur, et le meilleur de tous est assez bon marché?

Voici la page du produit nRF24L01 + avec un tutoriel nRF24L01 qui contient des informations sur l'interfaçage d'un à un Arduino avec un exemple de code.


0

Le RFM12B me vient à l'esprit.

http://www.hoperf.com/rf/fsk_module/RFM12B.htm

Certaines fonctionnalités:

  • Interface compatible SPI
  • Débit de données élevé (jusqu'à 115,2 kbps en mode numérique)
  • Alimentation 2.2V-3.8V
  • Réglage automatique de l'antenne
  • FIFO de données RX 16 bits
  • Écart de fréquence TX programmable (de 15 à 240 kHz)
  • Bande passante du récepteur programmable (de 67 à 400 kHz)
  • Indicateur de puissance du signal analogique et numérique
  • Horloge et sortie de signal de réinitialisation pour une utilisation MCU externe

L'interface de communication SPI devrait être assez à configurer avec Arduino.

Le modèle RFM12B-S2 se vend aujourd'hui à moins de 7 $.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.