4. Stație meteo simplă cu Arduino și LabVIEW


În acest capitol, vom construi o stație simplă de măsurare a vremii bazată pe Arduino, care va fi monitorizată din LabVIEW.

Vom conecta un senzor de temperatură la placa Arduino, precum și un senzor de nivel de lumină. Vom conecta ambii senzori la interfața LabVIEW, astfel încât să putem obține măsurătorile din ele în timp real. În cele din urmă, vom folosi indicatorii disponibili în LabVIEW pentru a construi o interfață grafică frumoasă pentru stația meteo.

Cerințe hardware și software

Pe partea de hardware, veți avea nevoie mai întâi de o placă Arduino Uno.

Vom folosi două tipuri de senzori pentru acest proiect: un senzor de temperatură și un senzor de nivel de lumină. Pentru temperatură, vom folosi un senzor TMP36, care este un senzor de temperatură analogic ce generează un semnal funcție de temperatura ambiantă. Vom vedea că există un bloc existent în LabVIEW care poate converti automat această tensiune de ieșire în temperatura ambiantă.

Pentru a măsura nivelul luminii ambientale, vom folosi o fotocelulă, care este un rezistor a cărei rezistență se schimbă cu lumina ambientală. Împreună cu această fotocelule, vom avea nevoie și de un rezistor de 10 KOhm. Acest rezistor va fi utilizat împreună cu fotocelula pentru a converti nivelul luminii ambientale la o tensiune de ieșire care va fi de la 0V la 5V. Această tensiune va fi apoi convertită la o variabilă utilizabilă utilizând convertorul analogic-digital Arduino.

