Sadržaj:

Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom: 13 koraka (sa slikama)
Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom: 13 koraka (sa slikama)

Video: Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom: 13 koraka (sa slikama)

Video: Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom: 13 koraka (sa slikama)
Video: Scentroid's CTAir Continuous Urban Air Quality Monitor Seminar A 12.08.2020 (Subtitled) 2024, Srpanj
Anonim
Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom
Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom

Uvod: Ovo je projekt koji koristi Arduino ploču, senzor (DHT11), računalo sa sustavom Windows i program za obradu (besplatan za preuzimanje) za prikaz temperature, podataka o vlažnosti u digitalnom i obliku grafikona, prikaz vremena i datuma te pokretanje brojača mjerač vremena tijekom programa i snimite sve podatke u.csv formatu kada se program zatvori.

Inspiracija:

Prvo MORAM reći da sam totalni početnik i da sam jako puno naučio iz ovog projekta. Stoga pokušavam napisati ovaj Instructable kako bi ga čitao i razumio potpuni početnik.

Vidio sam razne Arduino projekte za mjerenje temperature i vlažnosti, ali htio sam program koji:

1) Izmjerena temperatura i vlaga

2) Prikazani su podaci i u grafikonu (odabrao sam stupčasti grafikon) i u digitalnom obliku

3) Ima funkciju sata

4) Ima odbrojavanje vremena rada

5) Sprema ove podatke u.csv (excel) format datoteke.

Inspirirao sam se programima koje su stvorili Sowmith Mandadi, R-B i aaakash3, ali ništa od ovoga nije bilo upravo ono što sam želio. Tako sam naučio napisati neki osnovni kod i napravio ono što sam htio.

Korak 1: Ono što će vam trebati:

Ono što će vam trebati
Ono što će vam trebati
Ono što će vam trebati
Ono što će vam trebati

Dijelovi i materijali:*Računalo - Koristio sam Windows računalo Windows 10 operativni sustav

(Siguran sam da bi se mogao koristiti Linux ili Mac, jednostavno nemam ni jedno ni drugo pa neću opisati kako koristiti ove operativne sustave)

*Arduino ploča - Koristio sam Arduino Uno ploču, ali svaka Arduino ploča s USB -om će poslužiti

*USB kabel -USB A/B kabel -isto što i stari kabel za pisač (obično dolazi s Arduino pločom)

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

(Napomena: postoje 2 verzije koje sam koristio s 3 -polnom verzijom, za 4 -polnu verziju bit će potrebna upotreba matične ploče i 10K otpornika, 3 -pinska ima tiskanu ploču koja uključuje 10K otpornik), pogledajte dijagrame preklapanja u sljedećim koracima

*Priključne žice

Dupont žice (dvostruki ženski krajevi) ako se spajaju na 3 -polni DHT11 bez matične ploče

Standardne kratkospojne M/Ž žice (jedan kraj muški jedan kraj ženska) i žice kratkospojnika M/M (oba kraja muški) za spajanje 4 -polnog DHT11 - za više informacija pogledajte korak 2

*Arduino IDE - program za pisanje Arduino programa (koji se nazivaju skice) besplatno @

www.arduino.cc/en/Main/Software

*Obrada - program za besplatno pisanje skica za obradu @

processing.org/download/

* Datoteka "DHTLib" -datoteka biblioteke (ovo je datoteka koja ulazi u Arduino IDE program pod mapom pod nazivom "Knjižnica") koju će trebati dodati skici Arduina prije nego što Arduino može pročitati podatke s DHT11 -pogledajte korak 5 za preuzimanje datoteke i upute

Korak 2: Spojite Arduino na DHT11

Spojite Arduino na DHT11
Spojite Arduino na DHT11
Spojite Arduino na DHT11
Spojite Arduino na DHT11
Spojite Arduino na DHT11
Spojite Arduino na DHT11
Spojite Arduino na DHT11
Spojite Arduino na DHT11

Prvo odredite koji DHT11 imate

Koristio sam 3 pinski jer već ima potreban 10K otpornik.

Ako imate 4 pina, trebat će vam 10K otpornik i matična ploča

