» Elektronika » Arduino »Laikrodinė orų stotis Arduino mieste

Stebėkite orų stotį Arduino mieste

Stebėkite orų stotį Arduino mieste

Laba diena, aš ir toliau darau Arduino laisvalaikiu, o šį kartą parašė instrukcijas, kaip gaminti nedidelę oro stotį. Tai veiks kaip laikrodis su data ir parodys temperatūrą kambaryje ir lauke. Kaip pagrindinį valdiklį naudosime „Arduino UNO“, tačiau tai darys kita plokštė su „Atmega328p“. Ekranui naudojame grafinį ekraną WG12864B. Taip pat prijungiame du „ds18b20“ temperatūros jutiklius. Vieną patalpoje mes išimame antrą lauke. Pradėkime.

Gamybos procese naminis mums reikės:

- „Arduino UNO“ (arba bet kuri kita „Arduino“ suderinama plokštė)
- WG12864B grafinis ekranas
- „ds18b20“ temperatūros jutiklis, 2vnt
- Maitinimas 6 - 12 V
- Rezistoriai 4,7 Kom 0,25 W, 2 vnt.
- Rezistoriai 100 omų 0,25 W
- Baterijų skyrius 4 AAA „rausvai“ baterijoms
- Dėžutė iš SEGA konsolės kasetės
- elektros juosta
- jungiamieji laidai
- plokštė
- Sagos
- kanceliarinis peilis
- lituoklis
- Lydmetalis, kanifolija
- dvipusė juosta

1 veiksmas WG12864B3 paruošimas.
Tie, kurie anksčiau neveikė su ekranais, gali išgąsdinti dėl daugybės ekranų modifikacijų, kurios atrodo tos pačios. Aš šiek tiek paaiškinsiu. Dauguma šio tipo ekranų veikia su ks0107 / ks0108 mikroschemomis. Visus ekranus galima suskirstyti į 4 tipus:

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

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

C variantas: „Shenzhen Jinghua Displays Co Ltd.“ Jm12864

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

Jie atrodo beveik vienodi. Bet jie turi skirtingus jungčių kaiščius. Aš pasirinkau ir rekomenduoju jums WG12864B3 V2.0, bet jei ekranas pateko kitaip arba tiesiog neturite jo po ranka, galite lengvai jį išsiaiškinti naudodamiesi lentele:


Trumpos charakteristikos:


Internete yra daugybė skirtingų ryšio schemų, ir atrodo, kad viskas veikia. Reikalas tas, kad yra ne tik skirtingi ekranai, bet ir du būdai juos sujungti: serijinis ir lygiagretus. Naudojant nuosekliojo prievado jungtį, mums reikia tik 3 mikrovaldiklio išėjimų. Turint lygiagretų minimumą 13. Pasirinkimas šiuo atveju yra akivaizdus, ​​Arduino turi nedaug išvadų. Lygiagrečiam sujungimui prijungimo schema yra tokia:


Serijiniam ryšiui, kurį naudosime, schema yra tokia:

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) - per 100 omų varžą - + 5 V
20 (BLK) - GND


Norėdami sureguliuoti kontrastą, ekrane turėtų būti potenciometras. Yra ekranų be jo, tačiau tai dabar yra retenybė:


Reikia 100 omų varžos, kad 5 voltų įtampa netyčia nesudegtų apšvietimo diodų.


2 žingsnis.
Atveju paimkite dėžutę iš užtaiso prefikso „Sega“. Jei nerandate šio langelio po ranka, galite naudoti kitą dėklą. Svarbiausia, kad jame tilptų ekranas ir „Arduino“.


Nupjaukite permatomą plėvelę ant dėžutės viršaus, kad neliktų gabalėlių:


Tada, naudodamas kanceliarinį peilį, ekranui iškirpkite 37x69 dydžio langą.


Kitoje pusėje, išilgai pjūvio krašto, mes klijuojame dvipusę juostą, geriau juodą:


Iš lipnios juostos nuimkite apsauginį popierių ir ant jo klijuokite ekraną:


Iš išorės jis turėtų atrodyti taip:


Žemiau ekrano, taip pat ant dvipusės juostos, pritvirtiname „Arduino“, padarydami išankstinius USB jungties ir maitinimo lizdo iškirpimus:


