- Hårdvarukrav
- Konfigurera XBee-moduler med XCTU
- Kretsschema för mottagardel
- Ställ in Raspberry Pi för seriell kommunikation
- Programmering av Raspberry Pi för XBee-kommunikation
- Testa den trådlösa XBee-kommunikationen med Raspberry Pi
I tidigare handledning kopplade vi XBee-modulen med Arduino Uno och fick dem att kommunicera trådlöst med hjälp av XBee-modulen. Nu kommer vi att ansluta XBee-modulen med Raspberry Pi som fungerar som en mottagare och får den att kommunicera trådlöst med en annan XBee-modul (XBee explorer-kort) som är seriellt ansluten till den bärbara datorn.
Hårdvarukrav
- 1 x Raspberry Pi med Raspbian installerad i den
- 2 x XBee Pro S2C-moduler (valfri annan modell kan användas)
- 1 x XBee Explorer Board (tillval)
- 1 x Xbee Breakout Board (tillval)
- USB-kablar
- Lysdioder
Det antas att din Raspberry Pi redan har blinkat med ett operativsystem. Om inte, följ guiden Komma igång med Raspberry Pi innan du fortsätter. Här använder vi Rasbian Jessie installerade Raspberry Pi 3.
Här används extern skärm med HDMI-kabel som skärm för att ansluta till Raspberry Pi. Om du inte har bildskärm kan du använda SSH-klient (Putty) eller VNC-server för att ansluta till Raspberry pi med en bärbar dator eller dator. Läs mer om hur du ställer in Raspberry Pi utan huvud här.
Konfigurera XBee-moduler med XCTU
Som vi har lärt oss i tidigare handledning av ZigBee Introduktion att XBee-modulen kan fungera som en koordinator, router eller en slutenhet men den måste konfigureras för att fungera i önskat läge. Så innan vi använder XBee-modulerna med Raspberry Pi måste vi konfigurera dessa moduler med XCTU-programvara.
För att ansluta XBee-modulen till den bärbara datorn används en USB-till-seriell omvandlare eller ett särskilt utformat explorer-kort. Anslut bara XBee-modulen till Explorer-kortet och anslut den till den bärbara datorn med USB-kabel.
Om du inte har någon omvandlare eller utforskarkort kan ett Arduino-kort användas som en USB till seriell enhet som enkelt kan kommunicera med XBee och laptop. Ladda bara upp en tom skiss på Arduino-kortet och nu kan den fungera som en USB till seriell omvandlare.
Konfigurera XBee-moduler:
Här i den här handledningen används ett Explorer-kort för att konfigurera XBee-modulerna.
Ladda ner XCTU-programvaran från den här länken och installera den. Efter nedladdning och installation av XCTU-programvaran, öppna den och se till att din XBee-modul är ordentligt ansluten. Kontrollera COM-porten på Arduino-kortet i enhetshanteraren.
1. Klicka nu på sökknappen. Detta visar alla RF-enheter som är anslutna till din bärbara dator. I vårt fall visar den bara en XBee-modul.
2. Välj serieporten på Explorer-kortet / Arduino-kortet och klicka på Nästa.
3. I nästa fönster ställer du in USB-portparametrarna enligt nedan och klickar på Slutför.
4. Välj den upptäckta enheten och klicka på Lägg till vald enhet . Denna process kommer att lägga till din XBee-modul till XCTU-instrumentpanelen.
5. Nu kan du konfigurera din XBee-modul i det här fönstret. Du kan använda antingen AT-kommandon eller placera data manuellt. Som du kan se visas R på den vänstra panelen vilket betyder att XBee är i router-läge. Vi måste göra det till samordnare för sändardelen.
Uppdatera först Firmware genom att klicka på Update firmware.
6. Välj produktfamiljen för din enhet som finns på baksidan av din XBee-modul. Välj funktionsuppsättning och firmwareversion som markeras nedan och klicka på Uppdatera.
7. Nu måste du ge ID-, MY- och DL-data för att ansluta till andra XBee. ID förblir detsamma för båda modulerna. Endast MY och DL datautbyte dvs MY för mottagaren XBee blir DL för sändaren XBee (koordinator) och DL för mottagaren XBee blir MY för sändaren XBee. Gör CE som koordinator och tryck sedan på knappen Skriv. Enligt nedanstående.
ATDL |
HOS MIN |
||
XBee 1-koordinator |
|||
XBee 2-slutenhet |
8. Efter att ha skrivit ovanstående data till sändardelen, koppla ut den från utforskarkortet och anslut den andra XBee-modulen i den. Upprepa samma process som ovan. Endast ändringarna är DL, MY och CE. Eftersom vi kommer att göra den andra XBee som slutenhet så i CE-rullgardinsmenyn, välj slutenheten och tryck på knappen Skriv.
9. Nu är våra XBee-moduler redo för gränssnitt med Raspberry Pi. Vi ansluter sändaren XBee till den bärbara datorn och mottagaren XBee med Raspberry Pi. Ge sedan kommandon till mottagardelen med en bärbar dator. bärbar dator.
Kretsschema för mottagardel
Anslutningar för gränssnitt mellan ZigBee-modulen och Raspberry PI visas i kretsschemat.
Anslutningar:
- 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,3 v av pin Raspberry Pi
- Led är ansluten till GPIO 23
Ställ in Raspberry Pi för seriell kommunikation
Nu kommer vi att ställa in Raspberry Pi för seriekommunikation. Som standard är Pi-maskinens seriella port inaktiverad. Så vi måste aktivera det innan du startar anslutningen.
1. I terminalen kör du kommandot raspi-config .
2. Gå till alternativ 5 Gränssnittsalternativ och tryck på Enter. Nu väljer P6 Serial alternativ och aktivera det och sedan spara.
Avsluta terminalen och du är redo att ansluta mellan Raspberry Pi och XBee. GPIO14 och 15 fungerar som Tx respektive Rx och dessa finns på / dev / ttyS0-porten på hallon pi.
Nu kommer vi att skriva ett pythonscript till ON-lampan när vi får 'a' från sändarsidan XBee.
Programmering av Raspberry Pi för XBee-kommunikation
Komplett pythonprogram för gränssnitt mellan XBee och Raspberry Pi ges i slutet.
Först måste vi importera tiden, seriella och RPi.GPIO bibliotek med hjälp av importfunktionen.
import tid import serie import RPi.GPIO som GPIO…
Skriv nu egenskaperna för seriell anslutning, definiera port, baudrate och pariteter enligt nedan.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, paritet = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesstorlek = serial.EIGHTBITS, timeout = 1 )
Skriv alla sändnings- och mottagningselement i medan slinga.
medan 1:
Du kan använda ser.write- funktionen för att skicka meddelandena till sändarsidan. Avmarkera nedanstående rader för att skicka räkningar.
# ser.write (str.encode ('Skriv räknare:% d \ n'% (räknare))) # time.sleep (1) #counter + = 1
För att ta emot meddelanden måste vi använda ser.readline () -funktionen. Lagra det inkommande meddelandet i en variabel och kontrollera tillståndet. Om inkommande meddelande är 'a', slå sedan på lysdioden i 3 sekunder och stäng sedan av lysdioden.
x = ser.readline (). strip () print (x) if x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Komplett Python-kod med en demonstrationsvideo ges i slutet av handledningen. Klistra in koden i valfri textredigerare på Pi och spara den. Kör skriptet i terminalen med sudo python script_name.py ELLER du kan använda Python IDE och Shell för att utföra skriptet.
Testa den trådlösa XBee-kommunikationen med Raspberry Pi
Nu är vi alla redo att testa vår XBee-sändare och mottagare. För att ge kommandot till sändardelen använder vi XCTU: s konsolterminal. Klicka på konsolikonen nära inställningsalternativet. Klicka sedan på knappen Öppna för att ansluta XBee till den bärbara datorn.
Ange 'a' i konsolloggen. Du kommer att se att lysdioden tänds i 3 sekunder och sedan slocknar den.
På detta sätt kan du också ansluta sändaren XBee till Arduino-kortet som beskrivs i föregående handledning och få Raspberry Pi och Arduino att kommunicera med varandra.