Spojite DHT11 na Arduino ploču. Ovaj program zahtijeva da se signalni pin DHT 11 spoji na Arduino pin #7, Pos (+) pin spojen na 5V na Arduinu i Neg (-) na GND na Arduinu.

Pogledajte Dijagrami i dijagrami frcanja

Korak 3: Preuzmite Arduino IDE

Preuzmite Arduino IDE
Preuzmite Arduino IDE

Preuzmite Arduino IDE i instalirajte ga na računalo

www.arduino.cc/en/Main/Software

Korak 4: Povežite Arduino s računalom

Spojite Arduino na računalo
Spojite Arduino na računalo

Prvo instalirajte Arduino IDE koji ima upravljačke programe za Arduino USB vezu.

Spojite Arduino na računalo putem USB -a.

Pričekajte da računalo prepozna Arduino ploču i instalirajte sve upravljačke programe.

Otvorite IDE program i provjerite serijsku vezu.

Ako se Arduino ploča ne prikazuje na portu Alati> port (crveni krug), zatvorite IDE i ponovno otvorite.

* Važno* kada se IDE otvori i Arduino ploča poveže putem USB -a. Arduino ploča mora biti spojena na ispravan serijski port. Na računalima sa sustavom Windows ovo se naziva COM port. Da biste to učinili u IDE -u, idite na Alati> Port:> Serijski portovi. Kao što se vidi na dijagramu, serijski port (crveni krug) mora odgovarati portu navedenom u donjem desnom kutu IDE programa (žuti krug).

Korak 5: Učitajte biblioteku

Učitajte biblioteku
Učitajte biblioteku
Učitajte biblioteku
Učitajte biblioteku
Učitajte biblioteku
Učitajte biblioteku
Učitajte biblioteku
Učitajte biblioteku

Učitajte knjižnicu za DHT11. Ovo mi je u početku bilo zbunjujuće, ali je doista vrlo jednostavno.

Preuzmite datoteku pod nazivom "DHTLib" i raspakirajte. Kopirajte raspakiranu datoteku “DHTLib”.

Referencu o ovoj biblioteci možete pronaći na:

playground.arduino.cc/Main/DHTLib

(Napisao ga je Rob Tillaart na temelju rada drugih)

Pronađite mapu Arduino na svom računalu i otvorite je. (Bit će to gdje god ste preuzeli IDE i instalirali ga na računalo)

Vidi Dijagram

Pronađite datoteku pod nazivom "knjižnice" i otvorite je, a zatim zalijepite mapu "DHTLib" u datoteku "knjižnice". Zatvorite ga, a zatim ponovno pokrenite IDE.

Vidi Dijagram

Nakon što se IDE ponovno otvori, možete provjeriti je li DHT knjižnica instalirana. Skica> Uključi biblioteku.

Vidi Dijagram

Napomena Klikom na DHTLib na kartici "include library" biblioteka će biti smještena u Arduino kod kao "#include dht.h".

Ne morate to učiniti jer se već nalazi u kodu koji ćete preuzeti u sljedećem koraku.

Korak 6: Nabavite Arduino kod

Nabavite Arduino kod
Nabavite Arduino kod

Preuzmite datoteku Temp_Hum_Instructable.zip i raspakirajte. Otvorite Temp_Hum_Instructable.ino s Arduino IDE -om.

Alternativno pogledajte sljedeći kod i kopirajte, zalijepite ili upišite točno u Arduino IDE:

#uključi

dht DHT; #define DHT11PIN 7 // postavlja pin 7 za DHT11 signalnu vezu void setup () {Serial.begin (9600); // otvara serijski} void loop () {int chk = DHT.read11 (DHT11PIN); // čita DHT11 Serial.print (DHT.temperature, 0); // ispisuje temp u serijskom Serial.print (","); // ispisuje zarez u serijskom Serial.print (DHT.humidity, 0); // ispisuje vlažnost u serijskom Serial.println (); // kašnjenje vraćanja nosača (2000); // pričekajte 2 sekunde}

Kada završite, to bi trebalo izgledati kao gornji dijagram

Korak 7: Učitajte kôd na Arduino

Učitajte kôd na Arduino
Učitajte kôd na Arduino
Učitajte kôd na Arduino
Učitajte kôd na Arduino
Učitajte kôd na Arduino
Učitajte kôd na Arduino
Učitajte kôd na Arduino
Učitajte kôd na Arduino

