Turinys:

Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant: 13 žingsnių (su nuotraukomis)
Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant: 13 žingsnių (su nuotraukomis)

Video: Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant: 13 žingsnių (su nuotraukomis)

Video: Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant: 13 žingsnių (su nuotraukomis)
Video: Ką būtina žinoti darbuotojų saugos ir sveikatos srityje įkūrus naują įmonę? 2024, Liepa
Anonim
Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant
Temperatūros ir drėgmės rodymas ir duomenų rinkimas naudojant „Arduino“ir apdorojant

Įvadas: tai projektas, kuriame naudojama „Arduino“plokštė, jutiklis (DHT11), „Windows“kompiuteris ir apdorojimo (nemokamai atsisiunčiama) programa, rodanti temperatūrą, drėgmės duomenis skaitmeninėje ir juostinėje diagramoje, rodanti laiką ir datą bei skaičiuojama. programos laikmatį ir įrašykite visus duomenis.csv formatu, kai programa uždaryta.

Įkvėpimas:

Pirmiausia turiu pasakyti, kad esu visiškai pradedantysis ir iš šio projekto daug išmokau. Taigi aš bandau parašyti šią instrukciją, kad ją perskaitytų ir suprastų pradedantysis.

Mačiau įvairius „Arduino“projektus temperatūrai ir drėgmei matuoti, bet norėjau programos, kuri:

1) Išmatuota temperatūra ir drėgmė

2) Rodomi duomenys tiek grafike (aš pasirinkau juostinę diagramą), tiek skaitmenine forma

3) Turi laikrodžio funkciją

4) Turi suskaičiuotą „Vykdymo laiko“laikmatį

5) Išsaugo šiuos duomenis į.csv („Excel“) failo formatą.

Įkvėpimo semiausi iš Sowmith Mandadi, R-B ir aaakash3 sukurtų programų, tačiau nė viena iš jų nebuvo būtent tai, ko norėjau. Taigi aš išmokau rašyti pagrindinį kodą ir padariau tai, ko norėjau.

1 žingsnis: ko jums reikės:

Ko jums reikės
Ko jums reikės
Ko jums reikės
Ko jums reikės

Dalys ir medžiagos:*Kompiuteris - naudojau „Windows“kompiuterį „Windows 10“operacinę sistemą

(Esu tikras, kad būtų galima naudoti „Linux“ar „Mac“, bet aš jų neturiu, todėl neaprašysiu, kaip naudoti šias operacines sistemas)

*„Arduino“lenta - naudojau „Arduino Uno“plokštę, tačiau tiks bet kuri „Arduino“plokštė su USB

*USB kabelis -USB A/B kabelis -tas pats, kas seno tipo „spausdintuvo kabelis“(paprastai pateikiamas su „Arduino Board“)

*DHT 11 temperatūros /drėgmės jutiklis- nebrangus 4–8 USD

(Pastaba: yra 2 versijos, naudojau 3 kontaktų versiją, 4 kontaktų versijai reikės naudoti duonos lentą ir 10K rezistorių, 3 kontaktų turi spausdintinę plokštę, kurioje yra 10K rezistorius) žr.

*Prijungimo laidai

Dupontiniai laidai (dvigubi galai), jei prijungiate prie 3 kontaktų DHT11 be duonos plokštės

Standartiniai trumpojo jungimo M/F laidai (vienas galas, vienas galas, vienas galas) ir M/M jungiamieji laidai (abu galai, kištukiniai), skirti prijungti 4 kontaktų DHT11 - daugiau informacijos rasite 2 veiksme

*„Arduino IDE“- programa, skirta rašyti „Arduino“programas (vadinamas eskizais) nemokamai @

www.arduino.cc/en/Main/Software

*Apdorojimas - programa, skirta nemokamai rašyti apdorojimo eskizus @

processing.org/download/

* „DHTLib“failas -bibliotekos failas (tai yra failas, kuris patenka į „Arduino IDE“programą aplanke „Biblioteka“, kurį reikės pridėti prie „Arduino“eskizo, kad „Arduino“galėtų nuskaityti duomenis iš DHT11, žr. 5 veiksmas, skirtas atsisiųsti failą ir instrukcijas

2 veiksmas: prijunkite „Arduino“prie DHT11

Prijunkite „Arduino“prie DHT11
Prijunkite „Arduino“prie DHT11
Prijunkite „Arduino“prie DHT11
Prijunkite „Arduino“prie DHT11
Prijunkite „Arduino“prie DHT11
Prijunkite „Arduino“prie DHT11
Prijunkite „Arduino“prie DHT11
Prijunkite „Arduino“prie DHT11

Pirmiausia nustatykite, kokį DHT11 turite

Aš naudoju 3 kontaktus, nes jame jau yra reikalingas 10K rezistorius.

Jei turite 4 kaiščius, jums reikės 10K rezistoriaus ir duonos lentos

Prijunkite DHT11 prie „Arduino Board“. Ši programa reikalauja, kad DHT 11 signalo kaištis būtų prijungtas prie „Arduino“kaiščio Nr. 7, „Pos“(+) kaištis prijungtas prie 5 V „Arduino“, o „Neg“(-)-prie GND „Arduino“.

Žr. Diagramos ir Fritzing Diagramos

3 veiksmas: atsisiųskite „Arduino IDE“

Atsisiųskite „Arduino IDE“
Atsisiųskite „Arduino IDE“

Atsisiųskite „Arduino IDE“ir įdiekite į savo kompiuterį

www.arduino.cc/en/Main/Software

4 veiksmas: prijunkite „Arduino“prie kompiuterio

Prijunkite „Arduino“prie kompiuterio
Prijunkite „Arduino“prie kompiuterio

Pirmiausia įdiekite „Arduino IDE“, kuriame yra „Arduino“USB jungties tvarkyklės.

Prijunkite „Arduino“prie kompiuterio per USB.

Palaukite, kol kompiuteris atpažins „Arduino“plokštę, ir įdiekite visas tvarkykles.

Atidarykite IDE programą ir patikrinkite, ar nėra nuoseklaus ryšio.

Jei „Arduino“plokštė nerodoma įrankių> prievade (raudonas apskritimas), uždarykite IDE ir vėl atidarykite.

* Svarbu* kai IDE yra atidarytas ir „Arduino“plokštė prijungta per USB. „Arduino“plokštė turi būti prijungta prie tinkamo nuoseklaus prievado. „Windows“kompiuteriuose tai vadinama COM prievadu. Norėdami tai padaryti IDE, eikite į Tools> Port:> Serial ports. Kaip parodyta diagramoje, nuoseklusis prievadas (raudonas apskritimas) turi atitikti prievadą, nurodytą apatiniame dešiniajame IDE programos kampe (geltonas apskritimas).

5 veiksmas: įkelkite biblioteką

Įkelti biblioteką
Įkelti biblioteką
Įkelti biblioteką
Įkelti biblioteką
Įkelti biblioteką
Įkelti biblioteką
Įkelti biblioteką
Įkelti biblioteką

Įkelkite DHT11 biblioteką. Man tai iš pradžių buvo painu, bet iš tikrųjų gana paprasta.

Atsisiųskite failą pavadinimu „DHTLib“ir išpakuokite. Nukopijuokite neišpakuotą „DHTLib“failą.

Informaciją apie šią biblioteką rasite:

playground.arduino.cc/Main/DHTLib

(Jį parašė Robas Tillaartas, remdamasis kitų darbais)

Kompiuteryje suraskite aplanką „Arduino“ir atidarykite jį. (Tai bus visur, kur atsisiuntėte IDE ir įdiegėte jį kompiuteryje)

Žr. Diagramą

Raskite failą pavadinimu „bibliotekos“ir atidarykite jį, tada įklijuokite aplanką „DHTLib“į „bibliotekų“failą. Uždarykite jį ir iš naujo paleiskite IDE.

Žr. Diagramą

Kai IDE vėl atsidarys, galite patikrinti, ar įdiegta DHT biblioteka. Eskizas> Įtraukti biblioteką.

Žr. Diagramą

Pastaba Spustelėję DHTLib skirtuke „įtraukti biblioteką“, biblioteka bus įtraukta į „Arduino“kodą kaip „#include dht.h“.

Jums to nereikia daryti, nes tai jau yra kode, kurį atsisiųsite atlikdami kitą veiksmą.

6 žingsnis: Gaukite „Arduino“kodą

Gaukite „Arduino“kodą
Gaukite „Arduino“kodą

Atsisiųskite „Temp_Hum_Instructable.zip“failą ir išpakuokite. Atidarykite „Temp_Hum_Instructable.ino“naudodami „Arduino IDE“.

Arba pažiūrėkite į šį kodą ir tiksliai nukopijuokite ir įklijuokite arba įveskite „Arduino IDE“:

#įtraukti

dht DHT; #define DHT11PIN 7 // nustato 7 kaištį DHT11 signalo ryšio void setup () {Serial.begin (9600); // atidaro serijos} void loop () {int chk = DHT.read11 (DHT11PIN); // skaito DHT11 Serial.print (DHT.temperature, 0); // spausdina temp serijiniu Serial.print (","); // spausdina kablelį serijiniu Serial.print (DHT.humidity, 0); // spausdina drėgmę serijiniu Serial.println (); // vežimo grąžinimo uždelsimas (2000); // palaukite 2 sekundes}

Kai baigsite, jis turėtų atrodyti kaip aukščiau pateikta schema

7 veiksmas: įkelkite kodą į „Arduino“

Įkelkite kodą į „Arduino“
Įkelkite kodą į „Arduino“
Įkelkite kodą į „Arduino“
Įkelkite kodą į „Arduino“
Įkelkite kodą į „Arduino“
Įkelkite kodą į „Arduino“
Įkelkite kodą į „Arduino“
Įkelkite kodą į „Arduino“

Pirmiausia išsaugokite eskizą vietoje ir pavadinimu, kurį prisiminsite, pavyzdys: Temp_Hum.

Tada turite įkelti eskizą į „Arduino“lentą paspausdami rodyklės į dešinę mygtuką (įkelti).

Žr. Diagramą

Tai užtruks kelias sekundes; apačioje dešinėje pamatysite progreso juostą.

Tada pamatysite: Baigta įkelti pranešimą apatiniame kairiajame kampe ir baltą tekstą IDE apačioje, pasakojantį apie atmintį

Žr. Diagramą

Jei gausite klaidos kodą (oranžinis tekstas IDE apačioje), jis turėtų būti vienas iš šių

  1. „DHTlib“biblioteka buvo nukopijuota netinkamai
  2. COM prievadas nustatytas netinkamai
  3. Jutiklis buvo prijungtas netinkamai
  4. Kodas nebuvo tinkamai įkeltas į IDE. Oranžinį tekstą galima slinkti ir jis parodys, kas negerai. Grįžkite atgal ir patikrinkite, ar tai paprasta klaida.

Kai tai bus padaryta, atidžiai peržiūrėkite savo „Arduino“lentą. Kas porą sekundžių mirksi mažasis šviesos diodas šalia raidžių „TX“. Tai yra „Arduino“, siunčiantis informaciją atgal į kompiuterį. Norėdami tai patikrinti, spustelėkite mažojo didinamojo stiklo simbolį dešiniajame viršutiniame IDE kampe.

Žr. Diagramą

Bus atidarytas nuoseklusis monitorius ir rodomi kableliu atskirti temperatūros ir drėgmės duomenys. Atkreipkite dėmesį, kad temperatūros duomenys pateikti Celsijaus laipsniais. Tai gerai, mes vėliau konvertuosime į Fahrenheitą (arba ne, jei pasirinksite).

Žr. Diagramą

Tada uždarykite serijinį monitorių ir uždarykite IDE. (Ar prisimenate jį išsaugoti, ar ne?). Dabar dar kartą pažvelkite į „Arduino“plokštę (neatjunkite jos nuo USB, iš kurios ji gauna maitinimą, ir nesiųskite duomenų į kompiuterio nuoseklųjį prievadą). Ar jis vis dar mirksi? Taip, puiku. Kai programa bus įkelta į „Arduino“, ji veiks tiek, kiek turės energijos.

Pastaba apie kodą: jei pažvelgsite į „Arduino“kodą, prasidedantį „void loop ();“. Kitos 5 kodo eilutės nurodo „Arduino“nuskaityti duomenis iš DHT ir atspausdinti juos į kableliu atskirtą nuosekliąją magistralę. Kita eilutė „vėlavimas (2000);“liepia „Arduino“palaukti 2 sekundes (2000 milisekundžių), todėl duomenys gaunami kas 2 sekundes. Tada jis grįžta prie „void loop ();“- komanda, liepianti „Arduino“tai padaryti dar kartą. Pakeitus vertę vėlavimo eilutėje, pasikeis duomenų priėmimo dažnis. Pavyzdys: pasikeitimas į (600000) pasikeis iki 10 minučių (600 000 milisekundžių = 10 minučių). Gaunant duomenis kas 2 sekundes, gaunama daug duomenų, todėl dabar žinote, kaip pakeisti duomenų skaitymo dažnumą. Tik nepamirškite, jei vėliau pakeisite vertę reikia įkelti naują programą.

Gerai atsisėskite ir atsikvėpkite, nes esate daugiau nei pusiaukelėje. Taip !!

8 veiksmas: atsisiųskite ir įdiekite apdorojimą

Atsisiųsti ir įdiegti apdorojimą
Atsisiųsti ir įdiegti apdorojimą
Atsisiųsti ir įdiegti apdorojimą
Atsisiųsti ir įdiegti apdorojimą

processing.org/download/

Gana tiesiai į priekį pasirinkite programą, kuri atitinka jūsų kompiuterį, skirtą „Windows 64bit“ir „32 bit“. Jei nežinote, savo kompiuteryje atidarykite valdymo skydelį (piktogramos rodinys, o ne kategorijos vaizdas) ir eikite į sistemą, kur jis bus pateiktas.

Žr. Diagramą

Atsisiųskite ir įdiekite programą.

Pirmą kartą atidarę ir vykdydami apdorojimą tikriausiai gausite „Java“saugos pranešimą. Privatiems tinklams spustelėkite „leisti“. „Java“yra kompiuterių kalba, naudojama „Processing“(ir „Arduino IDE“). Įdomu tai, kad niekada neturėjau saugos pranešimo su „Arduino IDE“, tik apdorojau.

9 veiksmas: apdorojimo kodas

Apdorojimo kodas
Apdorojimo kodas

Gerai dabar apdorojimo kodui.

Tai buvo sunkiausia dalis man, bet kartu ir didžiausia galimybė mokytis. Nors „Arduino“kodas buvo maždaug 20 eilučių, šis kodas turi +/- 270 eilučių pagrindiniame kode ir dar 70 + klasėse.

Dabar pirmas dalykas, kurio turėtumėte paklausti, yra „Kas yra klasės?“. Geras klausimas. Tai reiškia objektinį programavimą. Trumpai tariant, pagrindiniame kode yra daugybė dalykų: ekrano dydžio ir spalvos nustatymas, laikrodis, laikmatis, kodas, rodantis žymeklio vietą, kodas duomenų išsaugojimui.csv faile ir kelios eilutės kurie susiję su kodu, rodančiu juostines diagramas. Nors „Arduino IDE“turėjo visą kodą viename puslapyje, šis apdorojimo kodas turi tris skirtukus. Pirmasis yra pagrindinis kodas, o kiti du - kodas, rodantis juostines diagramas. (Šis kodas iš tikrųjų saugomas trijuose atskiruose failuose, esančiame apdorojimo kodų aplanke.) Atskiri skirtukai vadinami „klasėmis“ir yra apibrėžti 48 ir 56 eilutėse, o tada rodomi pagrindinio kodo 179–182 eilutėse. Žmonės, kurie parašė apdorojimo programą, vadina šį į objektą orientuotą programavimą. (trumpą aprašymą rasite:

Iš esmės šio kodo klasės („Recta1“, „Recta2“) sukuria stačiakampius, kurie juda aukštyn ir žemyn, remiantis duomenimis, gautais iš DHT11 per seriją. Pagalvokite apie senamadišką termometrą, kuo aukštesnis gyvsidabris, tuo karštesnis, tačiau tai daroma naudojant duomenis, o ne gyvsidabrį. Iš tikrųjų klasės sukuria keturis stačiakampius, du statinius stačiakampius, vaizduojančius termometro foną, ir du dinaminius stačiakampius, kurie reaguoja į duomenis ir juda aukštyn ir žemyn. Be stačiakampių perkėlimo, kodas keičia dinaminio stačiakampio spalvą ir skaitmeninio Temperatūros ir drėgmės ekrano spalvą, atsižvelgiant į serijiniu būdu gaunamus duomenis.

10 veiksmas: kodo failų apdorojimas

Tik keli kodo apdorojimo pagrindai:

Labai rekomenduoju perskaityti „Make: Getting Started withProcessing“, kuriuos pateikė Casey Reas ir Benas Fry, „Processing“įkūrėjai.

processing.org/books/#reasfry2

Nesistengsiu paaiškinti visų apdorojimo aspektų ar kodo rašymo apdorojimui. Kaip jau sakiau, esu pradedantysis ir manau, kad yra daug geresnių žmonių, iš kurių galima pasimokyti. Tačiau aš suprantu mano parašytą kodą (bandymai ir klaidos yra geri mokytojai).

1. Pirmiausia reikia įtraukti bibliotekas (kaip ir „Arduino“) ir deklaruoti kintamuosius (1-25 eilutės)

2. Toliau nustatykite ekrano plokštę (27–63 eilutės)

3. Paleiskite pakartotinę kodo dalį- turiu omenyje, kad ši kodo dalis kartosis tol, kol programa veikia. „Arduino“prisiminsite „void loop ();“(6 veiksmas). Apdorojant tai dabar yra „void draw ()“; (65–184 eilutės)

4. Toliau gaunami duomenys iš nuoseklaus prievado ir priskiriami kintamiesiems (int, float, String)

int-

plūdė-

Styga-

(185–245 eilutės)

4. Paskutinis būdas uždaryti programą ir išsaugoti duomenis (246-271 eilutės)

Gerai: atsisiųskite failą Temp_Hum_F_3_2 (pagal Farenheitą)

Arba Temp_Hum_C_3_1 (Celsijaus laipsniui)

ir išpakuokite failą. Atidaryti naudojant apdorojimą.

11 veiksmas: šriftas apdorojant

Šriftas apdorojant
Šriftas apdorojant

Svarbu: atkreipiu jūsų dėmesį į 36–37 eilutes

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // įkeliamas šriftas, saugomas duomenyse

aplankas 37 textFont (šriftas);

Ši šriftų biblioteka „SourceCodePro-Bold-48.vlw“yra įtraukta į apdorojamų failų atsisiuntimus ir jos nereikia keisti į funkciją.

Tačiau norėdami pakeisti šriftą į kažką kitą, turėsite įkelti naują šriftą į apdorojimo eskizą IR pakeisti „SourceCodePro-Bold-48.vlw“nauju šriftu.

. Laimei, apdorojimas labai palengvino pirmąją dalį.

Pirmiausia atidarykite eskizą, tada spustelėkite:

Įrankiai> Sukurti šriftą

tai atveria langą

Žr. Diagramą

Slinkite žemyn iki norimo naujo šrifto, spustelėkite jį, tada spustelėkite Gerai. Šriftas dabar buvo įkeltas į eskizų aplanką.

Tada pakeiskite tekstą „SourceCodePro-Bold-48.vlw“tiksliu naujo šrifto pavadinimu (įskaitant.vlw failo formatą)

Jei tai nebus padaryta, naujas šriftas nebus įkeliamas į kodą ir kodas duos klaidų (kaip ir klaidos „Arduino“- juodame laukelyje programos apačioje).

12 žingsnis: Baigimas

Užbaigimas
Užbaigimas
Užbaigimas
Užbaigimas
Užbaigimas
Užbaigimas
Užbaigimas
Užbaigimas

Norėdami pradėti apdorojimo programą, spustelėkite rodyklę, galite gauti „Java“įspėjimą. Spustelėkite: Leisti prieigą.

Žr. Diagramą

Gerai, ar programa veikė? Jei taip, gausite tokį ekraną, kaip parodyta diagramoje.

(Ne? Žr. Trikčių šalinimą kitame veiksme)

Taip? Dabar pabandykite laikyti DHT11 uždarame delne arba padėkite po šilto plaukų džiovintuvo oro srove. Skaičiai turėtų keistis. Taip? Puiku. tai reiškia, kad viskas veikia gerai.

Norėdami uždaryti programą ir išsaugoti duomenis, spustelėkite laukelį „Uždaryti ir išsaugoti duomenis spustelėkite čia“.

Dabar, norėdami rasti išsaugotus duomenis, eikite į aplanką „Temp_Hum_F_3_1“arba „Temp_Hum_C_3_1 Processing“(dabar turėtumėte tai rasti patys), atidarykite jį ir raskite aplanką „Data“. Atidarykite tai ir turėtumėte pamatyti.csv failą, pavadintą programos uždarymo datos ir laiko pavadinimu (1-10-18--22-30-16.csv pavyzdys reiškia 2018 m. Sausio 10 d. 10:30:16 PM). Atidarykite tai naudodami „Excel“(arba „Open Office“skaičiuoklės ekvivalentą). Turėtumėte pamatyti kažką panašaus į diagramą. Datos, laiko, veikimo laiko, temperatūros ir drėgmės stulpeliai su duomenimis. Dabar galite grafikuoti duomenis naudodami „Excel“arba bet ką, ką norite su juo daryti. (Pastaba: jei pažvelgsite į pirmąjį duomenų įvedimą, temperatūros ir drėgmės duomenys netikslūs, tai yra normalu ir tai tik klaida pirmą kartą paleidus programą)

Gerai taip !!!!!

Tu tai padarei

Jei turite klausimų, rašykite ir aš padarysiu viską, kad atsakyčiau ir padėčiau.

Ačiū, kad pasilikote su tuo ir sėkmės. Tikiuosi, kad tai tik pradžia ….

Kitas man „Bluetooth“ir galbūt „Android“…

13 veiksmas: trikčių šalinimas

Problemų sprendimas
Problemų sprendimas
Problemų sprendimas
Problemų sprendimas

Arduino problemos

Jei gausite klaidos kodą (oranžinis tekstas IDE apačioje), jis turėtų būti vienas iš šių „DHTlib“biblioteka buvo nukopijuota netinkamai

COM prievadas nustatytas netinkamai

Jutiklis buvo prijungtas netinkamai

Kodas nebuvo tinkamai įkeltas į IDE

Jei atrodo, kad „Arduino“viskas gerai, nepamirškite atidaryti serijos monitoriaus ir pažiūrėti, ar rodomi duomenys

Jei matote teisingus duomenis, tai reiškia, kad „Arduino“pusė veikia. Prisiminkite Prieš pradėdami apdorojimą uždarykite serijinį monitorių, jei serijinis monitorius atidarytas. Apdorojimas negali nuskaityti duomenų.

Apdorojimo problemos:

Jie bus rodomi apatinėje apdorojimo programos dalyje.

Jei gaunate klaidą, apibūdinančią „šriftą“, grįžkite prie 11 veiksmo ir įkelkite šriftą, kaip aprašyta.

Jei gaunate klaidą, kuri atrodo taip: Klaida, išjungiant serialEvent () COM4 null- tiesiog paleiskite apdorojimo eskizą spustelėdami rodyklę, kaip nurodyta 12 veiksme

Jei gaunate klaidą, nurodančią: Klaida atidarant nuoseklųjį prievadą, pabandykite pakeisti 32-34 eilutes į kažką panašaus, kur „COM4“atitinka jūsų „Arduino“eskizo COM prievadą

myPort = newSerial (tai, "COM4", 9600); // Uostas myPort.bufferUntil ('\ n') // palaukite, kol serija turės duomenų

Rekomenduojamas: