Përmbajtje:

Arduino Datalogger: 8 hapa (me fotografi)
Arduino Datalogger: 8 hapa (me fotografi)

Video: Arduino Datalogger: 8 hapa (me fotografi)

Video: Arduino Datalogger: 8 hapa (me fotografi)
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Nëntor
Anonim
Arduino Datalogger
Arduino Datalogger
Arduino Datalogger
Arduino Datalogger

Në këtë tutorial, ne do të bëjmë një regjistrues të thjeshtë të të dhënave duke përdorur Arduino. Çështja është të mësoni bazat e përdorimit të Arduino për të kapur informacion dhe për të printuar në terminal. Ne mund ta përdorim këtë konfigurim bazë për të përfunduar një sërë detyrash.

Per te filluar:

Ju do të keni nevojë për një llogari Tinkercad (www.tinkercad.com). Drejtohuni dhe regjistrohuni me emailin ose llogarinë tuaj të mediave sociale.

Identifikimi ju çon në Pultin e Tinkercad. Klikoni "Qarqet" në të majtë dhe zgjidhni "Krijo një qark të ri". Le të fillojmë!

Ju mund ta gjeni skedarin e plotë në Qarqet TInkercad - Faleminderit që e kontrolluat!

Hapi 1: Shtoni disa përbërës

Shtoni disa përbërës
Shtoni disa përbërës
Shtoni disa përbërës
Shtoni disa përbërës
Shtoni disa përbërës
Shtoni disa përbërës

Ju do të keni nevojë për disa përbërës bazë. Kjo perfshin:

  • Bordi Arduino
  • Breadboard

Shtojini ato duke i kërkuar dhe klikuar duke i tërhequr në zonën e mesme.

Vendoseni tabelën e bukës mbi Arduino. E bën më të lehtë shikimin e lidhjeve më vonë.

Hapi 2: Një Shënim Rreth Pllakave të Breadit

Një Shënim Rreth Pllakave të Breadit
Një Shënim Rreth Pllakave të Breadit

Një tabelë buke është një pajisje super e dobishme për prototipimin e shpejtë. Ne e përdorim atë për të lidhur përbërësit. Disa gjëra për t’u vënë në dukje.

  1. Pikat janë të lidhura vertikalisht, por vija në mes e ndan këtë lidhje nga kolonat e sipërme dhe të poshtme.
  2. Kolonat nuk janë të lidhura nga e majta në të djathtë, si në të gjithë rreshtin. Kjo do të thotë që të gjithë përbërësit duhet të lidhen përgjatë kolonave në vend që t'i zbresin ato vertikalisht.
  3. Nëse keni nevojë të përdorni butona ose çelsin, lidhini ato përgjatë pushimit në mes. Ne do ta vizitojmë këtë në një tutorial të mëvonshëm.

Hapi 3: Shtoni dy sensorë

Shtoni dy sensorë
Shtoni dy sensorë

Dy sensorët që ne po përdorim janë një sensor fotosensitiv dhe një sensor i temperaturës.

Këta sensorë vlerësojnë dritën dhe temperaturën. Ne përdorim Arduino për të lexuar vlerën dhe për ta shfaqur atë në monitorin Serial në Arduino.

Kërkoni dhe shtoni dy sensorë. Sigurohuni që ato janë të vendosura përgjatë kolonave në tabelën e bukës. Vendosni hapësirë të mjaftueshme midis tyre për ta bërë më të lehtë shikimin e tyre.

Hapi 4: Sensori fotosensitiv

Sensor fotosensitiv
Sensor fotosensitiv
Sensor fotosensitiv
Sensor fotosensitiv
Sensor fotosensitiv
Sensor fotosensitiv
Sensor fotosensitiv
Sensor fotosensitiv
  1. Për sensorin fotosensitiv, shtoni një tel nga kunja 5V në Arduino në të njëjtën kolonë si këmba e djathtë në pjesën në pjatën e bukës. Ndryshoni ngjyrën e telit në të kuqe.
  2. Lidhni këmbën e majtë përmes kunjit në të njëjtën kolonë me kunjin A0 (A-zero) në Arduino. Kjo është kunja analoge, të cilën do ta përdorim për të lexuar vlerën nga sensori. Ngjyroseni këtë tel të verdhë ose diçka tjetër përveç të kuqes ose të zezës.
  3. Vendosni një rezistencë (kërko dhe kliko-tërhiq) në tabelë. Kjo kompleton qarkun dhe mbron sensorin dhe kunjin.

    • Kthejeni atë në mënyrë që të kalojë nëpër kolona.
    • Lidhni njërën këmbë me kolonën e këmbës së djathtë në tabelën e bukës
    • Vendosni një tel nga skaji tjetër i rezistencës në tokë

      Ndryshoni ngjyrën e telit në të zezë

  4. Kontrolloni dy herë të gjitha lidhjet. Nëse diçka nuk është në vendin e duhur, kjo nuk do të funksionojë si duhet.

Hapi 5: Filloni Kodin

Filloni Kodin
Filloni Kodin
Filloni Kodin
Filloni Kodin
Filloni Kodin
Filloni Kodin

Le të shikojmë kodin për këtë përbërës.

Së pari, shikoni imazhin e tretë në këtë hap. Ai përmban një kod me dy funksione:

void setup ()

lak void ()

Në C ++, të gjitha funksionet japin llojin e tyre të kthimit, pastaj emrin, pastaj dy kllapat e rrumbullakëta që mund të përdoren për të kaluar në argumente, zakonisht si ndryshore. Në këtë rast, lloji i kthimit është i pavlefshëm, ose asgjë. Emri është i konfiguruar dhe funksioni nuk merr argumente.

Funksioni i konfigurimit funksionon një herë kur fillon Arduino (kur e lidhni ose lidhni bateritë).

Funksioni lak shkon në një lak konstant nga milisekonda funksioni i konfigurimit përfundon.

Çdo gjë që vendosni në funksionin e lakut do të funksionojë kur Arduino të funksionojë. Çdo gjë jashtë që do të funksionojë vetëm kur thirret. Sikur të përcaktonim dhe thërrisnim një funksion tjetër jashtë lakut.

Detyrë

Hapni panelin e Kodit me butonin në Tinkercad. Ndryshoni listën zbritëse Blocks në Tekst. Pajtohuni me kutinë e paralajmërimit që shfaqet. Tani, fshini gjithçka që shihni përveç tekstit në imazhin e tretë në këtë hap.

Variablat

Për të filluar, ne duhet të caktojmë disa ndryshore në mënyrë që ta bëjmë kodin tonë me të vërtetë efikas.

Variablat janë si kova që mund të mbajnë vetëm një objekt (C ++ është ajo që ne e quajmë objekt-orientuar). Po, ne kemi vargje, por këto janë ndryshore të veçanta dhe do të flasim për to më vonë. Kur caktojmë një ndryshore, duhet t'i tregojmë se çfarë lloji është, pastaj t'i japim një vlerë. Duket kështu:

int someVar = A0;

Pra, ne caktuam një ndryshore dhe i dhamë llojin int. Int është një numër i plotë ose një numër i plotë.

"Por ju nuk keni përdorur një numër të plotë!", Unë ju dëgjoj të thoni. Kjo është e vërtetë.

Arduino bën diçka të veçantë për ne, kështu që ne mund të përdorim A0 si një numër të plotë, sepse në një skedar tjetër përcakton A0 si një numër të plotë, kështu që ne mund të përdorim konstantën A0 për t'iu referuar këtij numri të plotë pa pasur nevojë të dimë se çfarë është. Nëse thjesht shtypim 0, do t'i referoheshim pinit dixhital në pozicionin 0, i cili nuk do të funksiononte.

Pra, për kodin tonë do të shkruajmë një ndryshore për sensorin që kemi bashkangjitur. Ndërsa ju rekomandoj t'i jepni një emër të thjeshtë, kjo varet nga ju.

Kodi juaj duhet të duket kështu:

int lightSensor = A0;

void setup () {} void loop () {}

Tani, le t'i tregojmë Arduino se si ta trajtojë sensorin në atë kunj. Ne do të ekzekutojmë një funksion brenda konfigurimit për të vendosur modalitetin pin dhe t'i tregojmë Arduino se ku ta kërkojë.

int lightSensor = A0;

void setup () {pinMode (lightSensor, INPUT); } void loop () {}