Prvo spremite skicu na mjesto i s imenom koje ćete zapamtiti, Primjer: Temp_Hum.

Zatim morate skicirati skicu na Arduino ploču pritiskom na tipku sa strelicom udesno (upload).

Vidi Dijagram

To će potrajati nekoliko sekundi; u donjem desnom kutu vidjet ćete traku napretka.

Tada ćete vidjeti: Gotovo učitavanje poruke u donjem lijevom kutu i bijeli tekst na dnu IDE -a koji vam govori o memoriji

Vidi Dijagram

Ako dobijete kôd pogreške (narančasti tekst na dnu IDE -a), to bi trebao biti jedan od sljedećih znakova

  1. Knjižnica "DHTlib" nije ispravno kopirana
  2. COM port nije ispravno postavljen
  3. Senzor nije pravilno spojen
  4. Kôd nije ispravno učitan u IDE. Narančasti tekst se može listati i on će dati trag o tome što nije u redu. Vratite se i provjerite je li to vjerojatno jednostavna pogreška.

Nakon što to učinite, pažljivo pogledajte Arduino ploču. Svakih nekoliko sekundi mala LED dioda pored slova “TX” će treperiti. Ovo je Arduino koji šalje informacije natrag na računalo. Da biste to provjerili, kliknite simbol male lupe u gornjem desnom kutu IDE -a.

Vidi Dijagram

Ovo će otvoriti serijski monitor i prikazati podatke o temperaturi i vlažnosti odvojene zarezom. Primijetit ćete da su podaci o temperaturi navedeni u Celzijusima. To je u redu, kasnije ćemo pretvoriti u Fahrenheit (ili ne ako ste odabrali).

Vidi Dijagram

Zatim zatvorite serijski monitor, a zatim zatvorite IDE. (Zapamtili ste da ste ga spremili, zar ne?). Sada ponovno pogledajte Arduino ploču (nemojte je odvajati od USB -a na kojem se napaja i slati podatke na serijski priključak na računalu). Trepće li još uvijek? Da odlično. Nakon što se program učita na Arduino, radit će sve dok ima snage.

Napomena o kodu: ako pogledate Arduino kôd koji počinje s “void loop ();”. Sljedećih 5 redaka koda govori Arduinu da pročita podatke iz DHT -a i ispiše ih na serijsku sabirnicu odvojenu zarezom. Sljedeći redak "odgoda (2000);" govori Arduinu da pričeka 2 sekunde (2000 milisekundi) kako bi se podaci primali svake 2 sekunde. Zatim se vraća na "void loop ();" - naredbu koja govori Arduinu da to ponovi. Promjenom vrijednosti u retku odgode promijenit će se učestalost primanja podataka. Primjer: promjena u (600000) će se promijeniti na 10 minuta (600000 milisekundi = 10 minuta). Primanje podataka svake 2 sekunde završi kao mnogo podataka, pa sada znate kako promijeniti učestalost čitanja podataka. Samo zapamtite ako kasnije promijenite vrijednost morate učitati novi program.

U redu, sjednite i udahnite, već ste na pola puta do tamo. Da !!

Korak 8: Preuzmite i instalirajte Obrada

Preuzmite i instalirajte Obrada
Preuzmite i instalirajte Obrada
Preuzmite i instalirajte Obrada
Preuzmite i instalirajte Obrada

processing.org/download/

Vrlo jednostavno odaberite program koji odgovara vašem računalu za Windows 64bit vs 32 bit. Ako ne znate, otvorite upravljačku ploču na računalu (prikaz ikona, a ne kategorija) i idite na sustav gdje će se tamo navesti.

Vidi Dijagram

Preuzmite, a zatim instalirajte program.

Prilikom prvog otvaranja i pokretanja obrade vjerojatno ćete dobiti sigurnosnu poruku Java. Pritisnite "dopusti" za privatne mreže. Java je računalni jezik koji koristi Processing (i Arduino IDE). Zanimljivo je da nikada nisam imao sigurnosnu poruku s Arduino IDE -om, samo obrada.

Korak 9: Obrada koda

