6. Sistem de alarmă wireless cu LabVIEW

În acest capitol, vom folosi Arduino și LabVIEW pentru a crea un sistem simplu de alarmă care va monitoriza mai mulți senzori de mișcare prin XBee. Vom conecta senzorii de mișcare la o placă Arduino, împreună cu un XBee Arduino shield.

Apoi, vom scrie un program LabVIEW de bază pentru monitorizarea acestor senzori de mișcare din LabVIEW. Vom începe cu un singur senzor și apoi vom extinde acest lucru la câțiva senzori. În sfârșit, veți vedea cum să utilizați un senzor de mișcare prin XBee, astfel încât să puteți amplasa proiectul oriunde doriți în casa dvs.

Cerințe hardware și software

Să vedem mai întâi ce avem nevoie pentru acest proiect. În afară de placa uzuală Arduino Uno, veți avea nevoie de module XBee, atât pentru Arduino, cât și pentru computer. Aici este placa Arduino cu un XBee shield montat pe ea, împreună cu un modul XBee:

Hardware and software requirements

Deoarece computerul nu vine cu XBee încorporat, veți avea nevoie de un modul pe computer pentru a comunica cu proiectul Arduino prin XBee. Pentru a face aceasta, am folosit un modul USB XBee explorer de la SparkFun, împreună cu un modul XBee montat pe acesta:

Hardware and software requirements

Rețineți că pentru acest capitol puteți utiliza și un modul Bluetooth pentru a interconecta placa dvs. Arduino cu computerul, fără modificări majore ale codului.

În sfârșit, veți avea nevoie de unul sau mai mulți senzori de mișcare. Am folosit un simplu senzor de mișcare PIR pentru acest proiect; puteți găsi acest senzor pe site-urile multor distribuitori. Cel mai important aspect aici este că senzorul ar trebui să fie compatibil cu nivelele de tensiune Arduino Uno, adică senzorul ar trebui să aibă o tensiune maximă de ieșire de 5V.

