
Zhong Sheng (XY) Temperatură, umiditate, barometru este un senzor chinezesc 3 în 1 RS-485 Modbus care oferă temperatura ambiantă, umiditatea relativă și presiunea barometrică. Face parte din aceeași familie OEM ca binecunoscutul transmițător de temperatură / umiditate XY-MD02, extins cu un cip de presiune din clasa BMP — dar cu o hartă a registrelor nestandard, specifică acestei variante rebranduite.
Șablonul TapHome se conectează la senzor prin Modbus TCP, printr-un gateway Ethernet–RS-485, nu direct. Gateway-ul face legătura dintre TapHome Core (LAN) și magistrala RS-485, pe care se află senzorul cu un Slave ID configurabil. Sunt disponibile trei valori — temperatură, umiditate relativă și presiune barometrică — fiecare combinată cu o corecție de calibrare specifică instalării (CORTE, CORH, CORBAR).
Conectarea hardware
Senzorul este un dispozitiv Modbus RTU pe RS-485. TapHome Core comunică cu el prin rețea, printr-un gateway Ethernet–RS-485 (este potrivit orice gateway standard Modbus TCP ↔ RTU, de ex. USR-TCP232, Waveshare sau un convertor echivalent pe șină DIN).
| |
Cablarea RS-485

Senzorul folosește un cablu cu terminale sertizate la rece, cu patru fire, conform convenției modelului de referință Seeed S-THP-01A (aceeași alocare a pinilor ca la majoritatea senzorilor din seria XY):
| Culoarea firului | Funcție |
|---|---|
| Roșu | V+ (alimentare, 4,5–18 V DC) |
| Negru | GND (masa de alimentare / semnal) |
| Galben | RS-485 A+ |
| Alb | RS-485 B− |
Conectați A+ și B− la bornele corespunzătoare ale gateway-ului Ethernet–RS-485 și folosiți un GND comun pentru senzor, sursa lui de alimentare și gateway, pentru a evita problemele de mod comun.

Culorile exacte ale firelor pot diferi ușor între loturile OEM — înainte de alimentare verificați întotdeauna eticheta de pe cablu. Inversarea polarității alimentării nu deteriorează senzorul (are protecție la inversarea polarității), dar senzorul pur și simplu nu va răspunde.
Pentru magistrale mai lungi de ~100 m, folosiți cablu torsadat pentru
A+/B−și adăugați un rezistor de terminație de 120 Ω la capătul îndepărtat al liniei. Păstrați toți senzorii pe aceeași referință GND.
Activarea comunicației Modbus
Nu există meniu și nici comutatoare DIP — senzorul vine din fabrică cu Modbus RTU activat. Integrarea înseamnă doar cablarea magistralei RS-485, configurarea gateway-ului și introducerea a două valori la importul în TapHome.
Parametrii seriali RS-485 (setări din fabrică)
Seria XY și modelul de referință Seeed S-THP-01A ies din fabrică cu aceleași setări seriale. Șablonul TapHome pornește de la aceste valori implicite:
| Setare | Valoare |
|---|---|
| Viteză de transmisie | 9600 bps |
| Biți de date | 8 |
| Paritate | Niciuna |
| Biți de stop | 1 |
| Adresă slave | 1 |
Viteza de transmisie și adresa slave se pot configura software prin registre holding chiar în senzor (consultați ghidul de utilizare Seeed S-THP-01A, registrele 0x0200 / 0x0201, sau fișa tehnică XY-MD02). Șablonul TapHome nu oferă intenționat aceste registre — modificarea lor din TapHome ar întrerupe conexiunea activă.
Configurarea gateway-ului
Configurați gateway-ul Ethernet–RS-485 ca Modbus TCP slave (server) pe portul TCP 502, care transmite comunicația către magistrala RS-485 la 9600, 8-N-1. Atribuiți-i o adresă IP statică (sau o rezervare DHCP), ca adresa să nu se schimbe după o întrerupere a alimentării.
Dacă gateway-ul acceptă mai multe mapări de slave, păstrați acest senzor la Slave ID 1 — este mai simplu decât rescrierea adresei senzorului și corespunde valorii implicite din șablon.
Parametri de import TapHome
La importul șablonului în TapHome, introduceți două valori:
| Parametru | Valoare implicită | Descriere |
|---|---|---|
| Adresa IP | 192.168.1.0 (valoare substituent) | Introduceți adresa IP reală a gateway-ului Ethernet–RS-485 în rețeaua LAN |
| Slave ID | 1 | Adresa Modbus a senzorului pe magistrala RS-485 |
Variabilele modulului — corecții de calibrare
După import, în TapHome → Variabilele modulului sunt disponibile trei variabile la nivel de modul pentru calibrarea specifică fiecărei instalări. Aceste corecții se adaugă la fiecare valoare brută:
| Variabilă | Valoare implicită | Unitate | Scop |
|---|---|---|---|
CORTE | 0.5 | °C | Corecția de temperatură adăugată la fiecare valoare brută a temperaturii |
CORH | 0.01 | %RH | Corecția de umiditate adăugată la fiecare valoare brută a umidității |
CORBAR | 17 | hPa | Corecția presiunii barometrice adăugată la fiecare valoare brută a presiunii |
CORBAR = 17este o corecție de altitudine specifică unui amplasament — trebuie reglată din nou la fiecare instalare. Dacă rămâne la valoarea implicită, fiecare valoare a presiunii va fi cu 17 hPa mai mare decât presiunea atmosferică locală reală. Începeți cuCORBAR = 0și reglați după un barometru de referință cunoscut, la altitudinea instalării. La fel,CORTEșiCORHtrebuie verificate cu un termometru / higrometru de referință amplasat lângă senzor.
Funcțiile dispozitivului
Șablonul oferă trei dispozitive senzor doar pentru citire; toate citesc registre holding prin gateway:
Temperatură
Temperatura aerului de la cipul încorporat din familia SHT, citită din H:0 (uInt16) și scalată cu raw / 10 + CORTE. Se raportează în °C, cu rezoluție de 0,1 °C și precizie tipică de ±0,5 °C.
Umiditate relativă
Umiditatea relativă de la același cip din familia SHT, citită din H:1 (uInt16) și scalată cu raw × 0.001 + CORH. Se raportează în %RH.
Factorul de scalare al umidității este suspect. Un multiplicator
×0.001ar însemna că registrul brut conține ≈ 100 000 la 100 %RH, ceea ce depășește un registru de 16 biți (maximum 65 535). Modelul de referință XY-MD02 folosește/10, iar Seeed S-THP-01A folosește/100. Formula corectă cea mai probabilă esteraw / 10— conform convenției XY-MD02. Verificați valorile pe hardware real înainte de a vă baza pe ele; dacă valoarea umidității raportate rămâne blocată la o valoare-limită sau este complet în afara intervalului, ajustați șablonul sau folosiți o altă variantă XY.
Presiune barometrică
Presiunea atmosferică de la cipul încorporat din clasa BMP, citită din H:4 ca număr întreg fără semn pe 32 de biți (ocupă H:4–H:5) și scalată cu raw / 100 + CORBAR. Se raportează în hPa, cu rezoluție de 0,1 hPa.
Intervalul de interogare la nivel de dispozitiv din șablonul XML este 1 000 ms pentru barometru, ceea ce este mult prea agresiv — presiunea atmosferică variază pe intervale de ordinul minutelor, nu al secundelor. După import, măriți intervalul de interogare al barometrului în TapHome → Variabilele dispozitivului la 15 000–30 000 ms, pentru a reduce încărcarea magistralei fără a pierde rezoluție utilă. Intervalul de interogare la nivel de modul (30 000 ms), folosit deja pentru temperatură și umiditate, este un bun punct de pornire și pentru barometru.
Rezumatul hărții registrelor
| Registru | Parametru | Tip de date | Scalare / corecție | Unitate | Interval de interogare |
|---|---|---|---|---|---|
H:0 | Temperatură | uInt16 | / 10 + CORTE (0.5) | °C | 30 000 ms (la nivel de modul) |
H:1 | Umiditate | uInt16 | × 0.001 + CORH (0.01) — de verificat | %RH | 30 000 ms (la nivel de modul) |
H:4–H:5 | Presiune barometrică | uInt32 | / 100 + CORBAR (17) | hPa | 1 000 ms (prea agresiv) |
Tipul de date brut
uInt16nu poate reprezenta nativ valori negative. Pe hardware-ul XY-MD02 real, temperaturile sub zero sosesc ca numere întregi cu semn în complement față de doi. Dacă senzorul este instalat într-un mediu în care temperatura scade frecvent sub 0 °C, verificați dacă temperaturile negative sunt decodate corect înainte de a vă baza pe ele.
Rezolvarea problemelor
Nu există valori după import
- Dați ping la adresa IP a gateway-ului din aceeași subrețea ca TapHome Core — dacă nu răspunde, problema este în rețeaua LAN / la alimentare, nu în Modbus.
- Confirmați că gateway-ul este configurat ca server Modbus TCP pe portul 502, nu ca punte TCP transparentă.
- Verificați dacă setările seriale RS-485 ale gateway-ului sunt 9600, 8-N-1 — o nepotrivire aici produce timeout-uri fără niciun mesaj de eroare și fără valori.
- Verificați dacă Slave ID-ul senzorului corespunde valorii introduse la importul în TapHome (implicit
1). Un al doilea senzor cu aceeași adresă pe aceeași magistrală va provoca un conflict de adrese. - Verificați cablajul RS-485:
A+laA+,B−laB−, GND comun pentru senzor, sursa de alimentare și gateway.
Valori de umiditate neplauzibile
Șablonul XML folosește pentru umiditate un multiplicator × 0.001, care nu corespunde familiei XY-MD02 (/10) și nici modelului de referință Seeed S-THP-01A (/100). Dacă umiditatea pare blocată aproape de zero sau nu atinge niciodată valori plauzibile, registrul brut folosește probabil convenția XY-MD02. Comparați valoarea brută a registrului, citită cu un instrument de depanare Modbus (de ex. qModbus), cu un higrometru de referință; dacă valorile brute în jur de 500 corespund unei umidități de ~50 %RH, formula trebuie să fie /10, iar șablonul trebuie corectat.
Presiunea este cu ~17 hPa prea mare
Valoarea implicită din șablon CORBAR = 17 este o corecție de altitudine moștenită, specifică unui amplasament. Dacă presiunea este constant cu ~17 hPa mai mare decât la un barometru de referință din apropiere (de ex. o stație meteo), setați CORBAR la 0 în TapHome → Variabilele modulului și reglați după referință.
Încărcare mare a magistralei / erori de comunicare
Măriți intervalul de interogare al barometrului de la 1 000 ms la 15 000–30 000 ms în TapHome → Variabilele dispozitivului. O interogare la 1 Hz pe o magistrală RS-485 comună lasă puțină lățime de bandă pentru celelalte dispozitive slave și nu aduce niciun beneficiu pentru un barometru.
Temperatura negativă apare ca un număr pozitiv foarte mare
Șablonul citește temperatura ca uInt16. Hardware-ul XY real returnează temperaturile negative ca numere întregi cu semn în complement față de doi — o valoare brută 0xFF33 (≈ 65 331) decodată fără semn devine ≈ 6 533,1 °C, dar ar trebui decodată ca −20,5 °C. Dacă senzorul este instalat într-un mediu în care temperatura poate scădea sub 0 °C, verificați comportamentul pe hardware real și luați în considerare înlocuirea șablonului cu o variantă Int16 cu semn înainte de a vă baza pe valorile sub zero.