Indholdsfortegnelse:
- Trin 1: Hvad skal du bruge:
- Trin 2: Tilslut Arduino til DHT11
- Trin 3: Download Arduino IDE
- Trin 4: Tilslut Arduino til computeren
- Trin 5: Indlæs biblioteket
- Trin 6: Få Arduino -koden
- Trin 7: Indlæs koden til Arduino
- Trin 8: Download og installer behandling
- Trin 9: Behandlingskode
- Trin 10: Behandling af kodefiler
- Trin 11: Skrifttype under behandling
- Trin 12: Afslutning
- Trin 13: Fejlfinding
Video: Temperatur- og fugtighedsvisning og dataindsamling med Arduino og behandling: 13 trin (med billeder)
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:29
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:
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
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 og installer på computeren
www.arduino.cc/en/Main/Software
Trin 4: 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 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
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
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
- "DHTlib" -biblioteket blev ikke kopieret korrekt
- COM -porten er ikke indstillet korrekt
- Sensoren var ikke korrekt tilsluttet
- 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
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
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
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
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
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:
DHT 11 Temperatur- og fugtighedsvisning: 4 trin
DHT 11 Temperatur- og luftfugtighedsdisplay: Påkrævede dele (UK Shopping Stock) Arduino Nano-https://www.amazon.co.uk/Arduino-compatible-Nano-CH340-USB/dp/B00ZABSNUSDHT 11 Sensor-https: // www .adafruit.com/product/3861.3 " OLED grøn skærm https://www.amazon.co.uk/DSD-TECH-Screen-Support
Termokrom temperatur- og fugtighedsvisning: 10 trin (med billeder)
Termokrom temperatur- og fugtighedsvisning: Jeg har arbejdet på dette projekt i et stykke tid. Den originale idé fik jeg efter at have bygget en TEC -controller demonstrator på arbejde til en messe. For at vise TEC'ernes varme- og køleegenskaber brugte vi termokrom maling, der
Interaktiv LED Dome med Fadecandy, behandling og Kinect: 24 trin (med billeder)
Interaktiv LED Dome med Fadecandy, Processing og Kinect: WhatWhen in Dome er en 4,2 m geodesisk kuppel dækket med 4378 LED'er. LED'erne er alle individuelt kortlagte og adresserbare. De styres af Fadecandy og Processing på et Windows -skrivebord. En Kinect er fastgjort til en af kuplens stiver, så
Sådan kontrolleres adresserbare lysdioder med Fadecandy og behandling: 15 trin (med billeder)
Sådan kontrolleres adresserbare lysdioder med Fadecandy og behandling: WhatThis er en trin-for-trin vejledning i, hvordan du bruger Fadecandy og behandling til at styre adresserbare lysdioder. Fadecandy er en LED-driver, der kan styre op til 8 strimler på 64 pixels hver. (Du kan forbinde flere Fadecandys til en computer for at øge
4x4 tastatur med Arduino og behandling: 4 trin (med billeder)
4x4 tastatur med Arduino og forarbejdning: Kan du ikke lide LCD -skærme? Vil du få dine projekter til at se tiltalende ud? Nå, her er løsningen. I denne instruks kan du frigøre dig fra besværet med at bruge en LCD -skærm til at vise indhold fra din Arduino og også gøre dit projekt