Përmbajtje:
- Hapi 1: Shtoni disa përbërës
- Hapi 2: Një Shënim Rreth Pllakave të Breadit
- Hapi 3: Shtoni dy sensorë
- Hapi 4: Sensori fotosensitiv
- Hapi 5: Filloni Kodin
- Hapi 6: Simulimi
- Hapi 7: Lidhni sensorin e Temp
- Hapi 8: Testimi dhe Kontrolli
Video: Arduino Datalogger: 8 hapa (me fotografi)
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:20
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
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ë 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.
- Pikat janë të lidhura vertikalisht, por vija në mes e ndan këtë lidhje nga kolonat e sipërme dhe të poshtme.
- 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.
- 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ë
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
- 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.
- 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.
-
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ë
- 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
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
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
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
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:
Spërkat! Fotografi me pika të ujit: 10 hapa (me fotografi)
Spërkat! Uji Droplet Photography: Unë kam xhiruar pika uji për një kohë tani …. që nga viti 2017. Ende mbaj mend se sa i emocionuar isha kur mora pika uji që kërcejnë nga sipërfaqja me konfigurimin tim të parë që bëra me Littlebits … Me këto konfigurimet (Marku I dhe Marku II) u frymëzova
GPS Para Norma (Datalogger EEPROM): 5 hapa
GPS Para Norma (Datalogger EEPROM): Datalog regjistrues i thjeshtë i kafshëve shtëpiake i bazuar në regjistrimin arduino dhe EEPROM ================================ ======================= Sensillo datalogger GPS për mascotas basado dhe arduino dhe grabacion dhe kujtime EEPROM
Arduino Datalogger me RTC, Nokia LCD dhe Kodues: 4 hapa
Arduino Datalogger Me RTC, Nokia LCD dhe Kodues: Pjesë: Arduino Nano ose Arduino Pro Mini Nokia 5110 84x48 LCD DHT11 sensor temperatura/lagështie DS1307 ose modul DS3231 RTC me kodues të integruar AT24C32 EEPROM me 3 kondensatorë debonues dhe en
Si të çmontoni një kompjuter me hapa të thjeshtë dhe fotografi: 13 hapa (me fotografi)
Si të çmontoni një kompjuter me hapa dhe fotografi të lehta: Ky është një udhëzim se si të çmontoni një kompjuter. Shumica e përbërësve bazë janë modularë dhe hiqen lehtë. Sidoqoftë, është e rëndësishme që të jeni të organizuar në lidhje me të. Kjo do t'ju ndihmojë të mos humbni pjesë, dhe gjithashtu në bërjen e ri -montimit
Raspberry Pi Zero W Datalogger: 8 hapa (me fotografi)
Raspberry Pi Zero W Datalogger: Duke përdorur një Raspberry Pi Zero W, ju mund të bëni një regjistrues të dhënash të lirë dhe të lehtë për t’u përdorur, i cili ose mund të lidhet me një rrjet wifi lokal, ose të shërbejë si një pikë aksesi në fushë e cila ju lejon të shkarkoni të dhëna pa tel me smartphone tuaj. Unë prezantoj