Stacjobudzik v1.0 – zegar z prostą stacją pogodową

Napisano dnia 22.06.2012 r. o godzinie 12:05
Autor: Piotr Sperka

Wstęp

Pomysł budowy nowego budzika zrodził się z potrzeby. Stary budzik, również moja konstrukcja (jedna z pierwszych) miał wiele wad, które utrudniały korzystanie z niego. Nie podobał mi się także sygnał dźwiękowy wytwarzany przez zwykły buzzer. Był on bardzo nieprzyjemny. Zacząłem więc prace nad nową konstrukcją. Postanowiłem jednak nieco rozbudować zwykły zegar z budzikiem o dodatkowe funkcje.

Co to jest?

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 półtora roku pracuje bezawaryjnie. Można jednak napisać, że jest to pewnego rodzaju prototyp docelowej konstrukcji. Przez cały czas używania go znalazłem kilka wad. Głównie chodzi o ergonomię obsługi oraz m.in. brak możliwości regulacji głośności dzwonka oraz dość „obszerną” obudowę. Konstrukcja docelowa, która prawdopodobnie zacznie powstawać już niebawem, będzie (mam taką nadzieję) pozbawiona tych wad.

Budowa

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. Dzwonek jest odtwarzany przy pomocy małego głośniczka sterowanego tranzystorem. 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 ze sterownikiem HD44780. Na wyświetlaczu mogą być wyświetlane wszystkie dane lub tylko czas (dużymi znakami, w formacie hh:mm). 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 (fotorezystor podłączony do ADC) umieszczony na przednim panelu. Całe urządzenie jest obsługiwane przez trzy przyciski mieszczące się na panelu przednim.

Obudowa

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 2,5 mm. Obudowa podoba mi się, jednak mogłaby być mniejsza.

Program

Program został napisany w języku C. Do obsługi FAT użyłem gotowego kodu z tej strony. 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.

Podsumowanie

Tak jak napisałem już na początku urządzenie to jest wersją testową, prototypem. Podczas budowy wersji docelowej na pewno zadbam o mniejszą obudowę i dokładniejsze odczyty z czujników (m.in. inny czujnik zewnętrzny). Zastosuję także inny mikrokontroler – prawdopodobnie STM32. Pozwoli to na rozszerzenie funkcjonalności urządzenia oraz na bezproblemowe użycie m.in. kolorowego wyświetlacza. Pewnym jest także to, że poprawię sposób obsługi urządzenia. Więcej informacji w tej kwestii może pojawić się już niedługo.