În cele din urmă, vom folosi, de asemenea, un breadboard (placă de testare) și câteva fire pentru a face toate conexiunile dintre componente.

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

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

  • TMP36 (https://www.adafruit.com/products/165)

  • fotocelulă și un Resistor de 10 KOhm (https://www.adafruit.com/products/161)

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

  • Breadboard (https://www.adafruit.com/products/64)

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

Haideți să vedeți modul de asamblare a diferitelor componente ale proiectului. Această schemă vă va ajuta să vizualizați conexiunile dintre diferitele componente:

Hardware configuration

Pentru a configura Arduino Uno urmați pașii de mai jos:

  1. Plasați senzorul TMP36 și fotocelula pe placa de testare.

  2. Apoi, conectați sursa de alimentare de la placa Arduino la breadboard; 5V din placa Arduino se duce spre șina de alimentare roșie, iar GND se duce la șina albastră.

  3. Pentru Senzorul TMP36, există trei pini pentru conectare: VCC, GND și ieșirea. Semnalul de ieșire este la mijlocul senzorului; conectați-l direct la pinul analogic A1 al plăcii Arduino.

  4. Apoi, privind la partea plată a senzorului, așa cum este arătat în schemă, conectați pinul drept la șina de alimentare albastră și pinul din stânga la șina de alimentare roșie.

  5. Pentru fotocelulă, conectați rezistorul de 10 KOhm în serie cu fotocelula.

  6. Apoi, conectați celălalt capăt al rezistorului la șina de alimentare albastră și celălalt capăt al fotocelulei la șina roșie a plăcii de testare.

  7. În cele din urmă, conectați pinul comun între fotocelulă și rezistor la pinul analogic A0 al plăcii Arduino.

Așa ar trebui să arate la sfârșit:

Hardware configuration

În final, conectați placa la computer prin USB. Suntem gata să scriem programul LabVIEW pentru proiectul nostru.

Scrierea programului LabVIEW

Urmați acești pași pentru lansarea programului LabVIEW:

  1. Primul lucru pe care trebuie să-l faceți este să creați un nou VI în LabVIEW. Apoi, așa cum ați făcut în capitolul precedent, trebuie să creați o buclă While ce va conține toate elementele pe care le vom folosi pentru a interacționa cu placa.

  2. După cum ați făcut în capitolul precedent, adăugați un element de inițializare înaintea buclei While Loop și un element de stop după buclă. De asemenea, adăugați un element simplu de manevrare a erorilor (error-handling) după buclă.

  3. Vom avea nevoie de două elemente în interiorul buclei While: unul pentru a citi datele de la senzorul TMP36 și unul pentru a citi datele de la fotocelulă. Din fericire, pentru noi, există deja un element pentru senzorul TMP36 din caseta de instrumente LINX; acest element va calcula automat temperatura bazată pe datele măsurate de la senzor.

  4. Veți găsi acest element în submeniul Sensors din interiorul funcțiilor LINX.

  5. Pentru fotocelulă, plasați pur și simplu o casetă Analog Read în buclă. Veți găsi această casetă în interiorul funcțiilor LINX; o puteți accesa navigând la Peripherals | Analog | Read.

Writing the LabVIEW program

6. Apoi, trebuie să conectăm diferitele blocuri împreună. Pentru a face acest lucru, efectuați pașii:

  • Mai întâi, conectați intrările și ieșirile error împreună, pornind de la stânga cu elementul de inițializare; conectați ieșirea error de la acest element la intrarea elementului următor și așa mai departe. După aceea, faceți același lucru cu pinii de resurse LINX, care reprezintă firul superior în următoarea imagine de ecran:

Writing the LabVIEW program
  • Următorul pas este să creați comenzi pentru a seta parametrii elementelor. Pentru elementul de inițializare, trebuie să creați un control Serial Port pentru a seta portul serial corect corespunzător plăcii dvs. Arduino. Pentru a face acest lucru, faceți clic dreapta pe pinul de intrare al portului serial și apoi mergeți la Create | Control.

  • Apoi faceți același lucru pentru a crea comenzi pentru pinii elementului TMP36 și a elementului Analog Read. De asemenea, denumiți aceste comenzi astfel încât să știți la ce element sunt ele conectate.

  • În cele din urmă, conectați condiția finală a buclei While (cercul roșu din colțul din dreapta jos) la firul error galben.

Writing the LabVIEW program
  • Putem crea acum ieșirea celor două elemente centrale din programul nostru. Pentru a face acest lucru, faceți clic dreapta pe fiecare PIN de ieșire al elementului și apoi du-te la Create|Indicator. De asemenea, denumiți fiecare ieșire astfel încât să știm ce măsurătoare este afișată de fiecare indicator.

Am terminat cu Diagrama bloc în acest moment. Acum putem testa programul prin revenirea la Panoul frontal. Veți vedea că aveți mai multe elemente pe Panoul frontal care corespund comenzilor și indicatoarelor pe care le-am creat mai devreme.

Puteți organiza elementele în două categorii: comenzile pe partea stângă și indicatoarele pe partea dreaptă.

Writing the LabVIEW program

Acum, setați comenzile astfel încât să corespundă proiectului nostru. Pentru aceasta, urmați pașii de mai jos:

  1. Mai întâi, selectați portul serial dorit din combobox Serial Port corespunzător plăcii dvs. Arduino; acest lucru ar trebui să fie propus automat de software-ul LabVIEW. În cazul meu, a fost COM4.

  2. De asemenea, setați pinul analogic la care este conectată fotocelula (0) și faceți același lucru pentru senzorul TMP36 (1).

  3. Apoi, puteți rula programul făcând clic pe săgeata mică de pe bara de instrumente. Veți vedea că măsurătorile apar imediat pe Panoul frontal:

Writing the LabVIEW program

Cum puteți vedea în captura de ecran precedent, măsurarea temperaturii este detectată imediat: 20,8 grade Celsius. Totuși, ne putem întreba despre valoarea generată de senzorul de nivel de lumină.

Acesta corespunde tensiunii măsurate pe pinul analogic de pe placa Arduino. Într-adevăr, dacă vă jucați cu mâna peste senzor, veți observa că valoarea nivelului de lumină trece de la 0 (întuneric complet) la 5 (strălucire puternică asupra senzorului). Dacă valoarea variază în funcție de nivelul luminii ambientale, înseamnă că senzorul funcționează corect.

Actualizarea interfeței

În acest stadiu, știm că avem doi senzori care funcționează și că au fost interfațați corect cu interfața LabVIEW. Dar, putem face și mai bine; pentru moment, pur și simplu avem un ecran text al măsurătorilor, care nu este elegant să fie citit.

De asemenea, măsurarea nivelului de lumină variază de la 0 la 5, ceea ce nu înseamnă nimic pentru cineva care va privi interfața pentru prima dată.

Prin urmare, vom modifica ușor interfața. Vom adăuga un indicator de temperatură pentru a afișa datele provenite de la senzorul de temperatură și vom modifica rezultatul citirii de la celula foto pentru a afișa măsurarea de la 0 (fără lumină) la 100% (luminozitatea maximă).

Mai întâi trebuie să plasăm diferitele elemente de afișare. Pentru aceasta, efectuați următorii pași:

  1. start cu panoul frontal. Puteți utiliza un indicator de temperatură pentru temperatură și un indicator de cursor simplu pentru Nivelul de Lumină. Veți găsi atât în submeniul Indicatori al LabVIEW. După aceea, plasați-le pur și simplu în partea dreaptă a interfeței și ștergeți ceilalți indicatori utilizați anterior.

  2. De asemenea, denumiți noii indicatori în mod corespunzător, astfel încât să știm la ce element trebuie să le conectăm mai târziu.

Upgrading the interface

Apoi, este timpul să reveniți la Diagrama bloc pentru a conecta noile elemente pe care tocmai le-am adăugat în Panoul frontal. Pentru elementul de temperatură, este ușor: puteți conecta pur și simplu termometrul la pinul de ieșire TMP36.

Upgrading the interface

Pentru nivelul de lumină, vom face modificări ușor mai complicate. Vom împărți valoarea măsurată după elementul Analog Read cu 5, obținând astfel o valoare de ieșire între 0 și 1. Apoi, vom înmulți această valoare cu 100, pentru a ajunge la o valoare care variază de la 0 la 100 procente din nivelul de lumină ambientală.

Pentru aceasta, efectuați următorii pași:

  • Primul pas este acela de a plasa două elemente corespunzătoare celor două operații matematice pe care le dorim să le facem: un operator de divizare și un operator multiplicare. Puteți găsi amândouă în paleta Functions a LabVIEW. Pur și simplu plasați-le aproape de elementul Analog Read în programul dvs.

Upgrading the interface
  • După aceea, faceți clic dreapta pe una dintre intrările fiecărui element operator și mergeți la Create | Constant pentru a crea o intrare constantă pentru fiecare bloc. Adăugați o valoare 5 pentru blocul de divizare și adăugați o valoare 100 pentru blocul de înmulțire.

  • În cele din urmă, conectați ieșirea elementului Analog Read la intrarea blocului de divizare, ieșirea acestui bloc la intrarea blocului de multiplicare și ieșirea blocului de multiplicare la intrarea indicatorului Light Level.

Upgrading the interface

Acum puteți reveni la Panoul frontal pentru a vedea interfața nouă în acțiune. Puteți rula programul din nou, făcând clic pe săgeata mică de pe bara de instrumente.

Upgrading the interface

Ar trebui să observați imediat că Temperature indică acum în dreapta iar Light Level se schimbă imediat pe cursor, în funcție de modul în care acoperiți senzorul cu mâna.