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

Prosta stacja METEO na Atmedze8 by BYRRT.

byrrt 08 Jan 2008 22:55 48858 107
Altium Designer Computer Controls
  • Prosta stacja METEO na Atmedze8 by BYRRT.
    Witam!

    Kolejnym układem, którym zamierzam się Wam tu "pochwalić" jest miniaturowa stacja meteo.. Kilka projektów, które widziałem na elektrodzie nie były żadnymi stacjami tylko termometrami ;) Moja, choć prosta mierzy jeszcze ciśnienie oraz wilgotność względną powietrza.

    Układ oparty jest na procesorze ATMega8, scalonym czujniku temperatury i wilgotności powietrza SHT11 firmy Sensirion oraz czujniku ciśnienia MPXA6115A (Motorola). Początkowo miało być to wszystko, ale potem dorzuciłem jeszcze obsługę czujnika temperatury zewnętrznej 1-wire DS18B20 Dallasa.
    Przy projektowaniu układu bardzo uważałem na wszelkiego rodzaju zakłócenia (ze względu na dość precyzyjny pomiar napięcia z czujnika ciśnienia) stąd wiele układów LC oraz zastosowane elementy (np. stabilizator LM1117-5.0 zamiast 7805 który ma znacznie słabszą stabilizację, układ niskoszumnego wzmacniacza operacyjnego przystosowanego do napięć niesymetrycznych AD8051 oraz precyzyjnego źródła napięcia odniesienia 2,5V MAX6043B). Całość zbudowana została w SMD. Płytkę wykonałem w firmie chyba przede wszystkim z wygody i estetyki.. Program pisany pod Bascom AVR, zajmuje ok 70% pamięci procka..

    Schemat układu:
    Prosta stacja METEO na Atmedze8 by BYRRT.

    Układ ze wzmacniaczem operacyjnym ma za zadanie odejmowanie napięcia 2,5V od tego podawanego z czujnika ciśnienia. Sam czujnik może mierzyć w zakresie 15-115kP i podaje napięcie od 0,2 do 4,8V. Jednak ciśnienie atmosferyczne zmienia się w węższym zakresie - wg wikipedii najniższe zarejestrowane w Polsce ciśnienie to 96,52kP, najwyższe - 105,4kPa. Czujnik zatem w takich warunkach będzie dawał napięcie mniej więcej od 3,7 do 4,2V. Odjęcie 2,5V od tego pozwoliło mi mierzyć te napięcie (1,2-1,7V) używając wewnętrznego napięcia odniesienia ATMegi8 (2,51 które w rzeczywistości okazało się 2,71V). Dzięki temu uzyskałem rozdzielczość pomiaru ok. 2,5mV. Czujnik zmienia napięcie wyjściowe o 4,59mV/1hPa. Udało się więc mierzyć z dokładnością większą niż 1hPa i to myślę wystarczy..

    Pomiary ze wszystkich 3ch czujników zapamiętywane są w tablicy danych (10 pozycji dla czujnika ciśnienia oraz po 5 dla pozostałych).. Średnia z tych wyników brana jest dopiero do obliczeń - pozwoliło to zniwelować wahania się pomiarów. Czujnik DS18B20 podłączany jest poprzez złącze programowania (nie przewidziałem wcześniej, że takowy będzie w ogóle zastosowany stąd te rozwiązanie).

    Co do kosztów wykonania, bo o to na pewno pytałoby się wielu:
    Płytka ~ 50zł
    SHT11 ~ 60zł
    MPXA6115A ~ 20zł
    Wyświetlacz ~ 15zł
    Stabilizator ~ 3zł
    AD8051 ~ 7zł
    drobnica ~ 5zł
    MAX6043 - sample

    Suma ~ 160zł.. Drogo i to jak czort ;) Ale frajda z wykonania znacznie cenniejsza..

    A oto kilka fotek układu:
    Prosta stacja METEO na Atmedze8 by BYRRT.Prosta stacja METEO na Atmedze8 by BYRRT.Prosta stacja METEO na Atmedze8 by BYRRT.
    Prosta stacja METEO na Atmedze8 by BYRRT.Prosta stacja METEO na Atmedze8 by BYRRT.Prosta stacja METEO na Atmedze8 by BYRRT.
    Prosta stacja METEO na Atmedze8 by BYRRT.Prosta stacja METEO na Atmedze8 by BYRRT.Prosta stacja METEO na Atmedze8 by BYRRT.
    Załączam schemat oraz projekt płytki w Eagle 4.15 oraz hex/bin do procka.
    Posiadam jeszcze jedną płytkę i chętnie ją odstąpię komuś, kto chciałby wykonać taki układ.

    Cool? Ranking DIY
    About Author
    byrrt
    Level 21  
    Offline 
    Zajmuję się projektowaniem i wykonywaniem cyfrowych oraz analogowych układów elektronicznych. Pracuję w firmie projektowo produkcyjnej. Mam doświadczenie w naprawie precyzyjnych mechanizmów i elektroniki. Wykonuje urządzenia od A do Z od zarysu przez projekt, prototyp i programowanie do dokumentacji po-wykonawczej włącznie.
    Has specialization in: układy cyfrowe i mikroprocesorowe
    byrrt wrote 718 posts with rating 830, helped 2 times. Live in city Bydgoszcz. Been with us since 2002 year.
  • Altium Designer Computer Controls
  • #2
    master_pablo
    Level 16  
    Bardzo ladnie to wyglada, to wyciecie izolujace SHT11 termicznie od reszty laminatu jest swietne! Szkoda tylko, ze trzeba bylo dosztukowac rezystor.

    Ja planuje zrobic bardzo podobny uklad, z tymi samymi czujnikami, ale z wyswietlaczem z telefonu komorkowego i rozbudowany o funkcjonalnosc zegara i budzika. Mam nadzieje, ze za jakis czas sie pochwale :).

    PS. Zlacze programowania to gniazda na goldpiny w SMD?! Gdzie cos takiego mozna kupic?
  • #3
    byrrt
    Level 21  
    master_pablo wrote:
    Szkoda tylko, ze trzeba bylo dosztukowac rezystor.

    Zasugerowałem się tym co jest napisane w nocie katalogowej - że wystarczą rezystory będące w strukturze procka.. Być może jest to prawda ale na wszelki wypadek dorzuciłem ten rezystorek..

    Quote:
    Zlacze programowania to gniazda na goldpiny w SMD?! Gdzie cos takiego mozna kupic?

    Są to złącza PBHTD10S dostępne w Maritexie.. Raster 1mm

    Pozdrawiam
  • #4
    Matizz
    Level 18  
    Cześć

    Zdradź nam gdzie kupiłeś taki tani czujnik ciśnienia?
    Bo najtańszy jaki znalazłem jest za 60zł

    pozdrawiam
    Matizz
  • #5
    Duch__
    Level 31  
    Bardzo fajny układ. Skoro w Atmedze zostało jeszcze 30% wolnej pamięci, to można by w nowszej wersji pokusić się jeszcze o pomiar prędkości i kierunku wiatru. Pozdrawiam
  • Altium Designer Computer Controls
  • #7
    szaro
    Level 19  
    Bardzo ładny projekt.
    Gdzie dostałeś czujnik ciśnienia ?
    Pozdrawiam
  • #8
    mlody91
    Level 20  
    Projekt wygląda jak fabryczny. Cudo po zobaczeniu szczena mi opadła =O. Mam pytanie do wykonawcy, mianowicie czym zabezpieczyłeś płytkę?
  • #9
    Xaveri
    Level 17  
    Zgaduję - czujnik ciśnienia kupiłeś od pawwika na allegro?
  • #10
    JStan
    Level 16  
    Kolego muszę przyznać że ślicznie Ci to wyszło, naprawde płytke widac dopracowałeś, mniemam że biblioteki kilku elementów w Eaglu też musiałeś stworzyć, zastanawiam się czy nie wziąć od Ciebie drugiej płytki gdyż od kiedy zakupiłem hot aira mam ochote na jakieś SMD. A apropo czujników SHT 11 nie przepłacajcie, http://www.sensirion.com/en/01_humidity_sensors/12_freesampling/00_freesampling.htm przysyłają sample w jakieś 2 tyg.

    Układ bardzo mi się podoba, wykonanie tymbardziej, a to wycięcie wokół SHT jak ktoś napisał :) Masz pomyślunek :-) Teraz może jakaś gustowna obudowa, szkoda to pakować w obudowe ale może jakaś cienka sztywna folia od góry i po bokach.

    10/10

    Pozdrawiam
    Janek
  • #11
    pixel7
    Level 22  
    Witam,

    Faktycznie płytka rewelacja.

    Ja natomiast jakiś czas tem zbudowałem podobny układ z tym, że:

    1. Procesor Atmega32
    2. Wyświetlacz u mnie jest od s65
    3. Układ ma wyprowadzony rs232
    4. Dodałem RTC
    5. Dodałem obsługę pilota RC5


    Obecnie ze względu na źle zaprojektowaną płytkę muszę zrobić ją na nowo - wszystko wróciło na platforme testową.

    Funkcje jakie posiada mój układ:


    1. Kolorowy wyświetlacz graficzny.
    2. Zegarek - duże czytelne cyfry.
    3. Pomiar: t zew, t wew, ciśnienie, wilgotność.
    4. Wszystkie pomiary wyświetlane na wykresach! (12 godz w tył), zmieniających sie co kilka sekund na wyświetlaczu.
    5. Menu do ustawień - czasu, kalibracji czujników, kolorów wyświetlacza itp.
    6. Obsługa za pomocą pilota RC5
    7. Możliwość podłączenia do PC (rs232)
    8. Wykres - nazywam go szybkim - pokazuje temperaturę zmieniającą się na bieżąco.
    9. Zestwienie wszystkich odczytów na wyświetlaczy
    10. Obsługa tel GSM przez rs do przesyłania pomiarów na żądanie (sms -układ potrafi dekodować i kodować do PDU)!

    Program napisany w BASCOM - zajmuje 75% atmegi32

    Jesli autor postu wyrazi zgodę mogę zamieścić zdjęcia (co prawda na płycie testowej).

    Pozdrawiam,
    pixel
  • #12
    master_pablo
    Level 16  
    Moze nie kombinuj, tylko po prostu zamiesc swojego posta :).
  • #13
    majster256
    Level 21  
    haha... dane próbkowane co kilka sekund i archiwum 12 godzinne???? to bascom jest taki głupi ze nawet nie daje znać że wykorzystujesz kilka razy więcej pamięci niż on ma??? az dziw ze ten program działa:)
    mega32 ma 2kB SRAMu wiec jeśli twoje dane sa 8 bitowe to masz 2000 zapisów wiec przy 12h sa co ok 22s przy 1 parametrze ty masz ich 4 wiec co 88s możesz zapisywać ale z racji tego ze masz dużo innych bajerów to zużywasz na nie spore ilości RAMu wiec coś Ci nie gra:) chyba ze masz zewnętrzną pamięć a nie napisałeś tego

    pozdrawiam a BYYRTowi gratuluje- świetny projekt

    Dodano po 2 [minuty]:

    poza tym... twój wyświetlacz ma rozdzielczość jak fullHD;d skoro potrafi z dokładnością do paru sekund wyświetlić całe wykresy 12 godzinne ( pixel na 1 daną)
  • #14
    pixel7
    Level 22  
    Majster->

    Dane zbieranane są do 4 tablic po 144 bajty każda. 4 x 144 = 576 bajtów
    Dlaczego 144? Bo na wyświetlaczu mam tyle miejsca - 144 pixele tworzą 12 godzinny wykres. Próbka zbierana jest do wykresu co 5 min. 144 x 5 min = 720 min.
    720/60 = 12 godz!!!!
    Pisząc poprzedni post nie opisywałem dokładnie jak działają wykresy!

    Wykresy WYŚWIETLAJĄ się cyklicznie co kilka sekund na wyświetlaczu -
    T wew, T zew, ciśnienie, wilgotność.... nie chodziło o zbieranie danych!

    Wystarczy zapytać...

    Pozdrawiam!


    ps. nie wiem czy jest sens zakładania nowego postu - układ jest w zasadzie w fazie budowy
  • #15
    majster256
    Level 21  
    pixel7 wrote:
    Majster->

    Dane zbieranane są do 4 tablic po 144 bajty każda. 4 x 144 = 576 bajtów
    Dlaczego 144? Bo na wyświetlaczu mam tyle miejsca - 144 pixele tworzą 12 godzinny wykres. Próbka zbierana jest do wykresu co 5 min. 144 x 5 min = 720 min.
    720/60 = 12 godz!!!!
    Pisząc poprzedni post nie opisywałem dokładnie jak działają wykresy!

    Wykresy WYŚWIETLAJĄ się cyklicznie co kilka sekund na wyświetlaczu -
    T wew, T zew, ciśnienie, wilgotność.... nie chodziło o zbieranie danych!

    Wystarczy zapytać...

    Pozdrawiam!


    ps jak tylko dotrę do domu, zamieszcze fotki.



    zwracam szacunek- nie zrozumieliśmy sie:)
  • #16
    pidpawel
    Level 26  
    Jak na mój gust to byrrt - zrobiłeś kolejny bardzo udany projekt ;) meteo.10.pl - popatrz jak tam to robią - konkretnie na ich wiki ;) Ja swoją zrobię tak jak tam :P
    Pixel7 -> nie zrażaj się, że to dopiero budowa. Napisz temat o Twoim projekcie - może inni będą w stanie jeszcze Ci coś doradzić ;)
  • #17
    tmgofer
    Level 12  
    Aż się nie chce wierzyć, że ten układ nie jest fabryczny! Genialne! :) Wygląda ślicznie. Jeżeli obudowa, to tylko przezroczysta. Gratulacje!
  • #18
    scal12
    Level 19  
    Bardzo fajny projekt w jakiej firmie wykonywałes projekt płytki?
  • #19
    Mariuszek15
    Level 24  
    byrrt Możesz przerobić wsad do uC, aby zamiast wyświetlacza LCD 2x16 znaków był na wyświetlaczu graficznym (128x64)?? Możesz dodać do tej stacji meteo zegar (godziny:minuty.sekudnik)??
  • #21
    Xaveri
    Level 17  
    JStan wrote:
    ... A apropo czujników SHT 11 nie przepłacajcie, http://www.sensirion.com/en/01_humidity_sensors/12_freesampling/00_freesampling.htm przysyłają sample w jakieś 2 tyg.
    Janek


    Free samples will only be sent to business customers (no private persons).
    Please make sure that you enter your company name and company email address. We will not send samples to hotmail, google, gmail, yahoo, gmx or similar accounts.
  • #22
    byrrt
    Level 21  
    JStan wrote:
    mniemam że biblioteki kilku elementów w Eaglu też musiałeś stworzyć, zastanawiam się czy nie wziąć od Ciebie drugiej płytki gdyż od kiedy zakupiłem hot aira mam ochote na jakieś SMD. A apropo czujników SHT 11 nie przepłacajcie, http://www.sensirion.com/en/01_humidity_sensors/12_freesampling/00_freesampling.htm przysyłają sample w jakieś 2 tyg.


    Bibioteki nie sa potrzebne do otworzenia projektu.. przy ew. zmianie - tak.. Gdyby co mogę podełać jeżeli to komuś miałoby ułatwić pracę.. Na tej płytce nic nie było lutowane powietrzem bo i po jakiego grzyba ;) Większość osób myli chyba zastosowanie tego narzędzia.. Nie wydaje mi się aby ktoś tym lutował.. Jest to raczej do rozlutowywania ew. jakiejś szybkiej zmiany.. Cała płytka została polutowana ręcznie zwyczajną lutownicą..

    Co do czujników ciśnienia - to chyba nie jest tematem dyskusji gdzie je kupiłem tak tanio ale kupiłem razem z SHT11 na allegro (nicku nie pamiętam).. Nie jestem tego pewien ale i SHT i MPX mozna zamowić jako sample (zamawiając te 2gie liczą koszty przesyłki).. Sht próbowałem zamówić na stronie - niestety mi nie przesłali mimo że zamawiałem na firmę.. Może znów PL na zgłoszeniu oznacza odrzucony - tu podziękowanie wszystkim tym co sprzedają na allegro i ebay próbki :evil:

    Obudowy szukałem ale naprawdę ciężko.. Poza tym ograniczała by obieg powietrza wokół SHT11 (a jest on naprawdę czuły - zbliżenie palca cm obok skutkuje już zwiększaniem się wilgotności!! dodam że palec suchy i czysty :D

    pixel7 - proszę zamieść zdjęcia swojego projektu chociaż wydaje mi się że lepiej by było gdybyś utworzył nowy wątek o swojej stacji, więcej o niej napisał i dodał fotografie..

    scal12 - płytki wykonywałem w Satlandzie (pojedyńcze sztuki chyba najtaniej, ale może się mylę?)

    Mariuszek15 wrote:
    byrrt Możesz przerobić wsad do uC, aby zamiast wyświetlacza LCD 2x16 znaków był na wyświetlaczu graficznym (128x64)??


    Mogę zrobić nowe urządzenie, podłączyć je do lodówki i TV, mogę też dorobić małego PC itp.. No ;) Mariuszek15 - można wszystko, nie zamierzam jednak tego robić bo mi wystarczy to co jest :)

    pixel7 wrote:
    Jaką wartość wyświetlasz ? Tą liniową czy tą ustawioną do temperatury?


    Wyświetlam tę z uwzględnieniem współczynnika temperaturowego.. Ale wartości nie są tak skrajnie różne - nawet gdyby :)
  • #23
    piorun7890
    Level 18  
    Trochę drogo zapłaciłeś za tą płytkę wykonaną w firmie, ale za ta wykonana jest dobrze i elegancko .Twój projekt jest świetny ,nieźle wymyślany , wykonany i praktyczny choć nieco drogi , ale nauka przecież kosztuje.
  • #24
    Irek_K
    Level 14  
    Quote:
    ale nauka przecież kosztuje.

    Za taki projekt to w normalnym kraju można by sporo zarobić.
    Niestety nie u nas. Szkoda, że praca większości polskich konstruktorów kończy się na pojedynczym egzemplarzu -> Nikt nie chce lub nie opłaca się produkować.

    Mam też parę pytań:
    1) Co oznacza napis Błąd! na ostatnim zdjęciu ?
    2) Dlaczego nie ma litery 'ę' w wyrazie 'Wstepny' - czyżby niedbalstwo przy tak dopracowanej konstrukcji ?
    3) Czy rezystory10k/1% przy AD8051 nie powinny być dokładniejsze (jeśli dobrze liczę Blad=(101/99-99/101)*100% to skrajnie wyjdzie błąd 4%) ?
    4) Po co są LEDy D2 i D3 skoro zasłania je wyświetlacz ?
  • #25
    grabek_radek
    Level 21  
    a moze sie tak zapytam czy moge wiedziec gdzie zakupiles ten czujnik cisnienia MPXA6115A ?? jesli to sklep internetowy to podeslij linka
  • #26
    Xaveri
    Level 17  
    Przecież pisał wyżej że na Allegro !

    byrrt wrote:
    Co do czujników ciśnienia - to chyba nie jest tematem dyskusji gdzie je kupiłem tak tanio ale kupiłem razem z SHT11 na allegro (nicku nie pamiętam).
  • #27
    byrrt
    Level 21  
    Irek_K wrote:
    Quote:
    ale nauka przecież kosztuje.

    Za taki projekt to w normalnym kraju można by sporo zarobić.
    Niestety nie u nas. Szkoda, że praca większości polskich konstruktorów kończy się na pojedynczym egzemplarzu -> Nikt nie chce lub nie opłaca się produkować.


    Bez przesady - na takim nie.. Ale może na jakimś innym to i owszem.. Niestety rynek zalewa chiński bubel i nic na to nie poradzimy.. Jest garstka ludzi którzy wiedzą za co płacą, cała reszta chce po prostu taniej bo dla przeciętnego Kowalskiego TV to tylko TV.. Żeby był fajny wystarczy niebieska dioda.. Przykre to ale prawdziwe.. Coraz więcej porządnych firm pada bo robią za dobrze i przez to za drogo..

    Quote:
    Mam też parę pytań:
    1) Co oznacza napis Błąd! na ostatnim zdjęciu ?
    2) Dlaczego nie ma litery 'ę' w wyrazie 'Wstepny' - czyżby niedbalstwo przy tak dopracowanej konstrukcji ?
    3) Czy rezystory10k/1% przy AD8051 nie powinny być dokładniejsze (jeśli dobrze liczę Blad=(101/99-99/101)*100% to skrajnie wyjdzie błąd 4%) ?
    4) Po co są LEDy D2 i D3 skoro zasłania je wyświetlacz ?


    1) taki napis pojawia się gdy nie jest podłączony zewnętrzny czujnik..
    2) Przyznaje się - wiedziałem o tym ale nie chciało mi się wpisywać kolejnego znaczka do pamięci (tym bardziej, że wszystkie 8 znaków mam już zdefiniowane).. Ale skoro już to ktoś zauważył to szybciutko to zmienię i na przyszłość przyrzeknę poprawę ;)
    3)..ciężko dostać takie rezystory.. i tylko tyle.. W zakresie napięć jakich to chodzi wzmocnienie nie zmieniłoby się w tym stopniu a stały błąd można wykalibrować programem..
    4)D2 - power, D3 - b-busy.. Takie diodki przydają się podczas pisania programu, ale też fajnie wyglądają.. ;) To już takie zboczenie zawodowe - lubie jak się coś świeci i mryga bo widać, że coś się dzieje :D Do układu i tak pewnie nie będzie obudowy więc będzie je widać..

    grabek_radek - czy czytanie stwarza taki problem? podczas przeglądania postów na elektrodzie i pisania własnych załamuje mnie to że część osób w ogóle nie czyta a się udziela w temacie.. Nie na tym to chyba ma polegać.. Rozumiem, że można coś przeoczyć, ale temat czujnika ciśnienia poruszyło kilka osób więc wystarczyło tylko popatrzeć za odpowiedzią..
  • #28
    Xaveri
    Level 17  
    Znalazłem czujnik ciśnienia na allegro za 28 pln i kupiłem :).
    Jest też SHT11 jakby kto pytał (u innego sprzedawcy za 30pln) - Mam zamiar zrobić kompletną stację - także z pomiarem prędkości i kierunku wiatru... no może opady sobie daruję ;).
  • #29
    RPG
    Level 13  
    Witam mam EAGLE i plik BRD I SCH mi niewyświetlają dosłownie nic (JEST PUSTO PO OTWARCIU OWYCH PLIKÓW) :cry:
  • #30
    byrrt
    Level 21  
    RPG wrote:
    Witam mam EAGLE i plik BRD I SCH mi niewyświetlają dosłownie nic (JEST PUSTO PO OTWARCIU OWYCH PLIKÓW) :cry:


    Sprawdź czy w scieżce gdzie masz plik nie ma jakiegoś katalogu który ma polskie znaki.. Umieść na np C:\ i wtedy spróbuj..

    Pozdrawiam