Sisukord:
- Samm: mida vajate:
- Samm: ühendage Arduino DHT11 -ga
- Samm: laadige alla Arduino IDE
- Samm: ühendage Arduino arvutiga
- Samm: laadige kogu sisse
- Samm: hankige Arduino kood
- Samm: laadige kood Arduinole
- Samm: laadige alla ja installige töötlemine
- 9. samm: koodi töötlemine
- Samm: koodifailide töötlemine
- Samm 11: Fond töötlemisel
- 12. samm: viimistlemine
- 13. samm: tõrkeotsing
Video: Temperatuuri ja niiskuse kuvamine ning andmete kogumine Arduino ja töötlemisega: 13 sammu (piltidega)
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
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:
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
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 ja installige see arvutisse
www.arduino.cc/en/Main/Software
Samm: ü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 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
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
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
- Raamatukogu "DHTlib" ei kopeeritud õigesti
- COM -port pole õigesti seadistatud
- Andur ei olnud õigesti ühendatud
- 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
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
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
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
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
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:
M5STACK Temperatuuri, niiskuse ja rõhu kuvamine M5StickC ESP32 -l Visuino abil - lihtne teha: 6 sammu
M5STACK Temperatuuri, niiskuse ja rõhu kuvamine M5StickC ESP32 -l Visuino abil - lihtne teha: Selles õpetuses õpime, kuidas programmeerida ESP32 M5Stack StickC koos Arduino IDE ja Visuinoga temperatuuri, niiskuse ja rõhu kuvamiseks ENV anduri abil (DHT12, BMP280, BMM150)
EAL - Tööstus 4.0 GPS -andmete kogumine Rc -autol: 4 sammu
EAL - Tööstus 4.0 GPS -i andmekogumine Rc Car -is: Selles juhendis räägime sellest, kuidas seadistame RC -autole GPS -mooduli ja postitame kogutud andmed veebilehele, et neid oleks lihtne jälgida. Oleme eelnevalt teinud juhendi selle kohta, kuidas me oma RC auto tegime, mille leiate siit. See kasutab th
Temperatuuri/niiskuse andmete analüüs Ubidotide ja Google'i arvutustabelite abil: 6 sammu
Temperatuuri/niiskuse andmete analüüs Ubidotite ja Google'i arvutustabelite abil: selles õpetuses mõõdame temperatuuri ja niiskuse anduri abil erinevaid temperatuuri ja niiskuse andmeid. Samuti saate teada, kuidas neid andmeid Ubidotsile saata. Nii et saate seda erinevate rakenduste jaoks igal pool analüüsida. Ka saatmisega
ThingSpeak, IFTTT, temperatuuri ja niiskuse andur ning Google'i leht: 8 sammu
ThingSpeak, IFTTT, temperatuuri ja niiskuse andur ja Google'i leht: Selles projektis mõõdame temperatuuri ja niiskust, kasutades NCD temperatuuri ja niiskuse andurit, ESP32 ja ThingSpeak. Samuti saadame Google Sheetile erinevad temperatuuri ja niiskuse näidud, kasutades ThingSpeaki ja IFTTT -d, et analüüsida se
IoT pikaajaline traadita temperatuuri ja niiskuse anduri andmete saatmine Google'i lehele: 39 sammu
IoT pika vahemiku traadita temperatuuri ja niiskuse anduri andmete saatmine Google'i lehele: me kasutame siin NCD temperatuuri ja niiskuse andurit, kuid sammud jäävad kõigi ncd -toodete jaoks võrdseks, nii et kui teil on muid ncd traadita andureid, vaadake neid tasuta kõrvalt. Selle teksti peatamise abil peate