- Hardwarekrav
- Konfiguration af XBee-moduler ved hjælp af XCTU
- Kredsløbsdiagram for modtagerens del
- Opsæt Raspberry Pi til seriel kommunikation
- Programmering af Raspberry Pi til XBee-kommunikation
- Test af trådløs XBee-kommunikation ved hjælp af Raspberry Pi
I forrige vejledning interfacede vi XBee-modulet med Arduino Uno og fik dem til at kommunikere trådløst ved hjælp af XBee-modulet. Nu vil vi interface XBee-modul med Raspberry Pi, som fungerer som en modtager og får det til at kommunikere trådløst med et andet XBee-modul (XBee explorer-kort), der er serielt forbundet med den bærbare computer.
Hardwarekrav
- 1 x Raspberry Pi med Raspbian installeret i den
- 2 x XBee Pro S2C-moduler (enhver anden model kan bruges)
- 1 x XBee explorer-kort (valgfrit)
- 1 x Xbee Breakout board (valgfrit)
- USB-kabler
- LED'er
Det antages, at din Raspberry Pi allerede har blinket med et operativsystem. Hvis ikke, følg vejledningen Kom godt i gang med Raspberry Pi, inden du fortsætter. Her bruger vi Rasbian Jessie installeret Raspberry Pi 3.
Her bruges ekstern skærm ved hjælp af HDMI-kabel som skærm til at oprette forbindelse til Raspberry Pi. Hvis du ikke har skærm, kan du bruge SSH-klient (Putty) eller VNC-server til at oprette forbindelse til Raspberry pi ved hjælp af bærbar computer eller computer. Lær mere om opsætning af Raspberry Pi uden hoved her.
Konfiguration af XBee-moduler ved hjælp af XCTU
Som vi har lært i tidligere tutorial af ZigBee Introduktion, at XBee-modulet kan fungere som en koordinator, router eller en slutenhed, men det skal konfigureres til at fungere i ønsket tilstand. Så før vi bruger XBee-modulerne med Raspberry Pi, er vi nødt til at konfigurere disse moduler ved hjælp af XCTU-software.
For at forbinde XBee-modulet med den bærbare computer bruges en USB til seriel konverter eller et specielt designet explorer-kort. Tilslut bare XBee-modulet til Explorer-kortet og tilslut det til den bærbare computer ved hjælp af USB-kabel.
Hvis du ikke har nogen konverter eller explorer-kort, kan et Arduino-kort bruges som en USB til seriel enhed, der let kan kommunikere med XBee og laptop. Upload bare tom skitse på Arduino-kort, og nu kan den opføre sig som en USB til seriel konverter.
Konfiguration af XBee-moduler:
Her i denne vejledning bruges et Explorer-kort til at konfigurere XBee-modulerne.
Download XCTU-softwaren fra dette link og installer den. Efter download og installation af XCTU-softwaren skal du åbne den og sikre dig, at dit XBee-modul er tilsluttet korrekt. Tjek COM-porten på Arduino-kortet i enhedsadministrator.
1. Klik nu på søgeknappen. Dette viser dig alle RF-enheder, der er forbundet med din bærbare computer. I vores tilfælde viser det kun et XBee-modul.
2. Vælg seriel port på Explorer-kortet / Arduino-kortet, og klik på Næste.
3. I det næste vindue skal du indstille parametrene til USB-porten som vist nedenfor og klikke på Udfør.
4. Vælg den opdagede enhed, og klik på Tilføj valgt enhed . Denne proces tilføjer dit XBee-modul til XCTU-dashboardet.
5. Nu kan du konfigurere dit XBee-modul i dette vindue. Du kan bruge enten AT-kommandoer eller placere dataene manuelt. Som du kan se, er der R på venstre panel, hvilket betyder, at XBee er i routertilstand. Vi er nødt til at gøre det til koordinator for senderdelen.
Opdater først firmwaren ved at klikke på firmwareopdateringen.
6. Vælg produktfamilien på din enhed, som er tilgængelig på bagsiden af dit XBee-modul. Vælg funktionssæt og firmwareversion som fremhævet nedenfor, og klik på Opdater.
7. Nu skal du give ID-, MY- og DL-data for at oprette forbindelse til andre XBee. ID forbliver det samme for begge moduler. Kun MY- og DL-dataudveksling, dvs. MY for modtageren XBee, bliver DL for senderen XBee (koordinator) og DL for modtageren XBee bliver MY for senderen XBee. Lav CE som koordinator og tryk derefter på knappen Skriv. Som vist nedenfor.
ATDL |
HOS MIN |
||
XBee 1-koordinator |
|||
XBee 2-enhed |
8. Efter at have skrevet ovenstående data til senderdelen, skal du slutte dem fra opdagelseskortet og tilslutte det andet XBee-modul i det. Gentag den samme proces som ovenfor, kun ændringer er DL, MY og CE. Da vi laver den anden XBee som slut-enhed, så vælg slut-enheden i CE-rullemenuen, og tryk på knappen Skriv.
9. Nu er vores XBee-moduler klar til interface med Raspberry Pi. Vi forbinder senderen XBee til den bærbare computer og modtageren XBee med Raspberry Pi. Giv derefter kommandoer til modtagerdelen ved hjælp af bærbar computer. bærbar.
Kredsløbsdiagram for modtagerens del
Forbindelser til interface ZigBee-modul med Raspberry PI er vist i kredsløbsdiagrammet.
Forbindelser:
- Tx (pin2) af XBee -> Tx af pin Raspberry Pi
- Rx (pin3) af XBee -> Rx af pin Raspberry Pi
- GND (pin10) af XBee -> GND af pin Raspberry Pi
- Vcc (Pin1) af XBee -> 3.3v af pin Raspberry Pi
- Led er tilsluttet GPIO 23
Opsæt Raspberry Pi til seriel kommunikation
Nu konfigurerer vi Raspberry Pi til seriel kommunikation. Som standard er hardwarens serielle port på Pi deaktiveret. Så vi er nødt til at aktivere det, før du starter forbindelsen.
1. I terminalen skal du køre kommandoen raspi-config .
2. Gå til valgmulighed 5 Grænseflademuligheder, og tryk på Enter. Nu skal du vælge P6 Seriel indstilling og aktivere den og derefter gemme.
Gå ud af terminalen, og du er klar til at oprette forbindelse mellem Raspberry Pi og XBee. GPIO14 og 15 fungerer henholdsvis Tx og Rx, og disse er tilgængelige på / dev / ttyS0 port af hindbær pi.
Nu vil vi skrive et python-script til ON på LED'en, når vi modtager 'a' fra sendersiden XBee.
Programmering af Raspberry Pi til XBee-kommunikation
Komplet python-program til interface XBee med Raspberry Pi er givet i slutningen.
Først skal vi importere tids-, seriel- og RPi.GPIO-bibliotekerne ved hjælp af importfunktionen.
importtid import seriel import RPi.GPIO som GPIO…
Skriv nu egenskaberne for seriel forbindelse, 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 modtagelseselementerne i mens sløjfen.
mens 1:
Du kan bruge ser.write- funktionen til at sende meddelelserne til sendersiden. Fjern kommentar til nedenstående linjer for at sende optællinger.
# ser.write (str.encode ('Skriv tæller:% d \ n'% (tæller))) # time.sleep (1) # tæller + = 1
For at modtage beskederne skal vi bruge ser.readline () -funktionen. Gem den indgående besked i en variabel, og kontroller tilstanden. Hvis den indgående besked er 'a', skal du tænde lysdioden i 3 sekunder og derefter slukke lysdioden.
x = ser.readline (). strip () print (x) hvis x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Komplet Python-kode med en demonstrationsvideo gives i slutningen af vejledningen. Indsæt koden i enhver teksteditor på Pi, og gem den. Kør scriptet i terminalen ved hjælp af sudo python script_name.py ELLER du kan bruge Python IDE og Shell til at udføre scriptet.
Test af trådløs XBee-kommunikation ved hjælp af Raspberry Pi
Nu er vi alle klar til at teste vores XBee-sender og modtager. For at give kommandoen til senderdelen bruger vi XCTUs konsolterminal. Klik på konsolikonet nær indstillingsmuligheden. Klik derefter på knappen Åbn for at forbinde XBee til den bærbare computer.
Indtast 'a' i konsolloggen. Du vil se, at lysdioden tændes i 3 sekunder og derefter slukkes.
På denne måde kan du også forbinde senderen XBee til Arduino-kortet som beskrevet i den foregående vejledning og få Raspberry Pi og Arduino til at kommunikere med hinanden.