» Elektronika » Arduino »Zegarowa stacja pogodowa na Arduino

Oglądaj stację pogodową na Arduino

Oglądaj stację pogodową na Arduino

Dzień dobry, robię dalej Arduino w wolnym czasie tym razem napisał instrukcje dotyczące budowy małej stacji pogodowej. Będzie działać jak zegar z datą i pokazywać temperatury wewnątrz i na zewnątrz pomieszczenia. Jako główny kontroler użyjemy Arduino UNO, ale zrobi to inna płyta z Atmega328p na płycie. Do wyświetlania używamy ekranu graficznego WG12864B. Podłączamy również dwa czujniki temperatury ds18b20. Jeden wewnątrz wyjmujemy drugi na zewnątrz. Zaczynajmy.

W procesie produkcyjnym domowej roboty będziemy potrzebować:

- Arduino UNO (lub dowolna inna płyta kompatybilna z Arduino)
- Ekran graficzny WG12864B
- czujnik temperatury ds18b20, 2szt
- Zasilacz 6 - 12 V.
- Rezystory 4,7 Kom 0,25 W, 2 szt.
- Rezystory 100 omów 0,25 W.
- Komora baterii na 4 „różowe” baterie AAA
- Pudełko z kasety konsoli SEGA
- taśma elektryczna
- przewody łączące
- płytka drukowana
- Przyciski
- nóż biurowy
- lutownica
- Lut, kalafonia
- Taśma dwustronna

Krok 1 Przygotowanie WG12864B3.
Ci, którzy wcześniej nie pracowali z ekranami, mogą bać się dużej liczby modyfikacji, które wydają się być takie same, ekranów. Wyjaśnię trochę. Większość ekranów tego typu działa na układach ks0107 / ks0108. Wszystkie ekrany można podzielić na 4 typy:

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

Opcja B: HDM64GS12L-5, Lumex LCM-S12864GSF, Futurlec BLUE128X64LCD, AZ Wyświetla AGM1264F, Displaytech 64128A BC, Adafruit GLCD, DataVision DG12864-88, Topway LM12864LDW, Digitron SG1286464J-1Y, QY

Opcja C: Shenzhen Jinghua Displays Co Ltd. Jm12864

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

Wyglądają prawie tak samo. Ale mają różne styki połączeniowe. Wybrałem i polecam WG12864B3 V2.0, ale jeśli ekran wyszedł inaczej lub po prostu go nie masz pod ręką, możesz łatwo to rozgryźć za pomocą tabeli:


Krótka charakterystyka:


W Internecie istnieje wiele różnych schematów połączeń i wydaje się, że wszystko działa. Chodzi o to, że istnieją nie tylko różne ekrany, ale także dwa sposoby ich połączenia: szeregowy i równoległy. Podczas korzystania z portu szeregowego potrzebujemy tylko 3 wyjść mikrokontrolera. Przy równoległym minimum 13. Wybór w tym przypadku jest oczywisty, Arduino ma kilka wniosków. W przypadku połączenia równoległego schemat połączeń wygląda następująco:


W przypadku połączenia szeregowego, którego będziemy używać, schemat wygląda następująco:

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) - przez rezystor 100 omów - + 5 V.
20 (BLK) - GND


Aby wyregulować kontrast, na ekranie powinien znajdować się potencjometr. Są ekrany bez niego, ale teraz jest to rzadkość:


Potrzebny jest rezystor 100 omów, aby napięcie 5 woltów nie paliło przypadkowo diod podświetlenia.


Krok 2 Wykonanie sprawy.
W takim przypadku wyjmij pudełko z prefiksu kasety Sega. Jeśli nie znajdziesz tego pola pod ręką, możesz użyć innej skrzynki. Najważniejsze, aby zmieścił się w nim ekran i Arduino.


Wytnij przezroczystą folię na górze pudełka, aby nie pozostały żadne elementy:


Następnie za pomocą noża biurowego wytnij okno o rozmiarze 37 x 69 dla ekranu.


Z drugiej strony, wzdłuż krawędzi cięcia, przyklejamy dwustronną taśmę, najlepiej czarną:


Usuń papier ochronny z taśmy klejącej i przyklej do niego nasz ekran:


Z zewnątrz powinno to wyglądać tak:


Pod ekranem, również na taśmie dwustronnej, mocujemy Arduino, wykonując wstępne wycięcia dla portu USB i gniazda zasilania:


Wycięcia na gniazda Arduino muszą być wykonane po obu stronach pudełka, aby można je było swobodnie zamykać:


Krok 3 Czujniki temperatury.
Użyjemy cyfrowych czujników temperatury DS18B20. Dzięki nim uzyskujemy doskonałą dokładność pomiaru, błąd nie przekracza 0,5 ° C, w szerokim zakresie temperatur -55 ... + 125 ° C. Ponadto czujnik cyfrowy sam wykonuje wszystkie obliczenia, a Arduino po prostu otrzymuje gotowe odczyty. Podłączając ten czujnik, nie zapomnij o rezystorze podciągającym, 4,7 kΩ, między stykami DQ i VDD. Możliwych jest również kilka opcji połączeń. Z zewnętrznym zasilaniem, moim zdaniem najlepszą opcją, użyjemy go:


Jeśli chcesz, możesz użyć pasożytniczego trybu zasilania:


Lub ulepszona opcja pasożytniczego jedzenia:


Z dowolnym zasilaniem czujniki są połączone równolegle:


Umieścimy czujnik pomiaru temperatury na małej płytce wraz z dwoma przyciskami, których użyjemy do ustawienia godziny i daty zegara:


