
Zhong Sheng (XY) Temperatura, wilgotność, barometr to chiński trzy-w-jednym czujnik RS-485 Modbus, który udostępnia temperaturę otoczenia, wilgotność względną i ciśnienie atmosferyczne. Należy do tej samej rodziny OEM co znany przetwornik temperatury i wilgotności XY-MD02, rozszerzony o czujnik ciśnienia klasy BMP — jednak z niestandardowym układem rejestrów specyficznym dla tej wersji rebrand.
Szablon TapHome łączy się z czujnikiem przez Modbus TCP za pośrednictwem bramy Ethernet ↔ RS-485, nie bezpośrednio. Brama łączy TapHome Core (LAN) z magistralą RS-485, na której czujnik pracuje z konfigurowalnym Slave ID. Udostępnione są trzy pomiary — temperatura, wilgotność względna i ciśnienie atmosferyczne — każdy łączony z offsetem kalibracyjnym dla danej instalacji (CORTE, CORH, CORBAR).
Połączenie sprzętowe
Czujnik jest urządzeniem Modbus RTU na magistrali RS-485. TapHome Core dociera do niego przez sieć za pomocą bramy Ethernet ↔ RS-485 (odpowiednia jest dowolna standardowa brama Modbus TCP ↔ RTU, np. USR-TCP232, Waveshare lub równoważny konwerter na szynę DIN).
| |
Okablowanie RS-485

Czujnik używa kabla z zaciskami tulejkowymi z czterema żyłami zgodnie z konwencją referencji Seeed S-THP-01A (identyczny pin-out z większością czujników serii XY):
| Kolor żyły | Funkcja |
|---|---|
| Czerwony | V+ (zasilanie, 4,5–18 V DC) |
| Czarny | GND (masa zasilania / sygnału) |
| Żółty | RS-485 A+ |
| Biały | RS-485 B− |
Podłącz A+ i B− do odpowiednich zacisków bramy Ethernet ↔ RS-485 i współdziel GND między czujnikiem, jego zasilaczem i bramą, aby uniknąć problemów z trybem wspólnym.

Dokładne kolory żył mogą się nieznacznie różnić między partiami OEM — przed załączeniem zasilania zawsze sprawdzaj oznaczenie na kablu. Odwrócenie polaryzacji zasilania nie uszkodzi czujnika (ma on ochronę przed odwrotną polaryzacją), ale czujnik po prostu nie odpowie.
Przy magistralach dłuższych niż ~100 m użyj ekranowanego kabla ze skrętką dla
A+/B−i dodaj rezystor terminujący 120 Ω na końcu linii. Utrzymuj wszystkie czujniki na wspólnym potencjale referencyjnym GND.
Włączanie komunikacji Modbus
Nie ma potrzeby żadnego menu ani przełączników DIP — czujnik opuszcza fabrykę z włączonym Modbus RTU. Integracja polega wyłącznie na okablowaniu magistrali RS-485, skonfigurowaniu bramy i podaniu dwóch wartości podczas importu w TapHome.
Parametry szeregowe RS-485 (ustawienia fabryczne)
Seria XY i referencja Seeed S-THP-01A opuszczają fabrykę z tymi samymi ustawieniami szeregowymi. Szablon TapHome zakłada te wartości domyślne:
| Ustawienie | Wartość |
|---|---|
| Baud rate | 9600 bps |
| Bity danych | 8 |
| Parzystość | brak |
| Bity stopu | 1 |
| Adres slave | 1 |
Baud rate i adres slave są konfigurowalne programowo przez rejestry holding bezpośrednio na czujniku (patrz Seeed S-THP-01A user guide, rejestry 0x0200 / 0x0201, lub XY-MD02 datasheet). Szablon TapHome celowo nie udostępnia tych rejestrów — zmiana z TapHome przerwałaby aktywne połączenie.
Konfiguracja bramy
Skonfiguruj bramę Ethernet ↔ RS-485 jako slave Modbus TCP (serwer) na porcie TCP 502, która proxyuje na magistralę RS-485 pod nią przy 9600, 8-N-1. Przydziel jej statyczny adres IP (lub rezerwację DHCP), aby nie zmienił się po zaniku zasilania.
Jeśli brama obsługuje wiele mapowań slave, pozostaw ten czujnik na Slave ID 1 — jest to prostsze niż przepisywanie adresu czujnika i odpowiada wartości domyślnej szablonu.
Parametry importu TapHome
Podczas importu szablonu w TapHome podaj dwie wartości:
| Parametr | Domyślnie | Opis |
|---|---|---|
| Adres IP | 192.168.1.0 | IP bramy Ethernet ↔ RS-485 w LAN |
| Slave ID | 1 | Adres Modbus czujnika na magistrali RS-485 |
Zmienne modułu — offsety kalibracyjne
Po imporcie w TapHome → Zmienne modułu dostępne są trzy zmienne na poziomie modułu do kalibracji dla danej instalacji. Są stosowane do każdego surowego odczytu:
| Zmienna | Domyślnie | Jednostka | Cel |
|---|---|---|---|
CORTE | 0,5 | °C | Offset temperatury dodawany do każdego surowego odczytu temperatury |
CORH | 0,01 | %RH | Offset wilgotności dodawany do każdego surowego odczytu wilgotności |
CORBAR | 17 | hPa | Offset ciśnienia dodawany do każdego surowego odczytu ciśnienia |
CORBAR = 17to korekta wysokości n.p.m. specyficzna dla miejsca — musi być dostrojona dla każdej instalacji. Pozostawienie wartości fabrycznej wprowadzi bias +17 hPa do każdego odczytu ciśnienia względem rzeczywistego lokalnego ciśnienia atmosferycznego. Zacznij odCORBAR = 0i dostrój względem znanego barometru referencyjnego na wysokości instalacji. RównieżCORTEiCORHnależy zweryfikować względem termometru/higrometru referencyjnego umieszczonego obok czujnika.
Możliwości urządzenia
Szablon udostępnia trzy urządzenia czujnikowe tylko do odczytu, wszystkie odczytujące rejestry holding przez bramę:
Temperatura
Temperatura powietrza z wbudowanego chipu klasy SHT, odczytywana z H:0 (uInt16) i skalowana jako raw / 10 + CORTE. Raportowana w °C z rozdzielczością 0,1 °C i typową dokładnością ±0,5 °C.
Wilgotność względna
Wilgotność względna z tego samego chipu klasy SHT, odczytywana z H:1 (uInt16) i skalowana jako raw × 0,001 + CORH. Raportowana w %RH.
Współczynnik skalowania wilgotności jest podejrzany. Mnożnik
×0,001oznacza, że surowy rejestr przy 100 %RH musiałby zawierać ≈ 100 000, co przekracza rozmiar rejestru 16-bitowego (maks. 65 535). Referencyjny XY-MD02 używa/10, a Seeed S-THP-01A używa/100. Najbardziej prawdopodobna poprawna formuła toraw / 10— zgodna z konwencją XY-MD02. Sprawdź odczyty na rzeczywistym sprzęcie przed zaufaniem im; jeśli raportowana wilgotność jest przycięta lub dziko poza zakresem, dostosuj szablon lub użyj innego wariantu XY.
Ciśnienie atmosferyczne
Ciśnienie atmosferyczne z wbudowanego chipu klasy BMP, odczytywane z H:4 jako 32-bitowa liczba unsigned (rozciągająca się na H:4–H:5) i skalowane jako raw / 100 + CORBAR. Raportowane w hPa z rozdzielczością 0,1 hPa.
Interwał odpytywania na poziomie urządzenia w szablonie XML wynosi 1 000 ms dla barometru, co jest zbyt agresywne — ciśnienie atmosferyczne zmienia się w rzędach minut, nie sekund. Po imporcie zwiększ interwał odpytywania barometru w TapHome → Zmienne urządzenia do 15 000–30 000 ms, aby zmniejszyć obciążenie magistrali bez utraty użytecznej rozdzielczości. Interwał 30 000 ms na poziomie modułu, już używany przez temperaturę i wilgotność, jest dobrym punktem wyjścia również dla barometru.
Podsumowanie rejestrów
| Rejestr | Parametr | Typ danych | Skala / offset | Jednostka | Interwał odpytywania |
|---|---|---|---|---|---|
H:0 | Temperatura | uInt16 | / 10 + CORTE (0,5) | °C | 30 000 ms (poziom modułu) |
H:1 | Wilgotność | uInt16 | × 0,001 + CORH (0,01) — zweryfikować | %RH | 30 000 ms (poziom modułu) |
H:4–H:5 | Ciśnienie atmosferyczne | uInt32 | / 100 + CORBAR (17) | hPa | 1 000 ms (zbyt agresywne) |
Surowy typ danych
uInt16nie może natywnie reprezentować wartości ujemnych. Na rzeczywistym sprzęcie XY-MD02 temperatury poniżej zera przychodzą jako liczby całkowite ze znakiem w kodzie uzupełnienia do dwóch. Jeśli czujnik jest wdrożony w środowisku, które regularnie spada poniżej 0 °C, zweryfikuj na rzeczywistym sprzęcie, czy temperatury ujemne są poprawnie dekodowane, zanim na nich polegasz.
Rozwiązywanie problemów
Brak odczytów po imporcie
- Pinguj IP bramy z tej samej podsieci co TapHome Core — jeśli nie odpowiada, problem jest po stronie LAN / zasilania, nie Modbus.
- Potwierdź, że brama jest skonfigurowana jako serwer Modbus TCP na porcie 502, a nie jako przezroczysty most TCP.
- Sprawdź, że ustawienia szeregowe RS-485 bramy odpowiadają 9600, 8-N-1 — niezgodność tutaj cicho wywoła timeouty bez żadnych odczytów.
- Sprawdź, że Slave ID czujnika odpowiada wartości wprowadzonej podczas importu w TapHome (domyślnie
1). Drugi czujnik na tej samej magistrali z tym samym adresem spowoduje kolizję. - Sprawdź okablowanie RS-485:
A+doA+,B−doB−, wspólny GND między czujnikiem, zasilaniem i bramą.
Niewiarygodne wartości wilgotności
Szablon XML używa mnożnika wilgotności × 0,001, który jest niezgodny z rodziną XY-MD02 (/10) i referencją Seeed S-THP-01A (/100). Jeśli wilgotność zacina się blisko zera lub nigdy nie osiąga prawdopodobnych wartości, surowy rejestr prawdopodobnie używa konwencji XY-MD02. Porównaj wartość surowego rejestru narzędziem debugowania Modbus (np. qModbus) względem higrometru referencyjnego; jeśli wartości surowe około 500 odpowiadają ~50 %RH, formuła powinna być /10 i szablon wymaga korekty.
Odczyt ciśnienia przesunięty o ~17 hPa
Domyślna wartość szablonu CORBAR = 17 to starsza korekta wysokości n.p.m. specyficzna dla miejsca. Jeśli ciśnienie konsekwentnie wynosi ~17 hPa więcej niż pobliski barometr referencyjny (np. stacja pogodowa), ustaw CORBAR na 0 w TapHome → Zmienne modułu i dostrój względem referencji.
Wysokie obciążenie magistrali / błędy komunikacji
Zwiększ interwał odpytywania barometru z 1 000 ms do 15 000–30 000 ms w TapHome → Zmienne urządzenia. Odpytywanie z częstotliwością 1 Hz na współdzielonej magistrali RS-485 zostawia mało pasma dla innych slave’ów i nie daje żadnej korzyści dla barometru.
Temperatura ujemna pokazywana jako ogromna liczba dodatnia
Szablon odczytuje temperaturę jako uInt16. Rzeczywisty sprzęt XY zwraca temperatury ujemne jako liczby całkowite ze znakiem w kodzie uzupełnienia do dwóch — surowa wartość 0xFF33 (≈ 65 331) zdekodowana jako unsigned wychodzi ≈ 6 533,1 °C, ale powinna być zdekodowana jako −20,5 °C. Jeśli czujnik jest zainstalowany w środowisku, które może spaść poniżej 0 °C, zweryfikuj zachowanie na rzeczywistym sprzęcie i rozważ zastąpienie szablonu wariantem ze znakowym Int16 przed zaufaniem odczytom poniżej zera.