Wiki source code of Water Quality Sensors

Version 58.1 by Karry Zhuang on 2024/12/30 10:15

Hide last authors
Edwin Chen 1.1 1 **Table of Contents:**
2
3 {{toc/}}
4
5
Xiaoling 45.2 6
7
Edwin Chen 7.1 8 = 1. DR-ECK Water EC Probe =
9
10 == 1.1 Specification: ==
11
Xiaoling 45.2 12
Edwin Chen 7.1 13 * **Power Input**: DC7~~30
Xiaoling 45.63 14
Edwin Chen 7.1 15 * **Power Consumption** : < 0.5W
Xiaoling 45.63 16
Edwin Chen 7.1 17 * **Interface**: RS485. 9600 Baud Rate
Xiaoling 45.63 18
Edwin Chen 7.1 19 * **EC Range & Resolution:**
20 ** **ECK0.01** : 0.02 ~~ 20 μS/cm
21 ** **ECK0.1**: 0.2 ~~ 200.0 μS/cm
Karry Zhuang 48.1 22 ** **ECK1.0** : 0 ~~ 2,000 μS/cm  Resolution: 1 μS/cm
23 ** **ECK10.0** : 10 ~~ 20,000 μS/cm  Resolution: 10 μS/cm
Xiaoling 45.63 24
Edwin Chen 7.1 25 * **EC Accuracy**: ±1% FS
26 * **Temperature Accuracy: **±0.5 °C
27 * **IP Rated**: IP68
Xiaoling 45.63 28
Edwin Chen 7.1 29 * **Max Pressure**: 0.6MPa
30
31 == 1.2 Application for Different Range ==
32
Xiaoling 45.2 33
Edwin Chen 7.1 34 [[image:image-20240714173018-1.png]]
35
36
37 == 1.3 Wiring ==
38
Xiaoling 45.2 39
Xiaoling 55.1 40 [[image:image-20241129142314-1.png||height="352" width="1108"]]
Edwin Chen 7.1 41
Karry Zhuang 45.1 42
Edwin Chen 7.1 43 == 1.4 Mechinical Drawing ==
44
Xiaoling 45.2 45
Edwin Chen 7.1 46 [[image:image-20240714174241-2.png]]
47
48
49 == 1.5 Installation ==
50
51
Xiaoling 45.2 52 **Electrode installation form:**
Karry Zhuang 15.2 53
Xiaoling 45.2 54 A: Side wall installation
Karry Zhuang 15.2 55
Xiaoling 45.2 56 B: Top flange installation
Karry Zhuang 15.2 57
Xiaoling 45.2 58 C: Pipeline bend installation
Karry Zhuang 15.2 59
Xiaoling 45.2 60 D: Pipeline bend installation
Karry Zhuang 15.2 61
Xiaoling 45.2 62 E: Flow-through installation
Karry Zhuang 15.2 63
Xiaoling 45.2 64 F: Submerged installation
Karry Zhuang 15.2 65
Karry Zhuang 23.1 66 [[image:image-20240718190121-1.png||height="350" width="520"]]
Karry Zhuang 15.2 67
Karry Zhuang 18.1 68 **Several common installation methods of electrodes**
Karry Zhuang 15.2 69
Karry Zhuang 18.1 70 When installing the sensor on site, you should strictly follow the correct installation method shown in the following picture. Incorrect installation method will cause data deviation.
Karry Zhuang 15.2 71
Karry Zhuang 18.1 72 A. Several common incorrect installation methods
Karry Zhuang 15.2 73
Karry Zhuang 23.1 74 [[image:image-20240718190204-2.png||height="262" width="487"]]
Karry Zhuang 15.2 75
Xiaoling 45.2 76 **Error cause:** The electrode joint is too long, the extension part is too short, the sensor is easy to form a dead cavity, resulting in measurement error.
Karry Zhuang 15.2 77
Karry Zhuang 23.1 78 [[image:image-20240718190221-3.png||height="292" width="500"]]
Karry Zhuang 18.1 79
Xiaoling 45.2 80 **Error cause: **Measurement error or instability may occur due to water flow not being able to fill the pipe or air accumulation at high altitudes.
Karry Zhuang 18.1 81
82 B. Correct installation method
83
Karry Zhuang 23.1 84 [[image:image-20240718190249-4.png||height="287" width="515"]]
Karry Zhuang 18.1 85
86
Karry Zhuang 38.1 87 == 1.6 Maintenance ==
Edwin Chen 7.1 88
89
Karry Zhuang 26.1 90 * The equipment itself generally does not require daily maintenance. When an obvious fault occurs, please do not open it and repair it yourself, and contact us as soon as possible.
Xiaoling 45.66 91
Karry Zhuang 26.1 92 * If the electrode is not used for a long time, it can generally be stored in a dry place, but it must be placed (stored) in distilled water for several hours before use to activate the electrode. Electrodes that are frequently used can be placed (stored) in distilled water.
Xiaoling 45.66 93
Karry Zhuang 26.1 94 * Cleaning of conductivity electrodes: Organic stains on the electrode can be cleaned with warm water containing detergent, or with alcohol. Calcium and magnesium precipitates are best cleaned with 10% citric acid. The electrode plate or pole can only be cleaned by chemical methods or by shaking in water. Wiping the electrode plate will damage the coating (platinum black) on the electrode surface.
Xiaoling 45.66 95
Karry Zhuang 26.1 96 * The equipment should be calibrated before each use. It is recommended to calibrate it every 3 months for long-term use. The calibration frequency should be adjusted appropriately according to different application conditions (degree of dirt in the application, deposition of chemical substances, etc.).
Karry Zhuang 15.2 97
Edwin Chen 8.1 98 == 1.7 RS485 Commands ==
99
Karry Zhuang 15.2 100
101 RS485 signal (K1 default address 0x12; K10 default address 0x11):
102 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
103
104
Karry Zhuang 16.1 105 === 1.7.1 Query address ===
Edwin Chen 8.1 106
Karry Zhuang 11.1 107
Xiaoling 45.48 108 **send:**
Xiaoling 45.2 109
110 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.40 111 |=(% style="width: 74.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Quantity low|=(% style="width: 59.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 59.75px;background-color:#4F81BD;color:white" %)CRC16 high
Xiaoling 45.32 112 |(% style="width:99px" %)0XFE |(% style="width:72px" %)0X03|(% style="width:50px" %)0X00|(% style="width:42px" %)0X50|(% style="width:42px" %)0X00|(% style="width:42px" %)0X00|(% style="width:56px" %)0X51|(% style="width:56px" %)0XD4
Karry Zhuang 16.1 113
114 If you forget the original address of the sensor, you can use the broadcast address 0XFE instead. When using 0XFE, the host can only connect to one slave, which can be used as a method of address query.
115
116
Xiaoling 45.48 117 **response:**
Karry Zhuang 16.1 118
Xiaoling 45.14 119 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %)
Xiaoling 45.10 120 |=(% style="width: 100px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 110px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 106px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 93px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 104px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 27.1 121 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0
Karry Zhuang 16.1 122
123 === 1.7.2 Change address ===
124
Xiaoling 45.2 125
Karry Zhuang 16.1 126 For example: Change the address of the sensor with address 1 to 2, master → slave
127
Xiaoling 45.20 128 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.39 129 |=(% style="width: 74.75px; background-color: rgb(79, 129, 189); color: white;" %)Original address|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Xiaoling 45.32 130 |(% style="width:67px" %)0X01|(% style="width:76px" %)0X06|(% style="width:60px" %)0X00|(% style="width:50px" %)0X50|(% style="width:50px" %)0X00|(% style="width:50px" %)0X02|(% style="width:57px" %)0X08|(% style="width:56px" %)0X1A
Karry Zhuang 16.1 131
132 If the sensor receives correctly, the data is returned along the original path.
133
Xiaoling 45.32 134 (% style="color:red" %)**Note: If you forget the original address of the sensor, you can use the broadcast address 0XFE instead. When using 0XFE, the host can only connect to one slave, and the return address is still the original address, which can be used as a method of address query.**
Karry Zhuang 16.1 135
Xiaoling 45.32 136
Karry Zhuang 16.1 137 === 1.7.3 Modify intercept ===
138
139
Xiaoling 45.48 140 **send:**
Karry Zhuang 16.1 141
Xiaoling 45.36 142 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %)
Xiaoling 45.34 143 |=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)CRC16 high
144 |(% style="width:64px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X23|(% style="width:85px" %)0X00|(% style="width:1px" %)0X01|(% style="width:1px" %)0XF8|(% style="width:1px" %)(((
Karry Zhuang 27.1 145 0X07
Karry Zhuang 16.1 146 )))
147
148 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command.
149
Xiaoling 45.48 150 **response:**
Karry Zhuang 16.1 151
Xiaoling 45.36 152 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:512px" %)
Xiaoling 45.35 153 |=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 16.1 154 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)(((
155 0X02
Karry Zhuang 27.1 156 )))|(% style="width:126px" %)0X00|(% style="width:85px" %)0X00|(% style="width:1px" %)0X0A|(% style="width:1px" %)0X38|(% style="width:1px" %)(((
157 0X8F
Karry Zhuang 16.1 158 )))
159
160 === 1.7.4 Query data ===
161
Karry Zhuang 37.1 162
163 Query the data (EC,temperature) of the sensor (address 11), host → slave
164
Xiaoling 45.20 165 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.43 166 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 37.1 167 |(% style="width:99px" %)0X11|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:56px" %)0XC6|(% style="width:56px" %)0X9B
168
169 If the sensor receives correctly, the following data will be returned, slave → host
170
Xiaoling 45.20 171 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.42 172 |=(% style="width: 40px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data high|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 37.1 173 |(% style="width:99px" %)0X11|(% style="width:72px" %)0X03|(% style="width:68px" %)0X04|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0X01|(% style="width:56px" %)0X64|(% style="width:56px" %)0X8B|(% style="width:56px" %)0XD0
174
Karry Zhuang 16.3 175 The address of the EC K10 sensor is 11
Karry Zhuang 16.1 176
Karry Zhuang 10.1 177 The query data command is 11 03 00 00 00 02 C6 9B
178
Xiaoling 45.48 179 **For example**, the returned data is 11 03 04 (% style="color:red" %)**02 AE**(%%) 01 64 8B D0. 02 AE is converted to decimal 686,  K=10, EC: 6860uS/cm,temperature: 35.6℃ Convert the returned data to decimal and divide by 10.
Karry Zhuang 10.1 180
181
Karry Zhuang 37.1 182 Query the data (EC,temperature) of the sensor (address 11), host → slave
183
Xiaoling 45.20 184 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.44 185 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 37.1 186 |(% style="width:99px" %)0X12|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:56px" %)0XC6|(% style="width:56px" %)0XA8
187
188 If the sensor receives correctly, the following data will be returned, slave → host
189
Xiaoling 45.20 190 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.44 191 |=(% style="width: 40px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data high|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 37.1 192 |(% style="width:99px" %)0X12|(% style="width:72px" %)0X03|(% style="width:68px" %)0X04|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0X01|(% style="width:56px" %)0X64|(% style="width:56px" %)0XB8|(% style="width:56px" %)0XD0
193
Karry Zhuang 10.1 194 The address of the EC K1 sensor is 12
195
196 The query data command is 12 03 00 00 00 02 C6 A8
197
Xiaoling 45.48 198 **For example**, the returned data is 12 03 04 (% style="color:red" %)**02 AE**(%%) 01 64 B8 D0. 02 AE is converted to decimal 686,  K=1, EC: 686uS/cm,temperature: 35.6℃ Convert the returned data to decimal and divide by 10.
Karry Zhuang 10.1 199
Karry Zhuang 11.1 200
Karry Zhuang 16.2 201 === 1.7.5 Calibration Method ===
Karry Zhuang 12.1 202
203
Karry Zhuang 15.1 204 This device uses one-point calibration, and you need to prepare a known E standard solution. When mileage K=1, 1~~2000 uses 1413μS/cm standard solution, and when mileage K=10, 10~~20000 uses 12.88mS/cm standard solution.
Karry Zhuang 12.1 205
Xiaoling 45.63 206 (% style="color:blue" %)**The calibration steps are as follows:**
207
Karry Zhuang 15.1 208 (1) Place the electrode in distilled water and clean it. When mileage 1~~2000 uses 1413μS/cm standard solution, enter the following calibration command after the data is stable.
209
Xiaoling 45.20 210 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.47 211 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Data|=(% style="width: 53px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 53px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 14.1 212 |(% style="width:99px" %)0X12|(% style="width:112px" %)0X10|(% style="width:135px" %)0X00|(% style="width:126px" %)0X26|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0X04|(% style="width:1px" %)(((
213 0X00
214 0X00
215 0X37
216 0X32
217 )))|(% style="width:1px" %)0XBD|(% style="width:1px" %)0XFC
218
Karry Zhuang 15.1 219 1413*10 gives 0X00003732
Karry Zhuang 14.1 220
Xiaoling 45.48 221 **response:**
Karry Zhuang 15.1 222
Xiaoling 45.20 223 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.45 224 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 14.1 225 |(% style="width:99px" %)0X12|(% style="width:112px" %)0X10|(% style="width:135px" %)0X00|(% style="width:126px" %)0X26|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0XA2|(% style="width:1px" %)0XA0
226
227 (2) Place the electrode in distilled water to clean it. Use 12.88mS/cm standard solution for the range of 10~~20000. After the data is stable, enter the following calibration command
228
Xiaoling 45.20 229 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.47 230 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 53px;background-color:#4F81BD;color:white" %)Data|=(% style="width: 53px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 53px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 14.1 231 |(% style="width:99px" %)0X11|(% style="width:112px" %)0X10|(% style="width:135px" %)0X00|(% style="width:126px" %)0X26|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0X04|(% style="width:1px" %)(((
232 0X00
233 0X01
234 0XF7
235 0X20
236 )))|(% style="width:1px" %)0X33|(% style="width:1px" %)0X75
237
Karry Zhuang 15.1 238 12880*10 gives 0X01F720
239
Xiaoling 45.48 240 **response:**
Karry Zhuang 14.1 241
Xiaoling 45.20 242 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.45 243 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 14.1 244 |(% style="width:99px" %)0X11|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X26|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0XEB|(% style="width:1px" %)0X50
245
Edwin Chen 8.1 246 = 2. DR-PH01 Water PH Sensor =
247
Karry Zhuang 28.2 248 == 2.1 Specification ==
Edwin Chen 9.1 249
Xiaoling 45.20 250
Karry Zhuang 26.1 251 * **Power Input**: DC7~~30
Xiaoling 45.62 252
Karry Zhuang 26.1 253 * **Power Consumption** : < 0.5W
Xiaoling 45.62 254
Karry Zhuang 26.1 255 * **Interface**: RS485. 9600 Baud Rate
Xiaoling 45.62 256
Karry Zhuang 26.1 257 * **pH measurement range**: 0~~14.00pH; resolution: 0.01pH
Xiaoling 45.62 258
259 * **pH measurement error**: ±0.15pH
260
261 * **Repeatability error**: ±0.02pH
262
263 * **Temperature measurement range**:0~~60°C; resolution: 0.1°C (set temperature for manual temperature compensation, default 25°C)
264
265 * **Temperature measurement error**: ±0.5°C
266
Karry Zhuang 26.1 267 * **Temperature Measure Range**: -20 ~~ 60 °C
Xiaoling 45.62 268
Karry Zhuang 26.1 269 * **Temperature Accuracy: **±0.5 °C
Xiaoling 45.62 270
Karry Zhuang 26.1 271 * **IP Rated**: IP68
Xiaoling 45.62 272
Karry Zhuang 26.1 273 * **Max Pressure**: 0.6MPa
274
275 == 2.2 Wiring ==
276
Xiaoling 45.49 277
Karry Zhuang 45.1 278 [[image:image-20240720172548-2.png||height="348" width="571"]]
Karry Zhuang 26.1 279
Karry Zhuang 45.1 280
Xiaoling 45.62 281 == 2.3 Mechinical Drawing ==
Karry Zhuang 26.1 282
Xiaoling 45.49 283
Karry Zhuang 26.1 284 [[image:image-20240714174241-2.png]]
285
286
287 == 2.4 Installation Notice ==
288
Xiaoling 45.49 289
Karry Zhuang 26.1 290 Do not power on while connect the cables. Double check the wiring before power on.
291
292 Installation Photo as reference:
293
Xiaoling 45.50 294 (% style="color:blue" %)**Submerged installation:**
Karry Zhuang 26.1 295
296 The lead wire of the equipment passes through the waterproof pipe, and the 3/4 thread on the top of the equipment is connected to the 3/4 thread of the waterproof pipe with raw tape. Ensure that the top of the equipment and the equipment wire are not flooded.
297
298 [[image:image-20240718191348-6.png]]
299
Xiaoling 45.50 300 (% style="color:blue" %)**Pipeline installation:**
Karry Zhuang 26.1 301
302 Connect the equipment to the pipeline through the 3/4 thread.
303
304 [[image:image-20240718191336-5.png||height="239" width="326"]]
305
Xiaoling 45.50 306 (% style="color:blue" %)**Sampling:**
Karry Zhuang 26.1 307
308 Take representative water samples according to sampling requirements. If it is inconvenient to take samples, you can also put the electrode into the solution to be tested and read the output data. After a period of time, take out the electrode and clean it.
309
Xiaoling 45.50 310 (% style="color:blue" %)**Measure the pH of the water sample:**
Karry Zhuang 26.1 311
312 First rinse the electrode with distilled water, then rinse it with the water sample, then immerse the electrode in the sample, carefully shake the test cup or stir it to accelerate the electrode balance, let it stand, and record the pH value when the reading is stable.
313
314
Karry Zhuang 39.1 315 == 2.5 Maintenance ==
Karry Zhuang 26.1 316
317
318 * The equipment itself generally does not require daily maintenance. When an obvious fault occurs, please do not open it and repair it yourself. Contact us as soon as possible!
Xiaoling 45.62 319
Karry Zhuang 26.1 320 * There is an appropriate amount of soaking solution in the protective bottle at the front end of the electrode. The electrode head is soaked in it to keep the glass bulb and the liquid junction activated. When measuring, loosen the bottle cap, pull out the electrode, and rinse it with pure water before use.
Xiaoling 45.62 321
Karry Zhuang 26.1 322 * Preparation of electrode soaking solution: Take a packet of PH4.00 buffer, dissolve it in 250 ml of pure water, and soak it in 3M potassium chloride solution. The preparation is as follows: Take 25 grams of analytical pure potassium chloride and dissolve it in 100 ml of pure water.
Xiaoling 45.62 323
Karry Zhuang 26.1 324 * The glass bulb at the front end of the electrode cannot come into contact with hard objects. Any damage and scratches will make the electrode ineffective.
Xiaoling 45.62 325
Karry Zhuang 26.1 326 * Before measurement, the bubbles in the electrode glass bulb should be shaken off, otherwise it will affect the measurement. When measuring, the electrode should be stirred in the measured solution and then placed still to accelerate the response.
Xiaoling 45.62 327
Karry Zhuang 26.1 328 * The electrode should be cleaned with deionized water before and after measurement to ensure accuracy.
Xiaoling 45.62 329
Karry Zhuang 26.1 330 * After long-term use, the pH electrode will become passivated, which is characterized by a decrease in sensitivity gradient, slow response, and inaccurate readings. At this time, the bulb at the bottom of the electrode can be soaked in 0.1M dilute hydrochloric acid for 24 hours (0.1M dilute hydrochloric acid preparation: 9 ml of hydrochloric acid is diluted to 1000 ml with distilled water), and then soaked in 3.3M potassium chloride solution for 24 hours. If the pH electrode is seriously passivated and soaking in 0.1M hydrochloric acid has no effect, the pH electrode bulb can be soaked in 4% HF (hydrofluoric acid) for 3-5 seconds, washed with pure water, and then soaked in 3.3M potassium chloride solution for 24 hours to restore its performance.
Xiaoling 45.62 331
Karry Zhuang 26.1 332 * Glass bulb contamination or liquid junction blockage can also cause electrode passivation. At this time, it should be cleaned with an appropriate solution according to the nature of the contaminant.
333
Xiaoling 45.62 334 * The equipment should be calibrated before each use. For long-term use, it is recommended to calibrate once every 3 months. The calibration frequency should be adjusted appropriately according to different application conditions (degree of dirt in the application, deposition of chemical substances, etc.). After aging, the electrodes should be replaced in time.
335
Karry Zhuang 26.1 336 == 2.6 RS485 Commands ==
337
Xiaoling 45.51 338
Karry Zhuang 27.1 339 RS485 signaldefault address 0x10
340 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
Karry Zhuang 26.1 341
Xiaoling 45.51 342
Karry Zhuang 33.2 343 === 2.6.1 Query address ===
Karry Zhuang 27.1 344
Xiaoling 45.51 345
Xiaoling 45.52 346 **send:**
Karry Zhuang 27.1 347
Xiaoling 45.52 348 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.53 349 |=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 27.1 350 |(% style="width:99px" %)0XFE |(% style="width:112px" %)0X03|(% style="width:135px" %)0X00|(% style="width:126px" %)0X50|(% style="width:85px" %)0X00|(% style="width:1px" %)0X00|(% style="width:1px" %)0X51|(% style="width:1px" %)0XD4
351
Xiaoling 45.52 352 **response:**
Karry Zhuang 27.1 353
Xiaoling 45.52 354 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.57 355 |=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 27.1 356 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0
357
358 === 2.6.2 Change address ===
359
Xiaoling 45.52 360
Karry Zhuang 27.1 361 For example: Change the address of the sensor with address 1 to 2, master → slave
362
Xiaoling 45.52 363 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.57 364 |=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 27.1 365 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X50|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0X08|(% style="width:1px" %)0X1A
366
367 If the sensor receives correctly, the data is returned along the original path.
368
Xiaoling 45.52 369 (% style="color:red" %)**Note: If you forget the original address of the sensor, you can use the broadcast address 0XFE instead. When using 0XFE, the host can only connect to one slave, and the return address is still the original address, which can be used as a method of address query.**
Karry Zhuang 27.1 370
Xiaoling 45.52 371
Karry Zhuang 27.1 372 === 2.6.3 Modify intercept ===
373
374
Xiaoling 45.52 375 **send:**
Karry Zhuang 27.1 376
Xiaoling 45.52 377 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.56 378 |=(% style="width: 44.75px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 69.75px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 69.75px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address  low|=(% style="width: 69.75px; background-color: rgb(79, 129, 189); color: white;" %)Register Length high|=(% style="width: 69.75px; background-color: rgb(79, 129, 189); color: white;" %)Register Length low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.3 379 |(% style="width:71px" %)0X10|(% style="width:74px" %)0X06|(% style="width:67px" %)0X00|(% style="width:68px" %)0X10|(% style="width:69px" %)0X00|(% style="width:66px" %)0X64|(% style="width:57px" %)0X8A|(% style="width:57px" %)(((
Karry Zhuang 27.1 380 0XA5
381 )))
382
Karry Zhuang 34.4 383 Change the intercept of the sensor at address 10 to 1 (default is 0). You need to pass the intercept 1*100 =100 into the command 0x006.
Karry Zhuang 27.1 384
Xiaoling 45.52 385 **response:**
Karry Zhuang 27.1 386
Xiaoling 45.52 387 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.55 388 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 27.1 389 |(% style="width:99px" %)0X10|(% style="width:112px" %)0X06|(% style="width:135px" %)(((
390 0X00
391 )))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)(((
392 0XA5
393 )))
394
395 === 2.6.4 Query data ===
396
397
Karry Zhuang 34.3 398 Query the data (PH) of the sensor (address 10), host → slave
Edwin Chen 9.1 399
Xiaoling 45.52 400 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.59 401 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.3 402 |(% style="width:99px" %)0X10|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0X87|(% style="width:56px" %)0X4B
403
404 If the sensor receives correctly, the following data will be returned, slave → host
405
Xiaoling 45.75 406 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.61 407 |=(% style="width: 44px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 35.1 408 |(% style="width:99px" %)0X10|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0XC4|(% style="width:56px" %)0X9B
Karry Zhuang 34.3 409
Karry Zhuang 11.1 410 The query data command is 10 03 00 00 00 01 87 4B. After the query, 7 bytes will be returned.
Karry Zhuang 10.1 411
Karry Zhuang 11.1 412 For example, the returned data is 10 03 02 (% style="color:red" %)**02 AE**(%%) C4 9B.
413
414 02 AE is the pH value, which is converted into decimal to get 686, and then two decimal places are added to get the actual value. 02 AE means the current pH value is 6.86.
415
416
Karry Zhuang 27.1 417 === 2.6.5 Calibration Method ===
418
419
420 This device uses three-point calibration, and three known pH standard solutions need to be prepared.
Xiaoling 45.62 421
422 (% style="color:blue" %)**The calibration steps are as follows:**
423
Karry Zhuang 27.1 424 (1) Place the electrode in distilled water to clean it, and then place it in 9.18 standard buffer solution. After the data stabilizes, enter the following calibration command, and the 9.18 calibration is completed.
425
Xiaoling 45.52 426 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.68 427 |=(% style="width: 61px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 27.1 428 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
429 0X00
430 )))|(% style="width:68px" %)0X20|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X8A|(% style="width:55px" %)(((
431 0XF1
432 )))
433
434 (2) Wash the electrode in distilled water and place it in 6.86 standard buffer. After the data stabilizes, enter the following calibration command. The 6.86 calibration is completed.
435
Xiaoling 45.52 436 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.68 437 |=(% style="width: 61px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 27.1 438 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
439 0X00
440 )))|(% style="width:68px" %)0X21|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XDB|(% style="width:55px" %)(((
441 0X31
442 )))
443
444 (3) Wash the electrode in distilled water and place it in 4.01 standard buffer. After the data stabilizes, enter the following calibration command, and the 4.00 calibration is completed.
445
Xiaoling 45.52 446 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.68 447 |=(% style="width: 61px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 66px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 55px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 27.1 448 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
449 0X00
450 )))|(% style="width:68px" %)0X22|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X2B|(% style="width:55px" %)(((
451 0X31
452 )))
453
454 After the above three steps are completed, the calibration is successful. The advantage of three-point calibration compared to two-point calibration is that the electrode is calibrated separately in the acid and alkali parts, thereby achieving accurate calibration of the full range and making the measurement data more accurate.
455
456
Edwin Chen 8.1 457 = 3. DR-ORP1 Water ORP Sensor =
458
Karry Zhuang 28.2 459 == 3.1 Specification ==
Karry Zhuang 27.2 460
Xiaoling 45.75 461
Karry Zhuang 27.2 462 * **Power Input**: DC7~~30
Xiaoling 45.69 463
Karry Zhuang 32.1 464 * **Measuring range**:** **-1999~~1999mV
Xiaoling 45.69 465
Xiaoling 45.70 466 * **Resolution**: 1mV
Xiaoling 45.69 467
Karry Zhuang 27.2 468 * **Interface**: RS485. 9600 Baud Rate
Xiaoling 45.69 469
Karry Zhuang 27.2 470 * **Measurement error**: ±3mV
Xiaoling 45.69 471
Karry Zhuang 27.2 472 * **Stability**: ≤2mv/24 hours
Xiaoling 45.69 473
474 * **Equipment working conditions**: Ambient temperature: 0-60°C Relative humidity: <85%RH
475
Karry Zhuang 27.2 476 * **IP Rated**: IP68
Xiaoling 45.69 477
Karry Zhuang 27.2 478 * **Max Pressure**: 0.6MPa
479
480 == 3.2 Wiring ==
481
Xiaoling 45.75 482
Karry Zhuang 45.1 483 [[image:image-20240720172620-3.png||height="378" width="620"]]
Karry Zhuang 27.2 484
Karry Zhuang 45.1 485
Karry Zhuang 27.2 486 == 3.3 Mechinical Drawing ==
487
Xiaoling 45.75 488
Karry Zhuang 27.2 489 [[image:image-20240714174241-2.png]]
490
Xiaoling 45.77 491
Karry Zhuang 27.2 492 == 3.4 Installation Notice ==
493
Xiaoling 45.75 494
Karry Zhuang 27.2 495 Do not power on while connect the cables. Double check the wiring before power on.
496
Xiaoling 45.75 497 **Installation Photo as reference:**
Karry Zhuang 27.2 498
Xiaoling 45.70 499 (% style="color:blue" %)** Submerged installation:**
Karry Zhuang 27.2 500
501 The lead wire of the equipment passes through the waterproof pipe, and the 3/4 thread on the top of the equipment is connected to the 3/4 thread of the waterproof pipe with raw tape. Ensure that the top of the equipment and the equipment wire are not flooded.
502
503 [[image:image-20240718191348-6.png]]
504
Xiaoling 45.70 505 (% style="color:blue" %)** Pipeline installation:**
Karry Zhuang 27.2 506
507 Connect the equipment to the pipeline through the 3/4 thread.
508
509 [[image:image-20240718191336-5.png||height="239" width="326"]]
510
511
Karry Zhuang 39.1 512 == 3.5 Maintenance ==
Edwin Chen 8.1 513
Edwin Chen 9.1 514
Karry Zhuang 29.1 515 (1) The equipment itself generally does not require daily maintenance. When an obvious fault occurs, please do not open it and repair it yourself, and contact us as soon as possible.
Karry Zhuang 32.3 516
Karry Zhuang 29.1 517 (2) In general, ORP electrodes do not need to be calibrated and can be used directly. When there is doubt about the quality and test results of the ORP electrode, the electrode potential can be checked with an ORP standard solution to determine whether the ORP electrode meets the measurement requirements, and the electrode can be recalibrated or replaced with a new ORP electrode. The frequency of calibration or inspection of the measuring electrode depends on different application conditions (the degree of dirt in the application, the deposition of chemical substances, etc.).
Karry Zhuang 32.3 518
Karry Zhuang 29.1 519 (3) There is an appropriate soaking solution in the protective bottle at the front end of the electrode, and the electrode head is soaked in it to ensure the activation of the platinum sheet and the liquid junction. When measuring, loosen the bottle cap, pull out the electrode, and rinse it with pure water before use.
Karry Zhuang 32.3 520
Karry Zhuang 29.1 521 (4) Preparation of electrode soaking solution: Take 25 grams of analytical pure potassium chloride and dissolve it in 100 ml of pure water to prepare a 3.3M potassium chloride solution.
Karry Zhuang 32.3 522
Karry Zhuang 29.1 523 (5) Before measuring, the bubbles in the electrode glass bulb should be shaken off, otherwise it will affect the measurement. When measuring, the electrode should be stirred in the measured solution and then placed still to accelerate the response.
Karry Zhuang 32.3 524
Karry Zhuang 29.1 525 (6) The electrode should be cleaned with deionized water before and after the measurement to ensure the measurement accuracy.
Karry Zhuang 32.3 526
Karry Zhuang 29.1 527 (7) After long-term use, the ORP electrode will be passivated, which is manifested as a decrease in sensitivity gradient, slow response, and inaccurate readings. At this time, the platinum sheet at the bottom of the electrode can be soaked in 0.1M dilute hydrochloric acid for 24 hours (0.1M dilute hydrochloric acid preparation: 9 ml of hydrochloric acid is diluted to 1000 ml with distilled water), and then soaked in 3.3M potassium chloride solution for 24 hours to restore its performance.
Karry Zhuang 32.3 528
Karry Zhuang 29.1 529 (8) Electrode contamination or liquid junction blockage can also cause electrode passivation. At this time, it should be cleaned with an appropriate solution according to the nature of the contaminant. If the platinum of the electrode is severely contaminated and an oxide film is formed, toothpaste can be applied to the platinum surface and then gently scrubbed to restore the platinum's luster.
Karry Zhuang 32.3 530
Karry Zhuang 29.1 531 (9) The equipment should be calibrated before each use. It is recommended to calibrate once every 3 months for long-term use. The calibration frequency should be adjusted appropriately according to different application conditions (degree of dirt in the application, deposition of chemical substances, etc.). After aging, the electrodes should be replaced in time.
532
Xiaoling 45.75 533
Karry Zhuang 29.1 534 == 3.6 RS485 Commands ==
535
536
537 RS485 signaldefault address 0x13
538 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
539
Xiaoling 45.75 540
Karry Zhuang 33.2 541 === 3.6.1 Query address ===
Karry Zhuang 29.1 542
543
Xiaoling 45.75 544 **send:**
545
Xiaoling 45.69 546 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.71 547 |=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 29.1 548 |(% style="width:99px" %)0XFE |(% style="width:112px" %)0X03|(% style="width:135px" %)0X00|(% style="width:126px" %)0X50|(% style="width:85px" %)0X00|(% style="width:1px" %)0X00|(% style="width:1px" %)0X51|(% style="width:1px" %)0XD4
549
Xiaoling 45.75 550 **response:**
Karry Zhuang 29.1 551
Xiaoling 45.69 552 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.71 553 |=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 29.1 554 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0
555
556 === 3.6.2 Change address ===
557
Xiaoling 45.75 558
Karry Zhuang 29.1 559 For example: Change the address of the sensor with address 1 to 2, master → slave
560
Xiaoling 45.71 561 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.72 562 |=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 29.1 563 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X50|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0X08|(% style="width:1px" %)0X1A
564
565 If the sensor receives correctly, the data is returned along the original path.
566
Xiaoling 45.75 567 (% style="color:red" %)**Note: If you forget the original address of the sensor, you can use the broadcast address 0XFE instead. When using 0XFE, the host can only connect to one slave, and the return address is still the original address, which can be used as a method of address query.**
Karry Zhuang 29.1 568
Xiaoling 45.75 569
Karry Zhuang 29.1 570 === 3.6.3 Modify intercept ===
571
572
Xiaoling 45.75 573 **send:**
574
Xiaoling 45.69 575 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.73 576 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address  low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register Length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register Length low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 29.1 577 |(% style="width:99px" %)0X13|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)(((
578 0X96
579 )))
580
581 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command.
582
Xiaoling 45.75 583 **response:**
Karry Zhuang 29.1 584
Xiaoling 45.69 585 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.73 586 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width:68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 68px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 29.1 587 |(% style="width:99px" %)0X13|(% style="width:112px" %)0X06|(% style="width:135px" %)(((
588 0X00
589 )))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)(((
590 0X96
591 )))
592
593 === 3.6.4 Query data ===
594
Edwin Chen 9.1 595
Karry Zhuang 37.1 596 Query the data (ORP) of the sensor (address 13), host → slave
Karry Zhuang 35.1 597
Xiaoling 45.69 598 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.73 599 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 35.1 600 |(% style="width:99px" %)0X13|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0X87|(% style="width:56px" %)0X78
601
602 If the sensor receives correctly, the following data will be returned, slave → host
603
Xiaoling 45.69 604 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.73 605 |=(% style="width: 44px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 35.1 606 |(% style="width:99px" %)0X13|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0X80|(% style="width:56px" %)0X9B
607
Karry Zhuang 11.1 608 The query data command is 13 03 00 00 00 01 87 78
Karry Zhuang 10.1 609
Karry Zhuang 11.1 610 For example, the returned data is 13 03 02 (% style="color:red" %)**02 AE**(%%) 80 9B.
Karry Zhuang 10.1 611
Karry Zhuang 11.1 612 02 AE is the ORP value, converted to decimal, the actual value is 686, 02 AE means the current ORP value is 686mV
613
614
Karry Zhuang 29.1 615 === 3.6.5 Calibration Method ===
616
Xiaoling 45.75 617
Karry Zhuang 29.1 618 This device uses two-point calibration, and two known ORP standard solutions need to be prepared. The calibration steps are as follows:
619 (1) Place the electrode in distilled water to clean it, and then place it in 86mV standard buffer solution. After the data stabilizes,
620 enter the following calibration command, and the 86mV point calibration is completed;
621
Xiaoling 45.69 622 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.74 623 |=(% style="width: 42px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 29.1 624 |(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
625 0X00
626 )))|(% style="width:68px" %)0X24|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XCB|(% style="width:55px" %)(((
627 0X03
628 )))
629
630 Wash the electrode in distilled water and place it in 256mV standard buffer. After the data is stable, enter the following calibration command to complete the 256mV point calibration.
631
Xiaoling 45.69 632 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.74 633 |=(% style="width: 42px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
634 |(% style="width:68px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
Karry Zhuang 29.1 635 0X00
636 )))|(% style="width:68px" %)0X25|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X9A|(% style="width:55px" %)(((
637 0XC3
638 )))
639
Edwin Chen 8.1 640 = 4. DR-DO1 Dissolved Oxygen Sensor =
641
Karry Zhuang 32.1 642 == 4.1 Specification ==
643
Karry Zhuang 33.2 644
Karry Zhuang 58.1 645 * **Measuring range**: 0-20mg/L, 0–50℃
Xiaoling 45.77 646
Karry Zhuang 58.1 647 * **Accuracy**: 3%, ±0.5℃
Xiaoling 45.77 648
Karry Zhuang 58.1 649 * **Resolution**: 0.01 mg/L, 0.01℃
Xiaoling 45.77 650
Karry Zhuang 33.2 651 * **Maximum operating pressure**: 6 bar
Xiaoling 45.77 652
Karry Zhuang 33.2 653 * **Output signal**: A: 4-20mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01)
Xiaoling 45.77 654
Karry Zhuang 33.2 655 * **Power supply voltage**: 5-24V DC
Xiaoling 45.77 656
Xiaoling 45.76 657 * **Working environment**: temperature 0-60°C; humidity <95%RH
Xiaoling 45.77 658
Karry Zhuang 32.1 659 * **Power consumption**: ≤0.5W
660
Karry Zhuang 33.2 661 == 4.2 wiring ==
Karry Zhuang 32.1 662
Xiaoling 45.77 663
Karry Zhuang 45.1 664 [[image:image-20240720172632-4.png||height="390" width="640"]]
Karry Zhuang 33.2 665
666
Xiaoling 45.77 667 == 4.3 Impedance requirements for current signals ==
Karry Zhuang 33.2 668
Xiaoling 45.77 669
Xiaoling 46.2 670 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:400px" %)
671 |(% style="width:132px" %)**Supply Voltage**|(% style="width:67px" %)**9V**|(% style="width:67px" %)**12V**|(% style="width:67px" %)**20V**|(% style="width:67px" %)**24V**
672 |(% style="width:132px" %)**Max Impedance**|(% style="width:65px" %)**<250Ω**|(% style="width:67px" %)**<400Ω**|(% style="width:67px" %)**<500Ω**|(% style="width:65px" %)**<900Ω**
Xiaoling 45.96 673
Karry Zhuang 32.1 674 == 4.4 Mechinical Drawing ==
675
676
Karry Zhuang 33.2 677 [[image:image-20240719155308-1.png||height="226" width="527"]]
Karry Zhuang 32.1 678
Karry Zhuang 33.2 679
Karry Zhuang 39.1 680 == 4.5 Instructions for use and maintenance ==
Karry Zhuang 32.1 681
Xiaoling 45.77 682
Karry Zhuang 32.1 683 * It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor.
Xiaoling 45.77 684
Karry Zhuang 32.1 685 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently.
686
687 == 4.6 RS485 Commands ==
688
Xiaoling 45.77 689
Karry Zhuang 34.1 690 RS485 signaldefault address 0x14
691 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
692
Xiaoling 45.77 693
Karry Zhuang 32.3 694 === 4.6.1 Query address ===
Karry Zhuang 32.1 695
Karry Zhuang 32.3 696
Xiaoling 45.77 697 **send:**
698
699 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.79 700 |=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register address high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register address low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.1 701 |(% style="width:99px" %)0XFF|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X0A|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:56px" %)0XF1|(% style="width:56px" %)0XD7
Karry Zhuang 32.3 702
Karry Zhuang 34.1 703 If you forget the original address of the sensor, you can use the broadcast address 0XFF instead. When using 0XFE, the host can only connect to one slave, which can be used as a method of address query.
Karry Zhuang 32.3 704
705
Xiaoling 45.77 706 **response:**
Karry Zhuang 32.3 707
Karry Zhuang 34.1 708 Register 0 data high and register 0 data low indicate the actual address of the sensor: 1
709 Register 1 data high and register 1 data low indicate the sensor version
Karry Zhuang 32.3 710
Xiaoling 45.77 711 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.80 712 |=(% style="width: 40px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data high|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 59.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.1 713 |(% style="width:99px" %)0XFF|(% style="width:72px" %)0X03|(% style="width:64px" %)0X04|(% style="width:68px" %)0X00|(% style="width:70px" %)0X01|(% style="width:72px" %)0X00|(% style="width:56px" %)0X00|(% style="width:56px" %)0XB4|(% style="width:56px" %)0X3C
714
Karry Zhuang 33.2 715 === 4.6.2 Change address ===
Karry Zhuang 32.3 716
Xiaoling 45.77 717
Karry Zhuang 34.1 718 For example: Change the address of the sensor with address 1 to 2(address range: 1-119), master → slave
Karry Zhuang 33.2 719
Xiaoling 45.77 720 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.83 721 |=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Original address|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Start address high|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Start address low|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Sensor version|=(% style="width: 40px; background-color: rgb(79, 129, 189); color: white;" %)Sensor version|=(% style="width: 39px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high|=(% style="width: 39px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low
Karry Zhuang 33.2 722 |(% style="width:67px" %)0X01|(% style="width:71px" %)0X10|(% style="width:65px" %)0X00|(% style="width:65px" %)0X0A|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:53px" %)0X04|(% style="width:53px" %)0X00|(% style="width:72px" %)0X02|(% style="width:53px" %)0X00|(% style="width:53px" %)0X00|(% style="width:56px" %)0XD2|(% style="width:53px" %)0X10
723
Xiaoling 45.77 724 **response:**
Karry Zhuang 32.3 725
Xiaoling 45.77 726 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.81 727 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.1 728 |(% style="width:99px" %)0X01|(% style="width:72px" %)0X10|(% style="width:64px" %)0X00|(% style="width:68px" %)0X0A|(% style="width:70px" %)0X00|(% style="width:72px" %)0X02|(% style="width:56px" %)0X61|(% style="width:56px" %)0XCA
Karry Zhuang 32.3 729
Karry Zhuang 34.1 730 === 4.6.3 Query data ===
Edwin Chen 9.1 731
732
Karry Zhuang 34.2 733 Query the data (dissolved oxygen) of the sensor (address 14), host → slave
Karry Zhuang 34.1 734
Xiaoling 45.77 735 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.81 736 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.1 737 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X14|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0XC6|(% style="width:56px" %)0XCB
738
Karry Zhuang 34.2 739 If the sensor receives correctly, the following data will be returned, slave → host
Karry Zhuang 34.1 740
Xiaoling 45.77 741 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.81 742 |=(% style="width: 44px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.2 743 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X03|(% style="width:72px" %)0X78|(% style="width:56px" %)0XB5|(% style="width:56px" %)0X55
Karry Zhuang 34.1 744
Karry Zhuang 11.1 745 After the query, 7 bytes will be returned. For example, the returned data is 14 03 02 (% style="color:red" %)**03 78**(%%) B5 55. 03 78 is the value of dissolved oxygen.
Karry Zhuang 10.1 746
747 Converted to decimal, it is 888. Add two decimal places to get the actual value. 03 78 means the current dissolved oxygen is 8.88mg/L
748
Karry Zhuang 11.1 749
Karry Zhuang 34.2 750 Query the data (temperature) of the sensor (address 14), host → slave
751
Xiaoling 45.77 752 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.82 753 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.2 754 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X11|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0XD6|(% style="width:56px" %)0XCA
755
756 If the sensor receives correctly, the following data will be returned, slave → host
757
Xiaoling 45.77 758 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.82 759 |=(% style="width: 44px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.2 760 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X09|(% style="width:72px" %)0XA4|(% style="width:56px" %)0XB2|(% style="width:56px" %)0X6C
761
762 After the query, 7 bytes will be returned. For example, the returned data is 14 03 02 (% style="color:red" %)**09 A4**(%%) B2 6C. 03 78 is the value of dissolved oxygen temperature.
763
Xiaoling 45.77 764 Converted to decimal, it is 2468. Add two decimal places to get the actual value. 09 A4 means the current dissolved oxygen temperature is 24.68°C
Karry Zhuang 34.2 765
766
Edwin Chen 8.1 767 = 5. DR-TS1 Water Turbidity Sensor =
768
Xiaoling 45.77 769 == 5.1 Specification ==
Edwin Chen 9.1 770
Karry Zhuang 10.1 771
Karry Zhuang 49.1 772 * **Measuring range**: 0.1~~1000.0NTU
Karry Zhuang 32.3 773
774 * **Accuracy**: ±5%
Xiaoling 45.77 775
Karry Zhuang 32.3 776 * **Resolution**: 0.1NTU
Xiaoling 45.77 777
Karry Zhuang 32.3 778 * **Stability**: ≤3mV/24 hours
779
Karry Zhuang 54.1 780 * **Output signal**: RS485 (standard Modbus-RTU protocol, device default address: 01)
Xiaoling 45.77 781
Xiaoling 55.1 782 * **Power supply voltage**: 5~~24V DC (when output signal is RS485), 12~~24V DC (when output signal is 4~~20mA)
Xiaoling 45.77 783
Xiaoling 45.87 784 * **Working environment**: temperature 060°C; humidity ≤ 95%RH
Xiaoling 45.77 785
786 * **Power consumption**: ≤ 0.5W
787
Karry Zhuang 32.3 788 == 5.2 wiring ==
789
Xiaoling 45.77 790
Karry Zhuang 45.1 791 [[image:image-20240720172640-5.png||height="387" width="635"]]
Karry Zhuang 32.3 792
Karry Zhuang 45.1 793
Karry Zhuang 32.3 794 == 5.3 Impedance requirements for current signals ==
795
Xiaoling 45.88 796
Xiaoling 46.3 797 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:400px" %)
798 |(% style="width:132px" %)**Supply Voltage**|(% style="width:67px" %)**9V**|(% style="width:67px" %)**12V**|(% style="width:67px" %)**20V**|(% style="width:67px" %)**24V**
799 |(% style="width:132px" %)**Max Impedance**|(% style="width:65px" %)**<250Ω**|(% style="width:67px" %)**<400Ω**|(% style="width:67px" %)**<500Ω**|(% style="width:65px" %)**<900Ω**
Karry Zhuang 32.3 800
801 == 5.4 Mechinical Drawing ==
802
Xiaoling 45.77 803
Karry Zhuang 32.3 804 [[image:image-20240718195058-7.png||height="305" width="593"]]
805
806
Karry Zhuang 39.1 807 == 5.5 Instructions for use and maintenance ==
Karry Zhuang 32.3 808
Xiaoling 45.77 809
Karry Zhuang 32.3 810 * It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor.
Xiaoling 45.77 811
Karry Zhuang 32.3 812 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently.
813
814 == 5.6 RS485 Commands ==
815
816
Karry Zhuang 36.1 817 RS485 signaldefault address 0x15
818 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
819
Xiaoling 45.77 820
Karry Zhuang 36.1 821 === 5.6.1 Query address ===
822
Karry Zhuang 32.3 823
Xiaoling 45.77 824 **send:**
825
826 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.86 827 |=(% style="width: 80.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Address high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Address low|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 54.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 58.75px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Xiaoling 45.84 828 |(% style="width:99px" %)0XFE |(% style="width:64.75px" %)0X03|(% style="width:64px" %)0X00|(% style="width:64.75px" %)0X50|(% style="width:70px" %)0X00|(% style="width:72px" %)0X00|(% style="width:56px" %)0X51|(% style="width:56px" %)0XD4
Karry Zhuang 32.3 829
830 If you forget the original address of the sensor, you can use the broadcast address 0XFE instead. When using 0XFE, the host can only connect to one slave, which can be used as a method of address query.
831
832
Xiaoling 45.77 833 **response:**
Karry Zhuang 32.3 834
Xiaoling 45.77 835 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.84 836 |=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 103.6px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 103.6px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 32.3 837 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0
838
Karry Zhuang 36.1 839 === 5.6.2 Change address ===
Karry Zhuang 32.3 840
Xiaoling 45.87 841
Karry Zhuang 36.1 842 For example: Change the address of the sensor with address 1 to 2, master → slave
Karry Zhuang 10.1 843
Xiaoling 45.77 844 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.86 845 |=(% style="width: 80.75px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 64.75px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 64.75px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 54.75px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 58.75px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 36.1 846 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)0X00|(% style="width:126px" %)0X50|(% style="width:85px" %)0X00|(% style="width:1px" %)0X02|(% style="width:1px" %)0X08|(% style="width:1px" %)0X1A
847
848 If the sensor receives correctly, the data is returned along the original path.
849
Xiaoling 45.77 850 (% style="color:red" %)**Note: If you forget the original address of the sensor, you can use the broadcast address 0XFE instead. When using 0XFE, the host can only connect to one slave, and the return address is still the original address, which can be used as a method of address query.**
851
Xiaoling 45.84 852
Karry Zhuang 36.1 853 === 5.6.3 Query data ===
854
855
856 Query the data (turbidity) of the sensor (address 15), host → slave
857
Xiaoling 45.77 858 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.84 859 |=(% style="width: 42px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 36.1 860 |(% style="width:99px" %)0X15|(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X00|(% style="width:70px" %)0X00|(% style="width:72px" %)0X01|(% style="width:56px" %)0X87|(% style="width:56px" %)0X1E
861
862 If the sensor receives correctly, the following data will be returned, slave → host
863
Xiaoling 45.77 864 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:518px" %)
Xiaoling 45.84 865 |=(% style="width: 44px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 36.1 866 |(% style="width:99px" %)0X15|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X02|(% style="width:72px" %)0X9A|(% style="width:56px" %)0X09|(% style="width:56px" %)0X4C
867
Karry Zhuang 11.1 868 The query data command is 15 03 00 00 00 01 87 1E
Karry Zhuang 10.1 869
Karry Zhuang 11.1 870 For example, the returned data is 15 03 02 (% style="color:red" %)**02 9A**(%%) 09 4C
871
872 02 9A is the turbidity value, converted to decimal, it is 666, and then divided by 10, the actual value is 66.6, 02 9A means the current turbidity value is 66.6 NTU
Xiaoling 49.2 873
874
875 = 6.  Water Quality Sensor Datasheet =
876
877
Xiaoling 51.1 878 * **[[Water Quality Sensor Transmitter Datasheet>>https://www.dropbox.com/scl/fi/9tofocmgapkbddshznumn/Datasheet_WQS-xB-WQS-xS_Water-Quality-Sensor-Transmitter.pdf?rlkey=wxua12ur9swk30rkqnh2boo9z&st=axga6epf&dl=0]]**