Kod obrade
Kod obrade

U redu za kôd za obradu.

Ovo mi je bio najizazovniji dio, ali i najveća prilika za učenje. Dok je Arduino kôd imao 20-ak redaka, ovaj kôd ima +/- 270 redaka u glavnom kodu i još 70 + u klasama.

Prvo što biste trebali pitati je "Što su časovi?". Dobro pitanje. To se odnosi na objektno orijentirano programiranje. Ukratko, u glavnom se kodu događa mnogo stvari: definiranje veličine i boje zaslona, sat, mjerač vremena, kôd za prikaz lokacije kursora, kôd za spremanje podataka u.csv datoteku i nekoliko redaka koji se bave kodom koji prikazuje stupčaste grafikone. Dok je Arduino IDE imao sav kôd na jednoj stranici, ovaj kôd za obradu ima tri kartice. Prvi je glavni kôd, a sljedeća dva kôd koji prikazuje stupčaste grafikone. (Ovaj je kôd zapravo pohranjen u tri zasebne datoteke u mapi Obrada koda.) Odvojene kartice nazivaju se "klase" i definirane su u retcima 48 i 56, a zatim su prikazane retcima 179-182 glavnog koda. Ljudi koji su napisali Program za obradu nazivaju ovo objektno orijentirano programiranje. (za kratak opis pogledajte:

U osnovi, klase (Recta1, Recta2) u ovom kodu stvaraju pravokutnike koji se kreću gore -dolje na temelju podataka primljenih od DHT11 putem serijskog broja. Zamislite staromodni termometar što je živa sve veća što je živa vruća, ali to se radi s podacima, a ne živom. Zapravo, klase stvaraju četiri pravokutnika, dva statička pravokutnika koji predstavljaju pozadinu termometra i dva dinamička pravokutnika koji reagiraju na podatke i kreću se gore -dolje. Osim pomicanja pravokutnika, kôd mijenja boju dinamičkog pravokutnika i boju digitalnog prikaza temperature i vlažnosti na temelju podataka koji se primaju serijski.

Korak 10: Obrada kodnih datoteka

Samo nekoliko osnova o obradi koda:

Toplo preporučujem čitanje Make: Getting Started withProcessing od Casey Reas i Bena Fryja osnivača Processinga.

processing.org/books/#reasfry2

Neću pokušati objasniti sve aspekte obrade ili pisanja koda za obradu. Kao što sam ranije rekao, ja sam početnik i mislim da ima mnogo boljih ljudi od kojih se može učiti. Međutim, razumijem kôd koji sam napisao (pokušaj i pogreška su dobri učitelji).

1. Prvo morate uključiti knjižnice (baš kao u Arduinu) i deklarirati varijable (Linije 1-25)

2. Zatim postavite ploču zaslona (Linije 27-63)

3. Pokrenite ponovljeni dio koda- hoću reći da će se ovaj dio koda ponavljati sve dok je program pokrenut. Sjetit ćete se U Arduinu "void loop ();" (Korak 6). U obradi ovo je sada "void draw ();" (Reci 65-184)

4. Slijedi dobivanje podataka sa serijskog porta i njihovo dodjeljivanje varijablama (int, float, String)

int-

plutati-

Niz-

(Linije 185-245)

4. Na kraju način zatvaranja programa i spremanja podataka (retci 246-271)

U redu: preuzmite datoteku Temp_Hum_F_3_2 (za Fahrenheit)

Ili Temp_Hum_C_3_1 (za Celzijeve)

i raspakirajte datoteku. Otvori s Obrada.

Korak 11: Font u obradi

Font u obradi
Font u obradi

Važno: Skrećem vašu pozornost na retke 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // učitava font pohranjen u podacima

mapa 37 textFont (font);

Ova biblioteka fontova "SourceCodePro-Bold-48.vlw" uključena je u Preuzimanja datoteka za obradu i ne mora se mijenjati kako bi funkcionirala.

Međutim, da biste promijenili font u nešto drugo, morat ćete učitati novi font u skicu Obrada i zamijeniti "SourceCodePro-Bold-48.vlw" novim fontom.

. Na sreću Obrada je prvi dio učinila vrlo lakim.

Prvo otvorite skicu, a zatim kliknite:

Alati> Izradi font

ovo otvara prozor

Vidi dijagram

Pomaknite se do željenog novog fonta, kliknite na njega, a zatim kliknite na U redu. Font je sada učitan u mapu skica.

Zatim zamijenite tekst "SourceCodePro-Bold-48.vlw" točnim nazivom novog fonta (uključujući format datoteke.vlw)

Ako se to ne učini, novi font neće se učitati u kôd i kôd će dati pogreške (Baš kao i pogreške u Arduinu- u crnom okviru na dnu programa).

Korak 12: Dovršavanje

Završavanje
Završavanje
Završavanje
Završavanje
Završavanje
Završavanje
Završavanje
Završavanje

Za pokretanje programa Processing kliknite na strelicu, možda ćete dobiti Java upozorenje, Click: Allow access.

Vidi Dijagram

U redu, je li program radio? Ako je tako, dobit ćete prikaz kao što je prikazano na dijagramu.

(Ne? Pogledajte rješavanje problema u sljedećem koraku)

Da? Sada pokušajte držati DHT11 u zatvorenom dlanu ili staviti ispod struje toplog zraka sušila za kosu. Brojevi bi se trebali promijeniti. Da? Sjajno. to znači da sve radi dobro.

Za zatvaranje programa i spremanje podataka kliknite okvir s natpisom "Kliknite ovdje za zatvaranje i spremanje podataka".

Sada kako biste pronašli spremljene podatke, idite u mapu Temp_Hum_F_3_1 ili Temp_Hum_C_3_1 Processing (to biste već trebali moći pronaći sami) otvorite je i pronađite mapu Data. Otvorite ovo i trebali biste vidjeti.csv datoteku nazvanu po datumu i vremenu zatvaranja programa (Primjer 1-10-18--22-30-16.csv znači 10. siječnja 2018 22:30:16). Otvorite ovo s Excelom (ili ekvivalentom otvorene uredske tablice). Trebali biste vidjeti nešto poput dijagrama. Stupci za datum, vrijeme, vrijeme izvođenja, temp i vlažnost s podacima. Sada možete grafički prikazati podatke uz Excel ili što god želite učiniti s njim. (Napomena: ako pogledate prvi unos podataka, podaci o temperaturi i vlažnosti nisu točni, to je normalno i samo je pogreška pri prvom pokretanju programa)

OK da !!!!!

Uspio si

Ako imate bilo kakvih pitanja, pošaljite poruku, a ja ću se potruditi odgovoriti i pomoći.

Hvala vam što ste ostali s ovim i sretno. Nadam se da je ovo samo početak ….

Sljedeći za mene Bluetooth i eventualno Android….

Korak 13: Rješavanje problema

Rješavanje problema
Rješavanje problema
Rješavanje problema
Rješavanje problema

Problemi s Arduinom

Ako dobijete kôd pogreške (narančasti tekst na dnu IDE -a), to bi trebao biti jedan od sljedećih biblioteka "DHTlib" nije pravilno kopirana

COM port nije ispravno postavljen

Senzor nije pravilno spojen

Kôd nije ispravno učitan u IDE

Ako izgleda da je sav Arduino u redu, ne zaboravite otvoriti serijski monitor i provjeriti prikazuju li se podaci

Ako vidite ispravne podatke, to znači da Arduino strana radi. Zapamtite Zatvorite serijski monitor prije početka obrade, ako je serijski monitor otvoren. Obrada ne može pročitati podatke.

Problemi s obradom:

Oni će biti prikazani u donjem dijelu programa Obrada.

Ako dobijete pogrešku u opisu "fonta", vratite se na korak 11 i učitajte font kako je opisano.

Ako dobijete pogrešku koja izgleda ovako: Pogreška, onemogućavanje serialEvent () za COM4 null- samo ponovno pokrenite skicu Obrada klikom na strelicu kao u koraku 12

Ako dobijete pogrešku koja glasi: Pogreška pri otvaranju serijskog porta- pokušajte promijeniti retke 32-34 u nešto poput mjesta gdje se "COM4" podudara s COM portom na vašoj Arduino skici

myPort = newSerial (this, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // pričekajte da serija ima podatke

Preporučeni: