Monitor temperatury ze wskaźnikiem tendencji.

5/5 - (2 votes)

widok w trakcie pracy układu Układ powstał powiedzmy z chęci przetestowania wyświetlacza OLED HTDS-BS96. Ciekawość z kolei pchnęła mnie do praktycznego sprawdzenia i porównania wskazań pomiędzy różnymi typami czujników temperatury. Powstał monitor temperatury ze wskaźnikiem tendencji bazujący na sensorach DHT11 (temperatura + wilgotność), DS18B20, termopara K z układem MAX6675. Ponieważ w trakcie doświadczeń dodałem możliwość dokonania pewnej nastawy, całość wzbogacona została o moduł sensora dotykowego, zbudowany na IC TTP223.

Wspomniany test porównawczy wykonać chciałem od zawsze … by mieć rozeznanie (swoje zdanie) na temat odmiennych sensorów do pomiaru temperatury, a w szczególności jakości ich wskazań. Test jest bardzo subiektywny gdyż dotyczy moich obserwacji działania czujników, w wąskiej skali – zakres temperatury pokojowej. Niemniej można stwierdzić wielkość odchyłów wskazań po między poszczególnymi typami oraz ich czułość na zmiany.

Wszystkie użyte elementy pomiarowe już wcześniej opisałem i można sobie we własnym zakresie je poznać bardziej dogłębnie, odnośniki znajdują się w treści tego opisu.

Dodatkowo przedstawię krótką charakterystykę:

DHT11, DHT22 i podobne

co w module DHT siedzi Moduły o zbliżonej funkcjonalności, z których drugi ma mieć lepszą dokładność, rozdzielczość i większy zakres wykonywanych pomiarów.  🙂 Dla mnie zwraca jedynie uwagę (w porównaniu do DHT11) z tytułu szerszego zakresu pomiarowego. Mierzy temperatury ujemne i wilgotność od 0. Zasadniczo do pomiarów w pomieszczeniach mieszkalnych w zupełności spełni się DHT11. Ponieważ moduły wydawały się mieć coś w środku postanowiłem zaglądnąć do ich wnętrza by przyjrzeć się co to są za hybrydy. Na fotografii obok widzimy trzy typy, z czego jeden (te niebieskie) od dwóch producentów (w środku identyczne). Ten w białym pudełku (AM2302) zalany elastyczną masą – nierozbieralny … Te niebieskie (DHT11) pięknie obnażyły swoją zawartość. Ten największy czarny (AM2301) w środku miał jeszcze jedno pudełeczko chowające „jakiś” element. Każdy z nich zawiera układ scalony z usuniętymi napisami. Będę spekulował i stwierdzę, iż prawdopodobnie są to jakieś układy specjalizowane typu MPU, być może z niepełnowartościowej frakcji znajdujące jednak zastosowanie. Moduł DHT11 dodany ma jedynie rezystancyjny czujnik wilgoci w postaci małej ceramicznej płytki z mozaiką złotych ścieżek. Sądzę, że układ ma wewnątrz strukturę pozwalającą mierzyć jego temperaturę. Dlatego też dodatkowo wyposażono go tylko w czujnik wilgoci.
widok różnych modułów DHT bez obudowy Moduł z czarnego pudełka już jest bardziej obfity w elementy dodatkowe. Widać termistor, dodatkowy element do mierzenia wilgotności (w ekstra obudowie), oraz dodatkowy zasilacz – pewno precyzyjny, oraz haaaaaaa REZONATOR KWARCOWY. Tak myślę, że właśnie te dodatkowe elementy rzutują na większą precyzję i lepszy zakres pomiarowy tej wersji modułu. Wszak każdy wie, że jakość zasilania jest bardzo istotna przy wykonywaniu pomiarów i nie tylko. Dodatkowy rezonator jest równie wymowny … Użytemu w tym wykonaniu elementowi do pomiaru wilgotności zawdzięczamy pewno szerszy zakres pomiarowy, to samo tyczy się termistora. Tym samym wiadomo już z czego wynika duża różnica w cenie tych różnych wykonań.

widok wnętrzności różnych modułów DHT   widok różnych modułów DHT

Zakres pomiarowy użytego modułu DHT11: 0-50°C, 20-90%RH, rozdzielczość obu zakresów 1. Dokładność pomiarów ±2°C i ±5%RH. Więcej można się dowiedzieć tutaj. Według producenta czujnik ma kalibrowany sygnał wyjściowy z przekazywanymi danymi  :mrgreen:

Low cost, long-term stability, relative humidity and temperature measurement, excellent quality, fast
response, strong anti-interference ability, long distance signal transmission, digital signal output, and
precise calibration.

termopara K + MAX6675

Tutaj już nic nie da się rozebrać, niemniej byłem bardzo ciekawy zestawienia pomiarów tego analogowego czujnika i przetwornika z czymś cyfrowym. Zakres pomiarowy analogowej termopary -200°C do +1200°C, rozdzielczość 41µV/°C. Te dane mogą być nieco odmienne dla elementów różnych producentów. Zakres pomiarowy układu przetwornika MAX6675, 0-1200°C z maksymalną rozdzielczością 0,25°C. Końcowy wynik więc zależny jest od tych dwóch elementów (analogowego i przetwornika cyfrowego) oraz innych zjawisk z mini związanych, które „załatwia” układ scalony przetwornika. Szczegółowy opis przygotowałem w innym miejscu.

DS18B20

Ten cyfrowy termometr jest mi znany od najdłuższego czasu i bardzo chętnie go stosuję, gdyż nie sprawia żadnych problemów i jest mało wymagający. Jak również niezawodny przy niewielkich nakładach. Sensory są kalibrowane w fazie produkcji. Podstawowy ich zakres pomiarowy to -10°C do +85°C, jest bardzo precyzyjny i producent określa go na 0,5°C. Pełen zakres zawiera się w przedziale -55°C do +125°C gdzie błąd pomiaru jest porównywalny do modułów DHT i wynosi 2°C. Ten sensor może pracować z konfigurowaną przez użytkownika rozdzielczością w zakresie 0,5 do 0,0625°C. Szczegółowo jego cechy przedstawiłem w odrębnych artykułach, z których pierwszy to szczegóły – opis DS18B20 vs DS18S20.

Zestawienie cech, albo porównanie.

monitor temperatury i wilgotności Każdy z prezentowanych układów pomiarowych obarczony jest błędem i cechuje go określona powtarzalność wyników, z których to cech niejednokrotnie wynika, że precyzja czy rozdzielczość jest wartością teoretyczną … i o tym należy pamiętać. Każdy z nich zbudowany został do innych zastosowań i posiada inny zakres pomiarowy. Ale każdy z nich dla jakości dokonywanych pomiarów, musi mieć pewne, jak najlepszej stabilności zasilanie.
Tworząc kod do obsługi tych odmiennych czujników, najmniej fatygi potrzeba dla układu MAX (operacje na danych wielobajtowych), a najwięcej zasobów pochłania moduł DHT. Nie zapominajmy jednak, że ten dla odmiany określa też wilgotność środowiska w którym się znajduje.  😉 Dla odczytów z układu MAX i modułu DHT zmuszony byłem uśredniać wyniki odczytywane co większy odstęp czasu, by uzyskiwane pomiary były stabilne. Moduł DHT nie nadaje się do zbyt częstych odczytów bo jego obsługa jest czasochłonna, a otrzymywane wyniki mają duży rozrzut. Układ DS18B20 za to bardzo dynamicznie reaguje na zmiany temperatury środowiska, w którym przebywa. Związane jest to zapewne z masą samego układu. Jest on najdrobniejszy. W tym zakresie najwolniej reagował na zmiany temperatury otoczenia moduł DHT11, co wynika też z jego konstrukcji. Niemniej po mimo tego, niezbędne było zastosowanie uśredniania wyników dla stabilności prezentowanych danych.
Posiadając w domu kominek, mogłem wpływać w pewnym zakresie na zmiany temperatury otoczenia, co sprzyjało doświadczeniu i obserwacji zachowań odmiennych sensorów pomiarowych.
Zbliżamy się powoli do najciekawszego – do porównania odczytanych wyników, dzięki układowi – monitor temperatury ze wskaźnikiem tendencji, który zbudowałem. Na tym etapie przedstawię serie fotografii prezentujących odczytane wyniki.

widok zawartości ekranu podczas pracy układuDwa słowa wyjaśnienia:
wiersz pierwszy – ikonka symbolizująca palenisko kominkowe – docelowo wskazanie temperatury czopucha układ pomiarowy MAX,
wiersz drugi – ikonka termometru z literką K sensor w pobliżu kominka, układ pomiarowy DHT,
wiersz trzeci – ikonka wilgotności, ten sam sensor, który w wierszu drugim prezentuje temperaturę,
wiersz czwarty – ikonka termometru z literką P, docelowo sensor w innej (odległej) części pokoju, układ pomiarowy DS.
Na tą chwilkę opisu wystarczy 😉
Ponieważ wszystkie czujniki znajdują się bezpośrednio koło siebie, wskazania powinny być identyczne.

układ podczas pracy, prezentacja wyników pomiarów układ podczas pracy, prezentacja wyników pomiarów

układ podczas pracy, prezentacja wyników pomiarów układ podczas pracy, prezentacja wyników pomiarów

Jak widać na załączonych fotkach wskazania powinny ale nie są identyczne w zestawieniu wszystkich sensorów. Oczywiście wynika to z ich cech i budowy. Moduł DHT odstaje od reszty około 3 stopnie, taką korektę można wykonać bezproblemowo w programie. Dla mnie miłym zaskoczeniem była precyzja wskazań układu pomiarowego opartego o termoparę. Wszak jest to układ obarczony największym możliwym błędem (nawet ±9°C, w badanym zakresie pomiarowym) z testowanych tutaj. A tymczasem wiele nie odstawał od cyfrowego czujnika DS18B20. Najczęściej różnica wynikała ze zmian temperatury powietrza, gdzie po kilku chwilach wskazania wyrównywały się. Pewno wszystko dzięki dobrze zaprojektowanemu układowi MAX i wszelkim ulepszeniom i kompensacji pomiarów, które zostały zastosowane. Brawo dla producenta.

Po wykonaniu programowej kalibracji nie ma też co narzekać na DHT11, będzie równie dokładny jak cyfrowy „Dallas”, ale na zmiany temperatury otoczenia reaguje najwolniej. Pomiary z MAX i DHT dla ujednolicenia wyniku zbieram przez 4 sekundy (4x w interwale 1s) po czym wyliczam średnią, by w końcu prezentować je na wyświetlaczu. Pomiary z DS aktualizowane są dużo dużo częściej i nie stosuję żadnych wybiegów, gdyż wskazania nie różnią się wiele między kolejnymi odczytami.

Haaa wszystkie obserwacje opieram na porównaniu do układu DS18B20, chyba dlatego, że mam do niego największe zaufanie, i jest mi znany najdłużej z przedstawionych. Z ciekawości posługiwałem się też pirometrem, wskazania były niemal identyczne. „Niemal” – pewno dla tego, że pirometr nie służy do pomiaru temperatury powietrza, a wiązkę pomiarową kierowałem na blat z płytką stykową, na której zamontowane były sensory. Lub też na same sensory.
Przy wykonywaniu fotografii nie posługiwałem się żadnymi sztuczkami by ujednolicić  wskazania!

O samym układzie słów kilka.

 Jak już wiadomo układ to zlepek różnorodnych modułów, wliczając to moduł µC ATmega328P (któryś z klonów arduino)  🙂 który umożliwia obserwowanie zebranych wyników na ciekawym malutkim wyświetlaczu OLED. Prezentacje pomiarów środowiska już wszyscy znają, bo porównywaliśmy wyniki odczytów czujników.
Układ posiada jeszcze dodatkowe funkcjonalności. Wskaźnik tendencji bazujący na pomiarach czujnika MAX oraz DHT. Przy okazji ma jeszcze wymuszać obieg gorącego powietrza z czopucha, by ciepełko szybciej rozprzestrzeniało się w mieszkaniu. A to przy załączaniu zasilania pewnego wentylatora  😆 oczywiście tylko w ściśle określonych warunkach. W trakcie budowy dodałem moduł sensora dotykowego, bo był mi potrzebny przycisk. Hee znowu coś nowego  😉 widok płytki stykowej z modułami składowymi układu

Wskaźnik tendencji.

widok zawartości ekranu podczas pracy układu Prezentowany jest na prawej części wyświetlacza. Stanowią go między innymi podpisy kolumn w dolnym wierszu – 5 30 60 dla przypomnienia po jakim czasie pomiary są porównywane. Wybrane czujniki za prezentacją wyniku posiadają trzy ikonki obrazujące czy w danym czasie temperatura się zmieniła, w górę w dół, czy może jest niezmienna. Takie wskazanie pozwala ocenić czy temperatura ulega zmianie, a jak tak to w jakim czasie. Prezentacja ikonek tendencji ulega aktualizacji cyklicznie po upływie każdej minuty. Zaraz po załączeniu układu ikonki nie są pokazywane ponieważ by przedstawić porównanie z wynikiem, z przed 5 czy 30 minut, musi nastąpić upłynięcie określonego odcinka czasu. By wykonać takie porównanie niezbędny jest µC z większą ilością pamięci RAM. Dlatego gdyż konieczne jest nazbieranie dużej ilości próbek, niestety nie tylko z zakresu byte! W dodatku dla każdego wskazania osobno. Na aktualnym etapie pewno wystarczy taki z 1KB pamięci RAM.

Funkcja wymuszonego obiegu gorącego powietrza.

Niby nic wielkiego, a pozwala układowi wyręczyć mnie od czynności którą musiałem wykonywać osobiście. Dodatkowo zapobiega zbyt szybkiemu wygaszeniu paleniska przez wychłodzenie. Taaak odebranie ciepła to też jest sposób ugaszenia ognia. Może najmniej skuteczny ze stosowanych przemysłowo, ale jednak, zjawisko takie zaobserwowałem niejednokrotnie. Podczas gdy palenisko powiedzmy dogorywało załączenie wymuszonego obiegu powietrza, dogorywanie znacznie przyspieszało … Powstawały sytuacje nie korzystne z mojego punktu widzenia.

Więc … układ ma zezwolić na załączenie pompy zimnego powietrza do ogrzania i tym samym szybciej odprowadzać/rozprowadzać powietrze gorące tylko w określonych warunkach gdy temperatura czopucha jest odpowiednio wysoka. Ustaliłem sobie że może to mieć miejsce gdy jest tam cieplej niż 65°C. Gdy temperatura opadnie niżej wentylator nie może już pracować, by zbyt szybko nie doprowadzić do wygaszenia paleniska – przez wychłodzenie. Ot cała filozofia. Układ ma włączać bądź wyłączać dodatkowy wentylator. Ponieważ cenię sobie funkcje automatyczne, nad którymi mam władzę, oprogramowałem wymuszone załączenie, lub wyłączenie wentylatora. Ta funkcja ma priorytet nad automatycznym kontrolerem wentylatora. Właśnie do tego był mi potrzebny przycisk. Standardowo po załączeniu, układ pracuje w funkcji automatycznej dla nastawionej temperatury. W takiej sytuacji na wyświetlaczu nie ma ikonki wiatraka. Gdy zrobi się odpowiednio gorąco układ będzie załączał zasilanie wentylatora, a na wyświetlaczu prezentowana jest animacja działającego wentylatorka. Po opadnięciu temperatury wracamy do punktu wejścia i brak jest ikonki czy też animacji. W każdym momencie mam możliwość posłużenia się przyciskiem (sensorem dotykowym) i trwałym wyłączeniem wentylatora. W takiej sytuacji zostanie wyświetlona ikonka przekreślonego wentylatora. Kolejne kliknięcie spowoduje trwałe załączenie nawiewu, wtedy przedstawiona zostanie ikonka wyświetlacza. Kolejne kliknięcie przywróci funkcję automatyczną. I tak w kółko …

I jeszcze słów kilka …

Sokoro już dodałem przycisk, zachciało mi się by można było modyfikować temperaturę progową załączenia bądź wyłączenia nadmuchu. W chwili obecnej jest ona regulowana od 20 do 255°C. Wszystko dalej dzięki temu samemu jedynemu przyciskowi. Pewno łatwiej było by dodać kolejny, ale mnie tam nigdy nie chodziło o łatwiej  :mrgreen: Mój układ więc ma działać tak jak sobie tego zechcę. Użytkownik ma mieć nieskomplikowanie, optymalnie i komunikatywnie. No może te komunikatywnie trochę się chwieje bo wyświetlacz malutki, a zawiera bardzo wiele informacji … niemniej dużo osób oglądało i teoretycznie może być  😛

By osiągnąć zamierzony cel, i zostać przy tylko jednym przycisku, przed załączeniem/przywróceniem funkcji automatycznej kontroli, każdorazowo przez 5 sekund prezentowany jest ekran z bieżącą nastawą. W tym czasie możemy modyfikować aktualną nastawę. Po każdym kliknięciu/przytrzymaniu czas prezentacji zostaje na nowo nastawiony na 5 sekund. Kolejne przytrzymania przycisku uruchamiają zwiększanie i zmniejszanie wartości nastawy. Prezentacja nastawy, jako funkcjonalność dodatkowo przydatna – informuje o temperaturze progowej dla funkcji automatycznej.
Ktoś może zapytać: a gdzie modyfikowana histereza … ja odpowiem niepotrzebna. Dlatego, że po pierwsze układ załączy nadmuch po przekroczeniu nastawionej temperatury o jeden stopień, a wyłączy gdy temperatura będzie niższa od nastawionej. Po drugie przełączenia mogą odbyć się tylko co minutę.

porównanie wyników pomiaru wilgotności sensora DHT11 z multimetrem MASTECH MS8209

Postanowiłem zbadać jak wypada dokładność pomiaru wilgotności. Aby tego dokonać trzeba  było porównać odczyt pomiaru z modułu DHT11 z czymś znanym powiedzmy wiarygodnym. Długo się nie zastanawiając wygrzebałem z szuflady multimetr MASTERTECH MS8209, dokonujący szerokiej gamy pomiarów nie elektrycznych w tym wilgotności powietrza w otoczeniu  😉 Multimetr wykazał wilgotność na poziomie 47,4%RH, moduł DHT11 41%RH. Korygując wynik o możliwy błąd pomiaru 5% określony przez producenta  w notce, stwierdzam że otrzymana dokładność jest całkiem przyzwoita.

Chwilę poświęcę jeszcze wyświetlaczowi bo uważam że warto. Jest to naprawdę bardzo ciekawa konstrukcja, o bardzo dobrej czytelności wysoce energooszczędna, i mało skomplikowana w obsłudze w BASCOM AVR dzięki opracowanej bibliotece. No dobrze, może ta biblioteka nie jest doskonała, ma swoje braki (w moim mniemaniu), ale funkcjonuje prawidłowo i bezawaryjnie. Więcej na temat biblioteki w temacie Negatywowy wyświetlacz OLED 0,96″ 128×64

Moduł sensora dotykowego nie sprawia podczas pracy żadnych problemów. Nie wystąpiły też żadne niespodzianki, układ funkcjonuje w sposób spodziewany, pewnie i bezawaryjnie. Niemniej szkoda, że jest nieczuły przez szybę 4mm. Warto będzie jeszcze z nim poeksperymentować. Jest to ciekawe rozwiązanie o pewnych możliwościach konfiguracji.

Cały układ zasilany napięciem 5V DC, wyposażony w czujniki pomiarowe oraz wyświetlacz zjadał tylko 9mA prądu. Dla mnie to rewelacyjny wynik.

Układ o podobnej funkcjonalności planowałem zbudować od … nie powiem  😉 a powstał niechcący przy okazji poznawania właściwości ciekawych podzespołów. Pewno powstanie niebawem prezentacja modułu sensora dotykowego.
Planuję jeszcze innowacyjne rozwiązanie obudowy, ale o tym gdy takowa powstanie. Najpierw konstrukcję trzeba przenieść z płytki stykowej  😉 a być może dodam jeszcze jakąś funkcjonalność.


A.D. 2016-03-26

zestawienie różnych typów czujników temperatury Właśnie przypomniałem sobie o jeszcze jednym zestawieniu czujników temperatury które funkcjonuje w pewnym moim urządzeniu. Podłączone są do niego sensory: PT1000, DHT11, DS18B20. Zbieram z nich odczyty które są kolekcjonowane i prezentowane w postaci wykresu. Do analizy zapraszam już samodzielnie.


Opis przedstawiam szerokiemu gronu szybciej niż planowałem … też dla zabicia czasu koledze rithien-owi, który w dzień swoich urodzin przebywa w szpitalu.

Otagowano , , , , , , .Dodaj do zakładek Link.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

dwa × trzy =

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.