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

[BK7331N/CBU] Czujnik jakości wody Yieryi BK7331N/CBU Rozbiórka i analiza PCB

stonacek 16 Gru 2024 23:48 1104 1
REKLAMA
Treść została przetłumaczona angielski » polski Zobacz oryginalną wersję tematu
  • Pomocny post
    #1 21351483
    stonacek
    Poziom 8  
    Posty: 23
    Pomógł: 4
    Ocena: 7
    Tester jakości wody Yieryi / YINMIK https://www.aliexpress.com/item/1005007948885789.html

    Zasilany przez zasilacz 6 V, 250 mA

    Tester jakości wody z wyświetlaczem LED i sondą Zestaw testera jakości wody z urządzeniem i saszetkami kalibracyjnymi pH 4.00 i 6.86.
    Tester jakości wody z trzema wyświetlaczami na czarnej obudowie.

    Podobny do tych dwóch modeli, ale ten jest nieco bardziej uporządkowany.
    https://www.elektroda.com/rtvforum/topic4060619.html#21131658
    https://www.elektroda.com/rtvforum/topic4008803.html#20776297


    Płytka drukowana jest znacznie zgrabniejsza niż w poprzednich modelach i wykorzystuje układ CBU:
    Tester jakości wody Yieryi / YINMIK z otwartą obudową i widoczną płytką PCB. Widok zbliżony płytki PCB z układem CBU i innymi komponentami elektronicznymi.
    Zielona płytka PCB z różnokolorowymi kablami i elementami elektronicznymi w otwartym obudowie. Zbliżenie płytki PCB z wyraźnie widocznymi komponentami elektronicznymi w testerze jakości wody.


    Chip CBU musi zostać usunięty, aby wykonać flashowanie (lub wycięcie RX/TX). Zdjęcie usuniętego układu CBU, pokazujące ślady nieco wyraźniej.
    Zbliżenie na zieloną płytkę PCB z różnymi komponentami, widoczne ścieżki i elementy elektroniczne.

    Zebrano dpIds od dewelopera tuya
    
    {
      "modelId": "0000047m9o",
      "services": [
        {
          "actions": [],
          "code": "",
          "description": "",
          "events": [],
          "name": "????",
          "properties": [
            {
              "abilityId": 1,
              "accessMode": "ro",
              "code": "tds_in",
              "description": "",
              "extensions": {
                "scope": "",
                "attribute": "1664"
              },
              "name": "TDS",
              "typeSpec": {
                "type": "value",
                "max": 100000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "ppt"
              }
            },
            {
              "abilityId": 2,
              "accessMode": "ro",
              "code": "temp_current",
              "description": "",
              "extensions": {
                "attribute": "1152"
              },
              "name": "Temprt",
              "typeSpec": {
                "type": "value",
                "max": 800,
                "min": 0,
                "scale": 1,
                "step": 1,
                "unit": "?"
              }
            },
            {
              "abilityId": 7,
              "accessMode": "ro",
              "code": "battery_percentage",
              "description": "",
              "extensions": {
                "attribute": "1664"
              },
              "name": "BatteryValue",
              "typeSpec": {
                "type": "value",
                "max": 100,
                "min": 0,
                "scale": 0,
                "step": 1,
                "unit": "%"
              }
            },
            {
              "abilityId": 10,
              "accessMode": "ro",
              "code": "ph",
              "description": "",
              "extensions": {
                "iconName": "icon-p7",
                "attribute": "1152"
              },
              "name": "PH?",
              "typeSpec": {
                "type": "value",
                "max": 1400,
                "min": 0,
                "scale": 2,
                "step": 1
              }
            },
            {
              "abilityId": 11,
              "accessMode": "ro",
              "code": "conductivity_value",
              "description": "",
              "extensions": {
                "iconName": "icon-dp_mode",
                "attribute": "1152"
              },
              "name": "EC",
              "typeSpec": {
                "type": "value",
                "max": 200000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "mS/cm"
              }
            },
            {
              "abilityId": 12,
              "accessMode": "ro",
              "code": "orp_value",
              "description": "",
              "extensions": {
                "iconName": "icon-tongji",
                "attribute": "1024"
              },
              "name": "ORP",
              "typeSpec": {
                "type": "value",
                "max": 1200,
                "min": -1200,
                "scale": 0,
                "step": 1,
                "unit": "mV"
              }
            },
            {
              "abilityId": 101,
              "accessMode": "rw",
              "code": "phbuffer",
              "description": "",
              "name": "pHBuffer",
              "typeSpec": {
                "type": "enum",
                "range": [
                  "AsiaStandard",
                  "EUStandard"
                ]
              }
            },
            {
              "abilityId": 102,
              "accessMode": "rw",
              "code": "holdreading",
              "description": "",
              "name": "HoldReading",
              "typeSpec": {
                "type": "bool"
              }
            },
            {
              "abilityId": 103,
              "accessMode": "rw",
              "code": "backlight",
              "description": "",
              "name": "BackLight",
              "typeSpec": {
                "type": "bool"
              }
            },
            {
              "abilityId": 104,
              "accessMode": "rw",
              "code": "ectempcompenabled",
              "description": "",
              "name": "EcTempCompEnabled",
              "typeSpec": {
                "type": "bool"
              }
            },
            {
              "abilityId": 105,
              "accessMode": "rw",
              "code": "ectempcomfactor",
              "description": "",
              "name": "EcTempCompFactor",
              "typeSpec": {
                "type": "value",
                "max": 30,
                "min": 0,
                "scale": 1,
                "step": 1,
                "unit": "%/?"
              }
            },
            {
              "abilityId": 106,
              "accessMode": "rw",
              "code": "buzzerwarning",
              "description": "",
              "name": "BuzzerWarning",
              "typeSpec": {
                "type": "bool"
              }
            },
            {
              "abilityId": 107,
              "accessMode": "rw",
              "code": "phmaxlimit",
              "description": "",
              "name": "pHMaxLimit",
              "typeSpec": {
                "type": "value",
                "max": 1400,
                "min": 0,
                "scale": 2,
                "step": 1,
                "unit": ""
              }
            },
            {
              "abilityId": 108,
              "accessMode": "rw",
              "code": "phminlimit",
              "description": "",
              "name": "pHMinLimit",
              "typeSpec": {
                "type": "value",
                "max": 1400,
                "min": 0,
                "scale": 2,
                "step": 1,
                "unit": ""
              }
            },
            {
              "abilityId": 109,
              "accessMode": "rw",
              "code": "ecmaxlimit",
              "description": "",
              "name": "EC???",
              "typeSpec": {
                "type": "value",
                "max": 200000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "mS/cm"
              }
            },
            {
              "abilityId": 110,
              "accessMode": "rw",
              "code": "ecminlimit",
              "description": "",
              "name": "EC???",
              "typeSpec": {
                "type": "value",
                "max": 200000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "mS/cm"
              }
            },
            {
              "abilityId": 111,
              "accessMode": "rw",
              "code": "orpmaxlimit",
              "description": "",
              "name": "OrpMaxLimit",
              "typeSpec": {
                "type": "value",
                "max": 1200,
                "min": -1200,
                "scale": 0,
                "step": 1,
                "unit": "mV"
              }
            },
            {
              "abilityId": 112,
              "accessMode": "rw",
              "code": "orpminlimit",
              "description": "",
              "name": "OrpMinLimit",
              "typeSpec": {
                "type": "value",
                "max": 1200,
                "min": -1200,
                "scale": 0,
                "step": 1,
                "unit": "mV"
              }
            },
            {
              "abilityId": 113,
              "accessMode": "ro",
              "code": "eccf",
              "description": "",
              "name": "CF",
              "typeSpec": {
                "type": "value",
                "max": 20000,
                "min": 0,
                "scale": 1,
                "step": 1,
                "unit": ""
              }
            },
            {
              "abilityId": 114,
              "accessMode": "ro",
              "code": "humidity",
              "description": "",
              "name": "Humidity",
              "typeSpec": {
                "type": "value",
                "max": 100,
                "min": 0,
                "scale": 0,
                "step": 1,
                "unit": "%"
              }
            },
            {
              "abilityId": 115,
              "accessMode": "rw",
              "code": "humiditymaxlimit",
              "description": "",
              "name": "HumidityMaxLimit",
              "typeSpec": {
                "type": "value",
                "max": 100,
                "min": 0,
                "scale": 0,
                "step": 1,
                "unit": "%"
              }
            },
            {
              "abilityId": 116,
              "accessMode": "rw",
              "code": "humidityminlimit",
              "description": "",
              "name": "HumidityMinLimit",
              "typeSpec": {
                "type": "value",
                "max": 100,
                "min": 0,
                "scale": 0,
                "step": 1,
                "unit": "%"
              }
            },
            {
              "abilityId": 117,
              "accessMode": "rw",
              "code": "temprtmaxlimit",
              "description": "",
              "name": "?????",
              "typeSpec": {
                "type": "value",
                "max": 800,
                "min": 0,
                "scale": 1,
                "step": 1,
                "unit": "?"
              }
            },
            {
              "abilityId": 118,
              "accessMode": "rw",
              "code": "temprtminlimit",
              "description": "",
              "name": "?????",
              "typeSpec": {
                "type": "value",
                "max": 800,
                "min": 0,
                "scale": 1,
                "step": 1,
                "unit": "?"
              }
            },
            {
              "abilityId": 119,
              "accessMode": "wr",
              "code": "reset",
              "description": "",
              "name": "??",
              "typeSpec": {
                "type": "value",
                "max": 100,
                "min": 0,
                "scale": 0,
                "step": 1,
                "unit": ""
              }
            },
            {
              "abilityId": 120,
              "accessMode": "ro",
              "code": "newprog",
              "description": "",
              "name": "NewProg",
              "typeSpec": {
                "type": "bool"
              }
            },
            {
              "abilityId": 121,
              "accessMode": "rw",
              "code": "tdsmultiple",
              "description": "",
              "name": "TDS??",
              "typeSpec": {
                "type": "value",
                "max": 100,
                "min": 50,
                "scale": 0,
                "step": 1,
                "unit": ""
              }
            },
            {
              "abilityId": 122,
              "accessMode": "rw",
              "code": "salttdshilimit",
              "description": "",
              "name": "SALT TDS??",
              "typeSpec": {
                "type": "value",
                "max": 100000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "ppt"
              }
            },
            {
              "abilityId": 123,
              "accessMode": "rw",
              "code": "salttdslolimit",
              "description": "",
              "name": "SALT TDS??",
              "typeSpec": {
                "type": "value",
                "max": 100000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "ppt"
              }
            },
            {
              "abilityId": 124,
              "accessMode": "rw",
              "code": "tdshilimit",
              "description": "",
              "name": "TDS??",
              "typeSpec": {
                "type": "value",
                "max": 100000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "ppt"
              }
            },
            {
              "abilityId": 125,
              "accessMode": "rw",
              "code": "tdslolimit",
              "description": "",
              "name": "TDS??",
              "typeSpec": {
                "type": "value",
                "max": 100000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "ppt"
              }
            },
            {
              "abilityId": 126,
              "accessMode": "ro",
              "code": "salt_tds",
              "description": "",
              "extensions": {
                "scope": ""
              },
              "name": "SALT TDS",
              "typeSpec": {
                "type": "value",
                "max": 100000,
                "min": 0,
                "scale": 3,
                "step": 1,
                "unit": "ppt"
              }
            }
          ]
        }
      ]
    }
    
    


    i autoexec.bat z odpowiednim czujnikiem (zignorowałem kilka innych)
    
    setflag 19 1
    setflag 37 1
    
    // tuyaMCU store RAW data in /cm?cmnd=Dp
    setflag 46 1
    
    startDriver TuyaMCU
    // always report paired (wifi symbol on screen)
    tuyaMcu_defWiFiState 4
    
    // feyree baud 9600
    tuyaMcu_setBaudRate 9600
    
    // dpid 1 is TDS in Max 100000, scale 3, unit PPT
    setChannelType 1 Tds
    setChannelLabel 1 "Total Dissolved Solids"
    linkTuyaMCUOutputToChannel 1 val 1
    
    // dpid 2 is Temperature in Max 800, scale 1, unit c
    setChannelType 2 Temperature_div10
    setChannelLabel 2 "Temperature"
    // adjust temperature + 2.5 (25 because of _div10) * 1.0
    linkTuyaMCUOutputToChannel 2 val 2 0 1.0 0 25
    
    // dpid 10 is PH in Max 1400, scale 2, unit ph
    setChannelType 3 Ph
    setChannelLabel 3 "PH"
    linkTuyaMCUOutputToChannel 10 val 3
    
    // dpid 11 is Conductivity in Max 200000, scale 3, EC unit mS/cm
    setChannelType 4 ReadOnly_div1000
    setChannelLabel 4 "Conductivity"
    linkTuyaMCUOutputToChannel 11 val 4
    
    // dpid 12 is ORP in Max 1200, scale 0, unit mv
    setChannelType 5 ORP
    setChannelLabel 5 "ORP"
    linkTuyaMCUOutputToChannel 12 val 5
    
    // dpid 103 is backlight bool
    setChannelType 8 Toggle
    setChannelLabel 8 "Backlight"
    linkTuyaMCUOutputToChannel 103 bool 8
    
    // dpid 113 is CF - Max 20000, scale 1, unit 
    setChannelType 13 ReadOnly_div10
    setChannelLabel 13 "CF"
    linkTuyaMCUOutputToChannel 113 val 13
    
    // dpid 114 is Humidity - Max 100, scale 0, unit %
    setChannelType 14 Humidity
    setChannelLabel 14 "Humidity"
    linkTuyaMCUOutputToChannel 114 val 14
    
    // dpid 126 is Salt TDS- Max 100000, scale 3, unit ppt
    setChannelType 26 Tds
    setChannelLabel 26 "Salt TDS"
    linkTuyaMCUOutputToChannel 126 val 26
    
    // get the current state of all dpIds to ensure the values get filled in
    tuyaMcu_sendQueryState
    
  • REKLAMA
  • #2 21353101
    divadiow
    Poziom 38  
    Posty: 5236
    Pomógł: 450
    Ocena: 920
    https://github.com/OpenBekenIOT/webapp/commit/8636834cd741c24a3ebfc708dee7fe6b7c1197b6

    boot
    Kod: Text
    Zaloguj się, aby zobaczyć kod


    dołączono oczyszczoną kopię zapasową fw użytkownika.

    Kod: JSON
    Zaloguj się, aby zobaczyć kod
    Załączniki:
    • readResult_BK7231N_QIO_waterqualitysensor.bin (2 MB) Musisz być zalogowany, aby pobrać ten załącznik.
REKLAMA