logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Stacjobudzik - budzik oraz prosta stacja pogodowa

piotrek662 18 Maj 2011 12:46 8891 14
REKLAMA
  • 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
    O autorze
    piotrek662
    Poziom 14  
    Offline 
    Specjalizuje się w: komputery, mikrokontrolery
    piotrek662 napisał 165 postów o ocenie 322, pomógł 10 razy. Mieszka w mieście Rybnik. Jest z nami od 2005 roku.
  • REKLAMA
  • #2 9519632
    snnaap
    Poziom 25  
    Posty: 677
    Pomógł: 83
    Ocena: 10
    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 9519656
    Konto nie istnieje
    Konto nie istnieje  
  • REKLAMA
  • #4 9519693
    krzywy1
    Poziom 24  
    Posty: 495
    Pomógł: 74
    Ocena: 118
    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 9519701
    piotrek662
    Poziom 14  
    Posty: 165
    Pomógł: 10
    Ocena: 322
    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 9520175
    lukas1121
    Poziom 18  
    Posty: 300
    Pomógł: 8
    Ocena: 26
    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.
  • REKLAMA
  • #7 9520350
    Mlody_XX0
    Poziom 11  
    Posty: 66
    Ocena: 9
    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 9520448
    r-maniac
    Poziom 15  
    Posty: 155
    Pomógł: 5
    Ocena: 23
    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 9521566
    piotrek662
    Poziom 14  
    Posty: 165
    Pomógł: 10
    Ocena: 322
    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.
  • REKLAMA
  • #10 9521720
    michalko12
    Specjalista - Mikrokontrolery
    Posty: 3394
    Pomógł: 462
    Ocena: 321
    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 9522066
    Gżehó
    Poziom 22  
    Posty: 728
    Pomógł: 15
    Ocena: 106
    Fajna konstrukcja. Czy kolega mógłby udostępnić chociaż fragment kodu dotyczący obsługi MPX4115?
  • #12 9522639
    interside
    Poziom 14  
    Posty: 110
    Pomógł: 2
    Ocena: 22
    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 9532674
    rav1989
    Poziom 11  
    Posty: 74
    Ocena: 1
    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 9535560
    snnaap
    Poziom 25  
    Posty: 677
    Pomógł: 83
    Ocena: 10
    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 9559848
    pier
    Poziom 24  
    Posty: 2445
    Pomógł: 40
    Ocena: 1891
    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?

Podsumowanie tematu

✨ Stacjobudzik to urządzenie łączące funkcje zegara, budzika oraz prostej stacji pogodowej, zbudowane na bazie mikrokontrolera Atmega32. W skład konstrukcji wchodzą czujniki SHT11 (wilgotności i temperatury), MPX4115 (ciśnienia), termistor do pomiaru temperatury zewnętrznej oraz RTC DS1307. Użytkownicy dyskutują o jakości obudowy, możliwościach optymalizacji kodu oraz komunikacji z czujnikami. Pojawiają się pytania dotyczące zastosowania kondensatorów, regulacji głośności dźwięków budzika oraz możliwości dodania funkcji odtwarzacza. Wskazano również na problemy z samoogrzewaniem czujnika SHT11 oraz potrzebę poprawy jakości przycisków.
Wygenerowane przez model językowy.
REKLAMA