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, Juli
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 potpuno početnik i da sam mnogo naučio iz ovog projekta. Stoga pokušavam napisati ovaj Instructable da 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 ono što sam želio. Tako sam naučio napisati neki osnovni kod i napravio ono što sam htio.

Korak 1: Šta će vam trebati:

Šta će vam trebati
Šta će vam trebati
Šta će vam trebati
Šta će vam trebati

Delovi i materijali:*Računar - koristio sam Windows računar Windows 10 operativni sistem

(Siguran sam da se mogu koristiti Linux ili Mac, jednostavno nemam ni jedno ni drugo pa neću opisati kako se koriste ovi operativni sistemi)

*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 tip "kabela pisača" (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 sa 3 -pinskom verzijom, za 4 -pinsku verziju će biti potrebna upotreba matične ploče i 10K otpornika, 3 pinska ima štampanu 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ške) za povezivanje 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 ide u Arduino IDE program u fascikli pod nazivom "Biblioteka") koju će biti potrebno dodati u Arduino skicu 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 utvrdite 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, Poz (+) pin spojen na 5V na Arduinu i Neg (-) na GND na Arduinu.

Pogledajte dijagrame i dijagrame 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 sa računarom

Povežite Arduino sa računarom
Povežite Arduino sa računarom

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

Spojite Arduino na računalo putem USB -a.

Sačekajte da računar 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 odgovarajući serijski port. Na Windows računarima to 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 se podudarati s portom navedenim 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 zaista 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 osnovu rada drugih)

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

Pogledajte Dijagram

Pronađite datoteku pod nazivom „biblioteke“i otvorite je, a zatim zalijepite mapu „DHTLib“u datoteku „biblioteke“. Zatvorite ga, a zatim ponovo pokrenite IDE.

Pogledajte Dijagram

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

Pogledajte 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 je već 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:

#include

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 sačuvajte skicu na lokaciji i sa imenom koje ćete zapamtiti, Primjer: Temp_Hum.

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

Pogledajte Dijagram

Ovo ć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

Pogledajte Dijagram

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

  1. Biblioteka "DHTlib" nije pravilno kopirana
  2. COM port nije ispravno postavljen
  3. Senzor nije pravilno povezan
  4. Kôd nije pravilno učitan u IDE. Narandžasti tekst se može listati i on će dati naznaku šta nije u redu. Vratite se i provjerite je li to vjerovatno jednostavna greška.

Kada to učinite, pažljivo pogledajte Arduino ploču. Svakih nekoliko sekundi mala LED lampica pored slova “TX” će treptati. Ovo je Arduino koji šalje informacije nazad na računar. Da biste ovo provjerili, kliknite na simbol lupe u gornjem desnom kutu IDE -a.

Pogledajte 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 preći na Fahrenheit (ili ne ako odaberete).

Pogledajte Dijagram

Zatim zatvorite serijski monitor, a zatim zatvorite IDE. (Zapamtili ste da ste ga sačuvali, zar ne?). Sada ponovo pogledajte Arduino ploču (ne isključujte je sa USB -a na kojem se napaja i šalje podatke na serijski port na računaru). Da li i dalje treperi? 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 sa „void loop ();“. Sljedećih 5 redaka koda govore Arduinu da čita podatke iz DHT -a i ispisuje ih na serijsku sabirnicu odvojenu zarezom. Sljedeći red "kašnjenje (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 do 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. Yea !!

Korak 8: Preuzmite i instalirajte obradu

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

processing.org/download/

Prilično jednostavno odaberite program koji odgovara vašem računaru za Windows 64bit naspram 32 bit. Ako ne znate, otvorite kontrolnu ploču na računaru (prikaz ikona, a ne kategorija) i idite na sistem gdje će se tamo navesti.

Pogledajte Dijagram

Preuzmite, a zatim instalirajte program.

Kada prvi put otvorite i pokrenete obradu, vjerojatno ćete dobiti Java sigurnosnu poruku. Pritisnite "dopusti" za privatne mreže. Java je računarski 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 sada za kod za obradu.

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

