Innholdsfortegnelse:

Temperatur og fuktighet Display og datainnsamling med Arduino og prosessering: 13 trinn (med bilder)
Temperatur og fuktighet Display og datainnsamling med Arduino og prosessering: 13 trinn (med bilder)

Video: Temperatur og fuktighet Display og datainnsamling med Arduino og prosessering: 13 trinn (med bilder)

Video: Temperatur og fuktighet Display og datainnsamling med Arduino og prosessering: 13 trinn (med bilder)
Video: How to measure air quality with AirThings 2024, November
Anonim
Temperatur- og fuktighetsvisning og datainnsamling med Arduino og prosessering
Temperatur- og fuktighetsvisning og datainnsamling med Arduino og prosessering

Intro: Dette er et prosjekt som bruker et Arduino -kort, en sensor (DHT11), en Windows -datamaskin og et behandlingsprogram (et gratis nedlastbart program) for å vise temperatur-, fuktighetsdata i digital og søylediagram, vise tid og dato og kjøre en telling opp timeren under programmet og registrere alle dataene i et.csv -format når programmet lukkes.

Inspirasjon:

Først MÅ jeg si at jeg er en total nybegynner, og jeg har lært mye av dette prosjektet. Derfor prøver jeg å skrive denne instruksen for å bli lest og forstått av en nybegynner.

Jeg hadde sett forskjellige Arduino -prosjekter for å måle temperatur og fuktighet, men jeg ønsket et program som:

1) Målt temperatur og fuktighet

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

3) Har en klokkefunksjon

4) Har en opptellingstimer for “Run Time”

5) Lagrer disse dataene i et.csv (excel) filformat.

Jeg hadde inspirasjon fra programmer laget av Sowmith Mandadi, R-B og aaakash3, men ingen av disse var akkurat det jeg ønsket. Så jeg lærte å skrive noen grunnleggende kode og lagde det jeg ønsket.

Trinn 1: Det du trenger:

Hva du trenger
Hva du trenger
Hva du trenger
Hva du trenger

Deler og materialer:*Datamaskin - Jeg brukte en Windows -datamaskin Windows 10 -operativsystem

(Jeg er sikker på at Linux eller Mac kan brukes, jeg har bare ingen av dem, så jeg vil ikke dekke hvordan jeg bruker disse operativsystemene)

*Arduino Board - Jeg brukte et Arduino Uno Board, men ethvert Arduino -bord med USB vil gjøre det

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

*DHT 11 temperatur- /fuktighetssensor- billig $ 4 til 8

(Merk: det er 2 versjoner jeg brukte 3 -pinners versjon, 4 -pinners versjon krever bruk av et brødbrett og en 10K -motstand, 3 -pinners har et kretskort som inkluderer 10K -motstanden) se Fritzing -diagrammer i neste trinn

*Tilkoblingskabler

Dupont -ledninger (doble hunnender) ved tilkobling til 3 -pinners DHT11 uten brødbrett

Standard jumper M/F -ledninger (en ende hann en ende hunn) og M/M jumper ledninger (begge ender mann) for å koble 4 -pins DHT11 - se trinn 2 for mer informasjon

*Arduino IDE - et program for å skrive Arduino -programmer (kalt skisser) gratis @

www.arduino.cc/en/Main/Software

*Processing - et program for å skrive prosessskisser gratis @

processing.org/download/

* "DHTLib" -fil -en biblioteksfil (dette er en fil som går inn i Arduino IDE -programmet under mappen "Library", dette må legges til Arduino -skissen før Arduino kan lese dataene fra DHT11 -se trinn 5 for nedlasting av fil og instruksjoner

Trinn 2: Koble Arduino til DHT11

Koble Arduino til DHT11
Koble Arduino til DHT11
Koble Arduino til DHT11
Koble Arduino til DHT11
Koble Arduino til DHT11
Koble Arduino til DHT11
Koble Arduino til DHT11
Koble Arduino til DHT11

Bestem først hvilken DHT11 du har

Jeg brukte 3 -pinners siden den allerede har den nødvendige 10K -motstanden.

Hvis du har 4 -pinners trenger du en 10K motstand og et brødbrett

Koble DHT11 til Arduino Board. Dette programmet krever at DHT 11 signalpinnen kobles til Arduino pin #7, Pos (+) pin koblet til 5V på Arduino og Neg (-) til GND på Arduino.

Se diagrammer og frittdiagrammer

Trinn 3: Last ned Arduino IDE

Last ned Arduino IDE
Last ned Arduino IDE

Last ned Arduino IDE og installer på datamaskinen

www.arduino.cc/en/Main/Software

Trinn 4: Koble Arduino til datamaskinen

Koble Arduino til datamaskinen
Koble Arduino til datamaskinen

Installer Arduino IDE først, den har drivere for Arduino USB -tilkobling.

Koble Arduino til datamaskinen via USB.

Vent til datamaskinen gjenkjenner Arduino -kortet og installer eventuelle drivere.

Åpne IDE -programmet og se etter seriell tilkobling.

Hvis Arduino -kortet ikke dukker opp i Verktøy> porten (rød sirkel), lukker du IDE og åpner igjen.

* Viktig* når IDE er åpent og Arduino -kortet er koblet til via USB. Arduino -kortet må være koblet til riktig seriell port. På Windows -datamaskiner kalles dette COM -port. For å gjøre dette i IDE, gå til Verktøy> Port:> Serielle porter. Som vist i diagrammet må den serielle porten (rød sirkel) matche porten som er oppført i nedre høyre hjørne av IDE -programmet (gul sirkel).

Trinn 5: Last inn biblioteket

Last inn biblioteket
Last inn biblioteket
Last inn biblioteket
Last inn biblioteket
Last inn biblioteket
Last inn biblioteket
Last inn biblioteket
Last inn biblioteket

Last inn biblioteket for DHT11. Dette var forvirrende for meg i begynnelsen, men er egentlig ganske enkelt.

Last ned filen som heter “DHTLib” og pakk ut. Kopier den utpakkede "DHTLib" -filen.

Referanse om dette biblioteket finner du på:

playground.arduino.cc/Main/DHTLib

(Den ble skrevet av Rob Tillaart basert på arbeid fra andre)

Finn Arduino -mappen på datamaskinen din og åpne den. (Det vil være uansett hvor du lastet ned IDE og installerte det på datamaskinen)

Se diagram

Finn filen som heter "biblioteker" og åpne den, og lim deretter inn "DHTLib" -mappen i "biblioteker" -filen. Lukk den og start IDE på nytt.

Se diagram

Når IDE har åpnet igjen, kan du sjekke om DHT -biblioteket ble installert. Skisse> Inkluder bibliotek.

Se diagram

Merk Hvis du klikker på DHTLib i kategorien "inkluderer bibliotek", plasseres biblioteket i Arduino -koden som "#include dht.h".

Du trenger ikke å gjøre dette fordi det allerede er i koden du vil laste ned i neste trinn.

Trinn 6: Få Arduino -koden

Få Arduino -koden
Få Arduino -koden

Last ned Temp_Hum_Instructable.zip -filen og pakk ut. Åpne Temp_Hum_Instructable.ino med Arduino IDE.

Alternativt kan du se på følgende kode og kopiere og lime inn eller skrive inn nøyaktig i Arduino IDE:

#inkludere

dht DHT; #define DHT11PIN 7 // setter pin 7 for DHT11 signaltilkobling ugyldig oppsett () {Serial.begin (9600); // åpner serial} void loop () {int chk = DHT.read11 (DHT11PIN); // leser DHT11 Serial.print (DHT.temperature, 0); // skriver ut temp i seriell Serial.print (","); // skriver ut komma i serielt Serial.print (DHT.humidity, 0); // skriver ut fuktighet i serielt Serial.println (); // forsinkelse for retur av vogn (2000); // vent 2 sekunder}

Når du er ferdig, skal det se ut som diagrammet ovenfor

Trinn 7: Last inn koden til Arduino

Last kode til Arduino
Last kode til Arduino
Last kode til Arduino
Last kode til Arduino
Last kode til Arduino
Last kode til Arduino
Last kode til Arduino
Last kode til Arduino

Lagre først skissen på stedet og med et navn du vil huske, eksempel: Temp_Hum.

Deretter må du laste skissen på Arduino -brettet ved å trykke på høyre piltast (last opp).

Se diagram

Dette vil ta noen sekunder; du vil se en fremdriftslinje nederst til høyre.

Da vil du se: Ferdig opplasting av melding nederst til venstre og hvit tekst nederst i IDE som forteller deg om minne

Se diagram

Hvis du får en feilkode (oransje tekst nederst i IDE), bør den være en av følgende

  1. "DHTlib" -biblioteket ble ikke kopiert riktig
  2. COM -porten er ikke riktig angitt
  3. Sensoren var ikke riktig tilkoblet
  4. Koden ble ikke lastet inn riktig i IDE Den oransje teksten kan rulles gjennom, og den vil gi en pekepinn om hva som er galt. Gå tilbake og sjekk at det sannsynligvis er en enkel feil.

Når dette er gjort, se nøye på Arduino -brettet. Hvert par sekunder blinker den lille LED -en ved siden av bokstavene "TX". Dette er Arduino som sender informasjon tilbake til datamaskinen. For å sjekke dette, klikk på det lille forstørrelsesglass -symbolet i høyre øvre hjørne av IDE.

Se diagram

Dette vil åpne den serielle skjermen og vise temperatur- og fuktighetsdata atskilt med et komma. Du vil merke at temperaturdataene er oppført i Celsius. Det er OK, vi konverterer til Fahrenheit senere (eller ikke hvis du valgte).

Se diagram

Lukk deretter seriemonitoren og lukk deretter IDE. (Du husket å lagre det, ikke sant?). Se nå på Arduino -kortet igjen (ikke koble det fra USB -en der det får strøm, og send data til den serielle porten på datamaskinen). Blinker det fortsatt? Ja bra. Når programmet er lastet inn på Arduino vil det kjøre så lenge det har strøm.

Merknad om kode: hvis du ser på Arduino -koden som begynner med "void loop ();". De neste fem kodelinjene ber Arduino lese data fra DHT og skrive den ut til seriebussen atskilt med et komma. Den neste linjen "forsinkelse (2000);" ber Arduino vente 2 sekunder (2000 millisekunder) slik at dataene mottas hvert 2. sekund. Deretter går den tilbake til "void loop ();" - en kommando som forteller Arduino om å gjøre det igjen. Endring av verdien i forsinkelseslinjen vil endre hvor ofte dataene mottas. Eksempel: endring til (600000) vil endres det til 10 minutter (600000 millisekunder = 10 minutter). Motta data hvert 2. sekund ender med å bli mye data, så nå vet du hvordan du endrer hvor ofte dataene leses. Bare husk hvis du endrer verdien senere må laste opp det nye programmet.

OK lene deg tilbake og trekk pusten du er mer enn halvveis der. Ja !!

Trinn 8: Last ned og installer prosessering

Last ned og installer behandling
Last ned og installer behandling
Last ned og installer behandling
Last ned og installer behandling

processing.org/download/

Velg ganske enkelt programmet som tilsvarer datamaskinen din for Windows 64bit vs. 32 bit. Hvis du ikke vet det, åpner du kontrollpanelet på datamaskinen (ikonvisning ikke kategorivisning) og går til system, det vil bli oppført der.

Se diagram

Last ned og installer deretter programmet.

Første gang du åpner og kjører prosessering, vil du sannsynligvis få en Java -sikkerhetsmelding. Klikk "tillat" for private nettverk. Java er dataspråket som brukes av Processing (og Arduino IDE). Interessant nok har jeg aldri hatt sikkerhetsmeldingen med Arduino IDE, bare Processing.

Trinn 9: Behandler kode

Behandlingskode
Behandlingskode

OK nå for behandlingskoden.

Dette var den mest utfordrende delen for meg, men også mest mulighet for læring. Mens Arduino-koden var 20 eller så linjer, har denne koden +/- 270 linjer i hovedkoden og ytterligere 70 + i klassene.

Det første du bør spørre er "Hva er klasser?". Godt spørsmål. Dette refererer til objektorientert programmering. Kort sagt, det er en rekke ting som skjer i hovedkoden: definere størrelsen og fargen på skjermen, en klokke, en tidtaker, kode for å vise markørplasseringen, kode for å lagre data i en.csv -fil og noen få linjer som omhandler kode som viser søylediagrammene. Mens Arduino IDE hadde all koden på en side, har denne behandlingskoden tre faner. Den første er hovedkoden, og de to neste er koden som viser søylediagrammene. (Denne koden er faktisk lagret i tre separate filer i behandlingskodemappen.) De separate fanene kalles "klasser" og er definert på linje 48 og 56 og vises deretter med linje 179-182 i hovedkoden. Folk som skrev Processing program kaller dette objektorientert programmering. (se: https://processing.org/tutorials/objects/ for en kort beskrivelse).

I utgangspunktet er det klassene (Recta1, Recta2) i denne koden lager rektangler som beveger seg opp og ned basert på dataene som mottas fra DHT11 via seriell. Tenk gammeldags termometer jo høyere kvikksølv går jo varmere det er, men dette gjøres med data ikke kvikksølv. I virkeligheten lager klassene fire rektangler, to statiske rektangler som representerer termometerets bakgrunn og to dynamiske rektangler som reagerer på data og beveger seg opp og ned. I tillegg til å flytte rektanglene, endrer koden fargen på det dynamiske rektangelet og fargen på den digitale visningen av Temp og fuktighet basert på dataene som mottas av serie.

Trinn 10: Behandle kodefiler

Bare noen få grunnleggende om behandlingskode:

Jeg anbefaler på det sterkeste å lese Make: Getting Started withProcessing av Casey Reas og Ben Fry, grunnleggerne av Processing.

processing.org/books/#reasfry2

Jeg vil ikke prøve å forklare alle aspektene ved behandling eller skrive kode for behandling. Som jeg sa tidligere, jeg er nybegynner, og jeg tror det er mye bedre mennesker å lære av. Jeg forstår imidlertid koden jeg har skrevet (prøving og feiling er gode lærere).

1. Først må man inkludere biblioteker (akkurat som i Arduino) og deklarere variabler (linje 1-25)

2. Sett deretter opp skjermkortet (linje 27-63).

3. Kjør en gjentatt del av koden- det jeg mener er at denne delen av koden vil gjenta seg så lenge programmet kjører. Du vil huske In Arduino "void loop ();" (Trinn 6). I behandlingen er dette nå "void draw ();" (Linje 65-184)

4. Det neste er å hente data fra den serielle porten og tildele dem til variabler (int, float, String)

int-

flyte-

String-

(Linje 185-245)

4. til slutt en måte å lukke programmet og lagre dataene (linje 246-271)

Ok: Last ned filen Temp_Hum_F_3_2 (for Fahrenheit)

Eller Temp_Hum_C_3_1 (for Celsius)

og pakk ut filen. Åpne med behandling.

Trinn 11: Font i behandlingen

Skrift i behandling
Skrift i behandling

Viktig: Jeg henviser oppmerksomheten din til linje 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // laster inn font som er lagret i data

mappe 37 textFont (font);

Dette skriftbiblioteket "SourceCodePro-Bold-48.vlw" er inkludert i nedlasting av behandlingsfiler og trenger ikke endres for å fungere.

Men for å endre skrifttypen til noe annet må du laste den nye skriften inn i Behandlingsskissen OG erstatte "SourceCodePro-Bold-48.vlw" med den nye skrifttypen.

. Heldigvis har prosessering gjort den første delen veldig enkel.

Åpne først en skisse og klikk deretter på:

Verktøy> Lag skrift

dette får opp et vindu

Se diagram

Rull ned til den nye skrifttypen du vil ha, klikk på den og klikk deretter OK. Skriften er nå lastet inn i skissemappen.

Deretter erstatter du "SourceCodePro-Bold-48.vlw" -teksten med det eksakte navnet på den nye skriften (inkludert.vlw-filformatet)

Hvis dette ikke er gjort, vil ikke den nye skriften lastes inn i koden, og koden vil gi feil (Akkurat som feil i Arduino- i den svarte boksen nederst i programmet).

Trinn 12: Fullfør

Ferdig
Ferdig
Ferdig
Ferdig
Ferdig
Ferdig
Ferdig
Ferdig

For å starte behandlingsprogrammet klikker du på pilen. Du kan få en Java -advarsel, Klikk: Tillat tilgang.

Se diagram

OK, fungerte programmet? I så fall får du en skjerm som vist på diagrammet.

(Nei? Se feilsøking i neste trinn)

Ja? Prøv nå å holde DHT11 i den lukkede håndflaten eller plasser den under den varme luftstrømmen til en hårføner. Tallene bør endres. Ja? Flott. det betyr at alt fungerer bra.

For å lukke programmet og lagre data, klikk på boksen som sier "Klikk her for å lukke og lagre data".

Nå for å finne de lagrede dataene, gå til Temp_Hum_F_3_1 eller Temp_Hum_C_3_1 Behandlingsmappen (du bør kunne finne dette på egen hånd nå) åpne den og finn Data -mappen. Åpne dette, og du bør se en.csv-fil oppkalt etter dato og klokkeslett da du lukket programmet (eksempel 1-10-18--22-30-16.csv betyr 10. januar 2018 22:30:16). Åpne dette med Excel (eller Open office -regnearkekvivalenten). Du bør se noe som diagrammet. Kolonner for dato, tid, kjøretid, temp og fuktighet med data. Du kan nå tegne dataene med excel eller hva du vil gjøre med dem. (Merk: Hvis du ser på den første datainføringen, er temperatur- og fuktighetsdataene ikke riktige, dette er normalt og er bare en feil når programmet først starter)

OK ja !!!!!

Du gjorde det

Hvis du har spørsmål, vennligst legg ut, så skal jeg gjøre mitt beste for å svare og hjelpe.

Takk for at du fortsetter med dette og lykke til. Jeg håper dette bare er en begynnelse ….

Neste for meg Bluetooth og muligens Android….

Trinn 13: Feilsøking

Feilsøking
Feilsøking
Feilsøking
Feilsøking

Arduino problemer

Hvis du får en feilkode (oransje tekst nederst i IDE) bør den være ett av følgende biblioteket "DHTlib" ble ikke kopiert riktig

COM -porten er ikke riktig angitt

Sensoren var ikke riktig tilkoblet

Koden ble ikke lastet inn riktig i IDE

Hvis alt ser ut til å gå bra, husk å åpne Serial Monitor og se om data vises

Hvis du ser riktige data betyr dette at Arduino-siden fungerer.

Behandlingsproblemer:

Disse vises i den nederste delen av behandlingsprogrammet.

Hvis du får en feil som beskriver "font", gå tilbake til trinn 11 og last inn fonten som beskrevet.

Hvis du får en feil som ser ut som: Feil, deaktivering av serialEvent () for COM4 null- bare start behandlingsskissen på nytt ved å klikke på pilen som i trinn 12

Hvis du får en feilmelding som sier: Feil ved åpning av seriell port. Prøv å endre linje 32-34 til noe som "COM4" samsvarer med COM-porten i Arduino-skissen din

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

Anbefalt: