Sadržaj:
- Korak 1: Ono što će vam trebati:
- Korak 2: Spojite Arduino na DHT11
- Korak 3: Preuzmite Arduino IDE
- Korak 4: Povežite Arduino s računalom
- Korak 5: Učitajte biblioteku
- Korak 6: Nabavite Arduino kod
- Korak 7: Učitajte kôd na Arduino
- Korak 8: Preuzmite i instalirajte Obrada
- Korak 9: Obrada koda
- Korak 10: Obrada kodnih datoteka
- Korak 11: Font u obradi
- Korak 12: Dovršavanje
- Korak 13: Rješavanje problema
Video: Prikaz temperature i vlažnosti i prikupljanje podataka s Arduinom i obradom: 13 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:37
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:
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
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 i instalirajte ga na računalo
www.arduino.cc/en/Main/Software
Korak 4: Povežite Arduino s računalom
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 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
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
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
- Knjižnica "DHTlib" nije ispravno kopirana
- COM port nije ispravno postavljen
- Senzor nije pravilno spojen
- 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
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
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
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
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
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:
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD karticom - DHT11 Simulator zapisivača podataka u Proteusu: 5 koraka
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD karticom | Simulacija DHT11 zapisničara u Proteusu: Uvod: Bok, ovdje Liono Maker, ovdje je veza na YouTube. Radimo na kreativnom projektu s Arduinom i radimo na ugrađenim sustavima. Zapisnik podataka: Zapisnik podataka (ujedno i zapisnik podataka ili snimač podataka) je elektronički uređaj koji bilježi podatke tijekom vremena s
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: 4 koraka
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: U ovom Instructableu govorit ćemo o tome kako postavljamo GPS modul na RC automobilu i objavljujemo prikupljene podatke na web stranicu radi lakšeg praćenja. Prethodno smo napravili uputstva o tome kako smo napravili naš RC automobil, koji se mogu pronaći ovdje. Ovo koristi
Termokromni prikaz temperature i vlažnosti - PCB verzija: 6 koraka (sa slikama)
Prikaz termokromske temperature i vlažnosti - verzija PCB -a: Prije nekog vremena radio je projekt pod nazivom Thermochromic Temperature & Prikaz vlažnosti gdje sam izgradio 7-segmentni zaslon od bakrenih ploča koje su grijale/hladile peltier elementi. Bakrene ploče bile su prekrivene termokromnom folijom koja je
EKG zapisnik - nosivi srčani monitor za dugoročno prikupljanje i analizu podataka: 3 koraka
EKG zapisnik - nosivi srčani monitor za dugotrajno prikupljanje i analizu podataka: Prvo izdanje: listopada 2017. Najnovija verzija: 1.6.0Status: StabilanTeškoća: Visoka Preduvjet: Arduino, Programiranje, Izgradnja hardvera Jedinstveno spremište: SF (pogledajte donje veze) Podrška: Samo forum, nijedan PMECG Logger nije nosivi srčani monitor za dugotrajno
Centar za prikupljanje podataka senzora s omogućenim IoT -om s ESP8266 i PubNub: 9 koraka (sa slikama)
Centar za prikupljanje podataka senzora s omogućenim IoT -om s ESP8266 i PubNub -om: Većina vodiča o ESP8266 ili je na razini početnika (daljinski treperi LED dioda) ili je previše složena za nekoga tko traži nešto za poboljšanje i nadogradnju svojih vještina LED treptanja. Ovo instruktivni cilj je premostiti ovaj jaz do stvaranja