- Requisiti hardware
- Configurazione dei moduli XBee utilizzando XCTU
- Schema del circuito per la parte del ricevitore
- Configura Raspberry Pi per la comunicazione seriale
- Programmazione di Raspberry Pi per la comunicazione XBee
- Testare la comunicazione XBee wireless utilizzando Raspberry Pi
Nel tutorial precedente abbiamo interfacciato il modulo XBee con Arduino Uno e li abbiamo fatti comunicare in modalità wireless utilizzando il modulo XBee. Ora interfacciamo il modulo XBee con Raspberry Pi che fungerà da ricevitore e lo farà comunicare in modalità wireless con un altro modulo XBee (scheda esploratore XBee) che è collegato in serie al laptop.
Requisiti hardware
- 1 x Raspberry Pi con Raspbian installato al suo interno
- 2 moduli XBee Pro S2C (è possibile utilizzare qualsiasi altro modello)
- 1 x scheda explorer XBee (opzionale)
- 1 x Xbee Breakout board (opzionale)
- Cavi USB
- LED
Si presume che il tuo Raspberry Pi sia già installato con un sistema operativo. In caso contrario, segui il tutorial Introduzione a Raspberry Pi prima di procedere. Qui stiamo usando Rasbian Jessie installato Raspberry Pi 3.
Qui il monitor esterno che utilizza il cavo HDMI viene utilizzato come display per connettersi con Raspberry Pi. Se non disponi di un monitor, puoi utilizzare il client SSH (Putty) o il server VNC per connetterti a Raspberry pi utilizzando laptop o computer. Scopri di più sulla configurazione di Raspberry Pi senza testa qui.
Configurazione dei moduli XBee utilizzando XCTU
Come abbiamo appreso nel tutorial precedente di ZigBee Introduction, il modulo XBee può agire come un coordinatore, router o un dispositivo finale ma deve essere configurato per funzionare nella modalità desiderata. Quindi, prima di utilizzare i moduli XBee con Raspberry Pi, dobbiamo configurare questi moduli utilizzando il software XCTU.
Per collegare il modulo XBee al laptop, viene utilizzato un convertitore da USB a seriale o una scheda explorer appositamente progettata. Basta collegare il modulo XBee alla scheda Explorer e collegarlo al laptop utilizzando il cavo USB.
Se non si dispone di alcun convertitore o scheda Explorer, è possibile utilizzare una scheda Arduino come dispositivo da USB a seriale in grado di comunicare facilmente con XBee e laptop. Basta caricare uno schizzo vuoto nella scheda Arduino e ora può comportarsi come un convertitore da USB a seriale.
Configurazione dei moduli XBee:
Qui in questo tutorial, una scheda Explorer viene utilizzata per configurare i moduli XBee.
Scarica il software XCTU da questo link e installalo. Dopo aver scaricato e installato il software XCTU, aprilo e assicurati che il tuo modulo XBee sia collegato correttamente. Controlla la porta COM della scheda Arduino in Gestione dispositivi.
1. Ora, fai clic sul pulsante di ricerca. Questo ti mostrerà tutti i dispositivi RF collegati al tuo laptop. Nel nostro caso, mostrerà solo un modulo XBee.
2. Selezionare la porta seriale della scheda Explorer / scheda Arduino e fare clic su Avanti.
3. Nella finestra successiva, impostare i parametri della porta USB come mostrato di seguito e fare clic su Fine.
4. Selezionare il dispositivo rilevato e fare clic su Aggiungi dispositivo selezionato . Questo processo aggiungerà il tuo modulo XBee alla dashboard XCTU.
5. Ora puoi configurare il tuo modulo XBee in questa finestra. È possibile utilizzare i comandi AT o inserire i dati manualmente. Come puoi vedere, è visualizzata una R sul pannello di sinistra, il che significa che XBee è in modalità router. Dobbiamo renderlo Coordinatore per la parte trasmittente.
Innanzitutto, aggiorna il firmware facendo clic su Aggiorna firmware.
6. Scegli la famiglia di prodotti del tuo dispositivo che è disponibile sul retro del tuo modulo XBee. Selezionare il set di funzioni e la versione del firmware come evidenziato di seguito e fare clic su Aggiorna.
7. Ora, devi fornire i dati ID, MY e DL per effettuare la connessione con altri XBee. L'ID rimane lo stesso per entrambi i moduli. Solo lo scambio di dati MY e DL, cioè MY per il ricevitore XBee diventa DL del trasmettitore XBee (coordinatore) e DL per il ricevitore XBee diventa MY del trasmettitore XBee. Crea CE come coordinatore e quindi premi il pulsante Scrivi. Come mostrato di seguito.
ATDL |
AL MIO |
||
Coordinatore XBee 1 |
|||
Dispositivo finale XBee 2 |
8. Dopo aver scritto i dati di cui sopra sulla parte del trasmettitore, scollegalo dalla scheda Explorer e inserisci il secondo modulo XBee al suo interno. Ripetere la stessa procedura come sopra, solo le modifiche sono DL, MY e CE. Poiché faremo il secondo XBee come dispositivo finale, quindi nel menu a discesa CE, seleziona il dispositivo finale e premi il pulsante Scrivi.
9. Ora, i nostri moduli XBee sono pronti per interfacciarsi con Raspberry Pi. Noi collegare il XBee trasmettitore al computer portatile e il ricevitore XBee con il Raspberry Pi. Quindi dai comandi alla parte ricevente usando il laptop. il computer portatile.
Schema del circuito per la parte del ricevitore
I collegamenti per l' interfacciamento del modulo ZigBee con Raspberry PI sono mostrati nello schema elettrico.
Collegamenti:
- Tx (pin2) di XBee -> Tx del pin Raspberry Pi
- Rx (pin3) di XBee -> Rx del pin Raspberry Pi
- Gnd (pin10) di XBee -> GND del pin Raspberry Pi
- Vcc (Pin1) di XBee -> 3.3v del pin Raspberry Pi
- Il led è connesso alla GPIO 23
Configura Raspberry Pi per la comunicazione seriale
Ora configureremo il Raspberry Pi per la comunicazione seriale. Per impostazione predefinita, la porta seriale hardware di Pi è disabilitata. Quindi, dobbiamo abilitarlo prima di avviare la connessione.
1. Nel terminale, eseguire il comando raspi-config .
2. Vai all'opzione 5 Opzioni di interfacciamento e premi invio. Ora seleziona l' opzione Seriale P6 e Abilita e quindi salva.
Esci dal terminale e sei pronto per effettuare la connessione tra Raspberry Pi e XBee. GPIO14 e 15 agiranno rispettivamente come Tx e Rx e questi sono disponibili nel port / dev / ttyS0 di raspberry pi.
Ora, scriveremo uno script python per ACCENDERE il LED ogni volta che riceveremo una "a" dal lato trasmettitore XBee.
Programmazione di Raspberry Pi per la comunicazione XBee
Alla fine viene fornito il programma Python completo per l'interfacciamento di XBee con Raspberry Pi.
Innanzitutto, dobbiamo importare le librerie time, serial e RPi.GPIO utilizzando la funzione di importazione.
importa ora importa importazione seriale RPi.GPIO come GPIO…
Ora scrivi le proprietà della connessione seriale, definisci la porta, il baudrate e le parità come di seguito.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 1 )
Scrivi tutti gli elementi di invio e ricezione nel ciclo while .
mentre 1:
È possibile utilizzare la funzione ser.write per inviare i messaggi al trasmettitore. Rimuovere il commento dalle righe seguenti per inviare i conteggi.
# ser.write (str.encode ('Write counter:% d \ n'% (counter))) # time.sleep (1) #counter + = 1
Per ricevere i messaggi dobbiamo usare la funzione ser.readline () . Memorizza il messaggio in arrivo in una variabile e verifica la condizione. Se il messaggio in arrivo è "a", accendere il LED per 3 secondi e quindi spegnere il LED.
x = ser.readline (). strip () print (x) if x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Alla fine del tutorial viene fornito il codice Python completo con un video dimostrativo. Incolla il codice in qualsiasi editor di testo del Pi e salvalo. Esegui lo script nel terminale usando sudo python nome_script.py OPPURE puoi usare Python IDE e Shell per eseguire lo script.
Testare la comunicazione XBee wireless utilizzando Raspberry Pi
Ora, siamo tutti pronti per testare il nostro trasmettitore e ricevitore XBee. Per dare il comando alla parte trasmettitore, useremo il terminale della console di XCTU. Fare clic sull'icona Console vicino all'opzione delle impostazioni. Quindi, fare clic sul pulsante Apri per connettere l'XBee al laptop.
Immettere "a" nel registro della console. Vedrai che il LED si accenderà per 3 secondi e poi si spegnerà.
In questo modo è possibile collegare anche il trasmettitore XBee alla scheda Arduino come descritto nel tutorial precedente, e far comunicare tra loro Raspberry Pi e Arduino.