„Arduino“ lizdų išpjovos turi būti padarytos iš abiejų dėžutės pusių, kad jis galėtų laisvai užsidaryti:


3 žingsnis Temperatūros jutikliai.
Mes naudosime skaitmeninius temperatūros jutiklius DS18B20. Naudodamiesi jais gauname puikų matavimo tikslumą, paklaida yra ne didesnė kaip 0,5 ° C, plačiame temperatūrų diapazone -55 ... + 125 ° C. Be to, skaitmeninis jutiklis visus skaičiavimus atlieka pats, o „Arduino“ tiesiog gauna paruoštus rodmenis. Prijungdami šį jutiklį, nepamirškite apie 4,7 kΩ įtempimo varžą tarp DQ ir VDD kontaktų. Taip pat galimos kelios ryšio galimybės. Turėdami išorinę energiją, mano nuomone, geriausias pasirinkimas, mes ja pasinaudosime:


Jei norite, galite naudoti parazitinį galios režimą:


Arba patobulintas parazitinio maisto pasirinkimas:


Prie bet kokio maitinimo šaltinio jutikliai jungiami lygiagrečiai:


Mes įdėsime temperatūros matavimo jutiklį ant mažos lentos kartu su dviem mygtukais, kuriuos naudosime laikrodžio laikui ir datai nustatyti:


Bendras abiejų mygtukų laidas yra prijungtas prie GND, laidas iš pirmo mygtuko yra prijungtas prie A0, iš antrojo - prie A1.
Pritvirtinkite prie dvipusės juostos šalia Arduino:


Jutiklį, kurį ketinama pastatyti už kambario ribų, geriau pasirinkti metaliniame, dulkėms ir drėgmei atsparime korpuse:


Apskaičiuokite reikiamo ilgio laidą, kad jutiklį būtų galima pakabinti už lango, svarbiausia, kad jis turėtų būti ne didesnis kaip 5 metrai, jei jums reikia daugiau ilgio, turėsite sumažinti traukiamo rezistoriaus vertę.

Laidas iš abiejų jutiklių DQ duomenų magistralės yra prijungtas prie Arduino 5 kaiščio.
Vdd - +5 Arduino.
GND - GND Arduino.


4 žingsnis Galia.
Norėdami maitinti, galite naudoti maitinimo šaltinį, kurio įtampa yra nuo 6 iki 12 voltų. Pasibaigus maitinimo laido laidui, lituokite kištuką, tinkantį „Arduino“ elektros lizdui:


Arba galite pastatyti akumuliatorių skyrių keturioms „AAA“, „rausvai“ baterijoms. Prijunkite teigiamą laidą nuo skyriaus prie Vin Arduino, o minusą - prie GND.

5 žingsnis. Programavimo aplinkos paruošimas.
Pirmiausia turite atsisiųsti ir įdiegti „Arduino IDE“ naudodami oficiali svetainė

Taip pat pridėkite prie dviejų eskizui reikalingų bibliotekų. „OneWire“ - reikalingas ryšiui su „ds18b20“ jutikliais:
onewire.rar [16,75 Kb] (atsisiuntimų: 34)


„U8glib“ - naudojama informacijai ekrane rodyti:
u8glib.rar [906,95 Kb] (atsisiuntimų: 46)


Atsisiųskite biblioteką. Tada išpakuojame archyvus ir perkeliame archyvų turinį į „bibliotekų“ aplanką, esantį aplanke, kuriame įdiegta „Arduino IDE“. Taip pat galite pridėti bibliotekas naudodamiesi „Arduino IDE“. Norėdami tai padaryti, neišpakuodami archyvų, paleiskite „Arduino IDE“, meniu „Eskizas“ pasirinkite „Eskizas - Prijunkite biblioteką“. Pačiame išskleidžiamojo sąrašo viršuje pasirinkite elementą „Pridėti .Zip biblioteką“. Nurodome atsisiųstų archyvų vietą. Atlikę visus veiksmus, turite iš naujo paleisti „Arduino IDE“.

6 žingsnis Eskizo redagavimas.
Temperatūros jutikliai veikia naudojant „One Wire“ protokolą ir turi unikalų kiekvieno įrenginio adresą - 64 bitų kodą. Nepatartina pridėti jutiklio paieškos komandų prie eskizo. Nereikia kiekvieną kartą krauti „Arduino“ žagsėjimo jutiklių.Todėl pirmiausia viską sudėję užpildykite eskizą Arduino, esančiame meniu Failas - Pavyzdžiai - Dalaso temperatūra - „OneWireSearch“. Tada paleiskite „Tools - Port Monitor“. Arduino turėtų rasti mūsų jutiklius, užrašyti adresus ir temperatūros rodmenis. Šiuos adresus reikia nurašyti arba tiesiog kažkur nukopijuoti. Dabar atidarykite Ard_Tic_Tak_WG12864B_2_x_Term_Serial eskizą ir ieškokite eilučių:

baitų adr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // vidinis adresas
baitų addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // išorinio jutiklio adresas


Adresus, atitinkančius jutiklių vietą, mes pakeičiame savo adresais.
Mūsų laikrodžiai nenaudoja RTC modulio (realaus laiko laikrodžio), todėl jums reikia pakoreguoti laikrodį. Patogumui komentuokite eilutę (sekundės pasirodys ekrane):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Spausdinkite sekundes, kad patikrintumėte kurso teisingumą


Per uosto monitorių nustatykite tinkamą laiką. Norėdami tai padaryti, atidarykite uosto monitorių, palaukite, kol bus atlikti pradiniai temperatūros matavimai, ir įveskite esamą datą ir laiką formatu „diena, mėnuo, metai, valandos, minutės, sekundės“. Be tarpų padalinkite skaičius kableliais arba taškais.

Jei laikrodis skuba, pakeiskite vertę į didesnę, aš rekomenduoju eksperimentuoti su 100 vienetų žingsniais. Jei atsiliekate, sumažinkite eilutės vertę:

if (micros () - prevmicros> 494000) {// pakeiskite kitu, norėdami pakoreguoti, buvo 500 000


Empiriškai nustatykite, kiek tiksliai laikrodis eina. Norėdami nustatyti kurso tikslumą ir jums reikia išvadų sekundžių. Tiksliai sukalibravus skaičių, sekundes galima komentuoti ir tokiu būdu pašalinti iš ekrano.
Užpildykite eskizą.

ard_tic_tak_wg12864b_2_x_term_serial.rar [3,2 kb] (atsisiuntimų: 90)

Funkcionalumas ar grožis?
Iš viso rinkėjų: 19
8
8.3
7.7

Pridėti komentarą

    • šypsotisšypsosixaxagerainežiniaYahoonea
      viršininkassubraižytikvailystaiptaip-taipagresyvusslapta
      atsiprašaušoktišokis2šokis3atleiskpadėtigėrimai
      sustotidraugaigeraigerašvilpukassupyktiliežuvis
      rūkytiplojimaiklastingaspareikštiniokojantisdon-t_mentionatsisiųsti
      šilumanedrąsusjuoktis1mdasusitikimasmoskingneigiamas
      not_ipopkornasnubaustiskaitytigąsdintigąsdinapaieška
      gundytiačiūtaito_clueumnikūmussusitarti
      blogaibičiųjuoda akisblum3skaistalaipasigirtinuobodulys
      cenzūruotamalonumasslapta2grasintipergalėju„sun_bespectacled“
      šoktipagarbalolišlenktaslaukiamekrutojusya_za
      ya_dobryipagalbininkasne_huliganne_othodifludisuždraustiarti
3 komentaras
Autorius
Deja, aš nežinau ekrano analogų pigiau.
Ir kuo daugiau biudžeto galima pakeisti šiuo ekranu, jie atrodė nuo 500 rublių.?
Šiems denyushki galite nusipirkti paruoštą, tikrai orų stotį, nurodančią ne tik temperatūrą, bet ir slėgį bei drėgmę, ir nurodančią išmatuotų verčių pokyčių kryptį! šypsotis
Labas vakaras Ir kuo daugiau biudžeto galima pakeisti šiuo ekranu, jie atrodė nuo 500 rublių.?
Ačiū!

Mes patariame perskaityti:

Perduokite jį išmaniajam telefonui ...