Prvo što biste trebali pitati je "Šta su časovi?". Dobro pitanje. To se odnosi na objektno orijentisano programiranje. Ukratko, u glavnom kodu se događa mnogo stvari: definiranje veličine i boje ekrana, 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 kod na jednoj stranici, ovaj kod za obradu ima tri kartice. Prvi je glavni kôd, a sljedeća dva kôd koji prikazuje stupčaste grafikone. (Ovaj kôd je zapravo pohranjen u tri zasebne datoteke u fascikli Processing code.) Odvojene kartice se nazivaju „klase“i definirane su u redovima 48 i 56, a zatim su prikazane redovima 179-182 glavnog koda. Ljudi koji su napisali Processing program nazivaju ovo objektno orijentisano programiranje. (za kratak opis pogledajte:

U osnovi ono što klase (Recta1, Recta2) u ovom kodu rade je stvaranje pravokutnika koji se kreću gore -dolje na osnovu podataka primljenih od DHT11 putem serijske veze. Zamislite staromodni termometar što je živa sve toplija što je živa veća, ali to se radi s podacima, a ne sa ž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 Temp i vlažnosti na temelju podataka koji se primaju serijski.

Korak 10: Obrada datoteka koda

Samo nekoliko osnova o obradi koda:

Toplo preporučujem čitanje Make: Getting Started withProcessing od Casey Reas -a i Ben Fry -a, 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 postoje mnogo bolji ljudi od kojih se može učiti. Međutim, razumijem kôd koji sam napisao (pokušaj i greška su dobri učitelji).

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

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

3. Pokrenite ponovljeni dio koda- mislim na to da će se ovaj dio koda ponavljati sve dok program radi. Sjetit ćete se u Arduinu „void loop ();“(Korak 6). U obradi ovo je sada „void draw ();“(Linije 65-184)

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

int-

plutati-

Niz

(Linije 185-245)

4. Najzad način zatvaranja programa i spremanja podataka (Linije 246-271)

U redu: preuzmite datoteku Temp_Hum_F_3_2 (za Fahrenheit)

Ili Temp_Hum_C_3_1 (za Celzijuse)

i raspakirajte datoteku. Otvori sa Obrada.

Korak 11: Font u obradi

Font u obradi
Font u obradi

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

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

folder 37 textFont (font);

Ova biblioteka fontova "SourceCodePro-Bold-48.vlw" uključena je u Obradu datoteka za preuzimanje 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 Obrade i zamijeniti "SourceCodePro-Bold-48.vlw" novim fontom.

. Srećom, obrada je prvi dio učinila vrlo lakim.

Prvo otvorite skicu, a zatim kliknite:

Alati> Kreiraj font

ovo otvara prozor

Pogledajte dijagram

Pomaknite se do željenog novog fonta, kliknite na njega, a zatim kliknite na U redu. Font je sada učitan u fasciklu 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 se neće učitati u kôd i kôd će dati greške (Baš kao greške u Arduinu- u crnom okviru na dnu programa).

Korak 12: Dovršavanje

Finishing Up
Finishing Up
Finishing Up
Finishing Up
Finishing Up
Finishing Up
Finishing Up
Finishing Up

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

Pogledajte Dijagram

U redu, je li program funkcionirao? Ako je tako, dobit ćete ekran 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 mlaza toplog zraka sušila za kosu. Brojevi bi se trebali promijeniti. Da? Odlično. 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 da pronađete spremljene podatke, idite u mapu Temp_Hum_F_3_1 ili Temp_Hum_C_3_1 Processing (do sada biste to trebali sami pronaći) 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. januara 2018 22:30:16). Otvorite ovo s Excelom (ili ekvivalentom otvorene uredske tablice). Trebali biste vidjeti nešto poput dijagrama. Kolone za datum, vrijeme, vrijeme izvođenja, temperaturu i vlažnost sa podacima. Sada možete grafički prikazati podatke s Excelom ili šta god želite s njim. (Napomena: ako pogledate prvi unos podataka, podaci o temperaturi i vlažnosti nisu točni, to je normalno i samo je greška pri prvom pokretanju programa)

OK da !!!!!

Uspio si

Ako imate bilo kakvih pitanja, pošaljite ih, a ja ću se potruditi da odgovorim i pomognem.

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

Sledeći za mene Bluetooth i verovatno Android….

Korak 13: Rješavanje problema

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

Arduino problemi

Ako dobijete kôd greš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 povezan

Kôd nije pravilno učitan u IDE

Ako izgleda da je sav Arduino u redu, otvorite serijski monitor i provjerite 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 pri obradi:

Oni će biti prikazani u donjem dijelu programa Processing.

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

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

Ako dobijete grešku koja kaže: Greška pri otvaranju serijskog porta- pokušajte promijeniti redove 32-34 u nešto poput toga gdje se "COM4" podudara s COM portom na vašoj Arduino skici

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

Preporučuje se: