Sisällysluettelo:

Lämpötilan ja kosteuden näyttö ja tiedonkeruu Arduinolla ja käsittely: 13 vaihetta (kuvilla)
Lämpötilan ja kosteuden näyttö ja tiedonkeruu Arduinolla ja käsittely: 13 vaihetta (kuvilla)

Video: Lämpötilan ja kosteuden näyttö ja tiedonkeruu Arduinolla ja käsittely: 13 vaihetta (kuvilla)

Video: Lämpötilan ja kosteuden näyttö ja tiedonkeruu Arduinolla ja käsittely: 13 vaihetta (kuvilla)
Video: High Density 2022 2024, Heinäkuu
Anonim
Lämpötilan ja kosteuden näyttö ja tiedonkeruu Arduinolla ja käsittelyllä
Lämpötilan ja kosteuden näyttö ja tiedonkeruu Arduinolla ja käsittelyllä

Johdanto: Tämä on projekti, joka käyttää Arduino -korttia, anturia (DHT11), Windows -tietokonetta ja Processing (ilmainen ladattava) -ohjelmaa lämpötilan, kosteustietojen näyttämiseksi digitaalisena ja pylväskaavion muodossa, kellonajan ja päivämäärän näyttämiseksi ja laskun suorittamiseksi ajastin ohjelman aikana ja tallenna kaikki tiedot.csv -muotoon, kun ohjelma suljetaan.

Inspiraatio:

Ensin minun on sanottava, että olen täysin aloittelija ja olen oppinut paljon tästä projektista. Yritän siis kirjoittaa tämän ohjeen niin, että aloittelija lukee ja ymmärtää sen.

Olin nähnyt erilaisia Arduino -projekteja lämpötilan ja kosteuden mittaamiseen, mutta halusin ohjelman, joka:

1) Mitattu lämpötila ja kosteus

2) Näytti tiedot sekä kaaviona (valitsin pylväskaavion) että digitaalisessa muodossa

3) Sisältää kellotoiminnon

4) Sisältää laskenta -ajoajastimen

5) Tallentaa nämä tiedot.csv (excel) -tiedostomuotoon.

Sain inspiraatiota Sowmith Mandadin, R-B: n ja aaakash3: n ohjelmista, mutta mikään näistä ei ollut juuri sitä, mitä halusin. Niinpä opin kirjoittamaan peruskoodin ja tein mitä halusin.

Vaihe 1: Mitä tarvitset:

Mitä tarvitset
Mitä tarvitset
Mitä tarvitset
Mitä tarvitset

Osat ja materiaalit:*Tietokone - Käytin Windows -tietokoneen Windows 10 -käyttöjärjestelmää

(Olen varma, että Linuxia tai Macia voitaisiin käyttää, minulla ei vain ole kumpaakaan, joten en käsittele näiden käyttöjärjestelmien käyttöä)

*Arduino Board - Käytin Arduino Uno Boardia, mutta mikä tahansa Arduino -levy USB: llä toimii

*USB -kaapeli -USB A/B -kaapeli -sama kuin vanhan tyyppinen "tulostinkaapeli" (yleensä mukana Arduino Board)

*DHT 11 Lämpötila- /kosteusanturi- edullinen 4-8 dollaria

(Huomautus: Käytin 2 versiota, joissa käytin 3 -nastaista versiota, 4 -nastainen versio vaatii leipälevyn ja 10K -vastuksen, 3 -nastaisessa on piirilevy, joka sisältää 10K -vastuksen.)

*Liitäntäjohdot

Dupont -johdot (kaksoisnaaraspäät), jos ne liitetään 3 -napaiseen DHT11 -laitteeseen ilman leipälevyä

Vakiohyppyjohtimet M/F (toinen pää uros toinen pää naaras) ja M/M hyppyjohdot (molemmat päät uros) 4 -napaisen DHT11 liittämiseksi - katso lisätietoja kohdasta 2

*Arduino IDE - ohjelma Arduino -ohjelmien (kutsutaan luonnoksiksi) kirjoittamiseen ilmaiseksi @

www.arduino.cc/en/Main/Software

*Käsittely - ohjelma kirjoittaa luonnoksia ilmaiseksi @

processing.org/download/

* "DHTLib" -tiedosto -kirjastotiedosto (tämä on tiedosto, joka menee Arduino IDE -ohjelmaan "Library" -kansion alla, tämä on lisättävä Arduino -luonnokseen ennen kuin Arduino voi lukea DHT11 -tiedot -katso vaihe 5 ladataksesi tiedoston ja ohjeet

Vaihe 2: Yhdistä Arduino DHT11: een

Yhdistä Arduino DHT11: een
Yhdistä Arduino DHT11: een
Yhdistä Arduino DHT11: een
Yhdistä Arduino DHT11: een
Yhdistä Arduino DHT11: een
Yhdistä Arduino DHT11: een
Yhdistä Arduino DHT11: een
Yhdistä Arduino DHT11: een

Määritä ensin, mikä DHT11 sinulla on

Käytin 3 -nastaista, koska siinä on jo tarvittava 10K -vastus.

Jos sinulla on 4 -nastainen, tarvitset 10K -vastuksen ja leipälevyn

Liitä DHT11 Arduino Boardiin. Tämä ohjelma vaatii, että DHT 11 -signaalitappi liitetään Arduino-nastaan 7, Pos (+) -nasta on kytketty 5 V: iin Arduinossa ja Neg (-) GND: hen Arduinossa.

Katso Kaaviot ja Fritzing -kaaviot

Vaihe 3: Lataa Arduino IDE

Lataa Arduino IDE
Lataa Arduino IDE

Lataa Arduino IDE ja asenna tietokoneeseen

www.arduino.cc/en/Main/Software

Vaihe 4: Yhdistä Arduino tietokoneeseen

Liitä Arduino tietokoneeseen
Liitä Arduino tietokoneeseen

Asenna ensin Arduino IDE, jossa on ajurit Arduino USB -yhteyttä varten.

Liitä Arduino tietokoneeseen USB: n kautta.

Odota, että tietokone tunnistaa Arduino -kortin, ja asenna kaikki ohjaimet.

Avaa IDE -ohjelma ja tarkista sarjayhteys.

Jos Arduino -kortti ei näy Työkalut> -portissa (punainen ympyrä), sulje IDE ja avaa se uudelleen.

* Tärkeää* kun IDE on auki ja Arduino -kortti on kytketty USB: n kautta. Arduino -kortti on liitettävä oikeaan sarjaporttiin. Windows -tietokoneissa tätä kutsutaan COM -portiksi. Voit tehdä tämän IDE: ssä valitsemalla Työkalut> Portti:> Sarjaportit. Kuten kaaviosta näkyy, sarjaportin (punainen ympyrä) on vastattava IDE -ohjelman oikeassa alakulmassa olevaa porttia (keltainen ympyrä).

Vaihe 5: Lataa kirjasto

Lataa kirjasto
Lataa kirjasto
Lataa kirjasto
Lataa kirjasto
Lataa kirjasto
Lataa kirjasto
Lataa kirjasto
Lataa kirjasto

Lataa DHT11 -kirjasto. Tämä oli aluksi hämmentävää, mutta todella yksinkertaista.

Lataa tiedosto nimeltä “DHTLib” ja pura se. Kopioi purettu DHTLib -tiedosto.

Viittaukset tähän kirjastoon löytyvät osoitteesta:

playground.arduino.cc/Main/DHTLib

(Sen on kirjoittanut Rob Tillaart muiden töiden perusteella)

Etsi tietokoneeltasi Arduino -kansio ja avaa se. (Se on missä tahansa, kun latasit IDE: n ja asennit sen tietokoneeseen)

Katso kaavio

Etsi tiedosto nimeltä "kirjastot" ja avaa se ja liitä "DHTLib" -kansio "kirjastojen" tiedostoon. Sulje se ja käynnistä IDE uudelleen.

Katso kaavio

Kun IDE on avattu uudelleen, voit tarkistaa, onko DHT -kirjasto asennettu. Luonnos> Sisällytä kirjasto.

Katso kaavio

Huomautus DHTLib -painikkeen napsauttaminen "sisälly kirjasto" -välilehdessä asettaa kirjaston Arduino -koodiin nimellä "#include dht.h".

Sinun ei tarvitse tehdä tätä, koska se on jo koodissa, jonka lataat seuraavassa vaiheessa.

Vaihe 6: Hanki Arduino -koodi

Hanki Arduino -koodi
Hanki Arduino -koodi

Lataa Temp_Hum_Instructable.zip -tiedosto ja pura se. Avaa Temp_Hum_Instructable.ino Arduino IDE: llä.

Katso vaihtoehtoisesti seuraavaa koodia ja kopioi ja liitä tai kirjoita tarkasti Arduino IDE: hen:

#sisältää

dht DHT; #define DHT11PIN 7 // asettaa nastan 7 DHT11 -signaaliliitännän void setup () {Serial.begin (9600); // avaa sarja} void loop () {int chk = DHT.read11 (DHT11PIN); // lukee DHT11 Serial.print (DHT.temperature, 0); // tulostaa lämpötilan sarjassa Serial.print (","); // tulostaa pilkun sarjassa Serial.print (DHT.humidity, 0); // tulostaa kosteuden sarja Serial.println (); // kelkan paluuviive (2000); // odota 2 sekuntia}

Kun olet valmis, sen pitäisi näyttää yllä olevasta kaaviosta

Vaihe 7: Lataa koodi Arduinolle

Lataa koodi Arduinolle
Lataa koodi Arduinolle
Lataa koodi Arduinolle
Lataa koodi Arduinolle
Lataa koodi Arduinolle
Lataa koodi Arduinolle
Lataa koodi Arduinolle
Lataa koodi Arduinolle

Tallenna luonnos ensin paikkaan ja nimeen, jonka muistat, Esimerkki: Temp_Hum.

Seuraavaksi sinun on ladattava luonnos Arduino -levylle painamalla oikealle osoittavaa nuolipainiketta (lataa).

Katso kaavio

Tämä kestää muutaman sekunnin; näet edistymispalkin oikeassa alakulmassa.

Sitten näet: Valmis viestin lataaminen vasemmassa alakulmassa ja valkoinen teksti IDE: n alaosassa kertoo muistista

Katso kaavio

Jos saat virhekoodin (oranssi teksti IDE: n alareunassa), sen pitäisi olla jokin seuraavista

  1. DHTlib -kirjastoa ei kopioitu oikein
  2. COM -portti on asetettu väärin
  3. Anturia ei ole kytketty oikein
  4. Koodi ei ole ladattu IDE: hen oikein. Oranssi teksti voidaan vierittää läpi ja se antaa vihjeen viasta. Palaa takaisin ja tarkista, että se on luultavasti yksinkertainen virhe.

Kun tämä on tehty, katso tarkasti Arduino -korttiasi. Parin sekunnin välein pieni merkkivalo TX -kirjainten vieressä vilkkuu. Tämä on Arduino, joka lähettää tiedot takaisin tietokoneelle. Voit tarkistaa tämän napsauttamalla pientä suurennuslasisymbolia IDE: n oikeassa yläkulmassa.

Katso kaavio

Tämä avaa sarjamonitorin ja näyttää lämpötila- ja kosteustiedot pilkulla erotettuna. Huomaat, että lämpötilatiedot on ilmoitettu Celsius -asteina. Se on OK, muunnamme Fahrenheit -asteikkoon myöhemmin (tai ei, jos valitsit).

Katso kaavio

Sulje seuraavaksi sarjamonitori ja sitten IDE. (Muistitko tallentaa sen, eikö?). Katso nyt Arduino -korttia uudelleen (älä irrota sitä USB -liitännästä, josta se saa virtaa ja lähettää tietoja tietokoneen sarjaporttiin). Vilkkuuko se edelleen? Kyllä mahtavaa. Kun ohjelma on ladattu Arduinolle, se toimii niin kauan kuin siinä on virtaa.

Huomautus koodista: jos katsot Arduino -koodia, joka alkaa “void loop ();”. Seuraavat 5 koodiriviä kehottavat Arduinoa lukemaan tiedot DHT: stä ja tulostamaan ne sarjaväylälle pilkulla erotettuna. Seuraava rivi "viive (2000);" kehottaa Arduinoa odottamaan 2 sekuntia (2000 millisekuntia), joten tiedot vastaanotetaan 2 sekunnin välein. Sitten se palaa "void loop ();" - komento, joka käskee Arduinon tekemään sen uudestaan. Viivearvon arvon muuttaminen muuttaa tietojen vastaanottotiheyttä. Esimerkki: muutos arvoon (600000) muuttuu 10 minuuttiin (600000 millisekuntia = 10 minuuttia). Tietojen vastaanottaminen 2 sekunnin välein on paljon dataa, joten nyt tiedät kuinka muuttaa tietojen lukemistiheyttä. Muista vain, jos muutat arvoa myöhemmin täytyy ladata uusi ohjelma.

OK istu alas ja hengitä, olet yli puolivälissä. Joo !!

Vaihe 8: Lataa ja asenna käsittely

Lataa ja asenna käsittely
Lataa ja asenna käsittely
Lataa ja asenna käsittely
Lataa ja asenna käsittely

processing.org/download/

Melko suoraan eteenpäin valitse ohjelma, joka vastaa tietokonettasi Windows 64bit vs 32 bit. Jos et tiedä, avaa tietokoneen Ohjauspaneeli (kuvakenäkymä ei luokanäkymä) ja siirry järjestelmään, joka näkyy siellä.

Katso kaavio

Lataa ja asenna ohjelma.

Kun avaat ja suoritat käsittelyä ensimmäisen kerran, saat todennäköisesti Java -suojausviestin. Napsauta "salli" yksityisille verkoille. Java on Processingin (ja Arduino IDE: n) käyttämä tietokoneen kieli. Mielenkiintoista on, etten ole koskaan saanut turvasanomaa Arduino IDE: n kanssa, vain käsittelyssä.

Vaihe 9: Käsittelykoodi

Käsittelykoodi
Käsittelykoodi

OK nyt käsittelykoodille.

Tämä oli minulle haastavin osa, mutta myös suurin mahdollisuus oppia. Vaikka Arduino-koodi oli noin 20 riviä, tällä koodilla on +/- 270 riviä pääkoodissa ja vielä 70 + riviä luokissa.

Ensimmäinen asia, jonka sinun pitäisi kysyä, on "Mitä luokat ovat?". Hyvä kysymys. Tämä viittaa olio -ohjelmointiin. Lyhyesti sanottuna pääkoodissa tapahtuu joukko asioita: näytön koon ja värin määrittäminen, kello, ajastin, koodi osoittimen sijainnin näyttämiseksi, koodi tietojen tallentamiseksi.csv -tiedostoon ja muutama rivi jotka käsittelevät viivakuvioita näyttävää koodia. Vaikka Arduino IDE: llä oli kaikki koodit yhdellä sivulla, tällä käsittelykoodilla on kolme välilehteä. Ensimmäinen on pääkoodi ja seuraavat kaksi ovat pylväskaavioita näyttävä koodi. (Tämä koodi on itse asiassa tallennettu kolmeen erilliseen tiedostoon Processing code -kansioon.) Erillisiä välilehtiä kutsutaan luokiksi, ja ne määritellään riveillä 48 ja 56 ja näytetään sitten pääkoodin riveillä 179-182. Processing -ohjelman kirjoittaneet kutsuvat tätä olio -ohjelmointia. (katso lyhyt kuvaus:

Periaatteessa tämän koodin luokat (Recta1, Recta2) luovat suorakulmioita, jotka liikkuvat ylös ja alas DHT11: ltä sarjaliikenteen kautta vastaanotettujen tietojen perusteella. Ajattele vanhanaikaista lämpömittaria, mitä korkeampi elohopea on, sitä kuumempi se on, mutta tämä tehdään tiedoilla, jotka eivät ole elohopeaa. Todellisuudessa luokat luovat neljä suorakulmioita, kaksi staattista suorakulmiota, jotka edustavat lämpömittarin taustaa, ja kaksi dynaamista suorakulmiota, jotka vastaavat tietoihin ja liikkuvat ylös ja alas. Suorakulmioiden siirtämisen lisäksi koodi muuttaa dynaamisen suorakulmion väriä sekä lämpötilan ja kosteuden digitaalinäytön väriä sarjaliikenteen vastaanottamien tietojen perusteella.

Vaihe 10: Kooditiedostojen käsittely

Vain muutamia perusasioita koodin käsittelystä:

Suosittelen lukemaan Make: Getting Started withProcessing, käsittelyt Casey Reas ja Ben Fry, Processingin perustajat.

processing.org/books/#reasfry2

En yritä selittää kaikkia käsittelyn tai koodin kirjoittamisen käsittelyn näkökohtia. Kuten aiemmin sanoin, olen aloittelija ja uskon, että on paljon parempia ihmisiä, joista oppia. Ymmärrän kuitenkin kirjoittamani koodin (kokeilu ja erehdys ovat hyviä opettajia).

1. Ensimmäiseksi on sisällytettävä kirjastot (kuten Arduinossa) ja ilmoitettava muuttujat (rivit 1-25)

2. Aseta seuraavaksi näyttökortti (rivit 27-63)

3. Suorita toistuva osa koodista- tarkoitan, että tämä koodin osa toistuu niin kauan kuin ohjelma on käynnissä. Muistat Arduinossa”void loop ();” (Vaihe 6). Käsittelyssä tämä on nyt "void draw ();" (Rivit 65-184)

4. Seuraavaksi haetaan tietoja sarjaportista ja osoitetaan muuttujille (int, float, String)

int-

kellua-

Jousisoitin-

(Rivit 185-245)

4. Viimeinen tapa sulkea ohjelma ja tallentaa tiedot (rivit 246-271)

Ok: Lataa tiedosto Temp_Hum_F_3_2 (Fahrenheit)

Tai Temp_Hum_C_3_1 (celsiusaste)

ja pura tiedosto. Avaa käsittelyn avulla.

Vaihe 11: Fontti käsittelyssä

Fontti käsittelyssä
Fontti käsittelyssä

Tärkeää: Kehotan huomioimaan rivit 36-37

36 font = loadFont ("SourceCodePro-Bold-48.vlw"); // lataa dataan tallennetun fontin

kansio 37 textFont (fontti);

Tämä fonttikirjasto "SourceCodePro-Bold-48.vlw" sisältyy Processing files -latauksiin, eikä sitä tarvitse muuttaa toimivaksi.

Jos haluat vaihtaa fontin johonkin muuhun, sinun on ladattava uusi fontti käsittelyluonnokseen JA korvattava "SourceCodePro-Bold-48.vlw" uudella fontilla.

. Onneksi Processing on tehnyt ensimmäisen osan erittäin helpoksi.

Avaa ensin luonnos ja napsauta sitten:

Työkalut> Luo fontti

tämä tuo esiin ikkunan

Katso kaavio

Vieritä alas haluamasi uuden fontin kohdalle, napsauta sitä ja napsauta sitten OK. Fontti on nyt ladattu luonnoskansioon.

Korvaa seuraavaksi "SourceCodePro-Bold-48.vlw" -teksti uuden fontin tarkalla nimellä (mukaan lukien.vlw-tiedostomuoto)

Jos tätä ei tehdä, uusi fontti ei lataudu koodiin ja koodi antaa virheitä (aivan kuten Arduinon virheet- ohjelman alareunan mustassa laatikossa).

Vaihe 12: Viimeistely

Viimeistellä
Viimeistellä
Viimeistellä
Viimeistellä
Viimeistellä
Viimeistellä
Viimeistellä
Viimeistellä

Käynnistä Processing -ohjelma napsauttamalla nuolta, saat Java -varoituksen. Napsauta: Salli käyttö.

Katso kaavio

OK, toimiiko ohjelma? Jos näin on, saat kuvan kaltaisen näytön.

(Ei? Katso vianetsintä seuraavassa vaiheessa)

Joo? Yritä nyt pitää DHT11 suljettuna kämmenessäsi tai sijoittaa hiustenkuivaajan lämpimän ilmavirran alle. Numeroiden pitäisi muuttua. Joo? Loistava. eli kaikki toimii hyvin.

Sulje ohjelma ja tallenna tiedot napsauttamalla ruutua”Sulje ja tallenna tiedot napsauttamalla tätä”.

Jos haluat löytää tallennetut tiedot, siirry Temp_Hum_F_3_1 tai Temp_Hum_C_3_1 Processing -kansioon (sinun pitäisi pystyä löytämään tämä jo nyt), avaa se ja etsi Data -kansio. Avaa tämä ja näet.csv-tiedoston, joka on nimetty ohjelman sulkemispäivän ja -ajan mukaan (Esimerkki 1-10-18--22-30-16.csv tarkoittaa 10. tammikuuta 2018 10.30: 16 PM). Avaa tämä Excelillä (tai Open Office -laskentataulukon vastaavalla). Sinun pitäisi nähdä jotain kaavion kaltaista. Päivämäärän, kellonajan, käyttöajan, lämpötilan ja kosteuden sarakkeet tiedoilla. Voit nyt piirtää tiedot Excelillä tai mitä haluat tehdä sen kanssa. (Huomaa: jos tarkastelet ensimmäistä syöttöä, lämpötila- ja kosteustiedot eivät ole oikein, tämä on normaalia ja on vain virhe, kun ohjelma käynnistyy ensimmäisen kerran)

OK joo !!!!!

Teit sen

Jos sinulla on kysyttävää, lähetä viesti, ja yritän parhaani mukaan vastata ja auttaa.

Kiitos, että pysyt tämän kanssa ja onnea. Toivottavasti tämä on vasta alkua ….

Seuraavaksi minulle Bluetooth ja mahdollisesti Android….

Vaihe 13: Vianetsintä

Ongelmien karttoittaminen
Ongelmien karttoittaminen
Ongelmien karttoittaminen
Ongelmien karttoittaminen

Arduinon ongelmia

Jos saat virhekoodin (oranssi teksti IDE: n alareunassa), sen pitäisi olla jokin seuraavista DHTlib -kirjastoa ei kopioitu oikein

COM -portti on asetettu väärin

Anturia ei ole kytketty oikein

Koodia ei ole ladattu IDE: hen oikein

Jos kaikki Arduino näyttää menevän OK, muista avata Serial Monitor ja katso, näytetäänkö tietoja

Jos näet oikeat tiedot, tämä tarkoittaa, että Arduino-puoli toimii. Muista Sulje sarjamonitori ennen käsittelyn aloittamista, jos sarjamonitori on auki. Käsittely ei voi lukea tietoja.

Käsittelyongelmat:

Ne näkyvät käsittelyohjelman alaosassa.

Jos saat virheen "fontin" kuvaamisessa, palaa vaiheeseen 11 ja lataa fontti kuvatulla tavalla.

Jos saat virheilmoituksen, joka näyttää tältä: Virhe, serialEvent (): n poistaminen käytöstä COM4 null- käynnistä Käsittelyluonnos uudelleen napsauttamalla nuolta kuten vaiheessa 12

Jos saat virheilmoituksen, joka ilmoittaa: Virhe sarjaportin avaamisessa- yritä vaihtaa rivit 32-34 jotain sellaista, jossa "COM4" vastaa Arduino-luonnoksen COM-porttia

myPort = newSerial (tämä, "COM4", 9600); // Port myPort.bufferUntil ('\ n') // odota, kunnes sarjassa on tietoja

Suositeltava: