2015-12-14 4 views
1

J'essaye d'obtenir un Xbee pour parler à un autre. Je comprends que je peux utiliser putc pour diffuser à tous les Xbees sur un réseau, mais je veux en cibler un spécifiquement. Je sais que je dois utiliser l'adresse matérielle sur le XBee pour le faire et en utilisant quelque chose appelé le mode AT Commands mais je ne pense pas le comprendre. Par exemple, j'ai vu que pour passer en mode Commandes AT, je dois envoyer '+++', mais je ne comprends pas quoi faire. J'ai essayé ceci:Ciblage d'un Xbee en utilisant le mode Commandes AT

xbee.printf('+++'); 

mais ne savez pas où chercher un certain type de message en réponse.

Je ne comprends pas ce mode et n'arrive pas à trouver quoi que ce soit qui me donne un exemple pour ma situation ou une situation pertinente. J'utilise un Xbee normal sur un FRDM-K64F.

Répondre

1

L'opération s'est terminée.

Pour ce faire, vous devez d'abord faire:

xbee.printf("xxx"); 

Cela vous met en mode commande AT et vous pouvez ensuite exécuter des commandes AT. Vous devez attendre au moins 1 seconde avant et après la mise en AT mode de commande pour que cela fonctionne:

wait(1) 

Pour envoyer à un Xbee spécifique, vous avez besoin de son adresse de 16 bits et cela peut être trouvé à partir du dessous du Xbee (bien qu'il y ait une commande AT pour l'obtenir). Les 8 premiers bits sont l'adresse haute du Xbee (c'est la même chose pour tous les Xbees) et la seconde est son adresse basse et vous devez les définir en utilisant les commandes AT avant d'envoyer le Xbee spécifique. Pour définir ceux-ci vous devez effectuer les opérations suivantes:

xbee.printf("atdh 0013A200\n\r"); 
xbee.printf("atdl 12345678\n\r"); 

Vous devez faire la partie \n\r car cela simule un bouton Enter presse qui est nécessaire pour exécuter réellement la commande.

La commande atdh définit l'adresse haute et la commande atdl définit l'adresse faible. Une fois cela fait, votre envoi Xbee sera configuré pour envoyer à un Xbee spécifique et ne sera pas diffusé à tous sur le réseau. Donc quand vous faites maintenant:

xbee.putc('Y'); 

il ira à l'adresse Xbee que vous avez défini. Il se peut que vous deviez attendre 10 secondes après avoir exécuté ces commandes car je ne pense pas que les E/S fonctionnent en mode AT Command (je n'ai pas encore trouvé comment quitter le mode AT Command mais je le mettrais à jour quand je le ferais) .

+1

Si vous voulez résoudre tous ces problèmes, vous devriez envisager d'utiliser le XBee en mode API et de cadrer vos données (en ajoutant des en-têtes et des sommes de contrôle). Il y a une bibliothèque Open Source pour les hôtes pour communiquer avec les modules XBee en mode API, et je l'ai fait fonctionner sur l'un des forums Freedom avec mbed. Vous pourriez vouloir le vérifier: https://github.com/tomlogic/xbee_ansic_library – tomlogic

+1

BTW, 'ATCN' devrait quitter le mode de commande. – tomlogic

+0

Merci. Je vais jeter un coup d'oeil à ça! – Haych