» Elektronika » Arduino »Hodinová meteorologická stanice na Arduinu

Sledujte meteorologickou stanici na Arduinu

Sledujte meteorologickou stanici na Arduinu

Dobré odpoledne, pořád dělám Arduino ve svém volném čase, a tentokrát napsal pokyny pro výrobu malé meteorologické stanice. Působí jako hodiny s datem a ukazuje teploty uvnitř i vně místnosti. Jako hlavní řadič použijeme Arduino UNO, ale další deska s Atmega328p na palubě udělá. Pro zobrazení používáme grafickou obrazovku WG12864B. Připojujeme také dva teplotní senzory ds18b20. Jeden uvnitř, druhý vyjmeme ven. Pojďme začít.

Ve výrobním procesu domácí budeme potřebovat:

- Arduino UNO (nebo jakákoli jiná deska kompatibilní s Arduino)
- Grafická obrazovka WG12864B
- teplotní senzor ds18b20, 2ks
- Napájení 6 - 12 V
- Rezistory 4,7 Kom 0,25 W, 2 ks.
- Rezistory 100 ohmů 0,25 W
- Přihrádka na baterie pro 4 AAA „pinky“ baterie
- Krabice z kazety konzoly SEGA
- elektrická páska
- spojovací vodiče
- deska plošných spojů
- Tlačítka
- psací potřeby
- páječka
- Pájka, kalafuna
- Oboustranná páska

Krok 1 Příprava WG12864B3.
Ti, kteří s obrazovkami dosud nepracovali, mohou být vyděšení velkým počtem úprav obrazovek, které se zdají být stejné. Trochu vysvětlím. Většina obrazovek tohoto typu pracuje na čipech ks0107 / ks0108. Všechny obrazovky lze rozdělit do 4 typů:

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

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

Varianta C: Shenzhen Jinghua Displays Co Ltd. Jm12864

Varianta D: Wintek-Kaskády WD-G1906G, Wintek-GEN / WD-G1906G / KS0108B, Wintek / WD-G1906G / S6B0108A, TECDIS / Y19061 / HD61202, Varitronix / MGLS19264 / HD61202

Vypadají téměř stejně. Ale mají různé spojovací kolíky. Vybral jsem a doporučuji vám, WG12864B3 V2.0, ale pokud se obrazovka objevila jinak, nebo ji prostě nemáte po ruce, můžete ji snadno zjistit pomocí tabulky:


Stručná charakteristika:


Na internetu existuje mnoho různých schémat připojení a zdá se, že všechno funguje. Jde o to, že existují nejen různé obrazovky, ale také dva způsoby, jak je spojit: sériové a paralelní. Při použití sériového portu potřebujeme pouze 3 výstupy mikrokontroléru. S paralelním minimem 13. Výběr v tomto případě je zřejmý, Arduino má několik závěrů. Pro paralelní připojení je schéma připojení následující:


Pro sériové připojení, které použijeme, je schéma následující:

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


Pro úpravu kontrastu by na obrazovce měl být potenciometr. Existují obrazovky bez toho, ale teď je to vzácnost:


Je zapotřebí odpor 100 ohmů, aby napětí 5 voltů nespálilo náhodně diodové podsvícení.


Krok 2 Vytvoření případu.
V tomto případě vezměte krabici z předpony kazety Sega. Pokud toto pole nenajdete, můžete použít jiný případ. Hlavní věc je, že se do ní vejde obrazovka a Arduino.


Ořízněte průhlednou fólii na horní straně krabice tak, aby nezůstaly žádné kusy:


Poté, pomocí úředního nože, vystřihněte okno o velikosti 37x69 pro obrazovku.


Na zadní stranu, podél okraje řezu, lepíme oboustrannou pásku, nejlépe černou:


Odstraňte ochranný papír z lepicí pásky a přilepte na něj naši obrazovku:


Z vnější strany by to mělo vypadat takto:


Pod obrazovkou, také na oboustrannou pásku, jsme připevnili Arduino a provedli předběžné výřezy pro port USB a zásuvku:


Výřezy pro zásuvky Arduino musí být provedeny na obou stranách krabice, aby bylo možné je volně zavřít:


Krok 3 Snímače teploty.
Budeme používat digitální teplotní senzory DS18B20. Jejich použitím získáme velkou přesnost měření, chyba není větší než 0,5 ° C, v širokém teplotním rozsahu -55 ... + 125 ° C. Navíc digitální senzor provádí všechny výpočty sám a Arduino jednoduše přijímá hotové hodnoty. Při připojování tohoto senzoru nezapomeňte na pull-up rezistor, 4,7 kΩ, mezi kontakty DQ a VDD. Je také možné několik možností připojení. S externí energií, podle mého názoru nejlepší možností, použijeme ji:


Pokud chcete, můžete použít režim parazitního napájení:


Nebo vylepšená možnost parazitických potravin:


S jakýmkoli napájením jsou senzory zapojeny paralelně:


Umístíme čidlo teploty na malou desku společně s dvěma tlačítky, pomocí kterých nastavíme čas a datum hodin:


Společný vodič z obou tlačítek je připojen k GND, vodič z prvního tlačítka je připojen k A0, od druhého k A1.
Připevněte se na oboustrannou pásku vedle Arduina:


Čidlo, které má být umístěno mimo místnost, je lepší zvolit v kovovém, prachotěsném a pouzdru odolném proti prachu:


