- Maskinvarekrav
- Konfigurere XBee-moduler ved hjelp av XCTU
- Kretsdiagram for mottakerdel
- Sett opp Raspberry Pi for seriell kommunikasjon
- Programmering Raspberry Pi for XBee-kommunikasjon
- Testing av trådløs XBee-kommunikasjon ved hjelp av Raspberry Pi
I forrige opplæring grensesnittet vi XBee-modulen med Arduino Uno og fikk dem til å kommunisere trådløst ved hjelp av XBee-modulen. Nå vil vi grensesnitt XBee-modulen med Raspberry Pi, som vil fungere som en mottaker og få den til å kommunisere trådløst med en annen XBee-modul (XBee explorer-kort) som er serielt koblet til den bærbare datamaskinen.
Maskinvarekrav
- 1 x Raspberry Pi med Raspbian installert i den
- 2 x XBee Pro S2C-moduler (hvilken som helst annen modell kan brukes)
- 1 x XBee Explorer Board (valgfritt)
- 1 x Xbee Breakout Board (valgfritt)
- USB-kabler
- LED-lys
Det antas at Raspberry Pi allerede har blinket med et operativsystem. Hvis ikke, følg veiledningen Komme i gang med Raspberry Pi før du fortsetter. Her bruker vi Rasbian Jessie installert Raspberry Pi 3.
Her brukes ekstern skjerm med HDMI-kabel som skjerm for å koble til Raspberry Pi. Hvis du ikke har skjerm, kan du bruke SSH-klient (Putty) eller VNC-server for å koble til Raspberry pi ved hjelp av bærbar PC eller datamaskin. Lær mer om hvordan du konfigurerer Raspberry Pi hodeløst her.
Konfigurere XBee-moduler ved hjelp av XCTU
Som vi har lært i forrige opplæring av ZigBee Introduction, at XBee-modulen kan fungere som en koordinator, ruter eller en slutt-enhet, men den må konfigureres til å fungere i ønsket modus. Så før vi bruker XBee-modulene med Raspberry Pi, må vi konfigurere disse modulene ved hjelp av XCTU-programvare.
For å koble XBee-modulen til den bærbare datamaskinen, brukes en USB til seriell omformer eller et spesielt designet utforskerkort. Bare koble XBee-modulen til Explorer-kortet og koble den til den bærbare datamaskinen ved hjelp av USB-kabel.
Hvis du ikke har noen omformer eller utforskerkort, kan et Arduino-kort brukes som USB til seriell enhet som enkelt kan kommunisere med XBee og bærbar PC. Bare last opp tom skisse i Arduino-tavle, og nå kan den oppføre seg som en USB til seriell omformer.
Konfigurere XBee-moduler:
Her i denne opplæringen brukes et Explorer-kort for å konfigurere XBee-modulene.
Last ned XCTU-programvaren fra denne lenken og installer den. Etter at du har lastet ned og installert XCTU-programvaren, åpner du den og kontrollerer at XBee-modulen er riktig tilkoblet. Sjekk COM-porten til Arduino-kortet i enhetsbehandling.
1. Klikk nå på søkeknappen. Dette viser deg alle RF-enhetene som er koblet til den bærbare datamaskinen. I vårt tilfelle vil den bare vise en XBee-modul.
2. Velg Serial port på Explorer-kortet / Arduino-kortet, og klikk på Neste.
3. I neste vindu angir du parametrene for USB-porten som vist nedenfor og klikker på Fullfør.
4. Velg enheten du har funnet, og klikk på Legg til valgt enhet . Denne prosessen vil legge til XBee-modulen din på XCTU-dashbordet.
5. Nå kan du konfigurere XBee-modulen i dette vinduet. Du kan bruke enten AT-kommandoer eller sette dataene manuelt. Som du kan se, er det R som vises på venstre panel, noe som betyr at XBee er i rutermodus. Vi må gjøre det til koordinator for senderdelen.
Først oppdaterer du fastvaren ved å klikke på Oppdater fastvare.
6. Velg produktfamilien til enheten din som er tilgjengelig på baksiden av XBee-modulen. Velg funksjonssett og firmwareversjon som uthevet nedenfor, og klikk på Oppdater.
7. Nå må du oppgi ID-, MY- og DL-data for å få forbindelse med andre XBee. ID forblir den samme for begge modulene. Bare MY- og DL-datautveksling dvs. MY for mottakeren XBee blir DL for senderen XBee (koordinator) og DL for mottakeren XBee blir MY for senderen XBee. Lag CE som koordinator, og trykk deretter på Skriv- knappen. Som vist under.
ATDL |
PÅ MIN |
||
XBee 1-koordinator |
|||
XBee 2-enhet |
8. Etter å ha skrevet ovennevnte data til senderdelen, kobler du den fra utforskerkortet og plugger inn den andre XBee-modulen i den. Gjenta den samme prosessen som ovenfor, bare endringene er DL, MY og CE. Da vi vil lage den andre XBee som slutt-enhet, i CE-rullegardinmenyen, velg slutt-enheten og trykk på Skriv-knappen.
9. Nå er XBee-modulene våre klare til å grensesnitt med Raspberry Pi. Vi kobler senderen XBee til den bærbare datamaskinen og mottakeren XBee med Raspberry Pi. Gi deretter kommandoer til mottakerdelen ved hjelp av bærbar datamaskin. laptop.
Kretsdiagram for mottakerdel
Tilkoblinger for grensesnitt mellom ZigBee-modulen og Raspberry PI er vist i kretsskjemaet.
Tilkoblinger:
- Tx (pin2) av XBee -> Tx av pin Raspberry Pi
- Rx (pin3) av XBee -> Rx av pin Raspberry Pi
- GND (pin10) av XBee -> GND av pin Raspberry Pi
- Vcc (Pin1) av XBee -> 3.3v av pin Raspberry Pi
- Led er koblet til GPIO 23
Sett opp Raspberry Pi for seriell kommunikasjon
Nå vil vi sette opp Raspberry Pi for seriell kommunikasjon. Som standard er maskinvarens serielle port deaktivert. Så vi må aktivere det før du starter tilkoblingen.
1. Kjør kommandoen raspi-config i terminalen.
2. Gå til alternativ 5 Grensesnittalternativer og trykk enter. Nå velger P6 Serial alternativet og aktivere den og deretter lagre.
Gå ut av terminalen, og du er klar til å opprette forbindelse mellom Raspberry Pi og XBee. GPIO14 og 15 vil fungere som henholdsvis Tx og Rx, og disse er tilgjengelige på / dev / ttyS0 port of bringebær pi.
Nå skal vi skrive et python-skript til PÅ LED-en når vi mottar 'a' fra sendersiden XBee.
Programmering Raspberry Pi for XBee-kommunikasjon
Komplett pythonprogram for grensesnitt XBee med Raspberry Pi er gitt på slutten.
Først må vi importere tids-, serie- og RPi.GPIO-bibliotekene ved hjelp av importfunksjonen.
importtid import seriell import RPi.GPIO som GPIO…
Skriv nå egenskapene til seriell tilkobling, definer port, baudrate og pariteter som nedenfor.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, paritet = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 1 )
Skriv alle sende- og mottaks elementer i mens loop.
mens 1:
Du kan bruke ser.write- funksjonen til å sende meldingene til sendersiden. Fjern merking av linjene nedenfor for å sende tellinger.
# ser.write (str.encode ('Skriv teller:% d \ n'% (teller))) # time.sleep (1) # teller + = 1
For å motta meldingene må vi bruke ser.readline () -funksjonen. Lagre den innkommende meldingen i en variabel og sjekk tilstanden. Hvis innkommende melding er 'a', må du slå på LED-lampen i 3 sekunder og deretter slå av LED-lampen.
x = ser.leselinje (). strip (( print) (x) hvis x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Komplett Python-kode med en demonstrasjonsvideo er gitt på slutten av opplæringen. Lim inn koden i hvilken som helst tekstredigerer på Pi og lagre den. Kjør skriptet i terminalen ved hjelp av sudo python script_name.py ELLER du kan bruke Python IDE og Shell for å utføre skriptet.
Testing av trådløs XBee-kommunikasjon ved hjelp av Raspberry Pi
Nå er vi klar for å teste XBee-senderen og mottakeren. For å gi kommandoen til senderdelen, vil vi bruke XCTUs konsollterminal. Klikk på konsollikonet nær innstillingsalternativet. Klikk deretter på Åpne-knappen for å koble XBee til den bærbare datamaskinen.
Skriv inn 'a' i konsolloggen. Du vil se at LED-lampen vil slå PÅ i 3 sekunder og deretter slå den AV.
På denne måten kan du også koble senderen XBee til Arduino-kortet som beskrevet i forrige opplæring, og få Raspberry Pi og Arduino til å kommunisere med hverandre.