Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Nietypowy mówiący termometr

Simon79 15 Kwi 2017 14:23 7395 21
  • Nietypowy mówiący termometr Nietypowy mówiący termometr

    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.
    Nietypowy mówiący termometr

    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 :D . Czujnik temperatury można wlutować bezpośrednio na płytkę lub na przewodzie. Jeśli będzie umieszczony na zewnątrz powinien być dobrze zabezpieczony przed warunkami atmosferycznymi.

    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.

    Nietypowy mówiący termometr Nietypowy mówiący termometr

    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

    Załączniki:

    Fajne!
  • #2 15 Kwi 2017 15:53
    szymon122
    Poziom 36  

    Jak możesz to wstaw filmik z przykładowym "odczytem" temperatury. Chcę zobaczyć na ile płynnie to się odbywa.

  • #4 15 Kwi 2017 17:50
    krzysiekdg
    Poziom 13  

    Dodaj wymowe stopnia celcjusza. Wchodzacy goscie do domu oszaleja slyszac jaka jest temperatura :)

  • #5 15 Kwi 2017 19:03
    M. S.
    Poziom 34  

    Popełniłem taki termometr do auta. Jedna Mega8 mierzy temperaturę i gada PWM'em odczytując w czasie rzeczywistym kartę SD. Nie trzeba do tego modułów wspomagających. Oprogramowanie w Bascomie ze wstawką asemblerową do obsługi karty. Zajętość pamięci 62%.

  • #6 15 Kwi 2017 19:14
    japko1024
    Poziom 17  

    Moi koledzy korzystają z jakiegoś darmowego syntezatora mowy z językiem polskim - użyli go w programie na Raspberry Pi (oczywiście z Linuxem) czytającym suchary ze strony internetowej :D. Niestety nie pamiętam, jak się nazywa, ale w każdym razie coś takiego istnieje.

  • #7 15 Kwi 2017 19:25
    Simon79
    Poziom 15  

    M. S. napisał:
    Popełniłem taki termometr do auta. Jedna Mega8 mierzy temperaturę i gada PWM'em odczytując w czasie rzeczywistym kartę SD. Nie trzeba do tego modułów wspomagających. Oprogramowanie w Bascomie ze wstawką asemblerową do obsługi karty. Zajętość pamięci 62%.

    Jeśli dysponujesz odpowiednią wiedzą, to owszem, PWM może gadać. Ja, póki co , używam modułu :)

  • #8 16 Kwi 2017 09:23
    SylwekK
    Poziom 28  

    Bardzo ciekawy układ. Czy przypadkiem użyty moduł nie potrzebuje plików o mało popularnych parametrach? Ostatnio do mojego nowego projektu też szukałem czegoś gadającego i ten moduł właśnie z powodu nietypowych plików wejściowych odrzuciłem, a kupiłem równie mały na GPD2846A za 0.79$ akceptujący popularne mp3.

  • #10 17 Kwi 2017 01:28
    george2002

    Poziom 17  

    Fajna sprawa, można rzeczywiście ogarnąć Atmega8 + np karta SD ale tutaj autor tak sobie rozwiązał sprawę, z ciekawostek to google translate potrafi mówić i da się z tego pliki dźwiękowe w postaci MP3 wyciągnąć :)

  • #11 17 Kwi 2017 07:39
    kowal011
    Poziom 14  

    Zmieniłbym "przecinek" na "i".

  • #12 17 Kwi 2017 08:22
    Simon79
    Poziom 15  

    W pierwotnej wersji miałem "i" zamiast "przecinek", ale zasugerowałem się pewnym rozwiązaniem komercyjnym termometru, gdzie mówił "przecinek".
    Chętnie zobaczyłbym program (najlepiej w Bascom), w którym gada się przez pwm. Do tej pory pwm używałem do zmiany jasności świecenia led i jako przetwornik c/a.

  • #13 17 Kwi 2017 23:00
    george2002

    Poziom 17  

    Simon79 napisał:
    W pierwotnej wersji miałem "i" zamiast "przecinek", ale zasugerowałem się pewnym rozwiązaniem komercyjnym termometru, gdzie mówił "przecinek".
    Chętnie zobaczyłbym program (najlepiej w Bascom), w którym gada się przez pwm. Do tej pory pwm używałem do zmiany jasności świecenia led i jako przetwornik c/a.


    Proszę bardzo tak na szybko chociaż gdzieś widziałem wyciągane większe jakości dźwięku na Atmega8 z SD w Bascomie ale nie pamiętam czy to było na Polskim czy Zagranicznym gdzieś forum :) ten jest też ciekawie zrobiony bo można w czasie odtwarzania dźwięków normalnie wykonywać inne czynności :)

    Bascom SD wav player

  • #14 18 Kwi 2017 23:36
    george2002

    Poziom 17  

    A Tutaj obiecana konwersja Google translate do mp3, działa bdb jak się na przykład wpisze 14:29 ładnie czyta godzinę :) oczywiście temperaturę również np temperatura 23 Stopnie Celsjusza :)

  • #15 18 Kwi 2017 23:55
    PEPE64
    Poziom 16  

    @george2002, rzeczywiście, ładnie czyta i mówi ,,i". A ja proponuję, zamiast ,,i" lub ,,przecinek", ,,koma". Fajnie brzmi:)

  • #17 19 Kwi 2017 18:02
    george2002

    Poziom 17  

    PEPE64 napisał:
    @george2002, rzeczywiście, ładnie czyta i mówi ,,i". A ja proponuję, zamiast ,,i" lub ,,przecinek", ,,koma". Fajnie brzmi:)


    Teraz sprawdziłem i tak brzmi najlepiej: "temperatura 23 i jedna dziesiąta stopnia". Taki tekst sobie wpiszcie i sprawdzcie, według mnie najlepiej ;).

  • #18 23 Kwi 2017 15:39
    marekszy
    Poziom 10  

    Działa to naprawdę fajnie, a cena modułu bardzo niska.
    Możesz dać fragmenty kodu do obsługi DFplayera, oraz sposobu zmiany temperatury na dźwięki?

  • #19 23 Kwi 2017 22:19
    Simon79
    Poziom 15  

    W załączniku "idea" działania programu.
    Pisałem to rok temu, nie pamiętam dlaczego tak to zrobiłem a nie inaczej :D. Nie pamiętam z jakich materiałów korzystałem, poza pdf modułu. Z pewnością można napisać go lepiej, optymalnej, ale dla mnie wystarczy, że działa.

  • #20 11 Maj 2017 18:38
    japko1024
    Poziom 17  

    Dałoby się zapisać dźwięki na karcie pamięci bez używania jakiegokolwiek systemu plików, żeby po prostu każdy kolejny zapisany na niej bajt (lub kilka bajtów) odpowiadał następnej próbce dźwięku? Chodzi mi o coś podobnego do nagrań na kasecie magnetofonowej (na której też nie ma zapisanych plików, tylko po prostu sygnał dźwiękowy), tylko oczywiście w formie cyfrowej. Wtedy nie trzeba byłoby kupować dodatkowego modułu ani implementować obsługi systemu plików, jedynie odczyt danych z karty. Gdyby było konieczne nagranie wielu dźwięków, wystarczyłoby zapisać w programie mikrokontrolera ich kolejność i długości, aby mógł odczytywać odpowiednie adresy pamięci.

  • #22 20 Maj 2017 13:42
    Simon79
    Poziom 15  

    Mówienie temperatury aktywowane jest stanem wysokim na wejściu PC.5 (+5V). Są moduły rozpoznawania mowy np. LD3320, EasyVR Shield, Moduł Elechouse Voice Recognition Module, nie wiem dokładnie czy posiadają jakieś wyjście, bo się tym nie interesowałem, ale myślę że tak.

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme