Kazalo:

Prikaz temperature in vlažnosti ter zbiranje podatkov z Arduinom in obdelavo: 13 korakov (s slikami)
Prikaz temperature in vlažnosti ter zbiranje podatkov z Arduinom in obdelavo: 13 korakov (s slikami)

Video: Prikaz temperature in vlažnosti ter zbiranje podatkov z Arduinom in obdelavo: 13 korakov (s slikami)

Video: Prikaz temperature in vlažnosti ter zbiranje podatkov z Arduinom in obdelavo: 13 korakov (s slikami)
Video: Высокая плотность 2022 2024, Julij
Anonim
Prikaz temperature in vlažnosti ter zbiranje podatkov z Arduinom in obdelavo
Prikaz temperature in vlažnosti ter zbiranje podatkov z Arduinom in obdelavo

Uvod: To je projekt, ki uporablja ploščo Arduino, senzor (DHT11), računalnik z operacijskim sistemom Windows in program za obdelavo (brezplačen prenos) za prikaz temperature, podatkov o vlažnosti v digitalni obliki in v obliki stolpca, čas in datum ter štetje časovnik navzgor med programom in zapiranje vseh podatkov v format.csv, ko je program zaprt.

Navdih:

Najprej moram reči, da sem popolnoma začetnik in da sem se iz tega projekta veliko naučil. Zato poskušam napisati ta Instructable, da ga bo bral in razumel začetnik.

Videl sem različne Arduino projekte za merjenje temperature in vlažnosti, vendar sem hotel program, ki:

1) Izmerjena temperatura in vlaga

2) Podatki so prikazani v grafu (izbral sem stolpčni graf) in v digitalni obliki

3) Ima funkcijo ure

4) Ima odštevalnik časa delovanja

5) Shrani te podatke v datotečni format.csv (excel).

Navdih so mi dajali programi, ki so jih ustvarili Sowmith Mandadi, R-B in aaakash3, vendar nobeden od teh ni bil ravno tisto, kar sem hotel. Tako sem se naučil napisati nekaj osnovne kode in naredil, kar sem hotel.

1. korak: Kaj boste potrebovali:

Kaj boste potrebovali
Kaj boste potrebovali
Kaj boste potrebovali
Kaj boste potrebovali

Deli in materiali:*Računalnik - uporabljal sem operacijski sistem Windows 10 z operacijskim sistemom Windows 10

(Prepričan sem, da bi lahko uporabili Linux ali Mac, preprosto jih nimam, zato ne bom opisal, kako uporabljati te operacijske sisteme)

*Arduino Board - Uporabil sem ploščo Arduino Uno, vendar bo ustrezala vsaka plošča Arduino z USB -jem

*Kabel USB -USB A/B kabel -enako kot "tiskalniški kabel" starega tipa (običajno je priložen plošči Arduino)

*DHT 11 Senzor temperature /vlažnosti- poceni 4 do 8 USD

(Opomba: obstajata 2 različici, pri katerih sem uporabil 3 -polno različico, 4 -polna različica bo zahtevala uporabo plošče in 10K upor, 3 -polna ima tiskano vezje, ki vključuje 10K upor).

*Priključne žice

Dupont žice (dvojni ženski konci), če so priključene na 3 -polni DHT11 brez mize

Standardne mostične žice M/F (en konec moški en konec ženska) in mostičke žice M/M (oba konca moški) za priključitev 4 -polnega DHT11 - za več informacij glejte korak 2

*Arduino IDE - program za pisanje Arduino programov (imenovanih skice) brezplačno @

www.arduino.cc/en/Main/Software

*Obdelava - program za brezplačno pisanje obdelav skic @

processing.org/download/

* Datoteka "DHTLib" -datoteka knjižnice (to je datoteka, ki gre v program Arduino IDE v mapi z imenom "Knjižnica"), ki jo bo treba dodati v skico Arduino, preden bo Arduino lahko prebral podatke iz DHT11 -glej korak 5 za prenos datoteke in navodila

Korak: Arduino priključite na DHT11

Priključite Arduino na DHT11
Priključite Arduino na DHT11
Priključite Arduino na DHT11
Priključite Arduino na DHT11
Priključite Arduino na DHT11
Priključite Arduino na DHT11
Priključite Arduino na DHT11
Priključite Arduino na DHT11

