Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Stacjobudzik - budzik oraz prosta stacja pogodowa

piotrek662 18 Maj 2011 12:46 8294 14
  • Stacjobudzik - budzik oraz prosta stacja pogodowa

    Witam! Mam dzisiaj do zaprezentowania Stacjobudzik. Stacjobudzik, jak sama nazwa wskazuje jest to połączenie zegara z budzikiem oraz prostej „stacji pogodowej”. Urządzenie to powstało w wakacje 2010 i przez blisko rok pracuje bezawaryjnie, ale kod programu uważam za jeszcze niedopracowany i niezoptymalizowany, więc na razie go nie publikuję.

    Najważniejszymi komponentami użytymi do budowy urządzenia są:
    -Atmega32;
    -Czujnik wilgotności i temperatury SHT11;
    -Czujnik ciśnienia MPX4115;
    -Termistor do pomiaru temperatury zewnętrznej;
    -RTC DS1307.

    Stacjobudzik posiada ponadto czytnik kart pamięci SD, na którą można zapisywać co określony czas dane z czujników. Karta pamięci służy także jako magazyn dźwięków budzika, ponieważ urządzenie jako dźwięków dzwonka używa plików wav (8 bitów, 32 kHz, mono). Pomimo, że dźwięk nie jest powalającej jakości, to jednak moim zdaniem jako dźwięk wystarcza. Można ustawić stały dźwięk dzwonka, osobny dźwięk na każdy dzień tygodnia oraz osobny dźwięk na każdy dzień miesiąca. Na karcie przechowywana jest także konfiguracja.

    Jeśli chodzi o budzik, to jest możliwe ustawienie jednorazowe oraz ustalenie powtarzającego się harmonogramu na tydzień (przydatne np. w roku szkolnym).

    Jako wyświetlacz został zastosowany typowy LCD 4 x 16 znaków. Na wyświetlaczu mogą być wyświetlane wszystkie dane lub tylko czas (dużymi znakami). Możliwe jest także włączenie „trybu mieszanego”, gdzie np. przez 30 sekund jest wyświetlany tylko czas, a przez kolejne 30 sekund wszystkie dane. Jasność podświetlania LCD może być ustawiona na stałe lub regulowana automatycznie poprzez czujnik światła umieszczony na przednim panelu. Całe urządzenie jest obsługiwane przez trzy przyciski umieszczone na panelu przednim.

    Obudowa urządzenia została wykonana ze sklejki, którą pomalowano bejcą, a następnie lakierem bezbarwnym. Panel przedni oraz tylny jest wykonany z blachy aluminiowej o grubości 1,5 mm. Obudowa na pewno mogłaby być mniejsza, jednak taka mi się podoba.

    Program został napisany w języku C. Do obsługi FAT użyłem gotowego kodu ze strony http://www.holger-klabunde.de/avr/avrboard.htm#FullFAT.. Program zajmuje w tej chwili około 23 kB flash oraz około 1,5 kB RAM. Sama obsługa karty pamięci z FAT wymaga ok. 10 kB flash oraz 1 kB RAM. Dużo miejsca zajmują także „napisy” użyte w menu urządzenia. Jak już wcześniej zaznaczyłem, program może opublikuję, ale dopiero, gdy go dopracuję.





    Gdybym teraz miał budować drugą wersję urządzenia, przypuszczam, że pierwszą zmianą byłoby wykorzystanie LCD graficznego oraz dodanie wzmacniacza operacyjnego do obsługi czujnika ciśnienia (obecnie rozdzielczość wynosi trochę ponad 1 hPa).

    Schemat:
    Stacjobudzik - budzik oraz prosta stacja pogodowa

    Pliki na karcie pamięci:
    Stacjobudzik - budzik oraz prosta stacja pogodowa

    Stacjobudzik - budzik oraz prosta stacja pogodowa Stacjobudzik - budzik oraz prosta stacja pogodowa Stacjobudzik - budzik oraz prosta stacja pogodowa Stacjobudzik - budzik oraz prosta stacja pogodowa Stacjobudzik - budzik oraz prosta stacja pogodowa


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • #2 18 Maj 2011 15:34
    snnaap
    Poziom 25  

    Witam

    Gratuluje, fajna konstrukcja, ale mam kilka pytań a mianowicie:
    1. Dlaczego czujnik STH i DS1307 są na różnych liniach? Czy przypadkiem oba te układy nie komunikują się za pomocą I2C?
    2. Układ DS1307 posiada w swojej strukturze kondensatory przy wejściu kwarcu tak wiec czy ma jakiś cel montaż kondensatorów zewnętrznych?
    3. Czy nie lepszym rozwiązaniem byłoby przerzucenie dużo zajmujących "napisów" na kartę pamięci?
    4. Co jest podpięte do złącza które biegnie do portu PA3 i PA2?
    5. Dlaczego STH jest podpięte do masy za pomocą tranzystora? Ma to związek to na celu możliwość jego włączanie i wyłączanie??
    6. Stacja przewiduje pogodę ;) ?


    Pozdrawiam

  • #3 18 Maj 2011 15:43
    5451
    Użytkownik usunął konto  
  • #4 18 Maj 2011 15:52
    krzywy1
    Poziom 12  

    Szacunek dla wykonanej pracy, ale szczerze powiem obudowa masakryczna, ciężka, toporna. Wiem, że ze sklejki nic lepszego nie można wykonać, ale mogłeś użyć innych materiałów.

  • #5 18 Maj 2011 15:55
    piotrek662
    Poziom 14  

    Witam!
    1. SHT1x ma komunikację zbliżoną do I2C, ale to nie to samo
    2. Bez tych kondensatorów zegar był niedokładny (jak dobrze pamiętam to przyśpieszał)
    3. Muszę to przemyśleć, czy jest sens, ale pomysł wydaje się niezły
    4. PA2 - termistor, PA3 - wyprowadzenie ADC "na przyszłość"
    5. Może mój egzemplarz SHT jest wadliwy, ale bez wyłączania go w czasie gdy nic się nie odczytuje dochodziło do samoogrzania nawet o 2-3 stopnie
    6. Stacja niestety nie przewiduje pogody :wink:
    7. Co do klawiszy... takie miałem i nie ukrywam, że zbyt piękne to one nie są. Jak uda mi się gdzieś kupić jakieś ładniejsze w rozsądnej cenie to nic nie stoi na przeszkodzie, żeby przełożyć

    Pozdrawiam

  • #6 18 Maj 2011 18:24
    lukas1121
    Poziom 18  

    Bardzo ciekawa konstrukcja, mogłeś upchnąć tam jakiś odtwarzacz:P miał byś od razu małe radio, kiedyś widziałem podobną obudowę tyle że ona była bardziej rzeźbą:P była tao chatka z wyświetlaczem vfd wyglądała nieziemsko.

  • #7 18 Maj 2011 19:07
    Mlody_XX0
    Poziom 11  

    Witam Pana serdecznie. Mam następujące pytania. Mógłby Pan nieco opisać jak Pan rozwiązał komunikację z czujnikiem ciśnienia Motoroli. W jakim języku i pod jaki mikroprocesor Pan oprogramował ten czujnik. Czy mógłby Pan umieścić poglądowo kod klasy odpowiedzialnej za komunikacje z tym czujnikiem, jeżeli nie, to chociaż podać stronę z której Pan się wzorował. Pozdrawiam

  • #8 18 Maj 2011 19:29
    r-maniac
    Poziom 14  

    Witam, interesuje mnie jak brzmi melodyjka budzika ze wspomnianych plików, czy regulujesz ich głośność? Można liczyć na jakiś przykładowy filmik?

  • #9 18 Maj 2011 22:56
    piotrek662
    Poziom 14  

    Mlody_XX0 napisał:
    Witam Pana serdecznie. Mam następujące pytania. Mógłby Pan nieco opisać jak Pan rozwiązał komunikację z czujnikiem ciśnienia Motoroli. W jakim języku i pod jaki mikroprocesor Pan oprogramował ten czujnik. Czy mógłby Pan umieścić poglądowo kod klasy odpowiedzialnej za komunikacje z tym czujnikiem, jeżeli nie, to chociaż podać stronę z której Pan się wzorował. Pozdrawiam


    Czujnik MPX4115 jest czujnikiem z wyjściem analogowym (napięcie na wyjściu odpowiada ciśnieniu), więc "komunikacja" sprowadza się do odczytania napięcia z ADC i podstawienia go do wzoru z noty katalogowej. Jak napisałem wcześniej mikrokontroler to Atmega32, a język to C.

    r-maniac napisał:
    Witam, interesuje mnie jak brzmi melodyjka budzika ze wspomnianych plików, czy regulujesz ich głośność? Można liczyć na jakiś przykładowy filmik?


    Póki co regulacja głośności może odbywać się jedynie na komputerze poprzez edycję pliku wav. Jeśli uda mi się nagrać filmik z w miarę dobrym dźwiękiem to postaram się go zamieścić. Być może poczekam jednak z nagrywaniem, ponieważ w najbliższych dniach mam zamiar poprawiać program i pierwszą rzeczą do poprawy jest właśnie odtwarzanie melodii.

  • #10 18 Maj 2011 23:35
    michalko12
    Specjalista - Mikrokontrolery

    piotrek662 napisał:
    Jak uda mi się gdzieś kupić jakieś ładniejsze w rozsądnej cenie to nic nie stoi na przeszkodzie, żeby przełożyć


    Pomyśl o pojemnościowych przyciskach

  • #11 19 Maj 2011 07:17
    Gżehó
    Poziom 21  

    Fajna konstrukcja. Czy kolega mógłby udostępnić chociaż fragment kodu dotyczący obsługi MPX4115?

  • #12 19 Maj 2011 11:40
    interside
    Poziom 13  

    Witam

    No bardzo ładnie wykonane a przy okazji funkcjonalne urządzenie. zasugerował bym jedynie tylko wymianę tych czerwonych przycisków na takie ładne metalowe wandaloodporne. Trochę drogie ale pięknie by sie prezentowały na tej obudowie.

    Pozdrawiam Piotr.

  • #13 22 Maj 2011 14:10
    rav1989
    Poziom 11  

    Witam
    Mógłbyś wstawić jakiś przykład jak użyć tej "biblioteki" do obsługi kart MMC/SD bo z niemieckim u mnie kiepsko i nie bardzo się orientuję co oni do mnie piszą :) Wystarczy odczyt i zapis :) korzystam z ATmega32 :D

    Pozdrawiam
    Rav

  • #14 23 Maj 2011 12:48
    snnaap
    Poziom 25  

    piotrek662 napisał:

    5. Może mój egzemplarz SHT jest wadliwy, ale bez wyłączania go w czasie gdy nic się nie odczytuje dochodziło do samoogrzania nawet o 2-3 stopnie


    Czujnik STH posiada w sobie "grzałkę":

    Cytat:
    Heater: An on chip heating element can be addressed by
    writing a command into status register. The heater may
    increase the temperature of the sensor by 5 – 10°C12
    beyond ambient temperature. The heater draws roughly
    8mA @ 5V supply voltage.


    może masz ją włączoną?

    Pozdrawiam

  • #15 30 Maj 2011 17:04
    pier
    Poziom 23  

    piotrek662 napisał:
    5. Może mój egzemplarz SHT jest wadliwy, ale bez wyłączania go w czasie gdy nic się nie odczytuje dochodziło do samoogrzania nawet o 2-3 stopnie


    Też zauważyłem takie zachowanie mojego SHT11, nawet pisałem na forum o tym ale nikt mi nie napisał że to sprawa zasilania. Myślałem że wystarczy odczytywać w dużych odstępach czasowych ale jednak nie.

    Według pdf-a SHT11 pobiera max 3mW a więc czy potrzeba go włączać za pomocą tranzystora? Nie wystarczy zasilanie wprost z portu procesora?

    Jeszcze jedno.
    Jako źródło napięcia odniesienia dla procesora wykorzystuje Kolega zapewne zasilanie części analogowej?
    Później według tego napięcia odczytuje Kolega wartość z MPX-a, nie taniego czujnika który jest skompensowany i skalibrowany fabrycznie.
    Czy uważa Kolega takie rozwiązanie za dobre?