Aceasta este lista tuturor componentelor de care aveți nevoie pentru acest proiect:

  • Arduino Uno (https://www.adafruit.com/products/50)

  • Senzor de mișcare (http://www.adafruit.com/products/189)

  • XBee Arduino shield (https://www.sparkfun.com/products/12847)

  • Modul XBee x2 (https://www.sparkfun.com/products/11215)

  • Modul XBee explorer (https://www.sparkfun.com/products/11812)

  • Jumper wires (https://www.adafruit.com/products/1957)

Pe partea de software, va trebui să aveți instalat LabVIEW și pachetul LINX. Dacă nu ați făcut încă acest lucru, consultați Capitolul 2, Noțiuni de bază cu interfața LabVIEW pentru Arduino, pentru a urma pașii necesari.

Configurația hardware

Acum vom asambla diferitele componente ale proiectului prin realizarea următoarelor etape:

  • Conectați modulul XBee pe XBee shield și apoi XBee shield pe placa Arduino.

  • Apoi, conectați un senzor de mișcare. Desigur, va trebui să repetați operația dacă doriți să conectați mai mulți senzori de mișcare la placă.

  • Un senzor de mișcare are trei pini: VCC, GND și OUT (sau SIG). Mai întâi, conectați pinul VCC la pinul Arduino 5V și pinul GND la pinul Arduino GND.

  • Conectați pinul OUT al senzorului de mișcare la pinul 8 de pe placa Arduino.

Acesta este modul în care proiectul complet asamblat arată, cu un senzor de mișcare conectat:

Hardware configuration

În cele din urmă, asigurați-vă că ați conectat placa de explorare XBee la computer prin intermediul unui cablu USB.

Interfața unui senzor de mișcare

Acum, că partea hardware din proiect este configurată, vom scrie un program LabVIEW de bază pentru a gestiona un senzor de mișcare și a afișa starea sa în interfața LabVIEW. Pașii sunt după cum urmează:

  • Începeți prin a crea un nou VI gol și adăugați componentele necesare pentru orice program LINX: o funcție LINX Init, o funcție LINX Stop și o simplă casetă de eroare la sfârșit. De asemenea, adăugați o While Loop în mijlocul VI-ului; aici, vom adăuga funcțiile pentru citirea datelor provenite de la senzorul de mișcare.

Interfacing one motion sensor
  • Senzorul de mișcare pe care îl folosim pentru acest proiect generează pur și simplu un nivel logic 0 dacă nu este detectată nici o mișcare; în caz contrar, generează un nivel logic 1. Pentru a citi datele de la senzorul mișcare, avem nevoie de o funcție Digital Read. Ca de obicei, puteți găsi această funcție în submeniul LINX când plasați o funcție din LabVIEW. Așezați această funcție în mijlocul buclei While:

Interfacing one motion sensor

Conectați pinii de resurse LINX împreună (firele de sus ale capturii de ecran) și, de asemenea, conectați intrările/ieșirile error împreună (firele inferioare). Conectați, de asemenea, condiția de încheiere a buclei While (cercul mic din colțul dreapta jos) direct la firul legăturii error, care este firul din partea de jos a acestei imagini:

Interfacing one motion sensor

Acum putem adăuga unele intrări și ieșiri în programul nostru. Avem nevoie de două intrări: una pentru a seta portul serial al plăcii Arduino și una pentru a seta pinul la care este conectat senzorul de mișcare.

Pentru a face acest lucru, faceți clic dreapta pe pinul dorit și apoi mergeți la Create | Control pentru a crea o intrare nouă. De asemenea, dați nume relevante acestor intrări, astfel încât să le putem identifica cu ușurință pe Panoul frontal.

De asemenea, trebuie să creați o ieșire pentru senzorul de mișcare. Pentru a face acest lucru, faceți clic dreapta pe ieșirea blocului Digital Read și mergeți la Create | Indicator. De asemenea, dați un nume acestui indicator pentru a arăta că el este ieșirea senzorului de mișcare.

Interfacing one motion sensor
  • Suntem acum gata să testeze programul pe care tocmai l-am scris. Mergeți la Panoul frontal și organizați elementele obișnuit: comenzile pe stânga și indicatoarele pe dreapta, așa cum se arată în următoarea imagine:

Interfacing one motion sensor

Desigur, trebuie să setați corect Serial Port selectând-l din listă și să setați Motion Sensor Pin pe pinul pe care l-am folosit mai devreme, adică 7.

Acum puteți porni programul făcând clic pe săgeata mică de pe bara de instrumente. Dați-i 1-2 secunde pentru a inițializa și apoi treceți mâna în fața senzorului de mișcare. Veți vedea că indicatorul devine verde imediat. După un timp, dacă nu mai este detectată nicio mișcare, va reveni la normal.

Conectarea mai multor senzori de mișcare

Acum că avem un senzor de mișcare în lucru, vom interfața mai mulți dintre ei cu placa noastră Arduino și LabVIEW.

Mai întâi, asigurați-vă că aveți mai mulți senzori conectați la placa Arduino. Dacă este necesar, repetați din nou procedura de configurare hardware. De exemplu, în următorul ecran, am folosit doi senzori de mișcare: unul conectat la pinul 7, așa cum am făcut mai devreme, și unul conectat la pinul 8.

Vom modifica acum programul LabVIEW pentru a găzdui doi senzori. Desigur, dacă aveți mai mulți dintre ei conectați, puteți conecta pur și simplu senzorul așa cum ați făcut înainte pentru fiecare senzor suplimentar pe care îl aveți.

Pentru a adăuga un alt senzor, trebuie să repetați procedura pe care am făcut-o mai devreme. Mai întâi, creați o nouă funcție Digital Read și conectați firele de resurse LINX (firele de sus) și firele de intrare/ieșire error la noua casetă, astfel încât aceasta să pară ca această captură de ecran:

Connecting more motion sensors

De asemenea, adăugați o intrare nouă pentru această casetă nouă (pentru a seta pinul acestui nou senzor de mișcare) și un indicator ca ieșire. Asigurați-vă că dați nume relevante și acestor noi intrări și ieșiri, deoarece acum avem doi senzori de mișcare pe Panoul frontal.

Acum puteți reveni la Panoul frontal pentru a vedea rezultatul. După cum puteți vedea, acum avem o intrare suplimentară și o ieșire suplimentară; aceasta este starea noului senzor de mișcare:

Connecting more motion sensors

Ca de obicei, vă recomandăm să organizați Panoul frontal cu toate intrările pe o parte și cu toți indicatorii pe cealaltă parte.

Acum, putem testa programul din nou. Asigurați-vă că portul serial este încă setat corect și că ați setat corect pinii senzorilor de mișcare. Apoi, faceți clic pe săgeata mică de pe bara de instrumente pentru a rula programul.

Veți vedea că acum ambii senzori de mișcare reacționează independent, în funcție de senzorul de mișcare care se află în modul de detectare.

Efectuarea proiectului wireless cu XBee

În această secțiune finală a capitolului, vom folosi XBee shield pe care l-am conectat mai devreme la proiect pentru a controla un sistem de alarmă wireless din LabVIEW.

Primul pas pentru a utiliza XBee, în loc de conexiunea USB, este să setați comutatorul mic de pe XBee Arduino shield în poziția UART. Anterior, a fost pe DLINE, cum este arătat în imagine:

Making the project wireless with XBee

Apoi, trebuie să specificăm din nou, că folosim o viteză serială de 9600 baud pentru modulul XBee, la fel ca în capitolul precedent. Într-adevăr, trebuie să facem acest lucru, deoarece modulele XBee sunt configurate să utilizeze implicit o viteză de 9600 baud. Pentru a afla mai multe despre Comunicații UART, puteți vizita următoarea resursă http://en.wikipedia.org/wiki/Universal_asynchronous_receiver/transmitter.

Pentru a schimba acest lucru, faceți dublu clic pe funcția Init pe care am plasat-o chiar înaintea While Loop în diagramă. Aceasta va deschide VI-ul.

Odată ce acest lucru este făcut, mergeți la Diagrama bloc a acestui VI și căutați o funcție INIT DEVICE. Odată ce ați găsit-o, creați o constantă pentru pinul numit Override Serial Speed ​​și introduceți o valoare de 9600, așa cum se arată în următoarea imagine de ecran:

Making the project wireless with XBee

Acum puteți salva acest VI și închideți-l. De asemenea, puteți reveni la VI-ul care conține programul pentru cei doi senzori de mișcare. Acum trebuie doar să selectați portul serial care corespunde plăcii XBee USB explorer. Pentru a ști ce port serial trebuie să selectați, pur și simplu luați unul pe care nu l-ați folosit mai devreme când lucrați cu proiectul prin portul USB.

Acum puteți porni din nou programul făcând clic pe săgeata mică de pe bara de instrumente de sus. Veți observa că LED-urile seriale de pe XBee shield și de pe placa de explorare clipesc în mod constant; aceasta înseamnă că comunicarea a fost stabilită prin XBee.

În acest moment, treceți din nou mâna în fața unui senzor; veți vedea că indicatorul corespunzător se schimbă imediat pe Panoul frontal.