Najprej ugotovite, kateri DHT11 imate

Uporabil sem 3 -polni, saj že ima potreben 10K upor.

Če imate 4 -polni, boste potrebovali 10K upor in ploščo

Priključite DHT11 na ploščo Arduino. Ta program zahteva, da je signalni zatič DHT 11 priključen na Arduino pin 7, pin Pos (+) priključen na 5V na Arduinu in Neg (-) na GND na Arduinu.

Glejte diagrame in diagrame zmrzovanja

Korak: Prenesite Arduino IDE

Prenesite Arduino IDE
Prenesite Arduino IDE

Prenesite Arduino IDE in ga namestite na računalnik

www.arduino.cc/en/Main/Software

4. korak: Arduino povežite z računalnikom

Arduino povežite z računalnikom
Arduino povežite z računalnikom

Najprej namestite Arduino IDE, ki ima gonilnike za povezavo USB Arduino.

Arduino povežite z računalnikom prek USB -ja.

Počakajte, da računalnik prepozna ploščo Arduino in namestite vse gonilnike.

Odprite program IDE in preverite serijsko povezavo.

Če se plošča Arduino ne prikaže v orodju> vrata (rdeč krog), zaprite IDE in znova odprite.

* Pomembno* ko je IDE odprt in je plošča Arduino povezana prek USB -ja. Plošča Arduino mora biti priključena na ustrezna serijska vrata. V računalnikih z operacijskim sistemom Windows se to imenuje COM vrata. To storite v IDE -ju tako, da odprete Orodja> Vrata:> Serijska vrata. Kot je prikazano na diagramu, se serijska vrata (rdeči krog) ujemajo z vrati, navedenimi v spodnjem desnem kotu programa IDE (rumeni krog).

5. korak: Naložite knjižnico

Naložite knjižnico
Naložite knjižnico
Naložite knjižnico
Naložite knjižnico
Naložite knjižnico
Naložite knjižnico
Naložite knjižnico
Naložite knjižnico

Naložite knjižnico za DHT11. To me je sprva zmedlo, a je res precej preprosto.

Prenesite datoteko z imenom »DHTLib« in jo razpakirajte. Kopirajte nezapakirano datoteko »DHTLib«.

Referenco o tej knjižnici najdete na:

playground.arduino.cc/Main/DHTLib

(Napisal ga je Rob Tillaart na podlagi dela drugih)

V računalniku poiščite mapo Arduino in jo odprite. (Tam bo povsod, kjer ste prenesli IDE in jo namestili v računalnik)

Glej diagram

Poiščite datoteko »knjižnice« in jo odprite, nato pa mapo »DHTLib« prilepite v datoteko »knjižnice«. Zaprite ga in nato znova zaženite IDE.

Glej diagram

Ko se IDE znova odpre, lahko preverite, ali je knjižnica DHT nameščena. Skica> Vključi knjižnico.

Glej diagram

Opomba S klikom na DHTLib na zavihku "vključi knjižnico" se knjižnica postavi v kodo Arduino kot "#include dht.h".

Tega vam ni treba storiti, ker je že v kodi, ki jo boste prenesli v naslednjem koraku.

6. korak: Pridobite kodo Arduino

Pridobite kodo Arduino
Pridobite kodo Arduino

Prenesite datoteko Temp_Hum_Instructable.zip in jo razpakirajte. Odprite Temp_Hum_Instructable.ino z Arduino IDE.

Druga možnost je, da pogledate naslednjo kodo in kopirate ter prilepite ali vnesete natančno v Arduino IDE:

#vključi

dht DHT; #define DHT11PIN 7 // nastavi pin 7 za povezavo signala DHT11 void setup () {Serial.begin (9600); // odpre serijski} void loop () {int chk = DHT.read11 (DHT11PIN); // prebere DHT11 Serial.print (DHT.temperature, 0); // natisne temp v serijskem Serial.print (","); // natisne vejico v serijskem Serial.print (DHT.humidity, 0); // natisne vlažnost v serijskem Serial.println (); // zakasnitev vračanja nosilca (2000); // počakajte 2 sekundi}

Ko končate, bi moralo izgledati kot zgornji diagram

Korak 7: Naložite kodo na Arduino