funksioni pinMode i thotë Arduino se kunja (A0) do të përdoret si një kunj INPUT. Vini re devenCaseUsed (shiko çdo shkronjë të parë është e madhe, pasi në të ka gunga, pra… deve…!) Për variablat dhe emrat e funksioneve. Kjo është një konventë dhe është mirë të mësohesh.

Së fundi, le të përdorim funksionin analogRead për të marrë disa të dhëna.

int lightSensor = A0;

void setup () {pinMode (lightSensor, INPUT); } void loop () {int reading = analogRead (lightSensor); }

Do të shihni që ne e ruajtëm leximin në një ndryshore. Kjo është e rëndësishme pasi duhet ta printojmë. Le të përdorim bibliotekën Seriale (një bibliotekë është kodi që mund t'i shtojmë kodit tonë për t'i bërë gjërat më të shpejta për t'i shkruar, vetëm duke e quajtur atë sipas përcaktimit të tij) për ta printuar këtë në monitorin serik.

int lightSensor = A0;

void setup () {// Cakto mënyrat e pin pinMode (lightSensor, INPUT); // Shtoni bibliotekën serike Serial.begin (9600); } void loop () {// Lexo sensorin int leximi = analogRead (lightSensor); // Shtypni vlerën në monitor Serial.print ("Light:"); Serial.println (duke lexuar); // vononi lakin tjetër me 3 sekonda vonesë (3000); }

Disa gjëra të reja! Së pari, do të shihni këto:

// Ky është një koment

Ne përdorim komente për t'u treguar njerëzve të tjerë se çfarë po bën kodi ynë. Ju duhet t'i përdorni këto shpesh. Përpiluesi nuk do t'i lexojë këto dhe do t'i shndërrojë ato në kod.

Tani, ne gjithashtu shtuam bibliotekën Seriale me linjën

Serial.fillo (9600)

Ky është një shembull i një funksioni që merr një argument. Ju e quajtët bibliotekën Serial dhe më pas ekzekutoi një funksion (ne e dimë se është një funksion për shkak të kllapave të rrumbullakëta) dhe kaluat në një numër të plotë si argument, duke vendosur që funksioni Serial të funksionojë në 9600 baud. Mos u shqetësoni pse - thjesht e dini që funksionon, tani për tani.

Gjëja tjetër që bëmë ishte printimi në monitorin serik. Ne përdorim dy funksione:

// Ky printon në serial pa ndërprerje rreshti (një hyrje në fund)

Serial.print ("Drita:"); // Ky vendos ndërprerjen e rreshtit kështu që sa herë që lexojmë dhe shkruajmë, ai shkon në një rresht të ri Serial.println (lexim);

Ajo që është e rëndësishme të shihet është se secila ka një qëllim të veçantë. Sigurohuni që vargjet tuaja përdorin shenja të kuotimit të dyfishtë dhe se lini hapësirën pas zorrës së trashë. Kjo ndihmon lexueshmërinë për përdoruesit.

Më në fund, ne përdorëm funksionin e vonesës, për të ngadalësuar lakin tonë dhe për ta bërë atë të lexohet vetëm një herë në tre sekonda. Kjo është shkruar në mijëra sekonda. Ndryshojeni atë për të lexuar vetëm një herë në 5 sekonda.

Shkëlqyeshëm! Vazhdojmë!

Hapi 6: Simulimi

Simulim
Simulim
Simulim
Simulim
Simulim
Simulim

Gjithmonë kontrolloni që gjërat funksionojnë duke ekzekutuar simulimin. Për këtë qark, do t'ju duhet gjithashtu të hapni imituesin për të kontrolluar se funksionon dhe kontrolloni vlerat tuaja.

Filloni simulimin dhe kontrolloni monitorin serik. Ndryshoni vlerën e sensorit të dritës duke e klikuar atë dhe duke ndryshuar vlerën duke përdorur rrëshqitësin. Ju gjithashtu duhet të shihni ndryshimin e vlerës në monitorin serik. Nëse jo, ose nëse shtypni butonin Start Simulation merrni gabime, kthehuni me kujdes dhe kontrolloni të gjithë kodin tuaj.

  • Përqendrohuni në linjat e treguara në dritaren e kuqe të korrigjimit që do t'ju paraqiten.
  • Nëse kodi juaj është i saktë dhe simulimi ende nuk funksionon, kontrolloni instalimet elektrike.
  • Ringarko faqen - mund të kesh një gabim të palidhur me sistemin/serverin.
  • Shkundni grushtin tuaj në kompjuter dhe kontrolloni përsëri. Të gjithë programuesit e bëjnë këtë. Te gjitha. E Koha.

Hapi 7: Lidhni sensorin e Temp

Wire Up the Temp Sensor
Wire Up the Temp Sensor

Unë do të supozoj se jeni në rrugën e duhur tani. Vazhdoni dhe lidhni sensorin e temperaturës siç sugjeron fotografia. Vini re vendosjen e telave 5V dhe GND në të njëjtën hapësirë me ato për dritën. Kjo është ne rregull. Likeshtë si një qark paralel dhe nuk do të shkaktojë probleme në imituesin. Në një qark aktual, duhet të përdorni një dërrasë ose mburojë për të siguruar menaxhim dhe lidhje më të mirë të energjisë.

Tani, le të azhurnojmë kodin.

Kodi i sensorit të temperaturës

Kjo është pak më e ndërlikuar, por vetëm sepse duhet të bëjmë matematikë për ta kthyer leximin. Nuk eshte shume keq.

int lightSensor = A0;

int tempSensor = A1; void setup () {// Cakto mënyrat e pin pinMode (lightSensor, INPUT); // Shtoni bibliotekën serike Serial.begin (9600); } void loop () {// Sensori i temperaturës // Krijimi i dy variablave në një linjë - oh efikasitet! // Float var për të ruajtur një tension dhjetor të notimit, gradë C; // Lexoni vlerën e kunjit dhe konvertojeni atë në një lexim nga 0 - 5 // Në thelb tension = (5/1023 = 0.004882814); tension = (analogRead (tempSensor) * 0.004882814); // Shndërrohuni në Shkallë C gradë C = (tension - 0.5) * 100; // Shtyp në monitorin serik Serial.print ("Temp:"); Serial.print (gradëC); Serial.println ("oC"); // Lexoni sensorin int leximi = analogRead (lightSensor); // Shtypni vlerën në monitor Serial.print ("Light:"); Serial.println (duke lexuar); // vononi lakin tjetër me 3 sekonda vonesë (3000); }

Kam bërë disa azhurnime në kod. Le t'i kalojmë ato individualisht.

Së pari, shtova rreshtin

int tempSensor = A1;

Ashtu si lightSensor, më duhet të ruaj vlerën në një ndryshore për ta bërë më të lehtë më vonë. Nëse do të më duhej të ndryshoja vendndodhjen e këtij sensori (si rindërtimi i tabelës), atëherë më duhet të ndryshoj vetëm një rresht të kodit, jo të kërkoj në të gjithë bazën e kodit për të ndryshuar A0 ose A1, etj.

Pastaj, shtuam një rresht për të ruajtur leximin dhe temperaturën në një noton. Shënoni dy ndryshore në një rresht.

tensioni notues, gradë C;

Kjo është vërtet e dobishme sepse zvogëlon numrin e rreshtave që duhet të shkruaj dhe shpejton kodin. Sidoqoftë, mund të jetë më e vështirë të gjesh gabime.

Tani, ne do të bëjmë leximin dhe do ta ruajmë, pastaj do ta konvertojmë në vlerën tonë të daljes.

tension = (analogRead (tempSensor) * 0.004882814);

gradë C = (tension - 0.5) * 100;

Ato dy rreshta duken të vështira, por në të parën ne po marrim leximin dhe e shumëzojmë me 0.004 … sepse konverton 1023 (leximi analog e kthen këtë vlerë) në një lexim nga 5.

Rreshti i dytë atje e shumëzon atë lexim me 100 për të lëvizur pikën dhjetore. Kjo na jep temperaturën. I zoti!

Hapi 8: Testimi dhe Kontrolli

Testimi dhe Kontrolli
Testimi dhe Kontrolli

Të gjitha gjërat që do të planifikohen, duhet të keni një qark pune. Provoni duke ekzekutuar simulimin dhe duke përdorur monitorin serik. Nëse keni gabime, kontrolloni, kontrolloni përsëri dhe tundni grushtin.

Ja dolët? Ndani dhe na tregoni historinë tuaj!

Ky është qarku i fundit i ngulitur për ju, kështu që ju mund të luani/testoni krijimin përfundimtar. Faleminderit për përfundimin e mësimit!

Recommended: