- Cerințe hardware
- Configurarea modulelor XBee folosind XCTU
- Diagrama circuitului pentru partea receptorului
- Configurați Raspberry Pi pentru comunicarea în serie
- Programarea Raspberry Pi pentru comunicarea XBee
- Testarea comunicației wireless XBee utilizând Raspberry Pi
În tutorialul anterior am interfațat modulul XBee cu Arduino Uno și i-am făcut să comunice fără fir folosind modulul XBee. Acum vom interfața modulul XBee cu Raspberry Pi, care va acționa ca un receptor și îl va comunica fără fir cu un alt modul XBee (placa de explorare XBee) care este conectat în serie cu laptopul.
Cerințe hardware
- 1 x Raspberry Pi cu Raspbian instalat în el
- 2 x module XBee Pro S2C (se poate utiliza orice alt model)
- 1 x bord Explorer XBee (opțional)
- 1 x placa Xbee Breakout (opțional)
- Cabluri USB
- LED-uri
Se presupune că Raspberry Pi este deja intermitent cu un sistem de operare. Dacă nu, urmați tutorialul Noțiuni introductive despre Raspberry Pi înainte de a continua. Aici folosim Rasbian Jessie instalat Raspberry Pi 3.
Aici Monitorul extern care utilizează cablu HDMI este utilizat ca afișaj pentru conectarea cu Raspberry Pi. Dacă nu aveți monitor, puteți utiliza clientul SSH (Putty) sau serverul VNC pentru a vă conecta la Raspberry pi utilizând laptop sau computer. Aflați mai multe despre configurarea Raspberry Pi fără cap aici.
Configurarea modulelor XBee folosind XCTU
După cum am aflat în tutorialul anterior al ZigBee Introduction că modulul XBee poate acționa ca un coordonator, un router sau un dispozitiv End, dar trebuie configurat pentru a funcționa în modul dorit. Deci, înainte de a utiliza modulele XBee cu Raspberry Pi, trebuie să configurăm aceste module folosind software-ul XCTU.
Pentru a conecta modulul XBee la laptop, se folosește un convertor USB în serie sau o placă de explorare special concepută. Conectați modulul XBee la placa Explorer și conectați-l la laptop folosind cablul USB.
Dacă nu aveți niciun convertor sau placă de explorare, atunci o placă Arduino poate fi utilizată ca dispozitiv USB către serie care poate comunica cu ușurință cu XBee și laptop. Încărcați schița goală pe placa Arduino și acum se poate comporta ca un convertor USB în serie.
Configurarea modulelor XBee:
Aici, în acest tutorial, se utilizează o placă Explorer pentru a configura modulele XBee.
Descărcați software-ul XCTU de pe acest link și instalați-l. După descărcarea și instalarea software-ului XCTU, deschideți-l și asigurați-vă că modulul XBee este conectat corect. Verificați portul COM al plăcii Arduino în managerul de dispozitive.
1. Acum, faceți clic pe butonul de căutare. Aceasta vă va arăta toate dispozitivele RF conectate la laptop. În cazul nostru, va afișa un singur modul XBee.
2. Selectați portul serial al plăcii Explorer / plăcii Arduino și faceți clic pe Următorul.
3. În fereastra următoare, setați parametrii portului USB așa cum se arată mai jos și faceți clic pe Finalizare.
4. Selectați dispozitivul descoperit și faceți clic pe Adăugare dispozitiv selectat . Acest proces va adăuga modulul XBee la tabloul de bord XCTU.
5. Acum, puteți configura modulul XBee în această fereastră. Puteți utiliza fie comenzi AT, fie puneți manual datele. După cum puteți vedea, pe panoul din stânga apare R, ceea ce înseamnă că XBee este în modul router. Trebuie să-l facem coordonator pentru partea de emițător.
Mai întâi, actualizați firmware-ul făcând clic pe Actualizare firmware.
6. Alegeți familia de produse a dispozitivului dvs. care este disponibilă pe partea din spate a modulului XBee. Selectați setul de funcții și versiunea de firmware așa cum este evidențiat mai jos și faceți clic pe Actualizare.
7. Acum, trebuie să dați datele ID, MY și DL pentru a face conexiunea cu alte XBee. ID-ul rămâne același pentru ambele module. Numai schimbul de date MY și DL, adică MY pentru receptorul XBee devine DL al transmițătorului XBee (coordonator) și DL pentru receptorul XBee devine MY al transmițătorului XBee. Faceți CE ca coordonator și apoi apăsați butonul Scrie. Așa cum se arată mai jos.
ATDL |
ATMY |
||
Coordonator XBee 1 |
|||
Dispozitiv final XBee 2 |
8. După ce ați scris datele de mai sus pe partea transmițătorului, conectați-le de pe placa de explorare și conectați al doilea modul XBee în acesta. Repetați același proces ca mai sus, doar modificările sunt DL, MY și CE. Pe măsură ce vom face al doilea XBee ca dispozitiv End, deci în meniul derulant CE, selectați dispozitivul End și apăsați butonul Write.
9. Acum, modulele noastre XBee sunt pregătite pentru interfață cu Raspberry Pi. Vom conecta transmițătorul XBee la laptopul și receptorul XBee cu Raspberry Pi. Apoi dați comenzi părții receptorului folosind laptopul. laptop.
Diagrama circuitului pentru partea receptorului
Conexiunile pentru interfața modulului ZigBee cu Raspberry PI sunt prezentate în schema circuitului.
Conexiuni:
- Tx (pin2) de XBee -> Tx de pin Raspberry Pi
- Rx (pin3) de XBee -> Rx de pin Raspberry Pi
- Gnd (pin10) de XBee -> GND de pin Raspberry Pi
- Vcc (Pin1) de XBee -> 3,3v de pin Raspberry Pi
- Ledul este conectat la GPIO 23
Configurați Raspberry Pi pentru comunicarea în serie
Acum, vom configura Raspberry Pi pentru comunicarea în serie. În mod implicit, portul serial hardware al Pi este dezactivat. Deci, trebuie să o activăm înainte de a începe conexiunea.
1. În terminal, executați comanda raspi-config .
2. Mergeți la opțiunea 5 Opțiuni de interfață și apăsați Enter. Acum, selectați opțiunea Serial P6 și activați-o și apoi salvați.
Ieșiți din terminal și sunteți gata să faceți conexiunea între Raspberry Pi și XBee. GPIO14 și 15 vor acționa ca Tx și respectiv Rx și acestea sunt disponibile la portul / dev / ttyS0 al raspberry pi.
Acum, vom scrie un script python pe LED-ul ori de câte ori vom primi „a” de pe partea transmițătoare XBee.
Programarea Raspberry Pi pentru comunicarea XBee
Programul complet Python pentru interfața XBee cu Raspberry Pi este dat la sfârșit.
Mai întâi, trebuie să importăm bibliotecile de timp, seriale și RPi.GPIO folosind funcția de import.
timp de import import de serie import RPi.GPIO ca GPIO…
Acum, scrieți proprietățile conexiunii seriale, definiți portul, baudrate-ul și paritățile după cum urmează.
ser = serial.Serial ( port = '/ dev / ttyS0', baudrate = 9600, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, bytesize = serial.EIGHTBITS, timeout = 1 )
Scrieți toate elementele de trimitere și primire în bucla while .
în timp ce 1:
Puteți utiliza funcția ser.write pentru a trimite mesajele către partea transmițătorului. Descomentați liniile de mai jos pentru a trimite contorizări.
# ser.write (str.encode ('Write counter:% d \ n'% (counter))) # time.sleep (1) #counter + = 1
Pentru primirea mesajelor trebuie să folosim funcția ser.readline () . Stocați mesajul primit într-o variabilă și verificați starea. Dacă mesajul de intrare este „a”, porniți LED-ul timp de 3 secunde și apoi opriți LED-ul.
x = ser.readline (). strip () print (x) if x == 'a': GPIO.output (23, GPIO.HIGH) time.sleep (3)….
Codul complet Python cu un videoclip demonstrativ este oferit la sfârșitul tutorialului. Lipiți codul în orice editor de text al Pi și salvați-l. Rulați scriptul în terminal folosind sudo python script_name.py SAU puteți utiliza Python IDE și Shell pentru a executa scriptul.
Testarea comunicației wireless XBee utilizând Raspberry Pi
Acum, ne-am pregătit cu toții să testăm transmițătorul și receptorul XBee. Pentru a da comanda părții transmițătorului, vom folosi terminalul consolei XCTU. Faceți clic pe pictograma Consolei lângă opțiunea de setări. Apoi, faceți clic pe butonul Deschidere pentru a conecta XBee la laptop.
Introduceți „a” în jurnalul Consolei. Veți vedea că LED-ul se va aprinde timp de 3 secunde și apoi se va stinge.
În acest fel, puteți conecta, de asemenea, transmițătorul XBee la placa Arduino așa cum este descris în tutorialul anterior și faceți ca Raspberry Pi și Arduino să comunice între ele.