Naložite kodo na Arduino
Naložite kodo na Arduino
Naložite kodo na Arduino
Naložite kodo na Arduino
Naložite kodo na Arduino
Naložite kodo na Arduino
Naložite kodo na Arduino
Naložite kodo na Arduino

Najprej shranite skico na mesto in ime, ki si ga boste zapomnili, Primer: Temp_Hum.

Nato morate skico naložiti na ploščo Arduino tako, da pritisnete gumb s puščico v desno (naloži).

Glej diagram

To bo trajalo nekaj sekund; v spodnjem desnem kotu boste videli vrstico napredka.

Nato boste videli: Končano nalaganje sporočila v spodnjem levem kotu in belo besedilo na dnu IDE, ki govori o pomnilniku

Glej diagram

Če dobite kodo napake (oranžno besedilo na dnu IDE -ja), mora biti to eno od naslednjih

  1. Knjižnica "DHTlib" ni bila pravilno kopirana
  2. Vrata COM niso pravilno nastavljena
  3. Senzor ni bil pravilno priključen
  4. Koda ni bila pravilno naložena v IDE. Oranžno besedilo se lahko pomika in namiguje, kaj je narobe. Vrnite se in preverite, ali gre verjetno za preprosto napako.

Ko to storite, si natančno oglejte ploščo Arduino. Vsakih nekaj sekund bo lučka poleg črk »TX« utripala. To je Arduino, ki podatke pošilja nazaj v računalnik. Če želite to preveriti, kliknite simbol male lupe v zgornjem desnem kotu IDE.

Glej diagram

S tem se odpre serijski monitor in prikažejo podatki o temperaturi in vlažnosti, ločeni z vejico. Opazili boste, da so podatki o temperaturi navedeni v Celzijah. To je v redu, kasneje bomo pretvorili v Fahrenheit (ali ne, če se odločite).

Glej diagram

Nato zaprite serijski monitor in nato zaprite IDE. (Ste se spomnili, da ste ga shranili, kajne?). Zdaj znova poglejte ploščo Arduino (ne odklopite je iz USB -ja, kjer dobiva napajanje, in pošiljajte podatke v serijska vrata v računalniku). Ali še utripa? Ja, super. Ko je program naložen na Arduino, bo deloval, dokler ima moč.

Opomba glede kode: če pogledate kodo Arduino, ki se začne z “void loop ();”. Naslednjih 5 vrstic kode pove Arduinu, naj prebere podatke iz DHT in jih natisne na zaporedno vodilo, ločeno z vejico. Naslednja vrstica »zamuda (2000);« pove Arduinu, naj počaka 2 sekundi (2000 milisekund), da bodo podatki prejeti vsake 2 sekundi. Nato se vrne na "void loop ();" - ukaz, ki pove Arduinu, naj to ponovi. Sprememba vrednosti v vrstici za zamudo bo spremenila pogostost prejemanja podatkov. Primer: sprememba v (600000) se bo spremenila do 10 minut (600000 milisekund = 10 minut). Prejemanje podatkov na vsaki 2 sekundi je na koncu veliko podatkov, zato zdaj veste, kako spremeniti, kako pogosto se podatki berejo. Samo zapomnite si, če pozneje spremenite vrednost morate naložiti nov program.

V redu, sedite in vdihnite, ste že na pol poti. Ja !!

8. korak: Prenesite in namestite obdelavo

Prenesi in namesti obdelavo
Prenesi in namesti obdelavo
Prenesi in namesti obdelavo
Prenesi in namesti obdelavo

processing.org/download/

Preprosto izberite program, ki ustreza vašemu računalniku za Windows 64bit v primerjavi z 32 bit. Če ne veste, odprite nadzorno ploščo v računalniku (pogled ikone, ne pogled kategorije) in pojdite v sistem, kjer bo naveden.

Glej diagram

Prenesite in nato namestite program.

Ko prvič odprete in zaženete obdelavo, boste verjetno dobili varnostno sporočilo Java. Kliknite »dovoli« za zasebna omrežja. Java je računalniški jezik, ki ga uporabljata Processing (in Arduino IDE). Zanimivo je, da nikoli nisem imel varnostnega sporočila z Arduino IDE, samo obdelava.

9. korak: Obdelava kode

Koda za obdelavo
Koda za obdelavo

V redu za kodo za obdelavo.

To je bil zame najbolj zahteven del, a hkrati tudi največ možnosti za učenje. Medtem ko je bila koda Arduino približno 20 vrstic, ima ta koda +/- 270 vrstic v glavni kodi in še 70 + v razredih.

Zdaj bi se morali najprej vprašati: "Kaj so razredi?". Dobro vprašanje. To se nanaša na objektno usmerjeno programiranje. Skratka, v glavni kodi se dogaja veliko stvari: opredelitev velikosti in barve zaslona, ura, časovnik, koda za prikaz lokacije kazalca, koda za shranjevanje podatkov v datoteko.csv in nekaj vrstic ki obravnavajo kodo, ki prikazuje stolpce. Medtem ko je imela Arduino IDE vso kodo na eni strani, ima ta koda za obdelavo tri zavihke. Prva je glavna koda, naslednji dve pa koda, ki prikazuje stolpične grafikone. (Ta koda je dejansko shranjena v treh ločenih datotekah v mapi Processing code.) Ločeni zavihki se imenujejo "razredi" in so opredeljeni v vrsticah 48 in 56, nato pa prikazani v vrsticah 179-182 glavne kode. Ljudje, ki so napisali program za obdelavo, imenujejo to objektno usmerjeno programiranje. (za kratek opis glejte:

V bistvu razredi (Recta1, Recta2) v tej kodi ustvarijo pravokotnike, ki se premikajo navzgor in navzdol na podlagi podatkov, prejetih od DHT11 prek zaporedja. Pomislite na staromodni termometer, višje ko je živo srebro, bolj je vroče, vendar to storite s podatki, ne z živim srebrom. V resnici razredi ustvarijo štiri pravokotnike, dva statična pravokotnika, ki predstavljata ozadje termometra, in dva dinamična pravokotnika, ki se odzivata na podatke in se premikata gor in dol. Poleg premikanja pravokotnikov koda spreminja barvo dinamičnega pravokotnika in barvo digitalnega prikaza temp in vlažnost glede na podatke, ki jih prejema serijsko.

10. korak: Obdelava kodnih datotek

Nekaj osnov o obdelavi kode:

Zelo priporočam branje Make: Getting Started withProcessing avtorjev Casey Reas in Ben Fry, ustanoviteljev podjetja Processing.

processing.org/books/#reasfry2

Ne bom poskušal razložiti vseh vidikov obdelave ali pisanja kode za obdelavo. Kot sem že rekel, sem začetnik in mislim, da se lahko naučimo veliko boljših ljudi. Razumem pa kodo, ki sem jo napisal (poskus in napaka sta dobra učitelja).

1. Najprej morate vključiti knjižnice (tako kot v Arduinu) in razglasiti spremenljivke (vrstice 1-25)

2. Nato nastavite prikazno ploščo (vrstice 27–63)

3. Zaženite ponavljajoči se del kode- mislim, da se bo ta del kode ponavljal, dokler program deluje. V Arduinu se boste spomnili "void loop ();" (6. korak). V obdelavi je to zdaj "void draw ();" (Vrstice 65-184)

4. Naslednje je pridobivanje podatkov iz serijskih vrat in njihova dodelitev spremenljivkam (int, float, String)

int-

lebdi-

Vrvica-

(Vrstice 185-245)

4. Nazadnje način, da zaprete program in shranite podatke (vrstice 246-271)

V redu: prenesite datoteko Temp_Hum_F_3_2 (za Fahrenheit)

Ali Temp_Hum_C_3_1 (za stopinje Celzija)

in razpakirajte datoteko. Odpri z obdelavo.

11. korak: Pisava v obdelavi

Pisava v obdelavi
Pisava v obdelavi

Pomembno: opozarjam vas na vrstice 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // naloži pisavo, shranjeno v podatkih

mapa 37 textFont (pisava);

Ta knjižnica pisav "SourceCodePro-Bold-48.vlw" je vključena v prenose datotek za obdelavo in je ni treba spreminjati za delovanje.

Če pa želite pisavo spremeniti v nekaj drugega, boste morali novo pisavo naložiti v skico za obdelavo in "SourceCodePro-Bold-48.vlw" zamenjati z novo pisavo.

. Na srečo je obdelava zelo olajšala prvi del.

Najprej odprite skico, nato kliknite:

Orodja> Ustvari pisavo

to odpre okno

Glej diagram

Pomaknite se navzdol do želene nove pisave, kliknite nanjo in nato kliknite V redu. Pisava je zdaj naložena v mapo skic.

Nato zamenjajte besedilo "SourceCodePro-Bold-48.vlw" z natančnim imenom nove pisave (vključno z obliko datoteke.vlw)

Če tega ne storite, se nova pisava ne bo naložila v kodo in koda bo dala napake (tako kot napake v Arduinu- v črnem polju na dnu programa).

12. korak: Dokončanje

Dokončanje
Dokončanje
Dokončanje
Dokončanje
Dokončanje
Dokončanje
Dokončanje
Dokončanje

Če želite zagnati program za obdelavo, kliknite puščico, lahko dobite opozorilo Java, kliknite: Dovoli dostop.

Glej diagram

OK, je program deloval? Če je tako, boste dobili zaslon, kot je prikazan na diagramu.

(Ne? Oglejte si odpravljanje težav v naslednjem koraku)

Ja? Zdaj poskusite držati DHT11 v zaprti dlani ali postaviti pod tok toplega zraka sušilnika za lase. Številke bi se morale spremeniti. Ja? Super. to pomeni, da vse dobro deluje.

Če želite zapreti program in shraniti podatke, kliknite polje z napisom »Kliknite tukaj, da zaprete in shranite podatke«.

Zdaj, da poiščete shranjene podatke, pojdite v mapo Temp_Hum_F_3_1 ali Temp_Hum_C_3_1 Processing (to bi morali najti že sami), jo odprite in poiščite mapo Data. Odprite to in prikazala bi se datoteka.csv po datumu in uri, ko ste program zaprli (Primer 1-10-18–22-30-16.csv pomeni 10. januar 2018 22:30:16). Odprite to z Excelom (ali ekvivalentom odprtega uradnega preglednika). Morali bi videti nekaj podobnega diagramu. Stolpci za datum, čas, čas delovanja, temperaturo in vlažnost s podatki. Zdaj lahko grafično prikažete podatke z Excelom ali karkoli želite narediti z njim. (Opomba: če pogledate prvi vnos podatkov, podatki Temp in Vlažnost nista pravilna, je to normalno in je le napaka ob prvem zagonu programa)

OK ja !!!!!!

Ti si naredil

Če imate kakršna koli vprašanja, pišite in potrudil se bom, da vam odgovorim in pomagam.

Hvala, ker ostajate pri tem in veliko sreče. Upam, da je to šele začetek ….

Sledi zame Bluetooth in morda Android….

13. korak: Odpravljanje težav

Odpravljanje težav
Odpravljanje težav
Odpravljanje težav
Odpravljanje težav

Težave z Arduinom

Če dobite kodo napake (oranžno besedilo na dnu IDE), mora biti to eno od naslednjih: Knjižnica "DHTlib" ni bila pravilno kopirana

Vrata COM niso pravilno nastavljena

Senzor ni bil pravilno priključen

Koda ni bila pravilno naložena v IDE

Če se zdi, da je vse Arduino v redu, odprite serijski monitor in preverite, ali so prikazani podatki

Če vidite pravilne podatke, to pomeni, da stran Arduino deluje. Ne pozabite, da pred začetkom obdelave zaprite serijski monitor, če je serijski monitor odprt, obdelava ne more prebrati podatkov.

Težave pri obdelavi:

Ti bodo prikazani v spodnjem delu programa Processing.

Če se prikaže napaka pri opisu "pisave", se vrnite na 11. korak in naložite pisavo, kot je opisano.

Če se prikaže napaka, ki izgleda tako: Napaka, onemogočanje serialEvent () za COM4 null- samo znova zaženite skico Processing s klikom na puščico kot v 12. koraku

Če dobite napako, ki navaja: Napaka pri odpiranju serijskih vrat- poskusite spremeniti vrstice 32-34 na nekaj takega, kjer se "COM4" ujema s vrati COM na vaši skici Arduino

myPort = newSerial (this, "COM4", 9600); // Pristani myPort.bufferUntil ('\ n') // počakajte, da ima serija serijske podatke

Priporočena: