» elektroniikka » Työläs »Kello sääasema Arduinossa

Katso sääasemaa Arduinolla

Katso sääasemaa Arduinolla

Hyvää iltapäivää, jatkan tekemistä Työläs vapaa-ajallaan, ja tällä kertaa hän kirjoitti ohjeet pienen sääaseman valmistamiseksi. Se toimii päivämääränä kellona ja näyttää lämpötilat huoneen sisällä ja ulkopuolella. Pääkontrollerina käytämme Arduino UNO: ta, mutta toinen kortti, jossa Atmega328p on mukana, tekee. Näyttöä varten käytetään graafista näyttöä WG12864B. Yhdistämme myös kaksi ds18b20-lämpötila-anturia. Yksi sisätiloissa, otamme toisen ulos. Aloitetaan.

Valmistusprosessissa kotitekoinen tarvitsemme:

- Arduino UNO (tai mikä tahansa muu Arduino-yhteensopiva levy)
- WG12864B graafinen näyttö
- ds18b20 lämpötila-anturi, 2kpl
- Virtalähde 6 - 12 V
- Vastukset 4,7 Kom 0,25 W, 2 kpl
- Vastukset 100 ohmia 0,25 W
- Paristolokero neljälle AAA “pinky” -paristolle
- Laatikko SEGA-konsolin patruunasta
- sähköteippi
- kytkentäjohdot
- piirilevy
- Painikkeet
- paperitavarat
- juotosrauta
- Juote, hartsi
- Kaksipuolinen teippi

Vaihe 1 WG12864B3: n valmistelu.
Niitä, jotka eivät ole aiemmin työskennelleet näytöiden kanssa, saattaa pelätä suuri joukko näyttöjen muutoksia, jotka näyttävät olevan samat. Selitän vähän. Suurin osa tämän tyyppisistä näytöistä toimii ks0107 / ks0108-siruilla. Kaikki näytöt voidaan jakaa neljään tyyppiin:

Vaihtoehto A: HDM64GS12L-4, Crystalfontz CFAG12864B, Sparkfun LCD-00710CM, NKC Electronics LCD-0022, WinStar WG12864B-TML-T

Vaihtoehto B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Näyttää AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1,

Vaihtoehto C: Shenzhen Jinghua Displays Co Ltd. JM12864

Vaihtoehto D: Wintek-Cascades WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Ne näyttävät melkein samanlaisilta. Mutta heillä on erilaisia ​​kytkentätappeja. Valitsin ja suosittelen sinulle WG12864B3 V2.0, mutta jos näyttö oli erilainen tai sinulla ei vain ole sitä käsillä, voit helposti selvittää sen taulukon avulla:


Lyhyet ominaisuudet:


Internetissä on monia erilaisia ​​yhteysjärjestelmiä, ja kaikki näyttää toimivan. Asia on, että ei ole olemassa vain erilaisia ​​näyttöjä, vaan myös kaksi tapaa yhdistää ne: sarja- ja rinnakkaisnäyttö. Sarjaporttiyhteyttä käytettäessä tarvitsemme vain 3 mikro-ohjaimen lähtöä. Vähimmäisarvon ollessa 13. Valinta on tässä tapauksessa ilmeinen, Arduinolla on vähän päätelmiä. Rinnakkaisliitäntää varten kytkentäkaavio on seuraava:


Käytettävää sarjayhteyttä varten kaavio on seuraava:

WG12864B - Arduino UNO
1 (GND) - GND
2 (VCC) - + 5 V
4 (RS) - 10
5 (R / W) - 11
6 (E) - 13
15 (PSB) - GND
19 (BLA) - 100 ohmin vastuksen kautta - + 5 V
20 (BLK) - GND


Kontrasti säätämiseksi potentiometrin tulisi olla näytöllä. On näyttöjä ilman sitä, mutta nyt se on harvinaisuus:


Tarvitaan 100 ohmin vastus, jotta 5 voltin jännite ei pala vahingossa taustavalodiodeja.


Vaihe 2 Tapauksen laatiminen.
Ota tapausta varten laatikko etuliitteestä Sega. Jos et löydä tätä ruutua käsillä, voit käyttää toista tapausta. Tärkeintä on, että näyttö ja Arduino mahtuvat siihen.


Leikkaa läpinäkyvä kalvo laatikon päälle niin, että paloja ei ole jäljellä:


Leikkaa sitten toimistoveitsellä näytölle ikkuna, jonka koko on 37x69.


Takapuolella, leikkauksen reunaa pitkin, liimaamme kaksipuolisen teipin, mieluiten mustan:


Poista suojapaperi teipiltä ja liimaa se näytöllemme:


Ulkopuolelta sen pitäisi näyttää tältä:


Näytön alapuolella, myös kaksipuolisella teipillä, kiinnitämme Arduinon tekemällä alustavia katkaisuja USB-porttiin ja pistorasiaan:


Arduino-pistorasioiden katkaisut on tehtävä laatikon molemmilta puolilta, jotta se voidaan sulkea vapaasti:


Vaihe 3 Lämpötila-anturit.
Käytämme digitaalisia lämpötila-antureita DS18B20. Niitä käyttämällä saadaan suuri mittaustarkkuus, virhe on enintään 0,5 ° C, laajalla lämpötila-alueella -55 ... + 125 ° C. Lisäksi digitaalinen anturi suorittaa kaikki laskelmat itse, ja Arduino vain vastaanottaa valmiita lukemia. Kun kytket tämän anturin, älä unohda DQ- ja VDD-koskettimien välistä vetovastusta, 4,7 kΩ. Useat kytkentävaihtoehdot ovat myös mahdollisia. Ulkoisella voimalla, mielestäni paras vaihtoehto, käytämme sitä:


Jos haluat, voit käyttää loisvoimitilaa:


Tai parannettu loisruokavaihtoehto:


Missä tahansa virtalähteessä anturit kytketään rinnakkain:


Asetamme lämpötilan mittausanturin pienelle alustalle yhdessä kahden painikkeen kanssa, joita käytämme kellonajan ja päivämäärän asettamiseen:


Molempien painikkeiden yhteinen johdin on kytketty GND: hen, ensimmäisen painikkeen johdin on kytketty A0: seen, toisesta A1: ään.
Kiinnitä kaksipuoliseen teippiin Arduinon viereen:


Anturi, jonka on tarkoitus sijoittaa huoneen ulkopuolelle, on parempi valita metalli-, pöly- ja kosteudenkestävässä kotelossa:


Laske tarvittavan pituinen lanka, jotta anturi voidaan ripustaa ikkunan ulkopuolelle. Tärkeintä on, että sen pituus ei saa olla yli 5 metriä, jos tarvitset enemmän pituutta, joudut vähentämään vetovastuksen arvoa.

Kummankin anturin DQ-dataväylän johto on kytketty Arduinon napaan 5.
Vdd - +5 Arduino.
GND - GND Arduino.


Vaihe 4 Virta.
Virran saamiseksi voit käyttää virtalähdettä, jonka jännite on 6–12 volttia. Juotosvirtajohdon lopussa juota Arduinon pistorasiaan sopiva pistoke:


Tai voit laittaa paristolokeron neljälle AAA-, "pinky" -paristolle. Ja kytke positiivinen johto lokerosta Vin Arduinoon ja miinus GND: hen.

Vaihe 5 Ohjelmointiympäristön valmistelu.
Ensin sinun on ladattava ja asennettava Arduino IDE virallinen sivusto

Lisää myös kahteen luonnokseen tarvittavaan kirjastoon. OneWire - tarvitaan kommunikointiin ds18b20-antureiden kanssa:
onewire.rar [16,75 kt] (lataukset: 34)


U8glib - käytetään tietojen näyttämiseen näytöllä:
u8glib.rar [906.95 Kb] (lataukset: 46)


Lataa kirjasto. Sitten pakkaamme arkistot ja siirrämme arkistojen sisällön ”kirjastojen” kansioon, joka sijaitsee kansiossa, jossa Arduino IDE on asennettu. Voit lisätä kirjastoja myös Arduino IDE: n kautta. Suorita tämä suorittamatta Arduino IDE: tä purkamatta arkistoja pakkaamista, valitsemalla Sketch-valikosta Sketch - Connect Library. Valitse avattavan luettelon yläosasta "Lisää .Zip-kirjasto" -kohde. Ilmoitamme ladattujen arkistojen sijainnin. Kaikkien vaiheiden jälkeen Arduino IDE on käynnistettävä uudelleen.

