Innehållsförteckning:

Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)

Video: Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)

Video: Temperatur och fuktighet Display och datainsamling med Arduino och bearbetning: 13 steg (med bilder)
Video: High Density 2022 2024, November
Anonim
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning
Temperatur- och luftfuktighetsvisning och datainsamling med Arduino och bearbetning

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:

Vad du kommer att behöva
Vad du kommer att behöva
Vad du kommer att behöva
Vad du kommer att behöva

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

Anslut Arduino till DHT11
Anslut Arduino till DHT11
Anslut Arduino till DHT11
Anslut Arduino till DHT11
Anslut Arduino till DHT11
Anslut Arduino till DHT11
Anslut Arduino till DHT11
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
Ladda ner Arduino IDE

Ladda ner Arduino IDE och installera på datorn

www.arduino.cc/en/Main/Software

Steg 4: Anslut Arduino till datorn

Anslut Arduino till datorn
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
Ladda biblioteket
Ladda biblioteket
Ladda biblioteket
Ladda biblioteket
Ladda biblioteket
Ladda biblioteket
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

Skaffa Arduino -koden
Skaffa 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

Ladda koden till Arduino
Ladda koden till Arduino
Ladda koden till Arduino
Ladda koden till Arduino
Ladda koden till Arduino
Ladda koden till Arduino
Ladda koden till Arduino
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

  1. "DHTlib" -biblioteket kopierades inte korrekt
  2. COM -porten är inte korrekt inställd
  3. Sensorn var inte korrekt ansluten
  4. 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

Ladda ner och installera bearbetning
Ladda ner och installera bearbetning
Ladda ner och installera bearbetning
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

Bearbetningskod
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

Teckensnitt i bearbetning
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

Slutför
Slutför
Slutför
Slutför
Slutför
Slutför
Slutför
Slutför

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

Felsökning
Felsökning
Felsökning
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: