Kategorie: Obwody mikrokontrolera
Liczba wyświetleń: 9996
Komentarze do artykułu: 0

Pomiar temperatury i wilgotności w Arduino - wybór sposobów

 

Aby stworzyć domową stację pogodową lub termometr, musisz nauczyć się parować tablicę Arduino z urządzeniem do pomiaru temperatury i wilgotności. Pomiar temperatury można rozwiązać za pomocą termistora lub czujnika cyfrowego DS18B20, ale do pomiaru wilgotności używaj bardziej złożonych urządzeń - czujników DHT11 lub DHT22. W tym artykule pokażemy, jak mierzyć temperaturę i wilgotność za pomocą Arduino i tych czujników.

Pomiar temperatury i wilgotności w Arduino - wybór sposobów

Pomiar termistora

Najłatwiejszym sposobem ustalenia temperatury jest użycie termistor. Jest to rodzaj rezystora, którego rezystancja zależy od temperatury otoczenia. Istnieją termistory o dodatnim i ujemnym współczynniku temperaturowym rezystancji - odpowiednio PTC (zwane również pozystorami) i termistory NTC.

Na poniższym wykresie widać zależność rezystancji od temperatury. Linia przerywana pokazuje zależność dla ujemnego termistora TCS (NTC), a linia ciągła dla dodatniego termistora TCS (PTC).

Zależność rezystancji od temperatury

Co tu widzimy Pierwszą rzeczą, która rzuca się w oczy, jest to, że harmonogram termistora PTC jest zepsuty i trudno będzie zmierzyć kilka wartości temperatury, ale harmonogram termistora NTC jest mniej więcej jednolity, choć wyraźnie nieliniowy. Co to znaczy Użycie termistora NTC jest łatwiejsze do pomiaru temperatury, ponieważ łatwiej jest znaleźć funkcję, według której zmieniają się jego wartości.

Aby przekonwertować temperaturę na rezystancję, możesz ręcznie przyjąć wartości, ale jest to trudne do zrobienia w domu i potrzebujesz termometru, aby określić rzeczywiste wartości temperatury medium. W arkuszach danych niektórych komponentów taka tabela jest podana, na przykład, dla serii termistorów NTC firmy Vishay.

Datashit Vishay TC Thermistors

Następnie możesz zorganizować tłumaczenie za pośrednictwem gałęzi za pomocą funkcji if ... else lub switchcase. Jeśli jednak nie ma takich tabel w arkuszach danych, musisz obliczyć funkcję, zgodnie z którą rezystancja zmienia się wraz ze wzrostem temperatury.

Aby opisać tę zmianę, istnieje równanie Steinharta-Harta.

Równanie Steinharta-harta

gdzie A, B i C są stałymi termistorami wyznaczonymi przez pomiar trzech temperatur z różnicą co najmniej 10 stopni Celsjusza. Jednocześnie różne źródła wskazują, że dla typowego termistora NTC 10 kΩ są one równe:

Stałe termistora

B - współczynnik beta, jest obliczany na podstawie pomiaru rezystancji dla dwóch różnych temperatur. Jest to wskazane w arkuszu danych (jak pokazano poniżej) lub obliczane niezależnie.

B - współczynnik beta z arkusza danych

W takim przypadku B jest wskazane w postaci:

współczynnik beta

Oznacza to, że współczynnik został obliczony na podstawie danych uzyskanych podczas pomiaru rezystancji w temperaturach 25 i 100 stopni Celsjusza, i jest to najczęstsza opcja. Następnie oblicza się go według wzoru:

B = (ln (R1) - ln (R2)) / (1 / T1 - 1 / T2)

Typowy schemat połączeń termistora z mikrokontrolerem pokazano poniżej.

Schemat podłączenia termistora do mikrokontrolera

Tutaj R1 jest rezystorem stałym, termistor jest podłączony do źródła zasilania, a dane są pobierane z punktu środkowego między nimi, schemat warunkowo wskazuje, że sygnał jest dostarczany do pinu A0 - to wejście analogowe Arduino.

Schemat podłączenia termistora do mikrokontrolera

Aby obliczyć rezystancję termistora, możesz użyć następującego wzoru:

R termistora = R1⋅ ((Vcc / Voutput) −1)

Aby przetłumaczyć na język zrozumiały dla arduino, musisz pamiętać, że arduino ma 10-bitowy ADC, więc maksymalna cyfrowa wartość sygnału wejściowego (napięcie 5 V) wyniesie 1023. Następnie warunkowo:

  • Dmax = 1023;

  • D jest rzeczywistą wartością sygnału.

Następnie:

R termistora = R1⋅ ((Dmax / D) −1)

Teraz używamy tego do obliczenia rezystancji, a następnie do obliczenia temperatury termistora za pomocą równania beta w języku programowania dla Arduino. Szkic będzie taki:

Szkic

DS18B20

Jeszcze bardziej popularny do pomiaru temperatury za pomocą.Arduino znalazł czujnik cyfrowy DS18B20. Komunikuje się z mikrokontrolerem poprzez interfejs 1-żyłowy, możesz podłączyć kilka czujników (do 127) do jednego przewodu, a aby uzyskać do nich dostęp, musisz znaleźć identyfikator każdego z czujników.

Uwaga: powinieneś znać identyfikator, nawet jeśli używasz tylko 1 czujnika.

Cyfrowy czujnik DS18B20

Schemat podłączenia czujnika ds18b20 do Arduino wygląda następująco:

Schemat podłączenia czujnika ds18b20 do Arduino
Schemat podłączenia czujnika ds18b20 do Arduino

Istnieje również pasożytniczy tryb zasilania - jego schemat połączeń wygląda następująco (potrzebujesz dwóch przewodów zamiast trzech):

Schemat podłączenia czujnika Arduino

W tym trybie poprawne działanie nie jest gwarantowane podczas pomiaru temperatur powyżej 100 stopni Celsjusza.

Cyfrowy czujnik temperatury DS18B20 składa się z całego zestawu węzłów, jak każdy inny SIMS. Możesz obejrzeć jego urządzenie wewnętrzne poniżej:

Cyfrowy czujnik temperatury DS18B20

Aby z tym pracować, musisz pobrać bibliotekę Onewire dla Arduino, a dla samego czujnika zaleca się użycie biblioteki DallasTemperature.

Szkic

Ten przykład kodu pokazuje podstawy pracy z 1 czujnikiem temperatury, wynik w stopniach Celsjusza jest wysyłany przez port szeregowy po każdym odczycie.


DHT11 i DHT22 - czujniki wilgotności i temperatury

DHT11 i DHT22 - czujniki wilgotności i temperatury

Te czujniki są popularne i często używane do pomiaru wilgotności i temperatury otoczenia. W poniższej tabeli wskazaliśmy ich główne różnice.

 
DHT11
DHT22
Oznaczanie wilgoci w zakresie
20-80%
0-100%
Dokładność pomiaru
5%
2-5%
Określanie temperatury
0 ° C do + 50 ° C
Od -40 ° C do + 125 ° C
Dokładność pomiaru
2,5%
plus lub minus 0,5 stopnia Celsjusza
Częstotliwość odpytywania
1 raz na sekundę
1 raz na 2 sekundy
Schemat podłączenia czujnika wilgotności do Arduino

Schemat połączeń jest dość prosty:

  • 1 wniosek - odżywianie;

  • 2 wnioski - dane;

  • 3 wniosek - nieużywany;

  • 4 wnioski - ogólny drut.

Jeśli czujnik jest wykonany w postaci modułu, będzie miał trzy wyjścia, ale nie jest potrzebny rezystor - jest już przylutowany do płytki.

Schemat podłączenia czujnika wilgotności w postaci modułu do arduino

Do pracy potrzebujemy biblioteki dht.h, nie ma jej w standardowym zestawie, więc należy ją pobrać i zainstalować w folderze bibliotek w folderze z arduino IDE. Obsługuje wszystkie czujniki z tej rodziny:

  • DHT 11;

  • DHT 21 (AM2301);

  • DHT 22 (AM2302, AM2321).

Przykładowe użycie biblioteki:

Przykład użycia biblioteki

Wniosek

W dzisiejszych czasach stworzenie własnej stacji do pomiaru temperatury i wilgotności jest bardzo proste dzięki platformie Arduino. Koszt takich projektów wynosi 3-4set rubli. Można użyć do żywotności baterii, a nie do wyjścia do komputera wyświetlanie znaków (opisaliśmy je w ostatnim artykule), następnie możesz zbudować urządzenie przenośne do użytku zarówno w domu, jak iw samochodzie. Napisz w komentarzach, czego jeszcze chciałbyś się dowiedzieć o prostych domowych wyrobach na arduino!

Zobacz także na ten temat:Popularne czujniki dla Arduino - połączenia, diagramy, szkice

Zobacz także na bgv.electricianexp.com:

  • Najpopularniejsze czujniki dla Arduino
  • Podłączanie czujników analogowych do Arduino, czytanie czujników
  • Zastosowanie mostka Wheatstone'a do pomiaru wielkości nieelektrycznych
  • Czujniki temperatury. Część druga Termistory
  • Czujniki wilgotności - sposób ich rozmieszczenia i działania

  •