Sisällysluettelo:
- Vaihe 1: Mitä tarvitset:
- Vaihe 2: Yhdistä Arduino DHT11: een
- Vaihe 3: Lataa Arduino IDE
- Vaihe 4: Yhdistä Arduino tietokoneeseen
- Vaihe 5: Lataa kirjasto
- Vaihe 6: Hanki Arduino -koodi
- Vaihe 7: Lataa koodi Arduinolle
- Vaihe 8: Lataa ja asenna käsittely
- Vaihe 9: Käsittelykoodi
- Vaihe 10: Kooditiedostojen käsittely
- Vaihe 11: Fontti käsittelyssä
- Vaihe 12: Viimeistely
- Vaihe 13: Vianetsintä
Video: Lämpötilan ja kosteuden näyttö ja tiedonkeruu Arduinolla ja käsittely: 13 vaihetta (kuvilla)
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:03
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:
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
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 ja asenna tietokoneeseen
www.arduino.cc/en/Main/Software
Vaihe 4: Yhdistä 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 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
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
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
- DHTlib -kirjastoa ei kopioitu oikein
- COM -portti on asetettu väärin
- Anturia ei ole kytketty oikein
- 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
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
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ä
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
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ä
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:
Lämpökrominen lämpötilan ja kosteuden näyttö - PCB -versio: 6 vaihetta (kuvilla)
Lämpökrominen lämpötilan ja kosteuden näyttö - PCB -versio: Jokin aika sitten a teki projektin nimeltä Thermochromic Temperature & Kosteusnäyttö, jossa rakensin 7-segmenttisen näytön kuparilevyistä, joita lämmitettiin/jäähdytettiin peltier-elementeillä. Kuparilevyt peitettiin lämpökromikalvolla, joka
DHT 11 Lämpötilan ja kosteuden näyttö: 4 vaihetta
DHT 11 Lämpötilan ja kosteuden näyttö: Tarvittavat osat (UK Shopping Stock) Arduino Nano-https://www.amazon.co.uk/Arduino-yhteensopiva- Nano-CH340-USB/dp/B00ZABSNUSDHT 11 -anturi-https: // www. .adafruit.com/product/3861.3 " OLED Green Screen https://www.amazon.co.uk/DSD-TECH-Screen-Support
ESP8266 Nodemcu -lämpötilan valvonta DHT11: n avulla paikallisessa verkkopalvelimessa - Saat huoneen lämpötilan ja kosteuden selaimeesi: 6 vaihetta
ESP8266 Nodemcu -lämpötilan valvonta DHT11: n avulla paikallisessa verkkopalvelimessa | Saat huoneen lämpötilan ja kosteuden selaimeesi: Hei kaverit tänään, teemme kosteutta & lämpötilan valvontajärjestelmä ESP 8266 NODEMCU & DHT11 lämpötila -anturi. Lämpötila ja kosteus saadaan DHT11 Sensor & selaimesta näkyy, mitä verkkosivua hallitaan
Arduinon lämpötilan ja kosteuden ilmaisin: 7 vaihetta (kuvilla)
Arduinon lämpötila- ja kosteusindikaattori: Tässä ohjeessa näytetään, kuinka tehdä laatikko, joka voi ilmaista lämpötilan ja kosteuden Arduinolla Voit laittaa tämän laatikon pöydälle huoneen lämpötilan ja kosteuden mittaamiseksi Korkealaatuisella MDF -laatikolla laserleikkauksella kaikki tiivistetty f
4x4 -näppäimistö Arduinolla ja käsittely: 4 vaihetta (kuvilla)
4x4 -näppäimistö Arduinolla ja käsittely: Etkö pidä LCD -näytöistä? Haluatko saada projektisi näyttämään houkuttelevilta? No, tässä on ratkaisu. Tässä Instructable -ohjelmassa voit vapauttaa itsesi ongelmista käyttää LCD -näyttöä Arduinon sisällön näyttämiseen ja myös tehdä projektisi