TapHome

Zhong Sheng (XY) Temperatura, wilgotność, barometr

Modbus TCP
Dodane przez
Ostatnia aktualizacja: 06. 2026
Zhong Sheng (XY) Temperatura, wilgotność, barometr

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).

1
2
3
4
┌─────────────┐            ┌───────────────────────┐            ┌──────────────────┐
│ TapHome Core│  Ethernet  │ Ethernet ↔ RS-485     │  RS-485    │ Czujnik XY       │
│             │ ─────────▶ │ brama (TCP port 502)  │ ─────────▶ │ (Slave ID 1)     │
└─────────────┘            └───────────────────────┘            └──────────────────┘
Okablowanie RS-485
Kodowanie kolorów przewodów RS-485 na zaciskach tulejkowych

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łyFunkcja
CzerwonyV+ (zasilanie, 4,5–18 V DC)
CzarnyGND (masa zasilania / sygnału)
ŻółtyRS-485 A+
BiałyRS-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.

Okablowanie RS-485 do bramy Ethernet ↔ RS-485 (przykład DataLogger)

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:

UstawienieWartość
Baud rate9600 bps
Bity danych8
Parzystośćbrak
Bity stopu1
Adres slave1

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:

ParametrDomyślnieOpis
Adres IP192.168.1.0IP bramy Ethernet ↔ RS-485 w LAN
Slave ID1Adres 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:

ZmiennaDomyślnieJednostkaCel
CORTE0,5°COffset temperatury dodawany do każdego surowego odczytu temperatury
CORH0,01%RHOffset wilgotności dodawany do każdego surowego odczytu wilgotności
CORBAR17hPaOffset ciśnienia dodawany do każdego surowego odczytu ciśnienia

CORBAR = 17 to 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 od CORBAR = 0 i dostrój względem znanego barometru referencyjnego na wysokości instalacji. Również CORTE i CORH należ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,001 oznacza, ż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 to raw / 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:4H: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

RejestrParametrTyp danychSkala / offsetJednostkaInterwał odpytywania
H:0TemperaturauInt16/ 10 + CORTE (0,5)°C30 000 ms (poziom modułu)
H:1WilgotnośćuInt16× 0,001 + CORH (0,01) — zweryfikować%RH30 000 ms (poziom modułu)
H:4H:5Ciśnienie atmosferyczneuInt32/ 100 + CORBAR (17)hPa1 000 ms (zbyt agresywne)

Surowy typ danych uInt16 nie 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
  1. Pinguj IP bramy z tej samej podsieci co TapHome Core — jeśli nie odpowiada, problem jest po stronie LAN / zasilania, nie Modbus.
  2. Potwierdź, że brama jest skonfigurowana jako serwer Modbus TCP na porcie 502, a nie jako przezroczysty most TCP.
  3. Sprawdź, że ustawienia szeregowe RS-485 bramy odpowiadają 9600, 8-N-1 — niezgodność tutaj cicho wywoła timeouty bez żadnych odczytów.
  4. 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ę.
  5. Sprawdź okablowanie RS-485: A+ do A+, B− do B−, 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.

Dostępne urządzenia

Temperatura, wilgotność, barometr Moduł
Zmienne niestandardowe
CORBAR (numeric) = 17Offset ciśnienia atmosferycznego w hPa dodawany do każdego surowego odczytu barometru — używany jako korekta wysokości n.p.m. / poziomu referencyjnego specyficzna dla miejsca
Adjust in TapHome → Module Variables after import. Start with 0 and tune against a known reference barometer at the installation altitude; +17 hPa is a legacy site-specific default and will bias pressure readings if left unchanged.
CORH (numeric) = 0.01Offset wilgotności względnej w %RH dodawany do każdego surowego odczytu wilgotności — do kompensacji dryftu konkretnego czujnika
Adjust in TapHome → Module Variables after import. Typical factory calibration is within ±3 %RH; tune against a reference hygrometer.
CORTE (numeric) = 0.5Offset temperatury w °C dodawany do każdego surowego odczytu temperatury — do kompensacji dryftu konkretnego czujnika
Adjust in TapHome → Module Variables after import. Tune against a reference thermometer placed next to the sensor.
Ciśnienie atmosferyczne Zmienna Tylko do odczytu

Ciśnienie atmosferyczne z wbudowanego chipu klasy BMP w hPa, z zastosowanym offsetem CORBAR dla danej instalacji

Rejestr: H:4 uInt32 Jednostka: hPa

Ciśnienie atmosferyczne

Odczyt
MODBUSR(H, 4, uInt32)/100 + CORBAR
Temperatura Zmienna Tylko do odczytu

Temperatura powietrza otoczenia z wbudowanego czujnika rodziny SHT w °C, z zastosowanym offsetem CORTE dla danej instalacji

Rejestr: H:0 uInt16 Jednostka: °C

Temperatura

Odczyt
MODBUSR(H, 0, uInt16)/10 + CORTE
Wilgotność względna Zmienna Tylko do odczytu

Wilgotność względna z wbudowanego czujnika rodziny SHT w %RH, z zastosowanym offsetem CORH dla danej instalacji

Rejestr: H:1 uInt16 Jednostka: %RH

Wilgotność względna

Odczyt
MODBUSR(H, 1, uInt16)*0.001 + CORH
Połączenie: Modbus TCP • Slave ID: $[SlaveId]
Możliwe ulepszenia (10)
  • H:2 Dew Point — INT16 /100, °C — commonly exposed by SHT-family chips alongside temperature and humidity; not read by the current TapHome template.
  • H:3 Atmospheric Pressure (INT16 variant) — INT16 /10, hPa — alternative lower-resolution pressure register present on sister devices; this template uses the 32-bit variant at H:4 instead.
  • H:4 (frost point) Frost Point — INT16 /100, °C — useful for condensation prevention; register overlap with this template's barometer variant means it would only be available on firmware variants without the packed 32-bit pressure register.
  • H:5 (vapor pressure) Vapor Pressure / Wet Bulb / Vapor Concentration — Reference devices expose vapor pressure (/10, hPa), vapor concentration (/10, g/m³) and related psychrometric values; not known to be available on this specific Zhong Sheng (XY) rebrand.
  • H:0x0020 Temperature Unit Selector — UINT16 RW, 0=°C / 1=°F — configuration register for switching display units; not typically needed when the template fixes °C.
  • H:0x0200 Slave Address (writable) — UINT16 RW, 0..255 — would allow changing the Modbus slave ID from TapHome; intentionally left out because mis-writing it would break the connection.
  • H:0x0201 Baud Rate (writable) — UINT16 RW, 0..5 mapping to standard baud rates — same rationale as slave address: unsafe to expose in a user-editable template.
  • H:0x1000 Temperature (IEEE Float variant) — 32-bit IEEE float temperature at offset 0x1000; this template reads the cheaper uInt16 ×0.1 variant at H:0 instead.
  • H:0x1002 Humidity (IEEE Float variant) — 32-bit IEEE float humidity at offset 0x1002; this template reads the uInt16 variant at H:1 instead — consider switching to float if the uInt16 scaling proves wrong on real hardware.
  • H:0x1006 Atmospheric Pressure (IEEE Float variant) — 32-bit IEEE float pressure at offset 0x1006; alternative to the packed uInt32 this template uses at H:4.

Źródła

Znalazłeś problem z tym szablonem urządzenia?

Napisz nam, co nie działa, czego brakuje lub jak powinien zachowywać się szablon. Twoja opinia pomaga nam utrzymać katalog dokładnym.

Zweryfikowane przez TapHome

Chcesz tego użyć w swoim TapHome Core?

Otwórz ten szablon w portalu klienta, aby zastosować go w swoim domu, lub zaproponuj modyfikację i wyślij ją z powrotem do katalogu.

Otwórz w portalu