Vaihe 6 Luonnoksen muokkaaminen.
Lämpötila-anturit toimivat käyttämällä One Wire -protokollaa, ja niillä on jokaiselle laitteelle yksilöivä osoite - 64-bittinen koodi. Anturin hakukomentojen lisääminen piirrokseen ei ole suositeltavaa. Arduinon hikka-antureita ei tarvitse ladata joka kerta.Siksi, ensin, koota kaikki, täytä luonnokset Arduinossa, joka sijaitsee Tiedosto-valikossa - Esimerkit - Dallas Temperature - OneWireSearch. Suorita sitten Työkalut - Portmonitori. Arduinon tulisi löytää anturit, kirjoittaa osoitteet ja lämpötilalukemat. Nämä osoitteet on kirjoitettava muistiin tai kopioitava vain jonnekin. Avaa nyt luonnos Ard_Tic_Tak_WG12864B_2_x_Term_Serial ja etsi rivit:

tavun addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // sisäinen osoite
tavun addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // ulkoisen anturin osoite


Korvaamme anturien sijaintia vastaavat osoitteet osoitteillamme.
Kellomme eivät käytä RTC-moduulia (reaaliaikakello), joten kelloa täytyy säätää. Mukavuuden vuoksi poista rivin kommentti (sekunteja ilmestyy näytölle):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Tulosta sekuntia tarkistaaksesi kurssin oikeellisuuden


Aseta oikea aika porttinäytön kautta. Voit tehdä tämän avaamalla porttinäytön, odottamalla alkuperäisten lämpötilamittausten päättymistä ja kirjoittamalla nykyinen päivämäärä ja aika muodossa "päivä, kuukausi, vuosi, tunnit, minuutit, sekunnit". Jaa numerot pilkuilla tai pisteillä ilman välilyöntejä.

Jos kello on kiire, muuta arvo suuremmaksi, suosittelen kokeilemaan 100 yksikön askelin. Jos viivytät, pienennä rivin arvoa:

if (micros () - prevmicros> 494000) {// muutos toiseen säätöä varten oli 500 000


Määritä empiirisesti numero, jolla kello menee melko tarkasti. Kurssin tarkkuuden määrittäminen ja loppusekuntien tarve. Kun numero on kalibroitu tarkasti, sekunnit voidaan kommentoida ja poistaa siten näytöltä.
Täytä luonnos.


Toiminnallisuus vai kauneus?
Äänestäjiä yhteensä: 19
8
8.3
7.7

Lisää kommentti

    • hymyillähymyileexaxakunnossadontknowyahoonea
      pomonaarmutyperyskylläkyllä-kylläaggressiivinensalaisuus
      anteeksitanssidance2dance3anteeksihelpjuomat
      pysäytysystäväthyvägoodgoodpillipyörtyäkieli
      savutaputusCrayjulistaapilkallinenDon-t_mentiondownload
      lämpöirefullaugh1MDAkokousmoskingnegatiivinen
      not_ipopcornrangaistaluettupelästyttääpelottaaetsi
      kiusatathank_youtämäto_clueumnikakuuttisuostua
      huonoBeeeblack_eyeblum3punastuaylpeilläikävystyminen
      sensuroituhassutussecret2uhatavoittoyusun_bespectacled
      SHOKrespektlolprevedtervetuloakrutoyya_za
      ya_dobryiauttajane_huliganne_othodifludkieltolähellä
3 kommentit
Kirjailija
Valitettavasti en tiedä näytön analogeja halvemmalla.
Ja mitä enemmän budjettia on mahdollista korvata tämä näyttö, ne näyttivät 500 ruplasta.?
Näistä denyushkista voit ostaa valmiiden, todella sääasemien, joissa on merkitys paitsi lämpötilasta, myös paineesta ja kosteudesta, sekä mitattujen arvojen muutoksen suunnasta! hymyillä
Hyvää iltaa Ja mitä enemmän budjettia on mahdollista korvata tämä näyttö, ne näyttivät 500 ruplasta.?
Kiitos!

Suosittelemme lukemaan:

Anna se älypuhelimelle ...