- Hardwarové požadavky
- Konfigurace modulů XBee pomocí XCTU
- Schéma zapojení pro část přijímače
- Nastavte Raspberry Pi pro sériovou komunikaci
- Programování Raspberry Pi pro komunikaci XBee
- Testování bezdrátové komunikace XBee pomocí Raspberry Pi
V předchozím tutoriálu jsme propojili modul XBee s Arduino Uno a přiměli jsme je bezdrátově komunikovat pomocí modulu XBee. Nyní budeme propojovat modul XBee s Raspberry Pi, který bude fungovat jako přijímač a bude bezdrátově komunikovat s dalším modulem XBee (deska průzkumníka XBee), který je sériově připojen k notebooku.
Hardwarové požadavky
- 1 x Raspberry Pi s nainstalovaným Raspbian
- 2 x moduly XBee Pro S2C (lze použít jakýkoli jiný model)
- 1 x deska průzkumníka XBee (volitelně)
- 1 x Xbee Breakout board (volitelně)
- USB kabely
- LED diody
Předpokládá se, že vaše Raspberry Pi je již flashováno s operačním systémem. Pokud ne, postupujte podle pokynů v příručce Začínáme s Raspberry Pi. Zde používáme Rasbian Jessie nainstalovanou Raspberry Pi 3.
Zde se externí monitor pomocí kabelu HDMI používá jako displej pro připojení k Raspberry Pi. Pokud nemáte monitor, můžete se připojit k Raspberry pi pomocí notebooku nebo počítače pomocí klienta SSH (Putty) nebo serveru VNC. Zde se dozvíte více o bezhlavém nastavení Raspberry Pi.
Konfigurace modulů XBee pomocí XCTU
Jak jsme se dozvěděli v předchozím tutoriálu ZigBee Úvod, modul XBee může fungovat jako koordinátor, směrovač nebo koncové zařízení, ale musí být nakonfigurován tak, aby fungoval v požadovaném režimu. Než tedy použijeme moduly XBee s Raspberry Pi, musíme tyto moduly nakonfigurovat pomocí softwaru XCTU.
Pro připojení modulu XBee k notebooku se používá převodník USB na sériový port nebo speciálně navržená deska průzkumníka. Stačí připojit modul XBee k desce Explorer a připojit jej k notebooku pomocí kabelu USB.
Pokud nemáte žádnou desku převaděče nebo průzkumníka, můžete desku Arduino použít jako USB na sériové zařízení, které může snadno komunikovat s XBee a notebookem. Stačí nahrát prázdnou skicu na desku Arduino a nyní se může chovat jako převodník USB na sériový port.
Konfigurace modulů XBee:
Tady v tomto výukovém programu se deska Explorer používá ke konfiguraci modulů XBee.
Stáhněte si software XCTU z tohoto odkazu a nainstalujte jej. Po stažení a instalaci softwaru XCTU jej otevřete a ujistěte se, že je váš modul XBee správně připojen. Zkontrolujte port COM na desce Arduino ve správci zařízení.
1. Nyní klikněte na tlačítko vyhledávání. Zobrazí se všechna RF zařízení připojená k vašemu notebooku. V našem případě se zobrazí pouze jeden modul XBee.
2. Vyberte sériový port desky Explorer / Arduino a klikněte na Další.
3. V dalším okně nastavte parametry portu USB, jak je znázorněno níže, a klikněte na Dokončit.
4. Vyberte Zjištěné zařízení a klikněte na Přidat vybrané zařízení . Tento proces přidá váš modul XBee na řídicí panel XCTU.
5. Nyní můžete v tomto okně nakonfigurovat svůj modul XBee. Můžete použít buď AT příkazy, nebo dát data ručně. Jak vidíte, na levém panelu se zobrazuje R, což znamená, že XBee je v režimu routeru. Musíme to udělat koordinátorem pro část vysílače.
Nejprve aktualizujte firmware kliknutím na Aktualizovat firmware.
6. Vyberte produktovou řadu svého zařízení, která je k dispozici na zadní straně modulu XBee. Vyberte sadu funkcí a verzi firmwaru, jak je zvýrazněno níže, a klikněte na Aktualizovat.
7. Nyní musíte zadat ID, MY a DL data, abyste se mohli spojit s ostatními XBee. ID zůstává stejné pro oba moduly. Pouze výměna dat MY a DL, tj. MY pro přijímač XBee, se stane DL vysílače XBee (koordinátor) a DL pro přijímač XBee se stane MY vysílače XBee. Vytvořte CE jako koordinátora a poté stiskněte tlačítko Zapsat. Jak je ukázáno níže.
ATDL |
ATMY |
||
Koordinátor XBee 1 |
|||
Koncové zařízení XBee 2 |
8. Po zapsání výše uvedených dat do části vysílače je odpojte od desky průzkumníka a zapojte do ní druhý modul XBee. Opakujte stejný postup jako výše, pouze změny jsou DL, MY a CE. Protože druhé XBee uděláme jako koncové zařízení, v rozevírací nabídce CE vyberte koncové zařízení a stiskněte tlačítko Write.
9. Nyní jsou naše moduly XBee připraveny k propojení s Raspberry Pi. Budeme připojit Xbee vysílače na laptop a přijímače XBee s Raspberry Pi. Poté dejte příkazy přijímací části pomocí notebooku. notebook.
Schéma zapojení pro část přijímače
Zapojení pro propojení modulu ZigBee s Raspberry PI jsou znázorněna na schématu zapojení.
Připojení:
- Tx (pin2) z XBee -> Tx z pin Raspberry Pi
- Rx (pin3) z XBee -> Rx z pin Raspberry Pi
- GND (pin10) XBee -> GND pin Raspberry Pi
- Vcc (Pin1) XBee -> 3,3v pin Raspberry Pi
- Led je připojen k GPIO 23
Nastavte Raspberry Pi pro sériovou komunikaci
Nyní nastavíme Raspberry Pi pro sériovou komunikaci. Ve výchozím nastavení je hardwarový sériový port Pi deaktivován. Před zahájením připojení jej tedy musíme povolit.
1. V terminálu spusťte příkaz raspi-config .
2. Přejděte na možnost 5 Možnosti propojení a stiskněte klávesu Enter. Nyní vyberte možnost P6 Serial a povolte ji a poté uložte.
Ukončete terminál a jste připraveni vytvořit spojení mezi Raspberry Pi a XBee. GPIO14 a 15 budou fungovat jako Tx, respektive Rx a jsou k dispozici na / dev / ttyS0 portu malinové pí.
Nyní napíšeme skript pythonu na ZAPNUTO LED, kdykoli přijmeme „a“ od vysílače XBee.
Programování Raspberry Pi pro komunikaci XBee
Na konci je uveden kompletní pythonovský program pro propojení XBee s Raspberry Pi.
Nejprve musíme importovat časové, sériové a RPi.GPIO knihovny pomocí funkce importu.
čas importu import sériový import RPi.GPIO jako GPIO …
Nyní zapište vlastnosti sériového připojení, definujte port, přenosovou rychlost a parity, jak je uvedeno níže.
ser = serial.Serial ( port = '/ dev / ttyS0', přenosová rychlost = 9600, parita = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, velikost bytu = serial.EIGHTBITS, časový limit = 1 )
Napište všechny odesílací a přijímací prvky do smyčky while .
zatímco 1:
K odesílání zpráv na stranu vysílače můžete použít funkci ser.write . Chcete-li odeslat počítání, odkomentujte níže uvedené řádky.
# ser.write (str.encode ('Write counter:% d \ n'% (counter))) # time.sleep (1) # Counter + = 1
Pro příjem zpráv musíme použít funkci ser.readline () . Uložte příchozí zprávu do proměnné a zkontrolujte stav. Pokud je příchozí zpráva „a“, rozsvíťte LED na 3 sekundy a poté LED zhasněte.
x = ser.readline (). strip () print (x) if x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Kompletní kód Pythonu s ukázkovým videem je uveden na konci tohoto kurzu. Vložte kód do libovolného textového editoru Pi a uložte jej. Spusťte skript v terminálu pomocí sudo python script_name.py NEBO můžete k provedení skriptu použít Python IDE a Shell.
Testování bezdrátové komunikace XBee pomocí Raspberry Pi
Nyní jsme se všichni pustili do testování našeho vysílače a přijímače XBee. Abychom dali povel do vysílací části, použijeme konzolový terminál XCTU. Klikněte na ikonu Console poblíž možnosti nastavení. Poté klikněte na tlačítko Otevřít a připojte XBee k notebooku.
Zadejte „a“ do protokolu Console. Uvidíte, že LED se rozsvítí na 3 sekundy a poté zhasne.
Tímto způsobem můžete také připojit vysílač XBee k desce Arduino, jak je popsáno v předchozím tutoriálu, a přimět Raspberry Pi a Arduino ke vzájemné komunikaci.