Wspólny przewód z obu przycisków jest podłączony do GND, drut z pierwszego przycisku jest podłączony do A0, z drugiego do A1.
Przymocuj do dwustronnej taśmy obok Arduino:


Czujnik, który ma być umieszczony na zewnątrz pomieszczenia, lepiej wybrać w obudowie metalowej, odpornej na kurz i wilgoć:


Oblicz drut o wymaganej długości, aby czujnik mógł zostać zawieszony za oknem, najważniejsze jest to, że nie powinien on być większy niż 5 metrów, jeśli potrzebujesz więcej długości, musisz zmniejszyć wartość rezystora podciągającego.

Przewód z magistrali danych DQ obu czujników jest podłączony do styku 5 Arduino.
Vdd - +5 Arduino.
GND - GND Arduino.


Krok 4 Moc.
Do zasilania można użyć zasilacza o napięciu od 6 do 12 woltów. Na końcu przewodu kielichowego przylutuj wtyczkę odpowiednią do gniazda zasilania Arduino:


Możesz też umieścić komorę na cztery baterie „AAA”, „pinky” w obudowie. I podłącz dodatni drut z przedziału do Vin Arduino, a minus do GND.

Krok 5 Przygotowanie środowiska programowania.
Najpierw musisz pobrać i zainstalować Arduino IDE oficjalna strona

A także dodaj do dwóch bibliotek potrzebnych do szkicu. OneWire - wymagany do komunikacji z czujnikami ds18b20:
onewire.rar [16.75 Kb] (pliki do pobrania: 34)


U8glib - służy do wyświetlania informacji na ekranie:
u8glib.rar [906.95 Kb] (pliki do pobrania: 46)


Pobierz bibliotekę. Następnie rozpakowujemy archiwa i przenosimy ich zawartość do folderu „bibliotek” znajdującego się w folderze z zainstalowanym Arduino IDE. Możesz także dodawać biblioteki za pomocą Arduino IDE. Aby to zrobić, bez rozpakowywania archiwów, uruchom Arduino IDE, wybierz Sketch - Connect Library z menu Sketch. U góry listy rozwijanej wybierz element „Dodaj bibliotekę ZIP.” Wskazujemy lokalizację pobranych archiwów. Po wykonaniu wszystkich kroków musisz ponownie uruchomić Arduino IDE.

Krok 6 Edycja szkicu.
Czujniki temperatury działają przy użyciu protokołu One Wire i mają unikalny adres dla każdego urządzenia - kod 64-bitowy. Dodawanie poleceń wyszukiwania czujnika do szkicu nie jest wskazane. Nie ma potrzeby każdorazowego ładowania czujników czkawki Arduino.Dlatego najpierw, składając wszystko w całość, wypełnij szkic w Arduino, znajdujący się w menu Plik - Przykłady - Temperatura Dallas - OneWireSearch. Następnie uruchom Narzędzia - Monitor portu. Arduino powinien znaleźć nasze czujniki, zapisać adresy i odczyty temperatury. Adresy te należy zapisać lub po prostu gdzieś skopiować. Teraz otwórz szkic Ard_Tic_Tak_WG12864B_2_x_Term_Serial i poszukaj linii:

bajt addr1 [8] = {0x28, 0xFF, 0x75, 0x4E, 0x87, 0x16, 0x5, 0x63}; // adres wewnętrzny
bajt addr2 [8] = {0x28, 0xFF, 0xDD, 0x14, 0xB4, 0x16, 0x5, 0x97}; // adres czujnika zewnętrznego


Zastępujemy adresy odpowiadające położeniu czujników naszymi adresami.
Nasze zegarki nie używają modułu RTC (zegar czasu rzeczywistego), więc musisz wyregulować zegar. Dla wygody odkomentuj linię (na ekranie pojawią się sekundy):

//u8g.setPrintPos (44, 50); u8g.print (sek); // Wydrukuj sekundy, aby sprawdzić poprawność kursu


Ustaw prawidłowy czas za pomocą monitora portu. Aby to zrobić, otwórz monitor portu, poczekaj na zakończenie początkowych pomiarów temperatury i wprowadź bieżącą datę i godzinę w formacie „dzień, miesiąc, rok, godziny, minuty, sekundy”. Bez spacji podziel liczby przecinkami lub kropkami.

Jeśli zegar się spieszy, zmień wartość na większą, zalecam eksperymentowanie z przyrostami co 100 jednostek. W przypadku opóźnień zmniejsz wartość w wierszu:

if (micros () - prevmicros> 494000) {// zmiana na inną w celu dostosowania wyniosła 500 000


Empirycznie określ liczbę, przy której zegar idzie dość dokładnie. Aby ustalić dokładność kursu i potrzebować sekund wnioskowania. Po dokładnej kalibracji liczby sekundy można skomentować, a tym samym usunąć z ekranu.
Wypełnij szkic.

ard_tic_tak_wg12864b_2_x_term_serial.rar [3.2 Kb] (pliki do pobrania: 90)

Funkcjonalność czy piękno?
Wszystkich głosujących: 19
8
8.3
7.7

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij
3 komentarz
Autor
Niestety nie znam tańszych analogów wyświetlacza.
A im więcej budżetu można zastąpić tym wyświetlaczem, wyglądali z 500 rubli.
Dla tych denyushki można kupić gotową, naprawdę pogodową stację, ze wskazaniem nie tylko temperatury, ale także ciśnienia i wilgotności oraz ze wskazaniem kierunku zmiany zmierzonych wartości! uśmiechnij się
Dobry wieczór A im więcej budżetu można zastąpić tym wyświetlaczem, wyglądali z 500 rubli.
Dziękuję

Radzimy przeczytać:

Podaj go do smartfona ...