

Opisany poniżej "nietypowy mówiący termometr" dla większości osób może się wydać zupełnie niepotrzebnym, zbędnym gadżetem. Jednak dla osób starszych, słabowidzących itd. może okazać się pomocny. Typowe, tanie termometry, nie zawsze posiadają duży i czytelny wyświetlacz. Właśnie z taką myślą powstał termometr, który mówi.
Założeniem była prostota układu. Stąd zastosowanie DS18B20, ATMEGA8 (ATMEGA88) oraz ciekawego modułu do odtwarzania dźwięku z karty microSD. Wybór padł na DFPlayer Mini, nie tylko za śmiesznie niską cenę, poniżej $2.

Układ zasilany jest napięciem stabilizowanym 5V pochodzącym z zasilacza wtyczkowego, dlatego na płytce brak stabilizatora, zastosowano tylko dodatkowe kondensatory filtrujące. Do pomiaru temperatury użyto czujnika temperatury DS18B20. Z założenia prezentowany układ miał być termometrem pokojowym, ale ostatecznie zakres temperatury wynosi -55°C do +99,9°C (ograniczenie górnego zakresu wynika z prostoty programu). Wartość odczytanej temperatury zostaje w odpowiedni sposób przetworzona na dziesiątki, jednostki oraz dziesiętne części stopni Celsjusza. Dla poszczególnych liczb i cyfr przyporządkowany jest plik mp3 (może być też wave) z odpowiednim numerem – nazwą tego pliku. Atmega przesyła do modułu ramki z instrukcjami, który plik ma być odczytany, co ostatecznie daje wartość temperatury z czujnika. Oczywiście dodatkowo mówiony jest znak "minus" dla temperatur ujemnych, słowo "przecinek" oraz informacja o "brak czujnika" lub "temperatura poza zakresem termometru" dla temperatur 100°C i wyższych. Celowo zrezygnowałem z mówienia "stopni Celsjusza", gdyż oczywiste jest, że nie w Kelwinach

Aby skłonić termometr do powiedzenia temperatury, należy podać na chwilę stan wysoki na PORTC.5 (gniazdo "wejście") np. za pomocą przycisku, lub tak jak to jest w prezentowanym modelu, z wykorzystaniem popularnego czujnika ruchu typu HC-SR501. Właśnie wymiary płytki termometru odpowiadają wymiarom płytce tego czujnika. Potencjometrami należy ustawić minimalną czułość oraz czas trwania sygnału na wyjściu. W przeciwnym wypadku termometr może zostać uaktywniony w sposób przypadkowy a nie poprzez zbliżenie ręki blisko czujnika. Może okazać się konieczne ograniczenie pola widzenia czujnika poprzez jego częściowe zasłonięcie. Po podłączeniu zasilania do termometru wysyłane są instrukcję "startowe" inicjujące moduł do pracy, stąd termometr gotowy jest do działania po kilku sekundach od włączenia.
Według noty katalogowej modułu DFplayer rezystor 1k ta wejściu Rx jest potrzebny, ze względu na szumy i zakłócenia w wygłaszaniu komunikatów przy zasilaniu 5V, co zresztą jest prawdą. Zarówno czujnik temperatury jak i moduł mogą być zasilane napięciem 3,3V, ale tego nie sprawdzałem.
Moduł DFplayer mini posiada wewnętrzny wzmacniacz mocy, który w połączeniu z badziewnym głośniczkiem 8Ω i 0,5W z komputera, wydawał niezbyt głośne i kiepskie dźwięki, natomiast z małym głośnikiem od kina domowego dźwięk był przyzwoity i nawet zbyt głośny.
Dla osób które chciałyby wykonać taki termometr, klika informacji. Zmiana fusebitów dla Atmega8 w stosunku do ustawień fabrycznych polega na zmianie wewnętrznego kwarcu z 1MHz na wewnętrzny 8MHz (low: 0xE4, high: 0xD9). Dla Atmega88 należy pozostawić wewnętrzny kwarc 8MHz ale wyłączyć podział przez 8 (low: 0xE2, high: 0xDF, extended: F9).
Na płytce ze względu na brak miejsca nie ma gniazda programowania, procesor należy zaprogramować przed wlutowaniem. Gniazdo "wejście" należy wlutować od strony druku, jeśli będzie użyty czujnik ruchu do załączenia termometru. Szczegóły na zdjęciach.


Komunikaty głosowe zostały przygotowane w darmowym programie BALABOLKA. Jednak sam program nie zawiera głosów. Jedynym jest systemowy angielski Microsoftu. Należy je zainstalować dodatkowo np. głosy IVONA : EWA, JACEK, MAJA, JAN (wszystkie płatne) czy głos PAULINA (nie mam windows 10 ale chyba jest w nim zainstalowany ten głos). Ponieważ wiąże się to z postanowieniami licencyjnymi, plików dźwiękowych nie udostępniam, należy je wykonać we własnym zakresie. Jest też syntezator mowy polskiej dla środowiska LINUX o nazwie MILENA, pojawiła się też wersja dla windows.
W ostateczności można nagrać swój własny głos np. w darmowym AUDACITY i mieć swój własny "spersonalizowany" termometr.
Pliki dźwiękowe powinny posiadać nazwy i treść tak jak poniżej:
nazwa pliku mp3 / treść komunikatu
0001 jeden
0002 dwa
itd.
0019 dziewiętnaście
kolejne pliki to dziesiątki od 20-90
0020 dwadzieścia
0021 trzydzieści
0022 czterdzieści
itd
0027 dziewięćdziesiąt
oraz
0028 zero
0029 przecinek
0030 minus
0031 brak czujnika
0032 temperatura poza zakresem termometru
Pliki najlepiej przenosić na kartę (bezpośrednio bez żadnych podkatalogów) pojedynczo po kolei od 0001 do 0032. Karta sformatowana w FAT32. Wówczas na pewno nie będzie problemów z odtwarzaniem.
W załączniku znajdują się :
-plik hex z programem dla Atmega8
-plik hex z programem dla Atmega88
-pliki eagle: .sch i .brd
Cool? Ranking DIY