- Hardware-Anforderungen
- Konfigurieren von XBee-Modulen mit XCTU
- Schaltplan für Empfängerteil
- Raspberry Pi für die serielle Kommunikation einrichten
- Programmierung von Raspberry Pi für die XBee-Kommunikation
- Testen der drahtlosen XBee-Kommunikation mit Raspberry Pi
Im vorherigen Tutorial haben wir das XBee-Modul mit Arduino Uno verbunden und sie über das XBee-Modul drahtlos kommunizieren lassen. Jetzt werden wir das XBee-Modul mit dem Raspberry Pi verbinden, der als Empfänger fungiert und drahtlos mit einem anderen XBee-Modul (XBee Explorer Board) kommuniziert, das seriell mit dem Laptop verbunden ist.
Hardware-Anforderungen
- 1 x Raspberry Pi mit installiertem Raspbian
- 2 x XBee Pro S2C-Module (jedes andere Modell kann verwendet werden)
- 1 x XBee Explorer Board (optional)
- 1 x Xbee Breakout Board (optional)
- USB-Kabel
- LEDs
Es wird davon ausgegangen, dass Ihr Raspberry Pi bereits mit einem Betriebssystem geflasht ist. Wenn nicht, befolgen Sie das Tutorial Erste Schritte mit Raspberry Pi, bevor Sie fortfahren. Hier verwenden wir Rasbian Jessie installiert Raspberry Pi 3.
Hier wird ein externer Monitor mit HDMI-Kabel als Anzeige für die Verbindung mit Raspberry Pi verwendet. Wenn Sie keinen Monitor haben, können Sie den SSH-Client (Putty) oder den VNC-Server verwenden, um über einen Laptop oder Computer eine Verbindung zu Raspberry pi herzustellen. Weitere Informationen zum kopflosen Einrichten von Raspberry Pi finden Sie hier.
Konfigurieren von XBee-Modulen mit XCTU
Wie wir im vorherigen Tutorial der ZigBee-Einführung erfahren haben, kann das XBee-Modul als Koordinator, Router oder Endgerät fungieren, muss jedoch so konfiguriert werden, dass es im gewünschten Modus arbeitet. Bevor wir die XBee-Module mit Raspberry Pi verwenden können, müssen wir diese Module mit der XCTU-Software konfigurieren.
Um das XBee-Modul mit dem Laptop zu verbinden, wird ein USB-zu-Seriell-Konverter oder eine speziell entwickelte Explorer-Karte verwendet. Schließen Sie einfach das XBee-Modul an die Explorer-Karte an und schließen Sie es mit einem USB-Kabel an den Laptop an.
Wenn Sie keine Konverter- oder Explorer- Karte haben, kann eine Arduino- Karte als USB-zu-Seriell-Gerät verwendet werden, das problemlos mit dem XBee und dem Laptop kommunizieren kann. Laden Sie einfach eine leere Skizze in das Arduino-Board hoch und jetzt kann es sich wie ein USB-zu-Seriell-Konverter verhalten.
Konfigurieren von XBee-Modulen:
Hier in diesem Tutorial wird eine Explorer-Karte verwendet, um die XBee-Module zu konfigurieren.
Laden Sie die XCTU-Software von diesem Link herunter und installieren Sie sie. Öffnen Sie die XCTU-Software nach dem Herunterladen und Installieren und stellen Sie sicher, dass Ihr XBee-Modul ordnungsgemäß angeschlossen ist. Überprüfen Sie den COM-Anschluss der Arduino-Karte im Geräte-Manager.
1. Klicken Sie nun auf die Schaltfläche Suchen. Dies zeigt Ihnen alle mit Ihrem Laptop verbundenen HF-Geräte. In unserem Fall wird nur ein XBee-Modul angezeigt.
2. Wählen Sie den seriellen Anschluss der Explorer-Karte / Arduino-Karte und klicken Sie auf Weiter.
3. Stellen Sie im nächsten Fenster die USB-Anschlussparameter wie unten gezeigt ein und klicken Sie auf Fertig stellen.
4. Wählen Sie das erkannte Gerät aus und klicken Sie auf Ausgewähltes Gerät hinzufügen . Durch diesen Vorgang wird Ihr XBee-Modul zum XCTU-Dashboard hinzugefügt.
5. In diesem Fenster können Sie jetzt Ihr XBee-Modul konfigurieren. Sie können entweder AT-Befehle verwenden oder die Daten manuell eingeben. Wie Sie sehen können, wird auf der linken Seite R angezeigt, was bedeutet, dass sich XBee im Router-Modus befindet. Wir müssen es zum Koordinator für den Senderteil machen.
Aktualisieren Sie zunächst die Firmware, indem Sie auf Firmware aktualisieren klicken.
6. Wählen Sie die Produktfamilie Ihres Geräts aus, die auf der Rückseite Ihres XBee-Moduls verfügbar ist. Wählen Sie den unten hervorgehobenen Funktionssatz und die Firmware-Version aus und klicken Sie auf Aktualisieren.
7. Jetzt müssen Sie ID-, MY- und DL-Daten angeben, um eine Verbindung mit anderen XBee herzustellen. Die ID bleibt für beide Module gleich. Nur der Datenaustausch zwischen MY und DL, dh MY für den Empfänger XBee, wird DL des Senders XBee (Koordinator) und DL für den Empfänger XBee wird MY des Senders XBee. Machen Sie CE als Koordinator und klicken Sie dann auf die Schaltfläche Schreiben. Wie nachfolgend dargestellt.
ATDL |
BEI MEINEM |
||
XBee 1-Koordinator |
|||
XBee 2-Endgerät |
8. Nachdem Sie die obigen Daten in das Senderteil geschrieben haben, schließen Sie sie von der Explorer-Karte aus und schließen Sie das zweite XBee-Modul an. Wiederholen Sie den gleichen Vorgang wie oben. Nur die Änderungen betreffen DL, MY und CE. Da wir den zweiten XBee als Endgerät erstellen, wählen Sie im Dropdown-Menü CE das Endgerät aus und klicken Sie auf die Schaltfläche Schreiben.
9. Jetzt können unsere XBee-Module mit dem Raspberry Pi verbunden werden. Wir werden den Sender XBee mit dem Laptop und den Empfänger XBee mit dem Raspberry Pi verbinden. Geben Sie dann dem Empfängerteil mit dem Laptop Befehle. Laptop.
Schaltplan für Empfängerteil
Die Anschlüsse für die Verbindung des ZigBee-Moduls mit Raspberry PI sind im Schaltplan dargestellt.
Verbindungen:
- Tx (Pin2) von XBee -> Tx von Pin Raspberry Pi
- Rx (Pin3) von XBee -> Rx von Pin Raspberry Pi
- Gnd (Pin10) von XBee -> GND von Pin Raspberry Pi
- Vcc (Pin1) von XBee -> 3,3 V von Pin Raspberry Pi
- Die LED ist mit dem GPIO 23 verbunden
Raspberry Pi für die serielle Kommunikation einrichten
Jetzt richten wir den Raspberry Pi für die serielle Kommunikation ein. Standardmäßig ist die serielle Hardware-Schnittstelle von Pi deaktiviert. Wir müssen es also aktivieren, bevor wir die Verbindung herstellen können.
1. Führen Sie im Terminal den Befehl raspi-config aus .
2. Gehen Sie zu Option 5 Schnittstellenoptionen und drücken Sie die Eingabetaste. Wählen Sie nun die Option P6 Serial und aktivieren Sie sie und speichern Sie sie.
Verlassen Sie das Terminal und Sie können die Verbindung zwischen Raspberry Pi und XBee herstellen. GPIO14 und 15 fungieren als Tx bzw. Rx und diese sind am / dev / ttyS0-Port von Himbeer-Pi verfügbar.
Jetzt schreiben wir ein Python-Skript auf ON the LED, wenn wir von der senderseitigen XBee 'a' erhalten.
Programmierung von Raspberry Pi für die XBee-Kommunikation
Das vollständige Python-Programm für die Verbindung von XBee mit Raspberry Pi finden Sie am Ende.
Zuerst müssen wir die Bibliotheken time, serial und RPi.GPIO mithilfe der Importfunktion importieren.
Importzeit Import Serien Import RPi.GPIO als GPIO…
Schreiben Sie nun die Eigenschaften der seriellen Verbindung, definieren Sie Port, Baudrate und Paritäten wie folgt.
ser = serial.Serial ( port = '/ dev / ttyS0', Baudrate = 9600, Parität = serial.PARITY_NONE, Stopbits = serial.STOPBITS_ONE, Bytesize = serial.EIGHTBITS, Timeout = 1 )
Schreiben Sie alle Sende- und Empfangselemente in die while- Schleife.
während 1:
Sie können mit ser.write Funktion der Nachrichten an die Senderseite zu senden. Kommentieren Sie die folgenden Zeilen aus, um Zählungen zu senden.
# ser.write (str.encode ('Schreibzähler:% d \ n'% (Zähler))) # time.sleep (1) #counter + = 1
Für den Empfang der Nachrichten müssen wir die Funktion ser.readline () verwenden. Speichern Sie die eingehende Nachricht in einer Variablen und überprüfen Sie die Bedingung. Wenn die eingehende Nachricht 'a' ist, schalten Sie die LED 3 Sekunden lang ein und dann die LED aus.
x = ser.readline (). strip () print (x) wenn x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Der vollständige Python-Code mit einem Demonstrationsvideo finden Sie am Ende des Tutorials. Fügen Sie den Code in einen beliebigen Texteditor des Pi ein und speichern Sie ihn. Führen Sie das Skript im Terminal mit sudo python script_name.py aus ODER verwenden Sie Python IDE und Shell, um das Skript auszuführen.
Testen der drahtlosen XBee-Kommunikation mit Raspberry Pi
Jetzt wollen wir alle unseren XBee-Sender und -Empfänger testen. Um dem Senderteil Befehle zu erteilen, verwenden wir das Konsolenterminal von XCTU. Klicken Sie auf das Konsolensymbol neben der Einstellungsoption. Klicken Sie dann auf die Schaltfläche Öffnen, um den XBee mit dem Laptop zu verbinden.
Geben Sie 'a' in das Konsolenprotokoll ein. Sie werden sehen, dass die LED 3 Sekunden lang leuchtet und dann erlischt.
Auf diese Weise können Sie auch den Sender XBee wie im vorherigen Tutorial beschrieben mit der Arduino-Karte verbinden und den Raspberry Pi und Arduino so kommunizieren lassen, dass sie miteinander kommunizieren.