Innehållsförteckning:
- Steg 1: Vad du behöver:
- Steg 2: Anslut Arduino till DHT11
- Steg 3: Ladda ner Arduino IDE
- Steg 4: Anslut Arduino till datorn
- Steg 5: Ladda biblioteket
- Steg 6: Hämta Arduino -koden
- Steg 7: Ladda koden till Arduino
- Steg 8: Ladda ner och installera bearbetning
- Steg 9: Bearbetningskod
- Steg 10: Bearbetning av kodfiler
- Steg 11: Teckensnitt i bearbetning
- Steg 12: Avsluta
- Steg 13: Felsökning
Video: Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:46
Intro: Detta är ett projekt som använder ett Arduino -kort, en sensor (DHT11), en Windows -dator och ett bearbetningsprogram (ett gratis nedladdningsbart) program för att visa temperatur, luftfuktighetsdata i digital form och stapeldiagram, visa tid och datum och köra en räkning upp timern under programmet och spela in all data i ett.csv -format när programmet stängs.
Inspiration:
Först måste jag säga att jag är en nybörjare och jag har lärt mig mycket av detta projekt. Således försöker jag skriva denna instruerbara för att läsas och förstås av en total nybörjare.
Jag hade sett olika Arduino -projekt för att mäta temperatur och luftfuktighet men jag ville ha ett program som:
1) Uppmätt temperatur och luftfuktighet
2) Visade data i både ett diagram (jag valde stapeldiagram) och digital form
3) Har en klockfunktion
4) Har en räknartimer för "körtid"
5) Sparar dessa data i ett.csv (excel) filformat.
Jag hade inspiration från program skapade av Sowmith Mandadi, R-B och aaakash3, men ingen av dessa var exakt vad jag ville. Så jag lärde mig skriva en grundläggande kod och gjorde vad jag ville.
Steg 1: Vad du behöver:
Delar och material:*Dator - Jag använde en Windows -dator Windows 10 -operativsystem
(Jag är säker på att Linux eller Mac kan användas, jag har inte heller något så jag kommer inte att täcka hur man använder dessa operativsystem)
*Arduino Board - Jag använde ett Arduino Uno Board, men alla Arduino -kort med USB gör det
*USB -kabel -USB A/B -kabel -samma som gammal typ "skrivarkabel" (levereras vanligtvis med Arduino Board)
*DHT 11 Temperatur- /luftfuktighetssensor- billig $ 4 till 8
(Obs: det finns 2 versioner jag använde 3 -stiftsversionen, 4 -stiftsversionen kräver användning av en brödbräda och ett 10K -motstånd, 3 -stiftet har ett kretskort som innehåller 10K -motståndet) se Fritz -diagram i nästa steg
*Anslutningskablar
Dupont -kablar (dubbla honändar) vid anslutning till 3 -stifts DHT11 utan brödbräda
Standardbygel M/F -ledningar (ena änden, ena ändhona) och M/M -bygelkablar (båda ändarna han) för att ansluta 4 -stifts DHT11 - se steg 2 för mer information
*Arduino IDE - ett program för att skriva Arduino -program (kallade skisser) gratis @
www.arduino.cc/en/Main/Software
*Bearbetning - ett program för att skriva bearbetningsskisser gratis @
processing.org/download/
* "DHTLib" -fil -en biblioteksfil (detta är en fil som går in i Arduino IDE -programmet under mappen "Library", detta måste läggas till i Arduino -skissen innan Arduino kan läsa data från DHT11 -se steg 5 för nedladdning av fil och instruktioner
Steg 2: Anslut Arduino till DHT11
Bestäm först vilken DHT11 du har
Jag använde 3 -stiftet eftersom det redan har det nödvändiga 10K -motståndet.
Om du har 4 -stiftet behöver du ett 10K -motstånd och en brödbräda
Anslut DHT11 till Arduino Board. Detta program kräver att DHT 11 signalstiftet ansluts till Arduino stift #7, Pos (+) stift anslutet till 5V på Arduino och Neg (-) till GND på Arduino.
Se Diagram och Fritzing Diagram
Steg 3: Ladda ner Arduino IDE
Ladda ner Arduino IDE och installera på datorn
www.arduino.cc/en/Main/Software
Steg 4: Anslut Arduino till datorn
Installera Arduino IDE först den har drivrutiner för Arduino USB -anslutning.
Anslut Arduino till datorn via USB.
Vänta tills datorn känner igen Arduino -kortet och installera eventuella drivrutiner.
Öppna IDE -programmet och kontrollera efter seriell anslutning.
Om Arduino -kortet inte dyker upp i Verktyg> porten (röd cirkel), stäng IDE och öppna igen.
* Viktigt* när IDE är öppet och Arduino -kortet är anslutet via USB. Arduino -kortet måste vara anslutet till rätt seriell port. På Windows -datorer kallas detta COM -port. För att göra detta i IDE går du till Verktyg> Port:> Seriella portar. Som framgår av diagram måste den seriella porten (röd cirkel) matcha porten i nedre högra hörnet av IDE -programmet (gul cirkel).
Steg 5: Ladda biblioteket
Ladda biblioteket för DHT11. Detta var förvirrande för mig till en början men är egentligen ganska enkelt.
Ladda ner filen som heter “DHTLib” och packa upp. Kopiera den uppackade "DHTLib" -filen.
Referens om detta bibliotek finns på:
playground.arduino.cc/Main/DHTLib
(Den skrevs av Rob Tillaart baserat på arbete från andra)
Hitta Arduino -mappen på din dator och öppna den. (Det kommer att finnas var du än laddade ner IDE och installerade det på datorn)
Se diagram
Hitta filen som heter "bibliotek" och öppna den och klistra in "DHTLib" -mappen i "bibliotek" -filen. Stäng den och starta om IDE: en.
Se diagram
När IDE har öppnat igen kan du kontrollera om DHT -biblioteket har installerats. Skiss> Inkludera bibliotek.
Se diagram
Obs! Om du klickar på DHTLib på fliken "include library" placeras biblioteket i Arduino -koden som "#include dht.h".
Du behöver inte göra detta eftersom det redan finns i koden som du kommer att ladda ner i nästa steg.
Steg 6: Hämta Arduino -koden
Ladda ner Temp_Hum_Instructable.zip -filen och packa upp. Öppna Temp_Hum_Instructable.ino med Arduino IDE.
Alternativt kan du titta på följande kod och kopiera och klistra in eller skriva in exakt i Arduino IDE:
#omfatta
dht DHT; #define DHT11PIN 7 // ställer in stift 7 för DHT11 -signalanslutningens ogiltiga inställning () {Serial.begin (9600); // öppnar serien} void loop () {int chk = DHT.read11 (DHT11PIN); // läser DHT11 Serial.print (DHT.temperature, 0); // skriver ut temp i seriellt Serial.print (","); // skriver ut kommatecken i seriellt Serial.print (DHT.humidity, 0); // skriver ut fuktighet i seriellt Serial.println (); // vagnreturfördröjning (2000); // vänta 2 sekunder}
När du är klar ska det se ut som diagrammet ovan
Steg 7: Ladda koden till Arduino
Spara först skissen på plats och med ett namn du kommer ihåg, Exempel: Temp_Hum.
Därefter måste du ladda skissen på Arduino -tavlan genom att trycka på högerpilen (uppladdning).
Se diagram
Detta tar några sekunder; du kommer att se en förloppsindikator längst ner till höger.
Då kommer du att se: Klart att ladda upp meddelande nere till vänster och vit text längst ner i IDE som berättar om minne
Se diagram
Om du får en felkod (orange text längst ner i IDE) bör det vara något av följande
- "DHTlib" -biblioteket kopierades inte korrekt
- COM -porten är inte korrekt inställd
- Sensorn var inte korrekt ansluten
- Koden laddades inte korrekt i IDE Den orangefärgade texten kan rullas igenom och det kommer att ge en aning om vad som är fel. Gå tillbaka och kontrollera att det förmodligen är ett enkelt misstag.
När detta är klart titta noga på din Arduino -bräda. Varannan sekund blinkar den lilla lysdioden bredvid bokstäverna "TX". Detta är Arduino som skickar information tillbaka till datorn. För att kontrollera detta, klicka på den lilla förstoringsglas -symbolen i det övre högra hörnet av IDE.
Se diagram
Detta öppnar den seriella bildskärmen och visar temperatur- och luftfuktighetsdata åtskilda med ett kommatecken. Du kommer att notera att temperaturdata anges i Celsius. Det är OK, vi kommer att konvertera till Fahrenheit senare (eller inte om du väljer).
Se diagram
Stäng sedan seriell bildskärm och stäng sedan IDE. (Du kom ihåg att spara det, eller hur?). Titta nu på Arduino -kortet igen (koppla inte bort det från USB -enheten där det får ström och skicka data till den seriella porten på datorn). Blinkar det fortfarande? Ja bra. När programmet har laddats in på Arduino körs det så länge det har ström.
Anmärkning om kod: om du tittar på Arduino -koden som börjar med "void loop ();". De följande fem kodraderna ber Arduino läsa data från DHT och skriva ut den till seriebussen separerad med ett kommatecken. Nästa rad "fördröjning (2000);" säger till Arduino att vänta 2 sekunder (2000 millisekunder) så att data tas emot varannan sekund. Sedan går det tillbaka till "void loop ();" - ett kommando som uppmanar Arduino att göra om det igen. Om du ändrar värdet i fördröjningsraden ändras hur ofta data tas emot. Exempel: ändra till (600000) kommer att ändras det till 10 minuter (600000 millisekunder = 10 minuter). Att ta emot data varannan sekund blir mycket data, så nu vet du hur du ändrar hur ofta data läses. Kom bara ihåg om du ändrar värdet senare kommer du att måste ladda upp det nya programmet.
OK luta dig tillbaka och ta ett andetag du är mer än halvvägs dit. Ja!!
Steg 8: Ladda ner och installera bearbetning
processing.org/download/
Ganska rakt fram väljer det program som motsvarar din dator för Windows 64bit vs. 32 bit. Om du inte vet det, öppna kontrollpanelen på din dator (ikonvy inte kategorivy) och gå till systemet det kommer att listas där.
Se diagram
Ladda ner och installera sedan programmet.
Första gången du öppnar och kör bearbetning får du förmodligen ett Java -säkerhetsmeddelande. Klicka på "tillåt" för privata nätverk. Java är datorspråket som används av Processing (och Arduino IDE). Intressant nog har jag aldrig haft säkerhetsmeddelandet med Arduino IDE, bara Processing.
Steg 9: Bearbetningskod
OK nu för behandlingskoden.
Detta var den mest utmanande delen för mig, men också den mest möjligheten att lära. Medan Arduino-koden var 20 eller så rader har denna kod +/- 270 rader i huvudkoden och ytterligare 70 + i klasserna.
Det första du bör fråga är "Vad är klasser?". Bra fråga. Detta avser objektorienterad programmering. Kort sagt, det händer en massa saker i huvudkoden: definiera skärmens storlek och färg, en klocka, en timer, kod för att visa markörens plats, kod för att spara data i en.csv -fil och några rader som handlar om kod som visar stapeldiagrammen. Medan Arduino IDE hade all kod på en sida, har denna behandlingskod tre flikar. Den första är huvudkoden och de två nästa är koden som visar stapeldiagrammen. (Denna kod lagras faktiskt i tre separata filer i mappen Processing code.) De separata flikarna kallas "klasser" och definieras i raderna 48 och 56 och visas sedan med raderna 179-182 i huvudkoden. De som skrev Processing program kallar detta objektorienterad programmering. (se: https://processing.org/tutorials/objects/ för en kort beskrivning).
I princip vad klasserna (Recta1, Recta2) i den här koden gör är att skapa rektanglar som rör sig upp och ner baserat på data som tas emot från DHT11 via serie. Tänk gammaldags termometer ju högre kvicksilver går desto varmare är det, men detta görs med data inte kvicksilver. I själva verket skapar klasserna fyra rektanglar, två statiska rektanglar som representerar termometerns bakgrund och två dynamiska rektanglar som svarar på data och rör sig upp och ner. Förutom att flytta rektanglarna, ändrar koden färgen på den dynamiska rektangeln och färgen på den digitala visningen av Temp och fuktighet baserat på data som tas emot av serie.
Steg 10: Bearbetning av kodfiler
Bara några grunder om bearbetningskod:
Jag rekommenderar starkt att läsa Make: Getting Started withProcessing av Casey Reas och Ben Fry grundarna av Processing.
processing.org/books/#reasfry2
Jag kommer inte att försöka förklara alla aspekter av behandling eller att skriva kod för bearbetning. Som jag sa tidigare är jag nybörjare och jag tror att det finns mycket bättre människor att lära av. Jag förstår dock koden jag har skrivit (trial and error är bra lärare).
1. Först måste man inkludera bibliotek (precis som i Arduino) och deklarera variabler (rad 1-25)
2. Sätt sedan upp displaykortet (rad 27-63)
3. Kör en upprepad del av koden- vad jag menar är att den här delen av koden kommer att upprepas så länge programmet körs. Du kommer ihåg In Arduino "void loop ();" (Steg 6). Vid bearbetning är detta nu "void draw ();" (Linjer 65-184)
4. Nästa är att hämta data från serieporten och tilldela den till variabler (int, float, String)
int-
flyta-
Sträng-
(Linjer 185-245)
4. Slutligen ett sätt att stänga programmet och spara data (rad 246-271)
Ok: Ladda ner filen Temp_Hum_F_3_2 (för Fahrenheit)
Eller Temp_Hum_C_3_1 (för Celsius)
och packa upp filen. Öppna med bearbetning.
Steg 11: Teckensnitt i bearbetning
Viktigt: Jag uppmärksammar raderna 36-37
36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // laddar teckensnitt lagrat i data
mapp 37 textFont (font);
Detta teckensnittsbibliotek "SourceCodePro-Bold-48.vlw" ingår i bearbetningsfilernas nedladdningar och behöver inte ändras för att fungera.
Men för att ändra teckensnittet till något annat måste du ladda det nya teckensnittet i bearbetningsskissen OCH ersätta "SourceCodePro-Bold-48.vlw" med det nya teckensnittet.
. Lyckligtvis har bearbetningen gjort den första delen väldigt enkel.
Öppna först a -skissen och klicka sedan på:
Verktyg> Skapa teckensnitt
detta tar upp ett fönster
Se diagram
Rulla ner till det nya teckensnittet du vill ha, klicka på det och klicka sedan på OK. Teckensnittet har nu laddats in i skissmappen.
Ersätt sedan texten "SourceCodePro-Bold-48.vlw" med det exakta namnet på det nya teckensnittet (inklusive.vlw-filformat)
Om detta inte är gjort laddas det nya teckensnittet inte in i koden och koden ger fel (precis som fel i Arduino- i den svarta rutan längst ner i programmet).
Steg 12: Avsluta
För att starta bearbetningsprogrammet, klicka på pilen, du kan få en Java -varning, Klicka: Tillåt åtkomst.
Se diagram
OK, fungerade programmet? Om så är fallet får du en display som visas i diagrammet.
(Nej? Se felsökning i nästa steg)
Ja? Försök nu att hålla DHT11 i din stängda handflata eller placera den under den varma luftströmmen i en hårtork. Siffrorna borde ändras. Ja? Bra. det betyder att allt fungerar bra.
För att stänga programmet och spara data, klicka på rutan som säger”Klicka här för att stänga och spara data”.
Nu för att hitta de sparade data, gå till Temp_Hum_F_3_1 eller Temp_Hum_C_3_1 Processing -mappen (du borde kunna hitta detta själv nu) öppna den och hitta Data -mappen. Öppna detta och du bör se en.csv-fil uppkallad efter datum och tid då du stängde programmet (Exempel 1-10-18--22-30-16.csv betyder 10 januari 2018 22:30:16). Öppna detta med Excel (eller motsvarande Open office -kalkylblad). Du borde se något som diagrammet. Kolumner för datum, tid, körtid, temp och luftfuktighet med data. Du kan nu diagramma data med excel eller vad du vill göra med det. (Obs! Om du tittar på den första datainmatningen är temp- och luftfuktighetsdata inte korrekta, detta är normalt och är bara ett fel när programmet först startar)
OK ja !!!!!!
Du gjorde det
Om du har några frågor vänligen posta så ska jag göra mitt bästa för att svara och hjälpa.
Tack för att du fortsätter med detta och lycka till. Jag hoppas att detta bara är en början ….
Nästa för mig Bluetooth och möjligen Android….
Steg 13: Felsökning
Arduino problem
Om du får en felkod (orange text längst ner i IDE) bör det vara något av följande biblioteket "DHTlib" kopierades inte korrekt
COM -porten är inte korrekt inställd
Sensorn var inte korrekt ansluten
Koden laddades inte korrekt i IDE
Om allt Arduino verkar gå bra, kom ihåg att öppna seriell bildskärm och se om data visas
Om du ser rätt data betyder det att Arduino-sidan fungerar.
Bearbetningsproblem:
Dessa kommer att visas i den nedre delen av bearbetningsprogrammet.
Om du får ett fel som beskriver "typsnitt" går du tillbaka till steg 11 och laddar teckensnittet enligt beskrivningen.
Om du får ett fel som ser ut som: Fel, inaktivering av serialEvent () för COM4 null- starta om bearbetningsskissen genom att klicka på pilen som i steg 12
Om du får ett fel som säger: Fel vid öppning av seriell port. Försök ändra rad 32-34 till något som där "COM4" matchar COM-porten i din Arduino-skiss
myPort = newSerial (detta, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // vänta tills serien har data
Rekommenderad:
DISPLAY FUKTIGHET OCH TEMPERATUR PÅ LCD MED ARDUINO NANO: 5 steg
DISPLAY FUKTIGHET OCH TEMPERATUR PÅ LCD MED ARDUINO NANO: Följande instruktioner handlar om att göra ett enkelt LCD -gränssnitt med arduino nano
Ansluter bearbetning och Arduino och gör 7 segment och servo GUI -kontroller: 4 steg
Ansluta bearbetning och Arduino och göra 7 segment och servo GUI -kontroller: För vissa projekt måste du använda Arduino eftersom det ger en enkel prototypplattform men visning av grafik i seriell bildskärm av Arduino kan ta ganska lång tid och är till och med svårt att göra. Du kan visa grafer på Arduino Serial Monitor
Interaktiv LED -kupol med Fadecandy, bearbetning och Kinect: 24 steg (med bilder)
Interaktiv LED -kupol med Fadecandy, Processing och Kinect: WhatWhen in Dome är en 4,2 m geodetisk kupol täckt med 4378 lysdioder. Lysdioderna är alla individuellt mappade och adresserbara. De styrs av Fadecandy och Processing på ett Windows -skrivbord. En Kinect är fäst vid en av kupolens stag, så
Hur man kontrollerar adresserbara lysdioder med Fadecandy och bearbetning: 15 steg (med bilder)
Så här kontrollerar du adresserbara lysdioder med Fadecandy och bearbetning: WhatThis är en steg-för-steg-handledning om hur du använder Fadecandy och Processing för att styra adresserbara lysdioder. Fadecandy är en LED-drivrutin som kan styra upp till 8 remsor med 64 pixlar vardera. (Du kan ansluta flera Fadecandys till en dator för att öka
4x4 knappsats med Arduino och bearbetning: 4 steg (med bilder)
4x4 knappsats med Arduino och bearbetning: Gillar du inte LCD -skärmar? Vill du få dina projekt att se tilltalande ut? Här är lösningen. I denna instruktionsbok kan du befria dig från besväret med att använda en LCD -skärm för att visa innehåll från din Arduino och också göra ditt projekt