» elektronikk » Arduino »Clock værstasjon på Arduino

Se værstasjonen på Arduino

Se værstasjonen på Arduino

God ettermiddag, fortsetter jeg Arduino på fritiden, og denne gangen skrev han instruksjoner for produksjon av en liten værstasjon. Den vil fungere som en klokke med en dato og vise temperaturer i og utenfor rommet. Som hovedkontroller vil vi bruke Arduino UNO, men et annet brett med Atmega328p ombord vil gjøre. For visning bruker vi grafikkskjermen WG12864B. Vi kobler også to ds18b20 temperatursensorer. Den ene innendørs tar vi den andre utenfor. La oss komme i gang.

I produksjonsprosessen hjemmelaget vi trenger:

- Arduino UNO (Eller noe annet Arduino-kompatibelt brett)
- WG12864B grafisk skjerm
- ds18b20 temperatursensor, 2stk
- Strømforsyning 6 - 12 V
- Motstand 4,7 Kom 0,25 W, 2 stk.
- Motstander 100 ohm 0,25 W
- Batterirom for 4 AAA “pinky” batterier
- Boks fra kassetten på SEGA-konsollen
- elektrisk tape
- koble ledninger
- kretskort
- Knapper
- skrivesakerkniv
- loddejern
- Lodd, kolofonium
- Dobbeltsidig tape

Trinn 1 Forberede WG12864B3.
De som ikke har jobbet med skjermer før, kan bli skremt av et stort antall endringer, som ser ut til å være de samme, av skjermer. Jeg vil forklare litt. De fleste skjermer av denne typen fungerer på ks0107 / ks0108-brikker. Alle skjermer kan deles inn i fire typer:

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

Alternativ B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ-skjermer AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J86, Q, Q

Alternativ C: Shenzhen Jinghua Displays Co Ltd. JM12864

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

De ser nesten like ut. Men de har forskjellige tilkoblingspinner. Jeg valgte, og jeg anbefaler deg, WG12864B3 V2.0, men hvis skjermen dukket opp på en annen måte, eller du bare ikke har den for hånden, kan du enkelt finne ut av det ved hjelp av tabellen:


Korte egenskaper:


Det er mange forskjellige tilkoblingsordninger på Internett, og alt ser ut til å virke. Saken er at det ikke bare er forskjellige skjermer, men også to måter å koble dem til: seriell og parallell. Når du bruker en seriell portforbindelse, trenger vi bare 3 utganger fra mikrokontrolleren. Med et parallelt minimum på 13. Valget i dette tilfellet er åpenbart, Arduino har få konklusjoner. For parallellkobling er tilkoblingsskjemaet som følger:


For en seriell tilkobling, som vi vil bruke, er ordningen som følger:

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


For å justere kontrasten, bør et potensiometer være på skjermen. Det er skjermer uten, men nå er det en sjeldenhet:


En motstand på 100 ohm er nødvendig, slik at en spenning på 5 volt ikke ved et uhell brenner bakgrunnsbelysningsdioder.


Trinn 2 Saker saken.
For saken, ta esken fra kassettprefikset Sega. Hvis du ikke finner denne boksen for hånden, kan du bruke en annen sak. Det viktigste er at skjermen og Arduino passer inn i den.


Klipp den gjennomsiktige filmen på toppen av esken slik at det ikke er igjen stykker:


Bruk deretter en geistlig kniv til å klippe ut et vindu 37x69 i størrelse for skjermen.


På baksiden, langs kanten av snittet, limer vi et tosidig tape, helst svart:


Fjern beskyttelsespapiret fra limbåndet, og lim skjermen på det:


Fra utsiden skal det se slik ut:


Under skjermen, også på dobbeltsidig tape, fester vi Arduino, og lager foreløpige utskjæringer for USB-porten og strømuttaket:


Utklipp til Arduino-stikkontakter må gjøres på begge sider av esken, slik at den kan lukkes fritt:


Trinn 3 Temperatursensorer.
Vi vil bruke digitale temperatursensorer DS18B20. Ved å bruke dem får vi stor målenøyaktighet, feilen er ikke mer enn 0,5 ° C, i et bredt temperaturområde -55 ... + 125 ° C. I tillegg utfører den digitale sensoren alle beregningene selv, og Arduino får ganske enkelt ferdige avlesninger. Når du kobler til denne sensoren, må du ikke glemme opptrekksmotstanden, 4,7 kΩ, mellom DQ- og VDD-kontaktene. Flere tilkoblingsalternativer er også mulig. Med ekstern kraft, etter min mening det beste alternativet, vil vi bruke det:


Hvis du vil, kan du bruke parasittkraftmodus:


Eller et forbedret alternativ for parasittmat:


Med en hvilken som helst strømforsyning kobles sensorene parallelt:


Vi vil plassere temperaturmåleren på det lille tavlen sammen med to knapper, som vi vil bruke til å stille inn klokkeslett og dato for klokken:


Felletråden fra begge knappene er koblet til GND, ledningen fra den første knappen er koblet til A0, fra den andre til A1.
Fest til et tosidig tape ved siden av Arduino:


Sensoren, som antas å være plassert utenfor rommet, er bedre å velge i et metall, støv og fukttett hus:


Beregn ledningen med ønsket lengde slik at sensoren kan henges utenfor vinduet, det viktigste er at den ikke skal være mer enn 5 meter, hvis du trenger mer lengde, må du redusere verdien på opptrekksmotstanden.

Ledningen fra DQ-databussen til begge sensorer er koblet til pinne 5 på Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Trinn 4 Kraft.
For strøm kan du bruke en strømforsyning med en spenning på 6 til 12 volt. På slutten av fakkeltråden må du lodde kontakten som passer til Arduino-kontakten:


Eller du kan legge et batterirom for fire "AAA", "pinky" batterier i saken. Og koble den positive ledningen fra kupeen til Vin Arduino, og minus til GND.

Trinn 5 Forberede programmeringsmiljøet.
Først må du laste ned og installere Arduino IDE med offisiell side

Og legg også til de to bibliotekene som trengs for skissen. OneWire - nødvendig for kommunikasjon med ds18b20 sensorer:
onewire.rar [16,75 Kb] (nedlastinger: 34)


U8glib - brukes til å vise informasjon på skjermen:
u8glib.rar [906,95 Kb] (nedlastinger: 46)


Last ned biblioteket. Så pakker vi ut arkivene, og flytter innholdet i arkivene til mappen “biblioteker” som ligger i mappen med Arduino IDE installert. Du kan også legge til biblioteker gjennom Arduino IDE. For å gjøre dette, uten å pakke ut arkivene, kjører du Arduino IDE, velger Sketch - Connect Library fra menyen Sketch. Øverst på nedtrekkslisten velger du elementet "Legg til. Zip-bibliotek". Vi angir plasseringen av nedlastede arkiver. Etter alle trinnene, må du starte Arduino IDE på nytt.

Trinn 6 Redigering av skissen.
Temperatursensorer bruker One Wire-protokollen og har en unik adresse for hver enhet - en 64-biters kode. Det er ikke tilrådelig å legge sensorsøkkommandoer til skissen. Det er ikke nødvendig å laste Arduino hikke sensorer hver gang.Først må du først sette sammen alt, fylle ut skissen i Arduino, som ligger i Fil-menyen - Eksempler - Dallas temperatur - OneWireSearch. Kjør deretter Tools - Port Monitor. Arduino skulle finne sensorene våre, skrive adressene og temperaturavlesningene. Disse adressene må skrives ned eller bare kopieres et sted. Åpne nå skissen Ard_Tic_Tak_WG12864B_2_x_Term_Serial, og se etter linjene:

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // intern adresse
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adresse til den eksterne sensoren


Vi erstatter adressene som tilsvarer sensorenes plassering med våre adresser.
Våre klokker bruker ikke RTC-modulen (sanntidsklokke), så du må justere klokken. Fjern for enkelhets skyld linjen (sekunder vises på skjermen):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Skriv ut sekunder for å sjekke korrektheten til kurset


Still riktig tid gjennom portmonitoren. For å gjøre dette, åpne portmonitoren, vent til de opprinnelige temperaturmålingene er ferdige, og skriv inn gjeldende dato og tid i formatet "dag, måned, år, timer, minutter, sekunder." Uten mellomrom, del tallene med komma eller perioder.

Hvis klokken har det travelt, endre verdien til en større, jeg anbefaler å eksperimentere med trinn på 100 enheter. Hvis du henger, reduser du verdien på linjen:

if (mikros () - prevmicros & gt; 494000) {// endring til en annen for justering var 500 000


Empirisk bestemme hvor klokken går ganske nøyaktig. For å bestemme nøyaktigheten av kurset og trenger en konklusjon sekunder. Etter nøyaktig kalibrering av tallet, kan sekunder kommenteres og dermed fjernes fra skjermen.
Fyll skissen.

ard_tic_tak_wg12864b_2_x_term_serial.rar [3,2 Kb] (nedlastinger: 90)

Funksjonalitet eller skjønnhet?
Totalt velgere: 19
8
8.3
7.7

Legg til en kommentar

    • smilersmilerxaxaokdontknowyahoonea
      sjefscratchlurejaja-jaaggressivhemmelighet
      beklagerdansedance2dance3benådninghjelpdrikkevarer
      stoppvennergodgoodgoodfløytebesvimelsetunge
      røykklappingCrayerklærehånligdon-t_mentionnedlasting
      heteirefullaugh1MDAmøtemoskingnegative
      not_ipopcornstraffeleseskremmeskremmersøk
      spydighetthank_youdetteto_clueumnikakuttenig
      dårligbeeeblack_eyeblum3rødmeskrytekjedsomhet
      sensurertpleasantrysecret2trueseieryusun_bespectacled
      ShokRespektlolPrevedvelkommenKrutoyya_za
      ya_dobryihelperne_huliganne_othodiFLUDforbudnær
3 kommentarer
Forfatteren
Dessverre kjenner jeg ikke analogene til skjermen billigere.
Og jo mer budsjett det er mulig å erstatte denne skjermen, så de fra 500 rubler.?
For disse denyushki kan du kjøpe en ferdig, virkelig værstasjon, med en indikasjon på ikke bare temperatur, men også trykk og fuktighet, og med en indikasjon på endringsretningen for de målte verdiene! smiler
God kveld Og jo mer budsjett det er mulig å erstatte denne skjermen, så de fra 500 rubler.?
Takk skal du ha!

Vi anbefaler deg å lese:

Gi den til smarttelefonen ...