Indholdsfortegnelse:

Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: 13 trin (med billeder)
Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: 13 trin (med billeder)

Video: Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: 13 trin (med billeder)

Video: Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: 13 trin (med billeder)
Video: Ultra:bit ep20 Fugtmåler 2 med Søjlediagram 2024, November
Anonim
Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling
Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling

Intro: Dette er et projekt, der bruger et Arduino -kort, en sensor (DHT11), en Windows -computer og et bearbejdningsprogram (et gratis downloadbart) til at vise temperatur, luftfugtighedsdata i digital og søjlediagram, vise tid og dato og køre en tælling up timer under programmet og registrer alle data i et.csv -format, når programmet lukkes.

Inspiration:

Først SKAL jeg sige, at jeg er en total nybegynder, og jeg har lært meget af dette projekt. Således forsøger jeg at skrive denne Instruktable for at blive læst og forstået af en total nybegynder.

Jeg havde set forskellige Arduino -projekter til måling af temperatur og fugtighed, men jeg ville have et program, der:

1) Målt temperatur og luftfugtighed

2) Viste dataene i både en graf (jeg valgte søjlediagram) og digital form

3) Har en urfunktion

4) Har en tæller “Run Time” timer

5) Gemmer disse data i et.csv (excel) filformat.

Jeg havde inspiration fra programmer skabt af Sowmith Mandadi, R-B og aaakash3, men ingen af disse var præcis, hvad jeg ville. Så jeg lærte at skrive en grundlæggende kode og lavede, hvad jeg ville.

Trin 1: Hvad skal du bruge:

Hvad du skal bruge
Hvad du skal bruge
Hvad du skal bruge
Hvad du skal bruge

Dele og materialer:*Computer - Jeg brugte en Windows -computer Windows 10 -operativsystem

(Jeg er sikker på, at Linux eller Mac kunne bruges, jeg har det bare ikke, så jeg vil ikke dække, hvordan jeg bruger disse operativsystemer)

*Arduino Board - Jeg brugte et Arduino Uno Board, men ethvert Arduino board med USB gør det

*USB -kabel -USB A/B -kabel -samme som gammel type "printerkabel" (leveres normalt med Arduino Board)

*DHT 11 Temperatur /fugtighedsføler- billig $ 4 til 8

(Bemærk: der er 2 versioner, jeg brugte 3 -bens versionen, 4 -bens versionen kræver brug af et brødbræt og en 10K -modstand, 3 -stiften har et printkort, der indeholder 10K -modstanden) se Fritzing -diagrammer i næste trin

*Tilslutningskabler

Dupont -ledninger (dobbelt hun -ender) ved tilslutning til 3 -polet DHT11 uden brødbræt

Standard jumper M/F tråde (en ende han en ende hun) og M/M jumper tråde (begge ender han) til at forbinde 4 -pins DHT11 - se trin 2 for mere information

*Arduino IDE - et program til at skrive Arduino -programmer (kaldet skitser) gratis @

www.arduino.cc/en/Main/Software

*Behandling - et program til at skrive forarbejdningsskitser gratis @

processing.org/download/

* "DHTLib" -fil -en biblioteksfil (dette er en fil, der går ind i Arduino IDE -programmet under mappen kaldet "Bibliotek", dette skal tilføjes til Arduino -skitsen, før Arduino kan læse dataene fra DHT11 -se trin 5 for at downloade fil og instruktioner

Trin 2: Tilslut Arduino til DHT11

Tilslut Arduino til DHT11
Tilslut Arduino til DHT11
Tilslut Arduino til DHT11
Tilslut Arduino til DHT11
Tilslut Arduino til DHT11
Tilslut Arduino til DHT11
Tilslut Arduino til DHT11
Tilslut Arduino til DHT11

Bestem først, hvilken DHT11 du har

Jeg brugte 3 pin, da den allerede har den nødvendige 10K modstand.

Hvis du har 4 -pins, skal du bruge en 10K modstand og et brødbræt

Tilslut DHT11 til Arduino Board. Dette program kræver, at DHT 11-signalstiften tilsluttes Arduino pin #7, Pos (+) pin tilsluttet 5V på Arduino og Neg (-) til GND på Arduino.

Se Diagrammer og Fritzing Diagrammer

Trin 3: Download Arduino IDE

Download Arduino IDE
Download Arduino IDE

Download Arduino IDE og installer på computeren

www.arduino.cc/en/Main/Software

Trin 4: Tilslut Arduino til computeren

Tilslut Arduino til computeren
Tilslut Arduino til computeren

Installer Arduino IDE først, den har drivere til Arduino USB -forbindelse.

Tilslut Arduino til computeren via USB.

Vent til computeren genkender Arduino -kortet og installer eventuelle drivere.

Åbn IDE -programmet, og kontroller seriel forbindelse.

Hvis Arduino -kortet ikke vises i Værktøjer> porten (rød cirkel), skal du lukke IDE'en og genåbne.

* Vigtigt* når IDE er åben, og Arduino -kortet er tilsluttet via USB. Arduino -kortet skal tilsluttes den korrekte serielle port. På Windows -computere kaldes dette COM -port. For at gøre dette i IDE skal du gå til Værktøjer> Port:> Serielle porte. Som det ses i diagrammet, skal den serielle port (rød cirkel) matche porten i nederste højre hjørne af IDE -programmet (gul cirkel).

Trin 5: Indlæs biblioteket

Indlæs biblioteket
Indlæs biblioteket
Indlæs biblioteket
Indlæs biblioteket
Indlæs biblioteket
Indlæs biblioteket
Indlæs biblioteket
Indlæs biblioteket

Indlæs biblioteket til DHT11. Dette var forvirrende for mig i starten, men er virkelig ret simpelt.

Download filen kaldet "DHTLib" og pak den ud. Kopier den udpakkede "DHTLib" -fil.

Reference til dette bibliotek findes på:

playground.arduino.cc/Main/DHTLib

(Det blev skrevet af Rob Tillaart baseret på arbejde fra andre)

Find Arduino -mappen på din computer, og åbn den. (Det vil være, uanset hvor du downloadede IDE og installerede det på computeren)

Se diagram

Find filen kaldet "biblioteker", og åbn den, og indsæt derefter "DHTLib" -mappen i filen "biblioteker". Luk det, og genstart derefter IDE.

Se diagram

Når IDE er åbnet igen, kan du kontrollere, om DHT -biblioteket er installeret. Skitse> Inkluder bibliotek.

Se diagram

Bemærk! Hvis du klikker på DHTLib under fanen "inkluderer bibliotek", placeres biblioteket i Arduino -koden som "#include dht.h".

Du behøver ikke at gøre dette, fordi det allerede er i koden, som du vil downloade i det næste trin.

Trin 6: Få Arduino -koden

Få Arduino -koden
Få Arduino -koden

Download filen Temp_Hum_Instructable.zip, og pak den ud. Åbn Temp_Hum_Instructable.ino med Arduino IDE.

Alternativt kan du se på følgende kode og kopiere og indsætte eller skrive nøjagtigt i Arduino IDE:

#omfatte

dht DHT; #define DHT11PIN 7 // sæt pin 7 til DHT11 -signalforbindelsens ugyldige opsætning () {Serial.begin (9600); // åbner serial} void loop () {int chk = DHT.read11 (DHT11PIN); // læser DHT11 Serial.print (DHT.temperature, 0); // udskriver temp i serielt Serial.print (","); // udskriver komma i serielt Serial.print (DHT.humidity, 0); // udskriver fugtighed i serielt Serial.println (); // vognreturforsinkelse (2000); // vent 2 sekunder}

Når du er færdig, skal det ligne diagrammet ovenfor

Trin 7: Indlæs koden til Arduino

Indlæs kode på Arduino
Indlæs kode på Arduino
Indlæs kode på Arduino
Indlæs kode på Arduino
Indlæs koden til Arduino
Indlæs koden til Arduino
Indlæs kode på Arduino
Indlæs kode på Arduino

Gem først skitsen på stedet og med et navn, du vil huske, Eksempel: Temp_Hum.

Dernæst skal du indlæse skitsen på Arduino -tavlen ved at trykke på den højre pegeknap (upload).

Se diagram

Dette vil tage et par sekunder; du vil se en statuslinje nederst til højre.

Så vil du se: Færdig med at uploade besked nederst til venstre og hvid tekst i bunden af IDE, der fortæller dig om hukommelse

Se diagram

Hvis du får en fejlkode (orange tekst i bunden af IDE) skal den være en af følgende

  1. "DHTlib" -biblioteket blev ikke kopieret korrekt
  2. COM -porten er ikke indstillet korrekt
  3. Sensoren var ikke korrekt tilsluttet
  4. Koden blev ikke indlæst korrekt i IDE Den orange tekst kan rulles igennem, og det vil give et fingerpeg om, hvad der er galt. Gå tilbage og tjek, at det sandsynligvis er en simpel fejl.

Når dette er gjort, skal du kigge nærmere på dit Arduino -bord. Hvert par sekunder blinker den lille LED ved siden af bogstaverne "TX". Dette er Arduino, der sender oplysninger tilbage til computeren. For at kontrollere dette skal du klikke på det lille forstørrelsesglas -symbol i øverste højre hjørne af IDE.

Se diagram

Dette åbner den serielle skærm og viser temperatur- og fugtighedsdata adskilt af et komma. Du vil bemærke, at temperaturdataene er angivet i Celsius. Det er OK, vi konverterer til Fahrenheit senere (eller ikke hvis du vælger det).

Se diagram

Luk derefter den serielle skærm, og luk derefter IDE. (Du huskede at gemme det, ikke sandt?). Se nu på Arduino -kortet igen (afbryd ikke det fra USB'en, hvor det får strøm, og send data til den serielle port på computeren). Blinker det stadig? Ja, fantastisk. Når programmet er indlæst på Arduino, vil det køre, så længe det har strøm.

Bemærk om kode: hvis du ser på Arduino -koden, der begynder med "void loop ();". De næste 5 linjer med kode fortæller Arduino at læse data fra DHT og udskrive den til den serielle bus adskilt med et komma. Den næste linje "forsinkelse (2000);" fortæller Arduino at vente 2 sekunder (2000 millisekunder), så dataene modtages hvert 2. sekund. Derefter går det tilbage til "void loop ();" - en kommando, der fortæller Arduino om at gøre det igen. Ændring af værdien i forsinkelseslinjen ændrer, hvor ofte dataene modtages. Eksempel: ændring til (600000) ændres det til 10 minutter (600000 millisekunder = 10 minutter). Modtagelse af data hvert andet sekund ender med at blive en masse data, så nu ved du, hvordan du ændrer, hvor ofte dataene læses. Bare husk, hvis du ændrer værdien senere, vil du skal uploade det nye program.

OK læn dig tilbage og tag en ånde, du er mere end halvvejs der. Ja !!

Trin 8: Download og installer behandling

Download og installer behandling
Download og installer behandling
Download og installer behandling
Download og installer behandling

processing.org/download/

Ret ret frem vælg det program, der svarer til din computer til Windows 64bit vs. 32 bit. Hvis du ikke ved det, skal du åbne Kontrolpanel på din computer (ikonvisning ikke kategorivisning) og gå til system, det vil blive angivet der.

Se diagram

Download og installer derefter programmet.

Første gang du åbner og kører behandling, får du sandsynligvis en Java -sikkerhedsmeddelelse. Klik på "tillad" for private netværk. Java er det computersprog, der bruges af Processing (og Arduino IDE). Interessant nok har jeg aldrig haft sikkerhedsmeddelelsen med Arduino IDE, bare Processing.

Trin 9: Behandlingskode

Behandlingskode
Behandlingskode

OK nu til behandlingskoden.

Dette var den mest udfordrende del for mig, men også mest mulighed for at lære. Mens Arduino-koden var omkring 20 linjer, har denne kode +/- 270 linjer i hovedkoden og yderligere 70 + i klasserne.

Nu er det første, du bør spørge, "Hvad er klasser?". Godt spørgsmål. Dette refererer til objektorienteret programmering. Kort sagt er der en masse ting, der foregår i hovedkoden: definition af skærmens størrelse og farve, et ur, en timer, kode til at vise markørens placering, kode til at gemme data i en.csv -fil og et par linjer der omhandler kode, der viser søjlediagrammerne. Mens Arduino IDE havde al koden på en side, har denne behandlingskode tre faner. Den første er hovedkoden, og de næste to er koden, der viser søjlediagrammerne. (Denne kode er faktisk gemt i tre separate filer i mappen Processing code.) De separate faner kaldes "klasser" og er defineret i linjer 48 og 56 og vises derefter af linjer 179-182 i hovedkoden. De mennesker, der skrev Processing program kalder dette objektorienteret programmering. (se: https://processing.org/tutorials/objects/ for en kort beskrivelse).

Grundlæggende hvad klasserne (Recta1, Recta2) i denne kode gør, er at oprette rektangler, der bevæger sig op og ned baseret på data modtaget fra DHT11 via seriel. Tænk gammeldags termometer jo højere kviksølv går jo varmere det er, men dette gøres med data ikke kviksølv. I virkeligheden skaber klasserne fire rektangler, to statiske rektangler, der repræsenterer termometerets baggrund og to dynamiske rektangler, der reagerer på data og bevæger sig op og ned. Ud over at flytte rektanglerne ændrer koden farven på det dynamiske rektangel og farven på den digitale visning af Temp og luftfugtighed baseret på de data, der modtages af seriel.

Trin 10: Behandling af kodefiler

Bare et par grundlæggende oplysninger om behandlingskode:

Jeg anbefaler stærkt at læse Make: Getting Started withProcessing af Casey Reas og Ben Fry grundlæggerne af Processing.

processing.org/books/#reasfry2

Jeg vil ikke forsøge at forklare alle aspekter af behandling eller skrive kode til behandling. Som jeg sagde tidligere, er jeg nybegynder, og jeg tror, der er meget bedre mennesker at lære af. Jeg forstår dog den kode, jeg har skrevet (forsøg og fejl er gode lærere).

1. Først skal man inkludere biblioteker (ligesom i Arduino) og deklarere variabler (linje 1-25)

2. Konfigurer derefter displaykortet (linje 27-63)

3. Kør en gentagen del af koden- hvad jeg mener er, at denne del af koden gentages, så længe programmet kører. Du vil huske In Arduino “void loop ();” (Trin 6). I behandlingen er dette nu "void draw ();" (Linier 65-184)

4. Næste er at hente data fra den serielle port og tildele dem til variabler (int, float, String)

int-

flyde-

Snor-

(Linjer 185-245)

4. Til sidst en måde at lukke programmet og gemme dataene (linje 246-271)

Ok: Download filen Temp_Hum_F_3_2 (til Fahrenheit)

Eller Temp_Hum_C_3_1 (for Celsius)

og pak filen ud. Åbn med behandling.

Trin 11: Skrifttype under behandling

Font i behandling
Font i behandling

Vigtigt: Jeg henleder din opmærksomhed på linje 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // indlæser skrifttype, der er gemt i data

mappe 37 textFont (skrifttype);

Dette skrifttypebibliotek "SourceCodePro-Bold-48.vlw" er inkluderet i behandlingsfilernes downloads og behøver ikke ændres for at fungere.

Men hvis du vil ændre skrifttypen til noget andet, skal du indlæse den nye skrifttype i behandlingsskitsen OG erstatte "SourceCodePro-Bold-48.vlw" med den nye skrifttype.

. Heldigvis har bearbejdning gjort den første del meget let.

Åbn først en skitse og klik derefter på:

Værktøjer> Opret skrifttype

dette åbner et vindue

Se diagram

Rul ned til den nye skrifttype, du vil have, klik på den, og klik derefter på OK. Skrifttypen er nu indlæst i skitsemappen.

Udskift derefter teksten "SourceCodePro-Bold-48.vlw" med det nøjagtige navn på den nye skrifttype (inklusive.vlw-filformatet)

Hvis dette ikke gøres, indlæses den nye skrifttype ikke i koden, og koden giver fejl (Ligesom fejl i Arduino- i den sorte boks i bunden af programmet).

Trin 12: Afslutning

Afslutter
Afslutter
Afslutter
Afslutter
Afslutter
Afslutter
Afslutter
Afslutter

For at starte behandlingsprogrammet skal du klikke på pilen, du får muligvis en Java -advarsel, Klik: Tillad adgang.

Se diagram

OK, fungerede programmet? I så fald får du et display som vist i diagrammet.

(Nej? Se fejlfinding i næste trin)

Ja? Prøv nu at holde DHT11 i din lukkede håndflade eller placer den under den varme luftstrøm i en hårtørrer. Tallene skal ændre sig. Ja? Store. det betyder, at alt fungerer godt.

For at lukke programmet og gemme data, klik på boksen, der siger”Klik her for at lukke og gemme data”.

Nu for at finde de gemte data skal du gå til mappen Temp_Hum_F_3_1 eller Temp_Hum_C_3_1 Processing (du skal kunne finde dette på egen hånd nu) åbne den og finde mappen Data. Åbn denne, og du skal se en.csv-fil opkaldt efter den dato og det tidspunkt, du lukkede programmet (Eksempel 1-10-18--22-30-16.csv betyder 10. januar 2018 22:30:16). Åbn dette med Excel (eller Open office -regnearksækvivalenten). Du bør se noget som diagrammet. Kolonner for dato, tid, driftstid, temp og fugtighed med data. Du kan nu tegne dataene med excel eller hvad du nu vil gøre med dem. (Bemærk: Hvis du ser på den første dataindtastning, er Temp- og fugtighedsdataene ikke korrekte, dette er normalt og er bare en fejl, når programmet først starter)

OK ja !!!!!

Du gjorde det

Hvis du har spørgsmål, bedes du skrive, og jeg vil gøre mit bedste for at svare og hjælpe.

Tak fordi du blev med dette og held og lykke. Jeg håber, at dette kun er en begyndelse ….

Næste for mig Bluetooth og muligvis Android….

Trin 13: Fejlfinding

Fejlfinding
Fejlfinding
Fejlfinding
Fejlfinding

Arduino problemer

Hvis du får en fejlkode (orange tekst i bunden af IDE) skal det være et af følgende biblioteket "DHTlib" blev ikke kopieret korrekt

COM -porten er ikke indstillet korrekt

Sensoren var ikke korrekt tilsluttet

Koden blev ikke indlæst korrekt i IDE

Hvis alt Arduino ser ud til at gå OK, skal du huske at åbne Serial Monitor og se, om der vises data

Hvis du ser korrekte data, betyder det, at Arduino-siden alle fungerer- Husk Luk seriemonitoren, før behandlingen påbegyndes, hvis den serielle skærm er åben Behandlingen kan ikke læse dataene.

Behandlingsproblemer:

Disse vil blive vist i den nederste del af behandlingsprogrammet.

Hvis du får en fejl, der beskriver "skrifttype", skal du gå tilbage til trin 11 og indlæse skrifttypen som beskrevet.

Hvis du får en fejl, der ligner: Fejl, deaktivering af serialEvent () for COM4 null- genstart genforarbejdningsskitsen ved at klikke på pilen som i trin 12

Hvis du får en fejl, der siger: Fejl ved åbning af seriel port- prøv at ændre linje 32-34 til noget som "COM4" matcher COM-porten i din Arduino-skitse

myPort = newSerial (dette, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // vent til serien har data

Anbefalede: