» electronică » Arduino »Stația meteo cu ceas pe Arduino

Urmăriți stația meteo de pe Arduino

Urmăriți stația meteo de pe Arduino

Bună după-amiaza, mă descurc Arduino în timpul liber, iar de această dată a scris instrucțiuni pentru fabricarea unei stații meteo mici. Acesta va acționa ca un ceas cu o dată și va afișa temperaturile în interiorul și în afara camerei. Ca principal controler, vom folosi Arduino UNO, dar o altă placă cu Atmega328p la bord va face. Pentru afișare folosim ecranul grafic WG12864B. De asemenea, conectăm doi senzori de temperatură ds18b20. Unul în interior, îl scoatem pe cel de-al doilea afară. Să începem.

În procesul de fabricație de casă vom avea nevoie de:

- Arduino UNO (sau orice altă placă compatibilă Arduino)
- Ecran grafic WG12864B
- senzor de temperatura ds18b20, 2 buc
- Sursa de alimentare 6 - 12 V
- Rezistente 4.7 Kom 0.25 W, 2 buc.
- Rezistoare 100 ohmi 0,25 W
- Compartiment pentru baterii pentru 4 baterii AAA „roz”
- Cutie din cartușul consolei SEGA
- banda electrica
- conectarea firelor
- placa de circuit
- Butoane
- cuțit de papetărie
- fier de lipit
- Soldat, colofon
- bandă cu două fețe

Pasul 1 Pregătirea WG12864B3.
Cei care nu au lucrat până acum cu ecrane pot fi speriați de un număr mare de modificări, care par a fi aceleași, ale ecranelor. Voi explica puțin. Majoritatea ecranelor de acest tip funcționează pe cipuri ks0107 / ks0108. Toate ecranele pot fi împărțite în 4 tipuri:

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

Opțiunea B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Afișează AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J, 1

Opțiunea C: Shenzhen Jinghua Afișează Co Ltd. JM12864

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

Arată aproape la fel. Dar au ace de conectare diferite. Am ales și vă recomand WG12864B3 V2.0, dar dacă ecranul a fost diferit sau pur și simplu nu îl aveți la îndemână, îl puteți da cu ușurință cu ajutorul tabelului:


Caracteristici scurte:


Există multe scheme de conexiune diferite pe Internet și totul pare să funcționeze. Chestia este că nu există doar ecrane diferite, ci și două modalități de conectare a acestora: serial și paralel. Când utilizăm o conexiune port serială, avem nevoie de doar 3 ieșiri ale microcontrolerului. Cu un minim paralel de 13. Alegerea în acest caz este evidentă, Arduino are câteva concluzii. Pentru conexiuni paralele, diagrama de conexiune este următoarea:


Pentru o conexiune în serie, pe care o vom folosi, schema este următoarea:

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


Pentru a regla contrastul, un potențiometru ar trebui să fie pe ecran. Există ecrane fără el, dar acum este o raritate:


Este necesară o rezistență de 100 ohmi, astfel încât o tensiune de 5 volți să nu ardă accidental diodele de iluminare din spate.


Pasul 2 Crearea cazului.
Pentru acest caz, luați caseta din prefixul cartușului Sega. Dacă nu găsiți această casetă la îndemână, puteți utiliza un alt caz. Principalul lucru este că ecranul și Arduino se încadrează în el.


Tăiați filmul transparent deasupra cutiei, astfel încât să nu mai rămână bucăți:


Apoi, folosind un cuțit clerical, tăiați o fereastră cu dimensiunea de 37x69 pentru ecran.


Pe partea din spate, de-a lungul marginii tăiate, lipim o bandă cu două fețe, de preferință neagră


Scoateți hârtia de protecție din banda adezivă și lipiți ecranul pe ea:


Din exterior, ar trebui să arate astfel:


Sub ecran, tot pe bandă dublă, fixăm Arduino, realizând decupaje preliminare pentru portul USB și priza de alimentare:


Decupajele pentru prizele Arduino trebuie să fie făcute pe ambele părți ale cutiei, astfel încât să poată fi închis liber:


Pasul 3 Senzori de temperatură.
Vom folosi senzori digitali de temperatură DS18B20. Folosind acestea obținem o precizie de măsurare mare, eroarea nu este mai mare de 0,5 ° C, într-un interval larg de temperatură -55 ... + 125 ° C. În plus, senzorul digital efectuează în sine toate calculele, iar Arduino primește pur și simplu lecturi pregătite. Când conectați acest senzor, nu uitați de rezistența de tragere, de 4,7 kΩ, între contactele DQ și VDD. Sunt posibile mai multe opțiuni de conectare. Cu puterea externă, în opinia mea cea mai bună opțiune, o vom folosi:


Dacă doriți, puteți utiliza modul de alimentare parazitară:


Sau o opțiune alimentară îmbunătățită parazitară:


Cu orice sursă de alimentare, senzorii sunt conectați în paralel:


Vom așeza senzorul de măsurare a temperaturii pe placa mică împreună cu două butoane, pe care le vom folosi pentru a seta ora și data ceasului:


Firul comun de la ambele butoane este conectat la GND, firul de la primul buton este conectat la A0, de la al doilea la A1.
Fixați pe o bandă cu două fețe lângă Arduino:


Senzorul, care se presupune a fi amplasat în afara camerei, este mai bine să alegeți într-o carcasă metalică, rezistentă la praf și umiditate:


Calculați firul cu lungimea necesară, astfel încât senzorul să poată fi atârnat în afara ferestrei, principalul lucru este că acesta nu trebuie să depășească 5 metri, dacă aveți nevoie de mai multă lungime, va trebui să reduceți valoarea rezistenței de tragere.

Firul de la magistrala de date DQ a ambilor senzori este conectat la pinul 5 al Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Pasul 4 Putere.
Pentru alimentare, puteți utiliza o sursă de alimentare cu o tensiune între 6 și 12 volți. La sfârșitul sârmei de aprindere a energiei electrice, lipiți fișa potrivită pentru priza Arduino:


Sau puteți pune un compartiment pentru baterii pentru patru baterii „AAA”, „roz” în carcasă. Și conectați firul pozitiv din compartiment la Vin Arduino și minus la GND.

Pasul 5 Pregătirea mediului de programare.
Mai întâi trebuie să descărcați și să instalați Arduino IDE cu site oficial

Adăugați și cele două biblioteci necesare schiței. OneWire - necesar pentru comunicarea cu senzorii ds18b20:
onewire.rar [16.75 Kb] (descărcări: 34)


U8glib - utilizat pentru afișarea informațiilor pe ecran:
u8glib.rar [906,95 Kb] (descărcări: 46)


Descărcați biblioteca. Apoi desfacem arhivele și mutăm conținutul arhivelor în folderul „biblioteci” situat în folderul cu Arduino IDE instalat. Puteți adăuga și biblioteci prin IDE Arduino. Pentru a face acest lucru, fără a despacheta arhivele, executați Arduino IDE, selectați Sketch - Connect Library din meniul Sketch. În partea de sus a listei derulante, selectați elementul „Adăugați biblioteca .Zip”. Vă indicăm locația arhivelor descărcate. După toți pașii, trebuie să reporniți ID-ul Arduino.

Pasul 6 Editarea schiței.
Senzorii de temperatură funcționează folosind protocolul One Wire și au o adresă unică pentru fiecare dispozitiv - un cod pe 64 de biți. Nu este recomandabil să adăugați comenzi de căutare a senzorului la schiță. Nu este necesar să încărcați de fiecare dată senzori pentru sughiț Arduino.Prin urmare, mai întâi, punând totul laolaltă, completați schița din Arduino, situată în meniul Fișier - Exemple - Dallas Temperatură - OneWireSearch. Apoi executați Instrumente - Port Monitor. Arduino ar trebui să ne găsească senzorii, să scrie adresele și citirile de temperatură. Aceste adrese trebuie notate sau copiate doar undeva. Deschide acum schița Ard_Tic_Tak_WG12864B_2_x_Term_Serial și caută liniile:

byte addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // adresă internă
byte addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adresa senzorului extern


Înlocuim adresele corespunzătoare locației senzorilor cu adresele noastre.
Ceasurile noastre nu folosesc modulul RTC (ceas în timp real), deci trebuie să reglați ceasul. Pentru comoditate, decomandați linia (secunde vor apărea pe ecran):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Tipăriți secunde pentru a verifica corectitudinea cursului


Setați ora corectă prin monitorul portului. Pentru a face acest lucru, deschideți monitorul portului, așteptați finalizarea măsurărilor de temperatură inițiale și introduceți data și ora curente în formatul „zi, lună, an, ore, minute, secunde”. Fără spații, împărțiți numerele cu virgule sau perioade.

Dacă ceasul se grăbește, schimbați valoarea în una mai mare, recomand să experimentați cu creșteri de 100 de unități. Dacă întârzie, scade valoarea din linie:

if (micros () - prevmicros & gt; 494000) {// schimbarea în alta pentru ajustare a fost 500.000


Determinați empiric numărul la care ceasul merge destul de precis. Pentru a determina exactitatea cursului și au nevoie de o concluzie de secunde. După calibrarea corectă a numărului, secunde pot fi comentate și astfel eliminate din ecran.
Completați schița.

ard_tic_tak_wg12864b_2_x_term_serial.rar [3,2 Kb] (descărcări: 90)

Funcționalitate sau frumusețe?
Total de alegători: 19
8
8.3
7.7

Adaugă un comentariu

    • zâmbetzâmbetexaxabinedontknowYahooNea
      șefzgârieturăpăcălidada-daagresivsecret
      scuzedansdance2dance3iertareajutorbăuturi
      oprireprietenibungoodgoodfluiersincopălimbă
      fumaplauzeCrayvestimbatjocoritorDon-t_mentiondescărcare
      căldurămânioslaugh1mdaîntâlniremoskingnegativ
      not_ifloricele de porumbpedepsicititsperiasperiecăutare
      batjocurăthank_youacestto_clueUmnikacutconveni
      răubeeeblack_eyeblum3roșilăudăroșenieplictiseală
      cenzuratpleasantrysecret2amenințavictorieyusun_bespectacled
      ShokRespektlolprevedbun venitKrutoyya_za
      ya_dobryiajutorne_huliganne_othodifludinterdicțieînchide
3 comentarii
Autorul
Din păcate, nu știu mai ieftin analogii ecranului.
Și cu cât este mai posibil bugetul pentru a înlocui acest ecran, au arătat de la 500 de ruble.?
Pentru acești denyushki puteți cumpăra o stație meteorologică pregătită, cu indicație a nu numai a temperaturii, dar și a presiunii și umidității și cu indicația direcției de schimbare a valorilor măsurate! zâmbet
Bună seara Și cu cât este mai posibil bugetul pentru a înlocui acest ecran, au arătat de la 500 de ruble.?
Multumesc!

Vă sfătuim să citiți:

Înmânează-l pentru smartphone ...