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.
Réponses:
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
Serial
bibliothè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é.
la source
"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.
la source
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: -
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.
la source
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.
la source
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.
la source
Le RFM12B me vient à l'esprit.
http://www.hoperf.com/rf/fsk_module/RFM12B.htm
Certaines fonctionnalités:
L'interface de communication SPI devrait être assez à configurer avec Arduino.
Le modèle RFM12B-S2 se vend aujourd'hui à moins de 7 $.
la source