Termometr bezprzewodowy. Funkcja termostatu i wyświetlanie wartości minimum/maksimum

Termometr bezprzewodowy. Funkcja termostatu i wyświetlanie wartości minimum/maksimum
Pobierz PDF Download icon
Bezprzewodowe przyrządy pomiarowe są rozwiązaniem bardzo wygodnym zwłaszcza w sytuacji, gdy obserwowany proces trwa wiele godzin, a jednocześnie wymaga stałego nadzoru. Dobrym przykładem może być temperatura, która powinna zawierać się w określonych granicach, lecz niemożliwe jest zastosowanie automatycznego termostatu. Rekomendacje: prezentowane urządzenie zostało zaprojektowane z myślą o amatorach domowych wędlin (do nadzoru wędzenia), ale spektrum jego zastosowań jest znacznie szersze.

Termometr składa się z dwóch części zasilanych z baterii: nadajnika wyposażonego w termometr cyfrowy oraz odbiornika z wyświetlaczem.

Nadajnik

Rysunek 1. Schemat ideowy nadajnika

Schemat ideowy nadajnika pokazano na rysunku 1. Komunikację radiową z odbiornikiem (jednostronną) zapewnia gotowy moduł nadawczy RT40 firmy TeleControlla pracujący w paśmie ISM. Jest to moduł wykonany w technologii grubowarstwowej na podłożu ceramicznym. Posiada jedynie 4 wyprowadzenia: dwa do zasilania, antenowe i wejście danych.

Akceptuje szeroki zakres napięcia zasilania - od 2 V do aż 14 V, co czyni go idealnym do zasilania z baterii. Moc wyjściowa, jaka jest dostępna przy zasilaniu 5 V, wynosi ok. 3 mW. To niewiele, lecz wystarczy do uzyskania zasięgu rzędu kilkunastu metrów. Warto jednak pamiętać, że na zasięg ma wpływ wiele czynników, w tym prędkość transmisji, środowisko pracy, czułość odbiornika oraz zastosowane anteny.

Celem ograniczenia poboru prądu przez moduł nadawczy, jego zasilanie jest odłączane w momentach, kiedy nie jest on używany - np. podczas pomiaru temperatury. Sprowadza się to odpowiedniego sterowania tranzystorem T1. Temperatura jest mierzona za pomocą czujnika typu DS18B20. Jego zaletą, oprócz przystępnej ceny, jest również brak konieczności kalibracji. Dołącza się go do zacisków złącza J2. Czujnik pracuje w trybie zasilania pasożytniczego, więc wyprowadzenia masy i zasilania należy zewrzeć ze sobą i dołączyć do zacisku GND.

Potencjometry P1 i P2 służą one ustawieniu, odpowiednio, dolnego i górnego progu temperatury, których przekroczenie będzie sygnalizowane. Wartości napięcia z ich ślizgaczy są odczytywane przez przetwornik A/C i odpowiednio skalowane.

Zasilanie potencjometru P2 z wyjścia P1 umożliwiło rozwiązanie pewnej istotnej kwestii: górny próg zawsze musi znajdować się powyżej dolnego. Gdyby każdy z tych potencjometrów był zasilany oddzielnie, wówczas konieczne byłoby dodanie programowych ostrzeżeń o wystąpieniu takiej sytuacji. Tutaj jest to zbyteczne. Wadą, ale niezbyt dotkliwą tego rozwiązania jest zmiana dolnego progu przy zmianie górnego.

Zasilanie tego obwodu z jednego z wyprowadzeń mikrokontrolera powoduje, że można wyłączyć jego zasilanie tuż po akwizycji napięć, poprzez wyzerowanie wyprowadzenia. Niejako przy okazji rozwiązany został również problem napięcia referencyjnego dla przetwornika A/C - jest nim napięcie zasilania. W ten sposób napięcie baterii nie ma wpływu na funkcjonowanie układu. Oczywiście, o ile mieści się ono w dopuszczalnym zakresie.

Zworki JP1 i JP2 służą do załączania alarmu - odpowiednio, "górnego" i "dolnego". Zdjęcie zwory oznacza brak reakcji układu na dany próg. W ten sposób, może stać się on zwykłym termometrem - wystarczy zdjąć obydwie zworki.

Przyciski impulsowe SW1 i SW2 są przydatne podczas ustawiania ślizgaczy potencjometrów P1 i P2 w odpowiednich położeniach. Wciśnięcie jednego z nich spowoduje, że na ekranie odbiornika ukaże się odczytana przez układ wartość progu. Dzięki temu możliwe jest ustawienie dokładnych wartości, bez konieczności dokładania wyświetlacza przy nadajniku.

Mikrokontroler odpowiedzialny za pracę całego nadajnika to ATmega8L. Wersję "L" wybrano z powodu możliwości zasilania napięciem niższym, niż w wersji standardowej. Nawet przy mocno rozładowanych bateriach nadal jest możliwa poprawna praca nadajnika.

Drabinki rezystorowe RN1...RN3 zasilają wyprowadzenia mikrokontrolera ustalając ich poziom oraz odprowadzając ewentualne ładunki elektrostatyczne i prąd indukowany przez zaburzenia zewnętrzne. Wyjątkiem jest wyprowadzenie SCK, które jest zasilane przez ścieżki oporowe potencjometrów. Złącze J4 służy do zaprogramowania mikrokontrolera na płytce. Dioda świecąca LED1 informuje o pracy nadajnika - komunikaty przez nią sygnalizowane będą opisane dalej.

Rysunek 2. Schemat montażowy nadajnika

Nadajnik jest wyposażony w czujnik temperatury i może być umieszczony w różnych miejscach - w tym i na zewnątrz. Wahania temperatury w znaczący sposób zmieniałyby częstotliwość zegara mikrokontrolera o ile pracowałby on w oparciu o wewnętrzny układ RC. Zastosowanie rezonatora kwarcowego znacząco ustabilizowało częstotliwość zegara, co ułatwia komunikację z odbiornikiem i czujnikiem temperatury.

Nadajnik termometru zmontowano na jednostronnej płytce drukowanej, której schemat montażowy pokazano na rysunku 2. Podczas montowania elementów należy koniecznie pamiętać o trzech zworach z drutu, z czego jedna znajduje się pod modułem nadawczym.

Odbiornik

Rysunek 3. Schemat ideowy odbiornika

Schemat ideowy odbiornika zamieszczono na rysunku 3. Znaczący obszar schematu zajmują połączenia pomiędzy mikrokontrolerem ATmega16L a wyświetlaczem LCD typu JH17 (3,5 cyfry). Wielką zaletą tego wyświetlacza jest możliwość zasilania napięciem 3 V.

Ponadto, ma on mniejsze gabaryty, pobiera mniejszy prąd (rzędu mikroamperów) i jest kilkukrotnie tańszy. Niestety, brak zintegrowanego sterownika wymusza sterowanie każdym wyprowadzeniem z osobna, dlatego potrzebny był mikrokontroler w obudowie TQFP44 wyposażony w dostateczną liczbę wyprowadzeń I/O.

Ten sam wyświetlacz został użyty w kicie AVT1810 (Uniwersalny licznik z LCD) opisanym w EP 8/2014, dlatego zainteresowanych szczegółowym opisem sposobu jego sterowania odsyłam do tego artykułu. W opisywanym projekcie termometru podniesiono częstotliwość odświeżania ekranu, przez co jego migotanie jest niewidoczne.

Do mikrokontrolera dołączono moduł odbiorczy typu RR8 dostrojony fabrycznie na częstotliwość 433,92 MHz. Podobnie jak jego "nadawczy" kolega, został wykonany w technologii grubowarstwowej. Dużą zaletą modułu jest możliwość zasilania go napięciem z przedziału 2,7...3,3 V. Ponadto, do zasilania bateryjnego predestynuje go bardzo mały pobór prądu, rzędu 0,5 mA.

Cechą charakterystyczną wszystkich odbiorników superreakcyjnych są dwa oscylatory: jeden z nich jest dostrojony do częstotliwości roboczej i wzmacnia sygnał antenowy, a drugi okresowo wygasza te drgania. Z tego względu należy mieć na uwadze, że odbiornik tego typu będzie (w nieznacznym stopniu) zakłócał pasmo 433 MHz - producent deklaruje, że moc emitowanych zakłóceń nie powinna przekraczać 1 nW.

Oprócz wyświetlacza, do płytki dołączony jest również piezoelektryczny buzzer. Służy od wydawaniu dźwiękowych komunikatów. Rezystory R5 i R6 ograniczają prąd płynący przez wyprowadzenia mikrokontrolera w chwili jego przeładowywania. Sterowany jest różnicowo, co podwaja amplitudę przyłożonego doń napięcia.

Rysunek 4. Schemat montażowy odbiornika

Podobnie jak na płytce nadajnika, również tutaj zostało przewidziane złącze do programowania ISP. Rezystory R1...R4 uzupełniają wewnętrzne rezystory podciągające w mikrokontrolerze. Przycisk impulsowy służy wyłączeniu na minutę alarmu dźwiękowego, o czym dalej.

Nie został tutaj użyty rezonator kwarcowy do ustabilizowania częstotliwości zegara, wykorzystano wewnętrzny układ RC. Jedyny proces w tym układzie, który wymaga zachowania reżimu czasowego, jest odbiór sygnału z odbiornika. Został on tak przemyślany, że sam dostraja się do odbieranych impulsów i w łatwy sposób wyodrębnia właściwą transmisję spośród wszystkich, jakie można znaleźć w paśmie 433MHz.

Układ odbiornika został zmontowano na dwustronnej płytce drukowanej, której schemat montażowy pokazano na rysunku 4. Podobnie, jak w przypadku płytki nadajnika, również i tutaj został przewidziany niewielki obszar miedzi na antenę wraz z możliwością jej powiększenia.

W układzie prototypowym, blaszka piezo o średnicy 20 mm została owinięta taśmą izolacyjną, aby uniknąć zwarć pomiędzy wyprowadzeniami wyświetlacza i wlutowana pod wyświetlaczem. Jest to rozwiązanie o tyle dobre, że oszczędza miejsce, a dźwięk nie jest zanadto tłumiony. Nic jednak nie stoi na przeszkodzie, by ten sygnalizator przylutować na dłuższych przewodach i umieścić w obudowie.

Wykaz elementów

Nadajnik

Rezystory: (SMD 1206)
R1: 10 kΩ
R2: 470 Ω
RN1, RN3: 8×10 kΩ (SIL9, drabinka)
RN2: 4×10 kΩ (SIL5, drabinka)
P1, P2: 10 kΩ (pot. montażowy, leżący)

Kondensatory: (SMD 1206)
C1, C2: 100 nF
C3, C4: 22 µF/16 V (elektrolit. THT)
C5...C8: 10 nF
C9, C10: 22 pF

Półprzewodniki:
LED1: dioda LED zielona , 5 mm
T1: BC846 lub podobny
US1: ATmega8L (QFP32)
US2: RT40 (433,92 MHz)
Czujnik DS18B20 (opis w tekście)

Inne:
J1...J3: ARK2/3,5 mm
J4: goldpin 5 pin
JP1, JP2: goldpin 2 pin+zworki
Q1: 4 MHz (rezonator kwarcowy)
SW1, SW2: przycisk 6×6/17 mm lub podobny
Koszyk baterii 3×AA (opis w tekście)

Odbiornik

Rezystory: (SMD 1206)
R1...R4: 10 kΩ
R5, R6: 36 Ω

Kondensatory: (SMD 1206)
C1, C6: 1 µ>F
C2, C3, C5, C7: 10 nF
C4: 100 nF

Półprzewodniki:
US1: ATmega16L (QFP44)
US2: RR8 (433,92 MHz)

Inne:
BZ1: buzzer piezo, 20 mm
J1: goldpin 5 pin
LCD1: JH17 (wyświetlacz LCD 3,5 cyfry)
SW1: przycisk 6×6/17 mm lub podobny
Koszyk baterii 2×AAA (opis w tekście)

Uruchomienie

Fotografia 5. Ekran odbiorni ka po włączeniu

Prawidłowo zmontowane układy są gotowe do działania pod warunkiem wgrania do pamięci Flash mikrokontrolerów odpowiednich programów oraz skonfigurowania ich bitów zabezpieczających.

Programowanie odbiornika powinno odbywać się programatorem przystosowanym do współpracy z mikrokontrolerami AVR zasilanym napięciem 3 V. Zmiany, jakich należy dokonać w bitach zabezpieczających w stosunku do konfiguracji fabrycznej są następujące:

  • Nadajnik: włączyć taktowanie za pomocą zewnętrznego rezonatora o częstotliwości 4 MHz.
  • Odbiornik: wyłączyć JTAG, włączyć taktowanie za pomocą zewnętrznego rezonatora o częstotliwości 8 MHz.

Fotografia 6. Odebrana informacja o zmierzonej temperaturze

Po włączeniu zasilania, prawidłowo zaprogramowany odbiornik (bez włączonego nadajnika) powinien pokazać zero (fotografia 5). Jeżeli nadajnik został włączony wcześniej, powinna być odebrana informacja o zmierzonej temperaturze (fotografia 6).

Poprawny odbiór jest sygnalizowany krótkim, pojedynczym piśnięciem. Wyświetlacz zachowuje swoją zawartość do momentu zaktualizowania kolejną paczką informacji. Nadajnik informuje o swojej pracy poprzez cykliczne (co ok. 0,8 sekundy) miganie znajdującą się na nim diodą - sygnalizuje działanie modułu nadawczego.

Fotografia 7. Wyświetlenie górnego progu temperatury

Ustawianie progów temperatury odbywa się poprzez obracanie ślizgaczem odpowiedniego potencjometru (jak wspomniałem wcześniej, radzę zacząć od progu górnego, czyli od P1). Podgląd ustawionej wartości można uzyskać poprzez trzymanie wciśniętego przycisku SW1 na płytce nadajnika.

Odbiornik wyświetli ją razem ze znakiem "+" - fotografia 7. Co ważne, w tym stanie nie są aktywne alarmy, a odbiornik nadal potwierdza poprawność transmisji. Analogicznie, potencjometrem P2 można ustawić próg dolny, a przyciskiem SW2 sprawdzić jego wartość. Różnica będzie polegała na wyświetlaniu jej ze znakiem "-", jak na fotografii 8.

Fotografia 8. Wyświetlenie dolnego progu temperatury

Po zwolnieniu przycisków oraz nałożeniu zworek na kołki JP1 i/lub JP2, układ zaczyna czuwać nad temperaturą. Przekroczenie któregokolwiek progu sygnalizowane jest cyklicznie powtarzającą się serią dźwięków: wysokich przy progu górnym oraz niższych, przy progu dolnym. Jest to też informacja o odebraniu komunikatu od nadajnika.

Jednocześnie, na wyświetlaczu jest pokazywana aktualna wartość temperatury (pulsująca) wraz z odpowiednim znakiem oznaczającym przekroczony próg. Dioda świecąca na nadajniku również informuje o alarmie poprzez kilkukrotne pulsowanie.

Wciśnięcie przycisku na płytce odbiornika blokuje alarm dźwiękowy na ok. 1 minutę, lecz w tym czasie wyświetlacz pulsuje nadal, sygnalizując poprawną pracę. Jeżeli w przeciągu minuty temperatura nie wróci do prawidłowego przedziału, alarm będzie sygnalizowany na nowo. W przypadku używania tego układu jako zwykłego termometru bezprzewodowego (bez sygnalizacji), należy nie zakładać zworek na JP1 i JP2.

Testy wykazały, że zasięg (w otwartym terenie) poprawnej transmisji to ok. 25 metrów. Po przekroczeniu tego dystansu była gubiona połowa pakietów danych lub więcej. Stosując dodatkowe anteny, np. z odcinków przewodu o długości kilkunastu centymetrów można zasięg znacząco zwiększyć.

Dla dociekliwych

Rysunek 9. Struktura ramki danych

Podczas prowadzenia testów okazało się, że typowa transmisja typu UART, jaką wspierają sprzętowo mikrokontrolery AVR, jest niewystarczająca. Powodem była częsta utrata synchronizacji odbiornika, co przekładało się na nieprawidłowe odczytywanie położenia kolejnych bitów. Było to szczególnie dotkliwe przy przesyłaniu danych zawierających długie ciągi logicznych zer.

Rozwiązaniem okazało się użycie kodowania typu Manchester - takiego, jakie stosuje się w pilotach na podczerwień posługujących się kodem RC5. Każdy bit został zakodowany jako zmiana stanu między dwoma półbitami. Należy pamiętać, że tutaj poziom wysoki oznacza nadawanie, a niski - brak nadawania.

Właściwa informacja zawarta jest we właściwym kluczowaniu fali nośnej, tak samo, jak ma to miejsce w przypadku urządzeń IR. Dzięki takiemu rozwiązaniu, odbiornik nasłuchuje jedynie sygnałów spełniających (w pewnych granicach tolerancji) określone ramy czasowe. Jeżeli pierwsze dwa bity nie zostaną prawidłowo zidentyfikowane, odbiór zostaje przerwany.

Drugim zabezpieczeniem jest odpowiednia struktura ramki danych: jest to zmodyfikowana ramka RC5. Szczegóły pokazano na rysunku 9. Dwa pierwsze bity to bity startu (zawsze o wartości 1), służą dostrojeniu odbiornika. Bit o numerze 2 zmienia się swoją wartość przy każdej wysłanej transmisji, w tym zastosowaniu nie jest jednak wykorzystywany.

Bity z przedziału 3...6 to komenda: jeżeli wszystkie są zerami, wówczas odbiornik wyświetla temperaturę i nic poza tym. Ustawienie jednego z nich (tylko jednego - to kolejne zabezpieczenie, pozwalające odrzucić nieprawidłowe ramki) na 1 wywołuje odpowiednią reakcję odbiornika: wyświetla ustawiane progi bądź uruchamia alarm. Ostatnie 7 bitów to temperatura (bez znaku), zmierzona lub ustawiona.

Przeznaczeniem układu prototypowego był nadzór temperatury działkowej wędzarni. Czujnik temperatury warto wtedy wybrać w wersji obudowanej, z dołączonym kablem. Nie jest to jedyne możliwe zastosowanie - można np. nadzorować temperaturę suszenia owoców lub gotowania szynki. Jeżeli jest taka możliwość, warto korzystać z zasilania sieciowego, stabilizowanego na odpowiednim poziomie.

Michał Kurzela, EP

Artykuł ukazał się w
Elektronika Praktyczna
listopad 2015
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik kwiecień 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio marzec - kwiecień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje marzec 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna kwiecień 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich kwiecień 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów