- Hardwarevereisten
- XBee-modules configureren met XCTU
- XBee-communicatie programmeren en testen met Arduino
In eerdere tutorials hebben we geleerd over het ZigBee-protocol en de architectuur ervan, en ook over draadloze communicatie tussen twee Xbee-modules. Nu zullen we in deze tutorial de XBee-module koppelen aan het Arduino Uno-bord. De XBee die is verbonden met het Arduino-bord zal fungeren als een ontvanger en zal draadloos communiceren met een andere XBee-module die serieel is verbonden met de laptop met behulp van een Explorer-bord. Laten we dus verder kijken naar Arduino draadloze communicatie met XBee.
Hardwarevereisten
- 1 x Arduino Uno
- 2 x XBee Pro S2C-modules (elk ander model kan worden gebruikt)
- 1 x Xbee Explorer-bord (optioneel)
- 1 x Xbee Breakout-bord (optioneel)
- USB-kabels
- Leds
XBee-modules configureren met XCTU
Zoals we in eerdere tutorials hebben geleerd dat de XBee-module kan fungeren als een coördinator, router of een eindapparaat, maar deze moet worden geconfigureerd om in de gewenste modus te werken. Dus voordat we de XBee-modules met Arduino gebruiken, moeten we deze modules configureren met XCTU-software.
Om de XBee-module met de laptop te verbinden, wordt een USB naar serieel converter of een speciaal ontworpen explorer board gebruikt. Sluit gewoon de XBee-module aan op het Explorer-bord en sluit hem met een USB-kabel aan op de laptop.
Als je geen converter of explorer board hebt, dan kan een Arduino board worden gebruikt als een USB naar serieel apparaat dat gemakkelijk kan communiceren met de XBee en laptop. Upload gewoon een lege schets in het Arduino-bord en nu kan het zich gedragen als een USB naar serieel converter.
Verbindingen voor het koppelen van de ZigBee-module met Arduino worden weergegeven in het schakelschema.
Verbindingen:
- Tx (pin2) van XBee -> Tx van Arduino-bord
- Rx (pin3) van Xbee -> Rx van Arduino-bord
- GND (pin10) van Xbee -> GND van Arduino-bord
- Vcc (Pin1) van Xbee -> 3.3v van Arduino-bord
Hier in deze tutorial wordt een Explorer-bord gebruikt om de XBee-modules te configureren.
Download de XCTU-software via deze link en installeer deze. Na het downloaden en installeren van de XCTU-software, opent u deze en controleert u of uw XBee-module correct is aangesloten. Controleer de COM-poort van het Arduino-bord in apparaatbeheer.
Stap 1: - Klik nu op de zoekknop. Dit toont u alle RF-apparaten die op uw laptop zijn aangesloten. In ons geval wordt er slechts één XBee-module weergegeven.
Stap 2: - Selecteer de seriële poort van het Explorer-bord / Arduino-bord en klik op Volgende.
Stap 3: - Stel in het volgende venster de USB-poortparameters in zoals hieronder weergegeven en klik op Voltooien.
Stap 4: - Selecteer het gevonden apparaat en klik op Geselecteerd apparaat toevoegen . Met dit proces wordt uw XBee-module toegevoegd aan het XCTU-dashboard.
Stap 5: - Nu kunt u uw XBee-module in dit venster configureren. Gebruik AT-opdrachten of plaats de gegevens handmatig. Zoals u kunt zien, wordt er R weergegeven op het linkerpaneel, wat betekent dat Xbee zich in de routermodus bevindt. We moeten het coördinator maken voor het zendergedeelte.
Werk eerst de firmware bij door op Update firmware te klikken.
Stap 6: - Kies de productfamilie van uw apparaat die beschikbaar is op de achterkant van de XBee-module. Selecteer functieset en firmwareversie zoals hieronder aangegeven en klik op Update.
Stap 7: - Nu moet u ID-, MY- en DL-gegevens opgeven om verbinding te maken met andere XBee. ID blijft hetzelfde voor beide modules. Alleen MY- en DL-gegevensuitwisseling, dwz MY voor de ontvanger XBee wordt DL van de zender XBee (coördinator) en DL voor de ontvanger XBee wordt MY van de zender XBee. Maak CE als coördinator en druk vervolgens op de knop Schrijven. Zoals hieronder getoond.
ATDL |
OP MIJN |
||
XBee 1 coördinator |
|||
XBee 2-eindapparaat |
Stap 8: - Na het schrijven van de bovenstaande gegevens naar het zendergedeelte, steekt u deze uit het verkenningsbord en steekt u deze in de tweede XBee-module. Herhaal hetzelfde proces als hierboven, alleen wijzigingen zijn de DL, MY en CE. Omdat we de tweede XBee als eindapparaat zullen maken, selecteert u in het vervolgkeuzemenu CE het eindapparaat en drukt u op de knop Schrijven.
Stap 9: - Nu zijn onze XBee-modules klaar om te communiceren met het Arduino-bord. We zullen de zender XBee verbinden met de laptop en ontvanger XBee met het Arduino-bord. Geef vervolgens met de laptop opdrachten aan het ontvangendeel.
Schakelschema voor ontvangerdeel:
Verbindingen:
- Tx (pin2) van XBee -> Rx van Arduino-bord
- Rx (pin3) van Xbee -> Tx van Arduino-bord
- GND (pin10) van Xbee -> GND van Arduino-bord
- Vcc (Pin1) van Xbee -> 3.3v van Arduino-bord
Als je het Arduino-bord gebruikt om de zender ZigBee met de laptop te verbinden, zijn de verbindingen hetzelfde als voor het programmeren van de ZigBee.
XBee-communicatie programmeren en testen met Arduino
Nu zullen we een code schrijven voor de ontvanger Arduino om de LED in te schakelen wanneer het ontvangendeel 'a' ontvangt, en de LED te laten knipperen wanneer deze 'b' ontvangt, voor andere karakters zal de LED UIT blijven.
Code is eenvoudig en gemakkelijk te begrijpen. We zullen de inkomende tekens gewoon controleren met de functie Serial.available () en dit teken opslaan in een variabele met Serial.read (); functie en match het met 'a' en 'b'. Als de overeenkomst correct is, voert u de taak uit die in de voorwaarde is gespecificeerd. De volledige code voor het ontvangerdeel wordt uiteindelijk gegeven. Upload de code in het ontvangerdeel Arduino. Verwijder de Tx- en Rx-draden van XBee voordat u uploadt.
Nu gaan we allemaal onze zender en ontvanger testen. Om het zendergedeelte een commando te geven, gebruiken we de console-terminal van XCTU. Klik op het consolepictogram naast de instellingenoptie. Klik vervolgens op de knop Openen om de XBee met de laptop te verbinden.
Voer 'a' in het consolelogboek in. U zult zien dat de LED 2 seconden AAN gaat en daarna 'b' invoert om de led 5 keer te laten knipperen.
Je kunt de zender XBee ook op het Arduino-bord aansluiten, verander gewoon de ontvangercode een klein beetje. In plaats van de functie Serial.read (), gebruik de functie Serial.println () om de tekens te verzenden.
Bekijk de onderstaande demonstratievideo.
Deze XBee-Arduino-opstelling kan worden gebruikt om vele handige draadloze toepassingen te maken, zoals domoticasystemen, chatruimte enz.