Kazalo:
- 1. korak: Kaj boste potrebovali:
- Korak: Arduino priključite na DHT11
- Korak: Prenesite Arduino IDE
- 4. korak: Arduino povežite z računalnikom
- 5. korak: Naložite knjižnico
- 6. korak: Pridobite kodo Arduino
- Korak 7: Naložite kodo na Arduino
- 8. korak: Prenesite in namestite obdelavo
- 9. korak: Obdelava kode
- 10. korak: Obdelava kodnih datotek
- 11. korak: Pisava v obdelavi
- 12. korak: Dokončanje
- 13. korak: Odpravljanje težav
Video: Prikaz temperature in vlažnosti ter zbiranje podatkov z Arduinom in obdelavo: 13 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:07
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:
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
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 in ga namestite na računalnik
www.arduino.cc/en/Main/Software
4. korak: 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 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
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
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
- 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. 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
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
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
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
Č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
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:
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD - Simulacija zapisovalnika podatkov DHT11 v Proteusu: 5 korakov
Kako narediti snemalnik podatkov o vlažnosti in temperaturi v realnem času z Arduino UNO in kartico SD | Simulacija zapisovalnika podatkov DHT11 v Proteusu: Uvod: zdravo, to je Liono Maker, tukaj je povezava YouTube. Z Arduinom ustvarjamo projekt in delamo na vgrajenih sistemih. Data-Logger: Zapisovalnik podatkov (tudi zapisovalnik podatkov ali zapisovalnik podatkov) je elektronska naprava, ki sčasoma beleži podatke z
ThingSpeak, IFTTT, senzor temperature in vlažnosti ter Google Sheet: 8 korakov
ThingSpeak, IFTTT, senzor temperature in vlažnosti ter Google Sheet: V tem projektu bomo merili temperaturo in vlago z uporabo NCD senzorja temperature in vlažnosti, ESP32 in ThingSpeak. V Google Sheet bomo poslali tudi različne odčitke temperature in vlažnosti z uporabo ThingSpeak in IFTTT za analizo se
Sistem za zbiranje in vizualizacijo podatkov za električno dirkalno kolo MotoStudent: 23 korakov
Sistem za zbiranje in vizualizacijo podatkov za električno dirkalno kolo MotoStudent: Sistem za zbiranje podatkov je zbirka strojne in programske opreme, ki sodelujeta pri zbiranju podatkov iz zunanjih senzorjev, shranjevanju in obdelavi, tako da jih je mogoče grafično prikazati in analizirati, inženirjem omogoča, da
Center za zbiranje podatkov senzorjev z omogočenim IoT z ESP8266 in PubNub: 9 korakov (s slikami)
Center za zbiranje podatkov senzorjev z omogočenim IoT z ESP8266 in PubNub: Večina vadnic na ESP8266 je bodisi na ravni začetnika (na daljavo utripa LED) ali pa je preveč zapletena za nekoga, ki išče nekaj, kar bi lahko izboljšal in nadgradil svoje utripajoče sposobnosti LED. z navodili želi premostiti to vrzel pri ustvarjanju
Uporaba Meshlaba za čiščenje in zbiranje podatkov laserskega skeniranja: 8 korakov
Uporaba Meshlaba za čiščenje in zbiranje podatkov laserskega skeniranja: Meshlab je odprtokodna programska oprema, ki se uporablja za manipulacijo in urejanje mrežnih podatkov. Ta vadnica bo posebej pokazala, kako sestaviti, očistiti in rekonstruirati podatke iz 3D laserskega skenerja. Tehnike, ki se uporabljajo s skenerjem, uporabljenim tukaj , bi morale ustrezati