Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Stacja meteorologiczna na atmega328

DarkMajster 13 Jul 2017 02:04 7893 15
  • Stacja meteorologiczna na atmega328
    Witam!
    Pragnę zaprezentować mój projekt stacji meteorologicznej, choć nie wiem czy to dobra nazwa, w każdym razie jest to urządzenie, które :
    - pokazuje nam temperaturę i wilgotność z trzech czujników DHT22
    - ciśnienie z czujnika BMP180
    - ma regulowaną jasność podświetlenia wyświetlacza LCD za pomocą enkodera i wywoływanego menu.
    - pokazuje słupkowo jak obecna wartość ciśnienia ma się do wartości sprzed godziny, trzech, sześciu, dwunastu i osiemnastu godzin.
    Jakie były założenia?
    Przede wszystkim dobra zabawa przy elektronice, a także nauka lutowania, tworzenia płytek, programowania oraz stworzenie użytecznego urządzenia.
    Wszystko kontroluje procek atmega328 z bootloaderem arduino.
    Użyłem wyświetlacza EA DIP203G-4, o którego obsługę pytałem na forum, a okazało się, że jest kompatybilny prawie w 100% z hd44780. Problemem były PROFESJONALNIE WYKONANE przejściówki z rastra 2mm na 2,54, w którym jeden z pinów nie kontaktował.
    A oto i one:
    Stacja meteorologiczna na atmega328

    Brak kompatybilności z hd44780, który znalazłem to symbol stopnia (°), znajdziemy go jako (char)128 w kontrolującym wyświetlacz układzie SSD1803.
    Sam wyświetlacz działa na logice 3,3V, przez co na płytce PCB znalazł się stabilizator napięcia, oraz 6 dzielników złożonych z rezystorów o wartościach w stosunku 1:2.
    W stacji jest także moduł czasu rzeczywistego na bazie układu DS1307, który niestety trochę ucierpiał na długości po mojej zabawie z nim.
    Stacja meteorologiczna na atmega328
    No cóż, wojna wymaga poświęceń!
    Pisanie kodu trochę mi zajęło, efekt końcowy zamieszczam w załącznikach, zamierzam go jeszcze przerabiać, gdyż myślę, że można to zrobić lepiej.
    Wykonałem trzy płytki z czujnikami, które umieściłem w obudowach Z-47U.
    Stacja meteorologiczna na atmega328
    Jeżeli ktoś pragnął kiedyś widzieć wytrawianie w przyśpieszonym tempie - proszę bardzo! Przyśpieszenie ~100x



    A także płyteczkę (bo płytka to za dużo powiedziane :D) pod enkoder.
    Stacja meteorologiczna na atmega328
    Przejdźmy więc nareszcie do głównej płytki PCB, założeniem było zmieszczenie jej w szerokości i wysokości wyświetlacza, co niestety się nie udało, mimo że po zrobieniu jej widzę, jak to można by zrobić... wystaje ona minimalnie poza obręb wyświetlacza, którego wymiary to zaledwie 68 x 27 mm.
    Płytka wykonana metodą z acetonem i alkoholem izopropylowym. Efekty tej metody są całkiem niezłe.
    Oto płytka po trawieniu.
    Stacja meteorologiczna na atmega328
    Kompletnym przypadkiem słabo wyszło mi zdjęcie z drugiej strony, co absolutnie nie ma związku z tym, że lekko przesunąłem papier i nie trafiłem idealnie w dziury.
    Stacja meteorologiczna na atmega328
    Po wyszlifowaniu i polakierowaniu kalafonią prezentuje się następująco.
    Stacja meteorologiczna na atmega328
    Gdzieś zapodziało się zdjęcie drugiej strony (Jak mogło do tego dojść?)
    Następnie polutowałem elementy, których w sumie za dużo to nie było ze względu na procesor, potem kabelki do czujników, enkodera, zasilania no i na koniec sam wyświetlacz. Kontrast został wyregulowany przez rezystor 470 ? podpięty do 3,3V
    Stacja meteorologiczna na atmega328 Stacja meteorologiczna na atmega328
    Tak działa menu na enkoderze:



    A tak prezentuje się główny ekran jeszcze na wersji pierwotnej, czyli na płytce, w której nie ograniczałem sobie wielkości owej, widać tutaj jak ciśnienie zmieniało się w ciągu ostatnich 18 godzin oraz jak pokazane są temperatura i wilgotność powietrza.
    Stacja meteorologiczna na atmega328
    A to obecny.
    Stacja meteorologiczna na atmega328
    Myślę, że spełniłem moje założenia, a płytka i cały projekt wyszedł całkiem nieźle.
    Pozostało tylko rozwiesić czujniki (kable w ścianach są ;) ) włożyć do jakiejś obudowy, i używać!
    Z chęcią poczytam porady dotyczące kodu.
    W załączniku:
    - kod źródłowy dla procesora
    - projekt głównej płytki w eaglu
    - schemat tej płytki w eaglu (radze nie otwierać, bo robiony tylko po to, żeby łatwiej łączyć na PCB, ostrzegam!)
    - biblioteki użyte w kodzie

    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    DarkMajster
    Level 10  
    Offline 
    DarkMajster wrote 94 posts with rating 27, helped 4 times. Been with us since 2016 year.
  • #2
    tomus2k
    Level 26  
    DarkMajster wrote:
    Witam!

    W stacji jest także moduł czasu rzeczywistego na bazie układu DS1307, który niestety trochę ucierpiał na długości po mojej zabawie z nim.
    ....No cóż, wojna wymaga poświęceń!

    Zamiast "wojować" i jak potrzeba tylko zegarka.
    Warto użyć modułu o nazwie DS3231 for PI. Jest naprawdę mini, kompatybilny z DS1307 i dokładniejszy.
    https://elty.pl/pl/p/Mini-RTC-Module-for-Raspberry-Pi-DS3231/958
  • #3
    User removed account
    User removed account  
  • #4
    DarkMajster
    Level 10  
    R-MIK wrote:
    Co do znaków, to jaki był problem aby nie pisać "BLAD" tylko "BŁĄD"? To samo "DWOR", "JASNOSC", skoro "GARAŻ" udało się.

    Akurat tam jest garaz, zamiast garaż :D

    A co do reszty:
    Stacja meteorologiczna na atmega328
  • #5
    User removed account
    User removed account  
  • #6
    DarkMajster
    Level 10  
    Właśnie tam, w słowie garaz jest z - nie ż
  • #7
    User removed account
    User removed account  
  • #8
    eurotips
    Level 38  
    A jak wygląda sprawa komunikacji czujników ze stacją bazową? z garażu i strychu kablami sygnał idzie ?
  • #9
    DarkMajster
    Level 10  
    Narazie nie idzie wcale, będzie szedł kablami, interfejsem one wire
  • #11
    User removed account
    User removed account  
  • #12
    dktr
    Level 22  
    Bardzo ładnie zrobione płytki. W nowszej wersji dodaj ESP8266 i będziesz miał odczyt zdalny. Mam u siebie już mnóstwo ESP i to się sprawdza.Też używam BMP180,jest bardzo dokładny i aż prosi się o 1 miejsce po przecinku ;)
    Moje pomiary można podglądać tu.
  • #13
    User removed account
    User removed account  
  • #14
    jaclew
    Level 17  
    DarkMajster wrote:
    W stacji jest także moduł czasu rzeczywistego na bazie układu DS1307

    no i jak z dokładnością tego zegara ? jak zmieniany jest czas w razie potrzeby?

    Podoba mi się ten bargraf historii ciśnienia.
    Temperaturę wystarczy pokazać tylko na całkowitej liczbie (bez tego co po przecinku) bo w praktyce te dziesiąte części stopnia nie będą wiarygodne.
  • #15
    DarkMajster
    Level 10  
    Z dokładnością beznadziejnie rzekłbym obecnie pokazuje 13:54 (7 minut za szybko).

    Zrobię ustawianie czasu w menu.

    Za radą kolegi tomus2k w międzyczasie kupiłem scalaki DS3231, które użyłem gdzie indziej i są bardzo dokładne a sam gotowy moduł ( z bateryją ) jest minimalnie większy niż sam scalak.

    Swoją drogą coś mi się pochrzaniło z tym kontrastem, bo powinno dać się potencjometr między pinem, a Vcc, a ja kombinowałem z dzielnikami.
  • #16
    tomus2k
    Level 26  
    Tak żeby zobrazować wielkość modułu z DS3231:
    Stacja meteorologiczna na atmega328Stacja meteorologiczna na atmega328