Innholdsfortegnelse:
- Trinn 1: Det du trenger:
- Trinn 2: Koble Arduino til DHT11
- Trinn 3: Last ned Arduino IDE
- Trinn 4: Koble Arduino til datamaskinen
- Trinn 5: Last inn biblioteket
- Trinn 6: Få Arduino -koden
- Trinn 7: Last inn koden til Arduino
- Trinn 8: Last ned og installer prosessering
- Trinn 9: Behandler kode
- Trinn 10: Behandle kodefiler
- Trinn 11: Font i behandlingen
- Trinn 12: Fullfør
- Trinn 13: Feilsøking
Video: Temperatur og fuktighet Display og datainnsamling med Arduino og prosessering: 13 trinn (med bilder)
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:25
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:
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
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 og installer på datamaskinen
www.arduino.cc/en/Main/Software
Trinn 4: 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 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
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
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
- "DHTlib" -biblioteket ble ikke kopiert riktig
- COM -porten er ikke riktig angitt
- Sensoren var ikke riktig tilkoblet
- 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
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
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
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
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
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:
DISPLAY FUKTIGHET OG TEMPERATUR PÅ LCD MED ARDUINO NANO: 5 trinn
DISPLAY FUKTIGHET OG TEMPERATUR PÅ LCD MED ARDUINO NANO: Følgende instrukser handler om å lage et enkelt LCD -grensesnitt med arduino nano
Overvåkning av temperatur og fuktighet ved bruk av Raspberry Pi: 6 trinn (med bilder)
Overvåkning av temperatur og fuktighet ved bruk av Raspberry Pi: Sommeren kommer, og de uten klimaanlegg bør være forberedt på å kontrollere atmosfæren innendørs manuelt. I dette innlegget beskriver jeg den moderne måten å måle de viktigste parameterne for menneskelig komfort: temperatur og fuktighet. T
Ukedag, kalender, tid, fuktighet/temperatur med batterisparing: 10 trinn (med bilder)
Ukedag, kalender, tid, fuktighet/temperatur med batterisparing: Strømsparingsmodus her er det som skiller denne instruksen fra andre eksempler som viser ukedag, måned, dag i måneden, tid, fuktighet og temperatur. Det er denne evnen som gjør at dette prosjektet kan kjøres fra et batteri, uten
Temperatur, relativ fuktighet, atmosfærisk trykklogger ved bruk av Raspberry Pi og TE-tilkobling MS8607-02BA01: 22 trinn (med bilder)
Temperatur, relativ fuktighet, atmosfærisk trykklogger ved bruk av Raspberry Pi og TE-tilkobling MS8607-02BA01: Introduksjon: I dette prosjektet vil jeg vise deg hvordan du bygger opp et trinnvis loggingssystem for temperaturfuktighet og atmosfæretrykk. Dette prosjektet er basert på Raspberry Pi 3 Model B og TE Connectivity miljøsensorbrikke MS8607-02BA
Send temperatur og fuktighet til Blynk App (Wemos D1 Mini Pro).: 15 trinn (med bilder)
Send temperatur og fuktighet til Blynk -appen (Wemos D1 Mini Pro).: Denne instruksjonen ser på bruk av Wemos D1 Mini Pro for å sende datta (temperatur og fuktighet) til Blynk -appen