Sadržaj:
- Korak 1: Šta će vam trebati:
- Korak 2: Spojite Arduino na DHT11
- Korak 3: Preuzmite Arduino IDE
- Korak 4: Povežite Arduino sa računarom
- Korak 5: Učitajte biblioteku
- Korak 6: Nabavite Arduino kod
- Korak 7: Učitajte kôd na Arduino
- Korak 8: Preuzmite i instalirajte obradu
- Korak 9: Obrada koda
- Korak 10: Obrada datoteka koda
- 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 izmjena: 2024-01-30 08:08
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:
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
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 i instalirajte ga na računalo
www.arduino.cc/en/Main/Software
Korak 4: 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 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
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
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
- Biblioteka "DHTlib" nije pravilno kopirana
- COM port nije ispravno postavljen
- Senzor nije pravilno povezan
- 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
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
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
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
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
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:
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD-karticom - DHT11 Zapisnik podataka Simulacija u Proteusu: 5 koraka
Kako napraviti snimač podataka o vlažnosti i temperaturi u stvarnom vremenu s Arduino UNO i SD-karticom | DHT11 Simulator zapisnika podataka u Proteusu: Uvod: zdravo, ovdje Liono Maker, ovdje je YouTube veza. Radimo na kreativnom projektu s Arduinom i radimo na ugrađenim sistemima. Zapisnik podataka: Zapisnik podataka (također zapisnik podataka ili snimač podataka) je elektronički uređaj koji bilježi podatke tokom vremena sa
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: 4 koraka
EAL - Prikupljanje GPS podataka industrije 4.0 na Rc automobilu: U ovom Instructable govorit ćemo o tome kako postavljamo GPS modul na RC automobilu i postavljamo 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
EKG zapisnik - nosivi srčani monitor za dugoročno prikupljanje i analizu podataka: 3 koraka
EKG zapisnik - nosivi srčani monitor za dugoročno 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
EAL-Industri4.0-RFID prikupljanje podataka do baze podataka: 10 koraka (sa slikama)
EAL-Industri4.0-RFID podatkovno prikupljanje podataka u bazi podataka: Ovaj projektni upravitelj opsamlira sve podatke i podatke, registrovane kao identifikator u vašoj bazi podataka. RFID, zaostajanje podataka u MySQL bazi podataka. node-RED, samo ažuriranje i ponašanje u skladu sa općenitim podacima u et C# programu koji se formira u aplikaciji Windows Form
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 za početnike (daljinski treperi LED dioda) ili je previše složeno za nekoga tko traži nešto što bi mogao poboljšati i nadograditi na svojim LED trepćućim vještinama. instruktivni ciljevi da premoste ovaj jaz do stvaranja