Sisukord:

Temperatuuri ja niiskuse kuvamine ning andmete kogumine Arduino ja töötlemisega: 13 sammu (piltidega)
Temperatuuri ja niiskuse kuvamine ning andmete kogumine Arduino ja töötlemisega: 13 sammu (piltidega)

Video: Temperatuuri ja niiskuse kuvamine ning andmete kogumine Arduino ja töötlemisega: 13 sammu (piltidega)

Video: Temperatuuri ja niiskuse kuvamine ning andmete kogumine Arduino ja töötlemisega: 13 sammu (piltidega)
Video: Moes e-tindi ekraaniga Zigbee valgus-, temperatuuri- ja niiskusandur 2024, Juuli
Anonim
Temperatuuri ja niiskuse kuvamine ning andmete kogumine Arduino ja töötlemise abil
Temperatuuri ja niiskuse kuvamine ning andmete kogumine Arduino ja töötlemise abil

Sissejuhatus: see on projekt, mis kasutab Arduino tahvlit, andurit (DHT11), Windowsi arvutit ja töötlusprogrammi (tasuta allalaaditav), et kuvada temperatuur, niiskusandmed digitaalsel ja tulpdiagrammil, kuvada kellaaeg ja kuupäev ning loendada taimer programmi ajal ja salvestage kõik andmed.csv -vormingusse, kui programm on suletud.

Inspiratsioon:

Esiteks PEAN ütlema, et olen täiesti algaja ja olen sellest projektist palju õppinud. Seega proovin kirjutada selle juhendi nii, et see oleks algajale lugemiseks ja arusaadav.

Olin näinud erinevaid Arduino projekte temperatuuri ja niiskuse mõõtmiseks, kuid tahtsin programmi, mis:

1) Mõõdetud temperatuur ja niiskus

2) Kuvas andmed nii graafikus (valisin tulpdiagrammi) kui ka digitaalsel kujul

3) on kellafunktsioon

4) omab taimerit „Käivitusaeg”

5) salvestab need andmed.csv (excel) failivormingusse.

Sain inspiratsiooni Sowmith Mandadi, R-B ja aaakash3 loodud programmidest, kuid ükski neist ei olnud täpselt see, mida ma tahtsin. Nii õppisin ma mõnda põhikoodi kirjutama ja tegin, mida tahtsin.

Samm: mida vajate:

Mida vajate
Mida vajate
Mida vajate
Mida vajate

Osad ja materjalid:*Arvuti - kasutasin Windowsi operatsioonisüsteemi Windows 10

(Olen kindel, et Linuxit või Maci saaks kasutada, mul lihtsalt pole kumbagi, nii et ma ei kata, kuidas neid opsüsteeme kasutada)

*Arduino tahvel - kasutasin Arduino Uno tahvlit, kuid sobib iga USB -ga Arduino plaat

*USB -kaabel -USB A/B -kaabel -sama mis vana tüüpi "printerikaabel" (tavaliselt kaasas Arduino Board)

*DHT 11 temperatuuri /niiskuse andur- odav 4 kuni 8 dollarit

(Märkus: kasutasin 2 versiooni, mida kasutasin 3 -pin -versiooniga, 4 -pin -versioon nõuab leivaplaati ja 10K takistit, 3 -pin on trükkplaat, mis sisaldab 10K takisti)

*Ühendusjuhtmed

Duponti juhtmed (topeltotsad), kui ühendate 3 -kontaktilise DHT11 -ga ilma leivaplaadita

Tavalised hüppaja M/F juhtmed (üks ots isane üks ots naissoost) ja M/M hüppaja juhtmed (mõlemad otsad on ühendatud) 4 -kontaktilise DHT11 ühendamiseks - lisateabe saamiseks vt 2. sammu

*Arduino IDE - programm Arduino programmide (nn visandite) kirjutamiseks tasuta @

www.arduino.cc/en/Main/Software

*Töötlemine - programm töötlemisvisandite kirjutamiseks tasuta @

processing.org/download/

* "DHTLib" fail -raamatukogufail (see on fail, mis läheb Arduino IDE programmi kausta "Raamatukogu" alla, see tuleb lisada Arduino visandile, enne kui Arduino saab andmeid DHT11 -st lugeda -vt. faili ja juhiste allalaadimiseks 5. samm

Samm: ühendage Arduino DHT11 -ga

Ühendage Arduino DHT11 -ga
Ühendage Arduino DHT11 -ga
Ühendage Arduino DHT11 -ga
Ühendage Arduino DHT11 -ga
Ühendage Arduino DHT11 -ga
Ühendage Arduino DHT11 -ga
Ühendage Arduino DHT11 -ga
Ühendage Arduino DHT11 -ga

Esmalt määrake, milline DHT11 teil on

Ma kasutasin 3 tihvti, kuna sellel on juba vajalik 10K takisti.

Kui teil on 4 tihvti, vajate 10K takistit ja leivaplaati

Ühendage DHT11 Arduino plaadiga. See programm nõuab, et DHT 11 signaali tihvt tuleks ühendada Arduino tihvtiga #7, Pos (+) tihvt on ühendatud 5 V-ga Arduino ja Neg (-) GND-ga Arduino puhul.

Vaadake diagramme ja hõõrdumisskeeme

Samm: laadige alla Arduino IDE

Laadige alla Arduino IDE
Laadige alla Arduino IDE

Laadige alla Arduino IDE ja installige see arvutisse

www.arduino.cc/en/Main/Software

Samm: ühendage Arduino arvutiga

Ühendage Arduino arvutiga
Ühendage Arduino arvutiga

Installige kõigepealt Arduino IDE, millel on draiverid Arduino USB -ühenduse jaoks.

Ühendage Arduino arvutiga USB kaudu.

Oodake, kuni arvuti tuvastab Arduino plaadi ja installige kõik draiverid.

Avage IDE programm ja kontrollige jadaühendust.

Kui Arduino tahvlit ei kuvata tööriistade> pordis (punane ring), sulgege IDE ja avage uuesti.

* Oluline* kui IDE on avatud ja Arduino plaat on USB kaudu ühendatud. Arduino plaat peab olema ühendatud õige jadapordiga. Windowsi arvutites nimetatakse seda COM -portiks. Selleks tehke IDE -s menüü Tools> Port:> Serial ports. Nagu jooniselt näha, peab jadaport (punane ring) vastama IDE programmi paremas alanurgas olevale pordile (kollane ring).

Samm: laadige kogu sisse

Laadige raamatukogu
Laadige raamatukogu
Laadige raamatukogu
Laadige raamatukogu
Laadige raamatukogu
Laadige raamatukogu
Laadige raamatukogu
Laadige raamatukogu

Laadige DHT11 raamatukogu. See oli mulle alguses segane, kuid tegelikult üsna lihtne.

Laadige alla fail nimega “DHTLib” ja pakkige see lahti. Kopeerige lahtipakitud DHTLib -fail.

Selle raamatukogu viiteid leiate aadressilt:

playground.arduino.cc/Main/DHTLib

(Selle kirjutas Rob Tillaart teiste tööde põhjal)

Leidke oma arvutist Arduino kaust ja avage see. (See on kõikjal, kus IDE alla laadisite ja arvutisse installisite)

Vaata diagrammi

Leidke fail nimega „teegid” ja avage see ning kleepige kaust „DHTLib” faili „teegid”. Sulgege see ja taaskäivitage IDE.

Vaata diagrammi

Kui IDE on uuesti avatud, saate kontrollida, kas DHT -teek on installitud. Visand> Kaasa kogu.

Vaata diagrammi

Märkus Vahekaardil „teegi kaasamine” DHTLibil klõpsates paigutatakse raamatukogu Arduino koodi nimega „#include dht.h”.

Te ei pea seda tegema, sest see on juba järgmises etapis allalaaditavas koodis.

Samm: hankige Arduino kood

Hankige Arduino kood
Hankige Arduino kood

Laadige alla Temp_Hum_Instructable.zip fail ja pakkige see lahti. Avage Temp_Hum_Instructable.ino Arduino IDE abil.

Vaadake alternatiivselt järgmist koodi ja kopeerige ja kleepige või tippige täpselt Arduino IDE -sse:

#kaasake

dht DHT; #define DHT11PIN 7 // määrab tihvti 7 DHT11 signaaliühenduse tühisuse seadistamiseks () {Serial.begin (9600); // avab jada} void loop () {int chk = DHT.read11 (DHT11PIN); // loeb DHT11 Serial.print (DHT.temperature, 0); // prindib temp jadas Serial.print (","); // prindib koma jadana Serial.print (DHT.niiskus, 0); // prindib niiskust jadana Serial.println (); // kelgu tagastamise viivitus (2000); // oodake 2 sekundit}

Kui olete lõpetanud, peaks see välja nägema nagu ülaltoodud skeem

Samm: laadige kood Arduinole

Laadige kood Arduinole
Laadige kood Arduinole
Laadige kood Arduinole
Laadige kood Arduinole
Laadige kood Arduinole
Laadige kood Arduinole
Laadige kood Arduinole
Laadige kood Arduinole

Esmalt salvestage visand asukohta ja nimega, mida mäletate, näiteks: Temp_Hum.

Järgmisena peate visandi laadima Arduino tahvlile, vajutades paremale suunatud noole nuppu (üleslaadimine).

Vaata diagrammi

Selleks kulub mõni sekund; näete paremas alanurgas edenemisriba.

Siis näete: Valmis sõnumi üleslaadimine vasakus alanurgas ja valge tekst IDE allosas, mis räägib teile mälu kohta

Vaata diagrammi

Kui saate veakoodi (oranž tekst IDE allosas), peaks see olema üks järgmistest

  1. Raamatukogu "DHTlib" ei kopeeritud õigesti
  2. COM -port pole õigesti seadistatud
  3. Andur ei olnud õigesti ühendatud
  4. Kood ei olnud IDE -sse õigesti laaditud. Oranži teksti saab kerida ja see annab aimugi, mis on valesti. Minge tagasi ja kontrollige, kas see on ilmselt lihtne viga.

Kui see on tehtud, vaadake hoolikalt oma Arduino tahvlit. Iga paari sekundi järel vilgub väike LED tähtede “TX” kõrval. See on Arduino, kes saadab teabe arvutisse tagasi. Selle kontrollimiseks klõpsake väikese suurendusklaasi sümbolil IDE paremas ülanurgas.

Vaata diagrammi

See avab jadamonitori ja kuvab komaga eraldatud temperatuuri ja niiskuse andmed. Pange tähele, et temperatuuriandmed on loetletud Celsiuse järgi. See on OK, me teisendame Fahrenheiti järgi hiljem (või mitte, kui valisite).

Vaata diagrammi

Seejärel sulgege jadamonitor ja seejärel IDE. (Kas sa mäletasid seda salvestada, kas pole?). Nüüd vaadake uuesti Arduino tahvlit (ärge eraldage seda USB -st, kus see saab voolu, ja saatke andmeid arvuti jadaporti). Kas see ikka vilgub? Jah, suurepärane. Kui programm on Arduinole laaditud, töötab see seni, kuni sellel on jõudu.

Märkus koodi kohta: kui vaatate Arduino koodi, mis algab “void loop ();”. Järgmised 5 koodirida käsivad Arduino'l lugeda DHT -st andmeid ja printida need komaga eraldatud jadasiini. Järgmine rida "viivitus (2000);" käsib Arduino'l oodata 2 sekundit (2000 millisekundit), nii et andmed võetakse vastu iga 2 sekundi järel. Seejärel läheb see tagasi "void loop ();" - käsk, mis käsib Arduino'l seda uuesti teha. Kui viivitusrea väärtust muudetakse, muutub andmete vastuvõtmise sagedus. Näide: muutmine väärtuseks (600000) kuni 10 minutit (600000 millisekundit = 10 minutit). Andmete vastuvõtmine iga 2 sekundi tagant annab palju andmeid, nii et nüüd teate, kuidas andmete lugemise sagedust muuta. Pidage meeles, kui muudate väärtust hiljem peate uue programmi üles laadima.

OK, istuge maha ja hingake, kui olete enam kui poolel teel. Jah !!

Samm: laadige alla ja installige töötlemine

Laadige alla ja installige töötlemine
Laadige alla ja installige töötlemine
Laadige alla ja installige töötlemine
Laadige alla ja installige töötlemine

processing.org/download/

Päris otse valige programm, mis vastab teie arvutile Windowsi 64 -bitiste ja 32 -bitiste jaoks. Kui te ei tea, avage oma arvutis juhtpaneel (ikoonivaade, mitte kategooriavaade) ja minge süsteemi, mis kuvatakse seal.

Vaata diagrammi

Laadige alla ja installige programm.

Töötlemise esmakordsel avamisel ja käivitamisel kuvatakse tõenäoliselt Java turvasõnum. Privaatvõrkude jaoks klõpsake "luba". Java on töötlemise (ja Arduino IDE) kasutatav arvutikeel. Huvitaval kombel pole mul Arduino IDE -ga kunagi turvasõnumit olnud, lihtsalt töötlemine.

9. samm: koodi töötlemine

Töötlemise kood
Töötlemise kood

Nüüd töötluskoodi jaoks OK.

See oli minu jaoks kõige keerulisem osa, aga ka kõige rohkem õppimisvõimalusi. Kui Arduino kood oli umbes 20 rida, on selle koodi põhikoodis +/- 270 rida ja klassides veel 70 + rida.

Nüüd peaksite kõigepealt küsima: "Mis on klassid?". Hea küsimus. See viitab objektorienteeritud programmeerimisele. Lühidalt öeldes toimub põhikoodis hunnik asju: ekraani suuruse ja värvi määramine, kell, taimer, kood, mis näitab kursori asukohta, kood andmete salvestamiseks.csv -faili ja paar rida mis tegelevad tulpdiagramme kuvava koodiga. Kui Arduino IDE -l oli kogu kood ühel lehel, siis sellel töötlemiskoodil on kolm vahelehte. Esimene on põhikood ja järgmised kaks on tulpdiagramme kuvav kood. (See kood on tegelikult salvestatud töötlemiskoodi kausta kolmes eraldi failis.) Eraldi vahekaarte nimetatakse klassideks ja need on määratletud ridades 48 ja 56 ning kuvatakse seejärel põhikoodi ridade 179-182 kaudu. Töötlusprogrammi kirjutanud inimesed nimetavad seda objektorienteeritud programmeerimiseks. (vt lühikirjeldust:

Põhimõtteliselt, mida selle koodi klassid (Recta1, Recta2) teevad, on ristkülikute loomine, mis liiguvad üles ja alla, lähtudes DHT11 -lt jada kaudu saadud andmetest. Mõelge vanamoodsele termomeetrile, mida kõrgemale elavhõbe läheb, seda kuumem see on, kuid seda tehakse andmetega, mitte elavhõbedaga. Tegelikult loovad klassid neli ristkülikut, kaks staatilist ristkülikut, mis tähistavad termomeetri tausta, ja kaks dünaamilist ristkülikut, mis reageerivad andmetele ja liiguvad üles ja alla. Lisaks ristkülikute teisaldamisele muudab kood dünaamilise ristküliku värvi ning temperatuuri ja niiskuse digitaalse ekraani värvi, lähtudes jada kaudu vastuvõetavatest andmetest.

Samm: koodifailide töötlemine

Vaid mõned põhitõed koodi töötlemisel:

Soovitan tungivalt lugeda Make: Getting Started with Processing, autorid Casey Reas ja Ben Fry, Processing asutajad.

processing.org/books/#reasfry2

Ma ei püüa selgitada kõiki töötlemise aspekte ega koodi töötlemiseks kirjutamist. Nagu ma varem ütlesin, olen algaja ja arvan, et on palju paremaid inimesi, kellelt õppida. Mõistan siiski minu kirjutatud koodi (katse -eksitus on head õpetajad).

1. Esimene peab sisaldama raamatukogusid (nagu Arduinos) ja deklareerima muutujad (read 1-25)

2. Seejärel seadistage ekraaniplaat (read 27-63)

3. Käivitage korduv osa koodist- ma mõtlen, et see koodi osa kordub seni, kuni programm töötab. Mäletate Arduino keeles „void loop ();” (6. samm). Töötlemisel on see nüüd „tühine viik ();” (Read 65–184)

4. Järgmine on andmete hankimine jadapordist ja nende määramine muutujatele (int, float, String)

int-

ujuk-

String-

(Read 185-245)

4. Viimane viis programmi sulgemiseks ja andmete salvestamiseks (read 246-271)

Ok: laadige alla fail Temp_Hum_F_3_2 (Fahrenheiti jaoks)

Või Temp_Hum_C_3_1 (Celsiuse järgi)

ja pakkige fail lahti. Ava töötlemisega.

Samm 11: Fond töötlemisel

Font töötlemisel
Font töötlemisel

Tähtis: juhtin teie tähelepanu ridadele 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // laadib andmetesse salvestatud fondi

kaust 37 textFont (font);

See fonditeek "SourceCodePro-Bold-48.vlw" on lisatud failide töötlemise allalaadimisse ja seda ei pea funktsionaalsuseks muutma.

Kuid fondi muutmiseks millekski muuks peate laadima uue fondi töötlemise visandisse JA asendama "SourceCodePro-Bold-48.vlw" uue fondiga.

. Õnneks on töötlemine teinud esimese osa väga lihtsaks.

Esmalt avage visand ja seejärel klõpsake:

Tööriistad> Loo font

see avab akna

Vaata diagrammi

Kerige alla soovitud uue fondini, klõpsake seda ja seejärel nuppu OK. Font on nüüd visandikausta laaditud.

Seejärel asendage tekst "SourceCodePro-Bold-48.vlw" uue fondi täpse nimega (sh.vlw-failivorming)

Kui seda ei tehta, ei laadita uus font koodi ja kood annab vigu (Täpselt nagu vead Arduino keeles- programmi allosas asuvas mustas kastis).

12. samm: viimistlemine

Lõpetamine
Lõpetamine
Lõpetamine
Lõpetamine
Lõpetamine
Lõpetamine
Lõpetamine
Lõpetamine

Töötlusprogrammi käivitamiseks klõpsake noolt, võite saada Java -hoiatuse. Klõpsake: Luba juurdepääs.

Vaata diagrammi

OK, kas programm töötas? Kui jah, siis saate sellise ekraani nagu skeemil.

(Ei? Vaadake tõrkeotsingut järgmises etapis)

Jah? Nüüd proovige hoida DHT11 suletud peopesas või asetada fööni sooja õhuvoolu alla. Numbrid peaksid muutuma. Jah? Suurepärane. see tähendab, et kõik töötab hästi.

Programmi sulgemiseks ja andmete salvestamiseks klõpsake kasti „Andmete sulgemiseks ja salvestamiseks klõpsake siin”.

Salvestatud andmete leidmiseks minge kausta Temp_Hum_F_3_1 või Temp_Hum_C_3_1 Processing (see peaks praeguseks juba olema võimalik ise leida), avage see ja leidke kaust Data. Avage see ja peaksite nägema.csv-faili, mis on nime saanud programmi sulgemise kuupäeva ja kellaaja järgi (näide 1-10-18--22-30-16.csv tähendab 10. jaanuari 2018 10:30:16). Avage see Exceli abil (või Open Office'i arvutustabeli ekvivalent). Peaksite nägema midagi diagrammi sarnast. Kuupäeva, kellaaja, tööaja, temperatuuri ja niiskuse veerud koos andmetega. Nüüd saate andmeid graafiliselt joonistada Exceli abil või mida iganes soovite sellega teha. (Märkus: kui vaatate esimest andmesisestust, siis pole temperatuuri ja niiskuse andmed õiged, see on normaalne ja on lihtsalt viga programmi esmakordsel käivitamisel)

OK jah !!!!!

Sa tegid seda

Kui teil on küsimusi, palun postitage ja ma annan endast parima, et vastata ja aidata.

Aitäh, et selle juurde jäite ja palju õnne. Loodan, et see on alles algus ….

Järgmine minu jaoks Bluetooth ja võib -olla Android …

13. samm: tõrkeotsing

Tõrkeotsing
Tõrkeotsing
Tõrkeotsing
Tõrkeotsing

Arduino probleemid

Kui kuvatakse veakood (oranž tekst IDE allosas), peaks see olema üks järgmistest. DHTlibi teeki ei kopeeritud õigesti

COM -port pole õigesti seadistatud

Andur ei olnud õigesti ühendatud

Kood ei olnud IDE -sse õigesti laaditud

Kui tundub, et kõik Arduino on korras, avage jadamonitor ja kontrollige, kas andmeid kuvatakse

Kui näete õigeid andmeid, tähendab see, et Arduino pool töötab. Pidage meeles, et enne töötlemise alustamist sulgege jadamonitor, kui seeriamonitor on avatud. Töötlemine ei saa andmeid lugeda.

Töötlemisprobleemid:

Need kuvatakse töötlusprogrammi alumises osas.

Kui kuvatakse veateade "fondi" kirjeldamisel, minge tagasi sammu 11 juurde ja laadige font kirjeldatud viisil.

Kui saate vea, mis näeb välja selline: Viga, serialEvent () keelamine COM4 null jaoks- lihtsalt taaskäivitage töötlemise visand, klõpsates noolel, nagu punktis 12

Kui saate vea, mis ütleb: Viga jadapordi avamisel- proovige muuta read 32-34 selliseks, kus "COM4" vastab teie Arduino visandi COM-pordile

myPort = newSerial (see, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // oodake, kuni seerial on andmeid

Soovitan: