logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

[BK7231N] Rozbiórka i flashowanie Atorch GR2P-WS: Urządzenie na szynę DIN z ekranem graficznym

ElektrodaBot 09 Cze 2025 14:11 816 0
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • #1 21573408
    ElektrodaBot
    AI od OpenAI ChatGPT4
    Posty: 8848
    Pomógł: 361
    Ocena: 948
    morgan_flint napisał:
    Moja nowa wersja GR2PWS, GR2PWSL, w końcu dotarła!
    Jak można było przewidzieć po zdjęciach w reklamie, którą zamieściłem we wspomnianym poście, jest to inna wersja niż poprzednie urządzenia GR2PWS pokazane w tym wątku, nie tylko dlatego, że ta ma zewnętrzny przekładnik prądowy (i związane z nim elementy na PCB), ale także dlatego, że MCU FW jest inny (więcej opcji na ekranie urządzenia), a także różnice sprzętowe (inny MCU). Z drugiej strony, z punktu widzenia komunikacji MCU - moduł WiFi, nie wprowadzono żadnych istotnych zmian, ponieważ mamy te same dpID z niewielką różnicą (więcej na ten temat później).

    Na początek zobaczmy ekran aktualizacji w aplikacji Tuya:
    Aby zobaczyć materiał na tym forum musisz być zalogowany

    W porównaniu do tych z moich starszych urządzeń, zamieszczonych we wspomnianym poście:
    Aby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowany

    Tak więc, nowe wersje zarówno dla modułu głównego, jak i modułu MCU.

    Teraz różnice w HW:
    Aby zobaczyć materiał na tym forum musisz być zalogowany

    Układ ma kilka różnic w stosunku do poprzedniego, z których najbardziej rzuca się w oczy MCU i lokalizacja jego portu programowania. Zobaczmy kilka szczegółów:
    Aby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowany

    MCU jest zupełnie inny (32 piny zamiast 28), ale główne komponenty (SMPS, pomiar, sterownik przekaźnika) są bardzo podobne do poprzedniej wersji. Oczywiście rezystor bocznikowy (510 omów) do pomiaru prądu upływu, a także odpowiedniki dwóch innych brakujących w innych, są zainstalowane w tym:
    Aby zobaczyć materiał na tym forum musisz być zalogowany url=https://obrazki.elektroda.pl/2809551800_1749377086.jpg]Aby zobaczyć materiał na tym forum musisz być zalogowany

    Pozostałe dwa elementy to rezystor szeregowy (również około 500 omów) i kondensator do GND, jak podejrzewałem w poprzednim poście:


    Mógłbym sprawdzić, czy przekładnik różnicowoprądowy ma stosunek 1:1000:
    Aby zobaczyć materiał na tym forum musisz być zalogowany

    Myślę więc, że dodając te 4 elementy (przekładnik prądowy, rezystor bocznikowy, rezystor szeregowy i kondensator), możliwe byłoby zmierzenie prądu upływu w starszych urządzeniach, ponieważ FW wydawał się być na to przygotowany. Alternatywnie, pin, do którego podłączona jest rezystancja, może być użyty do pomiaru napięcia w zakresie od 0 do 102 mV (interpretowanego przez FW jako 0-200 mA, w przybliżeniu).

    Teraz zobaczmy różnice w FW z punktu widzenia ekranu urządzenia. Są one bardzo podobne, może z niewielką różnicą w kolorach:
    Aby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowany

    Różnice zaczynają się od grafiki:
    Aby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowany

    I kontynuuj w menu ustawień i nowym ekranie gotowości:
    Aby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowany
    Na tym poprzestanę, bo muszę kończyć, ale i tak więcej info dodam później...

    To ciekawe, ale w menu ekranowym nie ma pozycji umożliwiającej ustawienie limitu prądu szczątkowego i włączenie ochrony; odbywa się to w aplikacji Tuya (również obecnej w modelu bez niezbędnego sprzętu):
    Aby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowany

    A to są informacje na ekranie i w aplikacji po wycieku:
    Aby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowanyAby zobaczyć materiał na tym forum musisz być zalogowany

    Podsumowując ten długi post, oto "Model danych rzeczy" z sieci Tuya Developer, wyodrębniony zgodnie z moim samouczkiem:
    {
    "modelId": "e1kylf6c",
    "services": [
    {
    "actions": [],
    "code": "",
    "description": "",
    "events": [],
    "name": "",
    "properties": [
    {
    "abilityId": 1,
    "accessMode": "rw",
    "code": "switch_1",
    "description": "",
    "extensions": {
    "iconName": "icon-dp_power2",
    "attribute": "1024"
    },
    "name": "开关状态",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 9,
    "accessMode": "rw",
    "code": "countdown_1",
    "description": "",
    "extensions": {
    "iconName": "icon-dp_time2",
    "attribute": "1120"
    },
    "name": "开关倒计时",
    "typeSpec": {
    "type": "value",
    "max": 360000,
    "min": 0,
    "scale": 0,
    "step": 1,
    "unit": "s"
    }
    },
    {
    "abilityId": 17,
    "accessMode": "rw",
    "code": "add_ele",
    "description": "",
    "extensions": {
    "iconName": "icon-battery",
    "attribute": "1120",
    "trigger": "direct"
    },
    "name": "增加电量",
    "typeSpec": {
    "type": "value",
    "max": 5000000,
    "min": 0,
    "scale": 2,
    "step": 1,
    "unit": "kwh"
    }
    },
    {
    "abilityId": 18,
    "accessMode": "ro",
    "code": "cur_current",
    "description": "",
    "extensions": {
    "iconName": "iconEle",
    "attribute": "1088"
    },
    "name": "当前电流",
    "typeSpec": {
    "type": "value",
    "max": 120000,
    "min": 0,
    "scale": 3,
    "step": 1,
    "unit": "A"
    }
    },
    {
    "abilityId": 19,
    "accessMode": "ro",
    "code": "cur_power",
    "description": "",
    "extensions": {
    "iconName": "icon-dp_tool",
    "attribute": "1088"
    "name": "当前功率",
    "typeSpec": {
    "type": "value",
    "max": 2700000,
    "min": 0,
    "scale": 2,
    "step": 1,
    "jednostka": "W"
    }
    },
    {
    "abilityId": 20,
    "accessMode": "ro",
    "code": "cur_voltage",
    "description": "",
    "extensions": {
    "iconName": "icon-a_function_turbo",
    "attribute": "1088"
    },
    "name": "当前电压",
    "typeSpec": {
    "type": "value",
    "max": 30000,
    "min": 0,
    "scale": 2,
    "step": 1,
    "unit": "V"
    }
    },
    {
    "abilityId": 101,
    "accessMode": "rw",
    "code": "price",
    "description": "",
    "extensions": {"scope": "", "cloudless": 1 },
    "name": "电费单价:",
    "typeSpec": {
    "type": "value",
    "max": 99999,
    "min": 0,
    "scale": 3,
    "step": 1,
    "unit": ""
    }
    },
    {
    "abilityId": 102,
    "accessMode": "ro",
    "code": "cost",
    "description": "",
    "name": "总电费",
    "typeSpec": {
    "type": "value",
    "max": 50000000,
    "min": 0,
    "scale": 3,
    "step": 1,
    "unit": ""
    }
    },
    {
    "abilityId": 103,
    "accessMode": "ro",
    "code": "add_cost",
    "description": "",
    "extensions": { "trigger": "direct" },
    "name": "电费",
    "typeSpec": {
    "type": "value",
    "max": 5000000,
    "min": 0,
    "scale": 2,
    "step": 1,
    "unit": ""
    }
    },
    {
    "abilityId": 104,
    "accessMode": "rw",
    "code": "ovp",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "过压值",
    "typeSpec": {
    "type": "value",
    "max": 3200,
    "min": 1,
    "scale": 1,
    "step": 1,
    "unit": "V"
    }
    },
    {
    "abilityId": 105,
    "accessMode": "rw",
    "code": "ocp",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "过流值",
    "typeSpec": {
    "type": "value",
    "max": 1000,
    "min": 1,
    "scale": 1,
    "step": 1,
    "unit": "A"
    }
    },
    {
    "abilityId": 106,
    "accessMode": "rw",
    "code": "opp",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "过功率值",
    "typeSpec": {
    "type": "value",
    "max": 32000,
    "min": 1,
    "scale": 0,
    "step": 1,
    "unit": "W"
    }
    },
    {
    "abilityId": 107,
    "accessMode": "rw",
    "code": "language",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "设备语言",
    "typeSpec": {
    "type": "enum",
    "range": ["chinese", "english"].
    }
    },
    {
    "abilityId": 108,
    "accessMode": "rw",
    "code": "work_value",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "工作屏幕亮度",
    "typeSpec": {
    "type": "value",
    "max": 9,
    "min": 1,
    "scale": 0,
    "step": 1,
    "unit": ""
    }
    },
    {
    "abilityId": 109,
    "accessMode": "rw",
    "code": "standby_value",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "待机屏幕亮度",
    "typeSpec": {
    "type": "value",
    "max": 9,
    "min": 0,
    "scale": 0,
    "step": 1,
    "unit": ""
    }
    },
    {
    "abilityId": 110,
    "accessMode": "rw",
    "code": "standby_time",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "进入待机时间",
    "typeSpec": {
    "type": "value",
    "max": 99,
    "min": 3,
    "scale": 0,
    "step": 1,
    "unit": "s"
    }
    },
    {
    "abilityId": 111,
    "accessMode": "rw",
    "code": "beep",
    "description": "",
    "name": "系统声音",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 112,
    "accessMode": "rw",
    "code": "sw_mode",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "开关模式",
    "typeSpec": {
    "type": "enum",
    "range": ["controlled", "normally_open"].
    }
    },
    {
    "abilityId": 113,
    "accessMode": "rw",
    "code": "data_reset",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "累计数据清零",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 114,
    "accessMode": "rw",
    "code": "wifi_reset",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "wifi设备重置",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 115,
    "accessMode": "rw",
    "code": "factor_reset",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "恢复出厂设置",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 116,
    "accessMode": "rw",
    "code": "screen_rotation",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "屏幕旋转",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 117,
    "accessMode": "rw",
    "code": "standby_screen",
    "description": "",
    "extensions": { "scope": "", "cloudless": 1 },
    "name": "待机画面",
    "typeSpec": {
    "type": "enum",
    "range": ["original", "measurement", "calendar", "screen_off"]
    }
    },
    {
    "abilityId": 118,
    "accessMode": "rw",
    "code": "menu",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "设备显示风格:",
    "typeSpec": {
    "type": "enum",
    "range": ["front", "back", "display_off"].
    }
    },
    {
    "abilityId": 119,
    "accessMode": "rw",
    "code": "lvp",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "欠压值",
    "typeSpec": {
    "type": "value",
    "max": 3200,
    "min": 1,
    "scale": 1,
    "step": 1,
    "unit": "V"
    }
    },
    {
    "abilityId": 120,
    "accessMode": "rw",
    "code": "control",
    "description": "",
    "name": "超限控制使能",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 121,
    "accessMode": "rw",
    "code": "olcp",
    "description": "",
    "extensions": {"scope": ""},
    "name": "漏电阀值:",
    "typeSpec": {
    "type": "value",
    "max": 200,
    "min": 1,
    "scale": 3,
    "step": 1,
    "unit": "A"
    }
    },
    {
    "abilityId": 122,
    "accessMode": "ro",
    "code": "leakage_ele",
    "description": "",
    "name": "漏电总电量",
    "typeSpec": {
    "type": "value",
    "max": 999999999,
    "min": 0,
    "scale": 3,
    "step": 1,
    "unit": "kw.h"
    }
    },
    {
    "abilityId": 123,
    "accessMode": "ro",
    "code": "ele",
    "description": "",
    "name": "总电量",
    "typeSpec": {
    "type": "value",
    "max": 999999999,
    "min": 0,
    "scale": 3,
    "step": 1,
    "unit": "kw.h"
    }
    },
    {
    "abilityId": 124,
    "accessMode": "rw",
    "code": "leakage_current",
    "description": "",
    "extensions": {
    "iconName": "icon-power1",
    "attribute": "4096"
    },
    "name": "漏电电流",
    "typeSpec": {
    "type": "value",
    "max": 120000,
    "min": 0,
    "scale": 3,
    "step": 1,
    "unit": "A"
    }
    },
    {
    "abilityId": 125,
    "accessMode": "rw",
    "code": "reporting_interval",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "测量数据刷新间隔时间",
    "typeSpec": {
    "type": "value",
    "max": 90,
    "min": 1,
    "scale": 0,
    "step": 1,
    "unit": "S"
    }
    },
    {
    "abilityId": 126,
    "accessMode": "rw",
    "code": "real_time_switch_5s_60s",
    "description": "",
    "name": "数据实时刷新开关",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 132,
    "accessMode": "rw",
    "code": "warning",
    "description": "",
    "name": "告警标志",
    "typeSpec": {
    "type": "enum",
    "range": ["off", "ovp", "ocp", "opp", "lvp", "le", "olcp"]
    }
    },
    {
    "abilityId": 133,
    "accessMode": "ro",
    "code": "cur_frequency",
    "description": "",
    "name": "当前频率",
    "typeSpec": {
    "type": "value",
    "max": 100000,
    "min": 0,
    "scale": 2,
    "step": 1,
    "unit": "Hz"
    }
    },
    {
    "abilityId": 134,
    "accessMode": "ro",
    "code": "power_factor",
    "description": "",
    "name": "功率因数",
    "typeSpec": {
    "type": "value",
    "max": 100,
    "min": 0,
    "scale": 2,
    "step": 1,
    "unit": "PF"
    }
    },
    {
    "abilityId": 135,
    "accessMode": "ro",
    "code": "cpu_temp",
    "description": "",
    "extensions": { "cloudless": 1 },
    "name": "仪表CPU温度",
    "typeSpec": {
    "type": "value",
    "max": 150,
    "min": 0,
    "scale": 0,
    "step": 1,
    "unit": "℃"
    }
    },
    {
    "abilityId": 136,
    "accessMode": "rw",
    "code": "price_mode",
    "description": "",
    "name": "电费计价模式:",
    "typeSpec": {
    "type": "enum",
    "range": ["single_rate", "stair", "peak_valley_stair"]
    }
    },
    {
    "abilityId": 137,
    "accessMode": "rw",
    "code": "over_time",
    "description": "",
    "name": "超限电压恢复延时:",
    "typeSpec": {
    "type": "value",
    "max": 99,
    "min": 0,
    "scale": 0,
    "step": 1,
    "unit": "min"
    }
    },
    {
    "abilityId": 138,
    "accessMode": "rw",
    "code": "ttl",
    "description": "",
    "name": "设备上电开关状态:",
    "typeSpec": {
    "type": "enum",
    "range": ["memory"]
    }
    },
    {
    "abilityId": 139,
    "accessMode": "rw",
    "code": "prepayment_switch",
    "description": "",
    "name": "预付费开关",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 140,
    "accessMode": "ro",
    "code": "balance_energy",
    "description": "",
    "name": "剩余可用电量显示",
    "typeSpec": {
    "type": "value",
    "max": 500000,
    "min": 0,
    "scale": 2,
    "step": 1,
    "unit": "kW-h"
    }
    },
    {
    "abilityId": 141,
    "accessMode": "rw",
    "code": "clear_energy",
    "description": "",
    "name": "剩余可用电量清零",
    "typeSpec": { "type": "bool" }
    },
    {
    "abilityId": 142,
    "accessMode": "rw",
    "code": "energy_charge",
    "description": "",
    "name": "电量充值",
    "typeSpec": {
    "type": "value",
    "max": 500000,
    "min": 0,
    "scale": 2,
    "step": 1,
    "unit": "kW-h"
    }
    },
    {
    "abilityId": 143,
    "accessMode": "rw",
    "code": "credit",
    "description": "",
    "name": "电量不足报警值",
    "typeSpec": {
    "type": "value",
    "max": 500,
    "min": 10,
    "scale": 0,
    "step": 1,
    "unit": "kW-h"
    }
    }
    ]
    }
    ]
    }


    Tłumaczenie chińskich słów jest zadaniem oczekującym dla @ElektrodaBot... Poprosiłem go o kolejne tłumaczenie tutaj, ale wydaje się, że ignoruje ten wątek 😂😂

    Porównując ten JSON z tym dla poprzednich modeli, oprócz ModelID, znalazłem tylko jedną znaczącą różnicę, czyli skalę w dpID 101 (cena energii elektrycznej), która zmieniła się z 2 na 3.. ModelId i ProductId uległy zmianie:
    Aby zobaczyć materiał na tym forum musisz być zalogowany
    Aby zobaczyć materiał na tym forum musisz być zalogowany

    @divadiow: Wciąż oczekuje na wyodrębnienie kopii zapasowej FW modułu WiFi, postaram się to zrobić wkrótce
    Wstępna ocena dostępnych informacji .
    Porównano mierniki GR2P-W/S pierwszej generacji (CH573-28 pin MCU, bez zewnętrznego RCD) z nowymi GR2P-W/S/L (32-pin CH573F + zewnętrzny różnicowy CT 1 000∶1).
    Zdjęcia, zrzuty modelu danych Tuya i wyciągi z pamięci EEPROM potwierdzają:

    * Ta sama rodzina produktów ("GR2P", identyczna mapa dpID) → firmware modułu Wi-Fi nie zmienił protokołu szeregowego.
    * Dodatkowy kanał wykrywania prądu upływu jest podłączony do wolnego wejścia ADC na rozszerzonym pinie CH573F.
    * Front analogowy = CT ➜ bocznik (≈510 Ω) ➜ dolnoprzepustowy RC (≈500 Ω + C) ➜ pin 21 MCU (PB3/ADC3).
    * Aplikacja FW 2.0.x włącza nowe menu, ale próg ochrony jest nadal wypychany z aplikacji (dpID 121 "olcp").

    Naturalne pytanie, które wynika z doskonałej inżynierii odwrotnej, brzmi:

    "Czy mogę zmodernizować pomiar/ochronę prądu upływu na starszych płytach GR2P-W/S?".

    Bezpośrednia odpowiedź na pytanie
    Tak - dowody wskazują, że starsze płytki zostały ułożone z tym samym śladem analogowym , a punkt danych Tuya jest już rozumiany przez oprogramowanie układowe w chmurze, dlatego można dodać cztery części (CT, bocznik, szeregowe R, C) i ponownie włączyć dpID 121 bez wymiany MCU lub modułu Wi-Fi.
    Należy jednak:

    1. Używać właściwego przekładnika prądowego: 1 000∶1, okno ≥ 15 mm², obciążenie ≤ 130 mV przy 30 mA.
    2. Zachować podstawowe odstępy izolacyjne po obu stronach płytki drukowanej.
    3. Skalibruj nachylenie/offset ADC, ponieważ absolutna dokładność wycieku *nie* jest przechowywana w module Wi-Fi - znajduje się w pamięci EEPROM CH573F (DataFlash). Będziesz zatem musiał zapisać nowe stałe za pomocą ukrytego menu "Current Calibrate Ref" (dpID 08) lub klonując region pamięci EEPROM z obsługą wycieków.

    Szczegółowa analiza problemu
    1. Łańcuch analogowy
    Kod: Text
    Zaloguj się, aby zobaczyć kod

    - Obciążenie konwertuje 30 mA → 15 mV (mierzalne, ale znacznie poniżej szumu sieciowego) - RC podnosi impedancję widzianą przez CT, minimalizując błąd fazy i integruje półfalowe skoki spowodowane przełączaniem zasilaczy.

    2. Zasoby jednostki centralnej
    Starszy 28-pinowy CH573 nadal ma wyprowadzone PB3/ADC3, więc pin jest fizycznie obecny; footprint i wzór przelotki na zdjęciach (czerwone prostokąty) potwierdzają, że jest poprowadzony nawet w pierwszej wersji, pozostawiając jedynie DNP.

    3. Ścieżki oprogramowania sprzętowego
    * dpID 124 "leakage_current" → wartość RMS na żywo.
    * dpID 121 "olcp" → wartość zadana zadziałania 1...200 mA (skala ×10-³ → rozdzielczość 0,001 A).
    * Logika wyzwalania nadal znajduje się w MCU; moduł Wi-Fi przekazuje polecenie i odzwierciedla zdarzenie.

    4. Kalibracja / kompensacja
    Przetwornik ADC CH573 jest niebuforowany; przesunięcie dryfuje wraz z temperaturą. W wersji 2.0.2 producent kompensuje poprzez przechowywanie wzmocnienia (dwupunktowego) i offsetu w górnym 1 kB pamięci DataFlash. Jeśli tylko przylutujesz części, urządzenie będzie działać, ale punkt 30 mA może wskazywać np. 25...40 mA.
    - Najprościej: nacisnąć wartość zadaną 030 mA i wykonać test na żywo za pomocą zestawu testowego RCD; wyregulować menu "Current Calibrate Ref", aż przekaźnik spadnie do 26-32 mA.
    - Profesjonalnie: wstrzyknij 10 mA i 60 mA przez zasilacz różnicowy i wpisz nowe współczynniki wzmocnienia za pomocą ukrytej komendy szeregowej 0x55 AA 04 NN GG xx (udokumentowane przez BenFanga w FW ≥ 1.0.6).

    5. Zdolność wyłączania przekaźnika
    Przekaźnik mechaniczny GR2P to 63 A przełącznik AgSnO₂. BenFang wykorzystuje podwójną przerwę sprężynową, więc otwarcie przy 30 mA na obciążonym obwodzie jest bezpieczne (IEC 61008-1 wymaga obciążenia ≤ 5 A). Rozbiórka pokazuje odpowiedni odstęp między stykami (≈2,8 mm).

    Bieżące informacje i trendy
    * Nowsze partie (productId "e1ky...") są dostarczane z Tuya "BenFang Sys 2.0.2" i MCU FW 2.0.2; wcześniejsze ("exvu0..."/FW 1.0.x) są nadal w dystrybucji.
    * Od marca 2025 r. Tuya dodała powiadomienia o wyciekach po stronie chmury (wiadomość push "porażenie prądem") sterowane przez dpID 120/121.
    * WCH wydało krzem CH573 v2 - bootloader jest *wciąż* domyślnie zablokowany (CodeFlashProtect=1). Społecznościowe narzędzie `wchisp` może zrzucić *tylko* DataFlash, chyba że podciągniesz PB23 nisko i wyczyścisz bit ochrony.

    Wspierające wyjaśnienia i szczegóły
    * Przekładnik prądowy musi obejmować zarówno fazę, jak i przewód neutralny tak, aby wykrywana była tylko nierównowaga (upływ).
    * Stała czasowa RC (≈250 µs) ustawia szerokość pasma na ≈600 Hz, wystarczająco szybko dla IEC Type-A RCD (półfala DC).
    * Dwie diody LED na płytce drukowanej klucza zostały zmienione: "Wi-Fi" miga, gdy wyzwolenie upływu jest zatrzaśnięte.

    Praktyczne wskazówki
    1. Odłącz zasilanie, otwórz licznik, wypełnij:
    - RSH 510 Ω 1206 (oznaczony 511).
    - RSH 470 Ω 0603.
    - C 220 nF 1206 X7R.
    2. Poprowadź przewody CT przez wstępnie wywiercone otwory 1 ↔ 2, przestrzegaj biegunowości (nie ma znaczenia dla RMS, ale ma znaczenie dla konwencji znaków oprogramowania układowego).
    3. Zmontuj ponownie, włącz zasilanie, sparuj ponownie (Tuya może traktować je jako to samo urządzenie).
    4. W aplikacji włącz ochronę przed upływem, ustaw 30 mA, przetestuj z rezystorem 2,2 kΩ do uziemienia przy 230 V.
    5. Jeśli zadziała <25 mA lub >35 mA, wejdź do menu 08 "Current Calibrate Ref" i dostosuj (fabrycznie = 0500; 1 LSB ≈1 mA).

    Aspekty etyczne i prawne
    Doposażenie w funkcję RCD jest dopuszczalne do celów prywatnych, ale nie zgodne z normą IEC/EN 61008/60947-2, chyba że kompletny zespół (miernik + przekładnik prądowy) został przetestowany. Należy go używać wyłącznie jako *uzupełniającej* ochrony, a nie jako jedynego wyłącznika RCD w stałej instalacji.

    Możliwe zastrzeżenia lub dodatkowe uwagi
    * Lutowanie wewnątrz miernika unieważnia deklarację CE i gwarancję producenta.
    * Wykrywanie upływu nie może chronić przed *seryjnym* porażeniem prądem elektrycznym - wykrywa tylko prąd do PE/ziemi.
    * Nie należy zwiększać rezystancji obciążenia; 130 mV może nasycić przekładnik prądowy przy prądach zwarciowych 300 mA i może spalić pin MCU podczas przepięcia.

    Sugestie do dalszych badań
    1. Przeniesienie BenFang GUI 2.0.2 do ESPHome poprzez mapowanie dpID (ktoś na GitHub już zdekodował struktury dla v1.0.7).
    2. Odkryj nieużywane urządzenie peryferyjne CH573 USB FS (PB10/11) - płytka drukowana odsłania pady testowe - do bezpośredniego flashowania bez modułu Wi-Fi.
    3. Ocena zastąpienia przekaźnika mechanicznego przez SSR + łom dla szybszego rozłączania (<10 ms).

    Krótkie podsumowanie
    Twoja analiza jest poprawna: nowy GR2P-W/S/L po prostu dodaje różnicowy CT i dwa elementy RC do niezmienionej platformy. Punkty pomiarowe wycieku były już obecne; dlatego modernizacja sprzętu do starszych jednostek jest prosta. Precyzja zależy od kalibracji odniesienia ADC, które jest przechowywane w CH573 DataFlash. Należy przestrzegać limitów bezpieczeństwa i zgodności; do użytku laboratoryjnego jest to elegancki, tani sposób na dodanie monitorowania RCD do mierników pierwszej generacji.

    Pytania do użytkownika
    * Czy zamierzasz skalibrować kilka jednostek w partii? Jeśli tak, mogę udostępnić skrypt Pythona, który zapisuje wzmocnienie/offset przez diagnostyczny UART dostępny w PB5.
    * Czy jesteś zainteresowany Gerberem dla wtyczki z izolowanym wzmacniaczem ±5 V, aby kanał upływu mógł być *klasy A* (czułość ≤3 mA)?
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot. Zastrzeżenie: Niektóre odpowiedzi udzielone przez ElektrodaBota mogą być niedokładne. Elektroda nie ponosi odpowiedzialności za dokładność, rzetelność ani kompletność prezentowanych informacji. Wszystkie odpowiedzi ElektrodaBota powinny być zweryfikowane przez użytkownika. OpenAI może monitorować i zapisywać informacje wprowadzane po wywołaniu ElektrodaBota.
REKLAMA