Vypočítejte drátu požadované délky tak, aby mohl být senzor zavěšen mimo okno, hlavní věc je, že by neměla být větší než 5 metrů, pokud potřebujete delší délku, budete muset snížit hodnotu pull-up odporu.

Drát z datové sběrnice DQ obou senzorů je připojen k pinu 5 Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Krok 4 Napájení.
Pro napájení můžete použít napájecí zdroj s napětím 6 až 12 voltů. Na konci drátu elektrického odlesku připájejte zástrčku vhodnou pro zásuvku Arduino:


Nebo můžete do prostoru pro baterie umístit čtyři baterie typu „AAA“, „pinky“. A připojte kladný vodič z přihrádky k Vin Arduino a mínus k GND.

Krok 5 Příprava programovacího prostředí.
Nejprve musíte stáhnout a nainstalovat Arduino IDE pomocí oficiální stránka

A také přidat do dvou knihoven potřebných pro skicu. OneWire - vyžaduje se pro komunikaci se senzory ds18b20:
onewire.rar [16,75 Kb] (počet stažení: 34)


U8glib - používá se k zobrazení informací na obrazovce:
u8glib.rar [906,95 Kb] (počet stažení: 46)


Stáhněte si knihovnu. Pak rozbalíme archivy a přesuneme obsah archivů do složky „knihovny“ umístěné ve složce s nainstalovaným Arduino IDE. Knihovny můžete také přidat prostřednictvím Arduino IDE. Chcete-li to provést, aniž byste rozbalili archivy, spusťte Arduino IDE, v nabídce Skica vyberte Sketch - Connect Library. V horní části rozevíracího seznamu vyberte položku „Přidat knihovnu ZIP“. Označujeme umístění stažených archivů. Po všech krocích je třeba restartovat Arduino IDE.

Krok 6 Úpravy náčrtu.
Teplotní senzory pracují s protokolem One Wire a mají pro každé zařízení jedinečnou adresu - 64bitový kód. Přidávání příkazů pro vyhledávání senzorů do náčrtu není vhodné. Není nutné načítat čidla Arduino škytavky pokaždé.Nejprve proto dejte vše dohromady a vyplňte náčrt v Arduinu, který se nachází v nabídce Soubor - Příklady - Dallas Temperature - OneWireSearch. Poté spusťte Tools - Port Monitor. Arduino by mělo najít naše senzory, napsat adresy a hodnoty teploty. Tyto adresy je třeba zapsat nebo jen někde zkopírovat. Nyní otevřete skicu Ard_Tic_Tak_WG12864B_2_x_Term_Serial a hledejte řádky:

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


Nahrazujeme adresy odpovídající umístění senzorů našimi adresami.
Naše hodinky nepoužívají modul RTC (hodiny v reálném čase), takže je třeba hodiny upravit. Pro lepší přehlednost odkomentujte řádek (na obrazovce se objeví sekundy):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Tiskněte sekundy a zkontrolujte správnost kurzu


Nastavte správný čas pomocí monitoru portu. Chcete-li to provést, otevřete monitor portu, počkejte na dokončení počátečních měření teploty a zadejte aktuální datum a čas ve formátu „den, měsíc, rok, hodiny, minuty, sekundy“. Bez mezer vydělte čísla čárkami nebo tečkami.

Pokud jsou hodiny ve spěchu, změňte hodnotu na větší, doporučuji experimentovat s přírůstky 100 jednotek. Pokud zaostává, snižte hodnotu v řádku:

if (micros () - prevmicros> 494000) {// změna na jinou pro úpravu byla 500 000


Empiricky určete číslo, při kterém hodiny jedou docela přesně. Chcete-li určit přesnost kurzu a potřebovat závěr sekund. Po přesném kalibrování čísla lze sekundy okomentovat a odstranit z obrazovky.
Vyplňte náčrt.

ard_tic_tak_wg12864b_2_x_term_serial.rar [3,2 Kb] (počet stažení: 90)

Funkčnost nebo krása?
Celkem voličů: 19
8
8.3
7.7

Přidejte komentář

    • úsměvúsměvyxaxaokdontknowyahoone
      šéfeškrábnutíhlupákanoano-anoagresivnítajemství
      promiňtanecdance2dance3prominoutpomocnápoje
      zastavitpřátelédobředobrá náladapískatlžícejazyk
      kouřtleskánícrayprohlásitvýsměšnýdon-t_mentionstáhnout
      teploirefulsmích1mdasetkánímoskingnegativní
      not_ipopcorntrestatčístvyděsitděsíhledat
      posměchděkujitototo_clueumnikakutnísouhlasím
      špatnévčelablack_eyeblum3červenat sechlubit senuda
      cenzurovánopleasantrysecret2hrozitvítězstvíyusun_bespectacled
      třástrespektlolprovedenívítejtekrutoyya_za
      ya_dobryipomocníkne_huliganne_othodibludzákazblízko
3 komentář
Autor
Bohužel neznám analogové displeje levněji.
A čím více je možné tento displej nahradit, vypadali z 500 rublů.
Pro tyto denyushki si můžete koupit ready-made, opravdu meteorologická stanice, s indikací nejen teploty, ale také tlaku a vlhkosti, a s indikací směru změny měřených hodnot! úsměv
Dobrý večer A čím více rozpočtu je možné nahradit tento displej, vypadali z 500 rublů.?
Děkuji!

Doporučujeme si přečíst:

Podejte to pro smartphone ...