Wiki source code of Water Quality Sensors

Version 34.3 by Karry Zhuang on 2024/07/19 16:40

Hide last authors
Edwin Chen 1.1 1 **Table of Contents:**
2
3 {{toc/}}
4
5
Edwin Chen 7.1 6 = 1. DR-ECK Water EC Probe =
7
8 == 1.1 Specification: ==
9
10 * **Power Input**: DC7~~30
11 * **Power Consumption** : < 0.5W
12 * **Interface**: RS485. 9600 Baud Rate
13 * **EC Range & Resolution:**
14 ** **ECK0.01** : 0.02 ~~ 20 μS/cm
15 ** **ECK0.1**: 0.2 ~~ 200.0 μS/cm
16 ** **ECK1.0** : 2 ~~ 2,000 μS/cm  Resolution: 1 μS/cm
17 ** **ECK10.0** : 20 ~~ 20,000 μS/cm  Resolution: 10 μS/cm
18 * **EC Accuracy**: ±1% FS
19 * **Temperature Measure Range**: -20 ~~ 60 °C
20 * **Temperature Accuracy: **±0.5 °C
21 * **IP Rated**: IP68
22 * **Max Pressure**: 0.6MPa
23
24 == 1.2 Application for Different Range ==
25
26 [[image:image-20240714173018-1.png]]
27
28
29 == 1.3 Wiring ==
30
31
32 == 1.4 Mechinical Drawing ==
33
34 [[image:image-20240714174241-2.png]]
35
36
37 == 1.5 Installation ==
38
39
Karry Zhuang 18.1 40 **Electrode installation form**
Karry Zhuang 15.2 41
Karry Zhuang 18.1 42 A:Side wall installation
Karry Zhuang 15.2 43
Karry Zhuang 18.1 44 B:Top flange installation
Karry Zhuang 15.2 45
Karry Zhuang 18.1 46 C:Pipeline bend installation
Karry Zhuang 15.2 47
Karry Zhuang 18.1 48 D:Pipeline bend installation
Karry Zhuang 15.2 49
Karry Zhuang 18.1 50 E:Flow-through installation
Karry Zhuang 15.2 51
Karry Zhuang 18.1 52 F:Submerged installation
Karry Zhuang 15.2 53
Karry Zhuang 23.1 54 [[image:image-20240718190121-1.png||height="350" width="520"]]
Karry Zhuang 15.2 55
Karry Zhuang 18.1 56 **Several common installation methods of electrodes**
Karry Zhuang 15.2 57
Karry Zhuang 18.1 58 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 59
Karry Zhuang 18.1 60 A. Several common incorrect installation methods
Karry Zhuang 15.2 61
Karry Zhuang 23.1 62 [[image:image-20240718190204-2.png||height="262" width="487"]]
Karry Zhuang 15.2 63
Karry Zhuang 18.1 64 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 65
Karry Zhuang 23.1 66 [[image:image-20240718190221-3.png||height="292" width="500"]]
Karry Zhuang 18.1 67
68 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.
69
70 B. Correct installation method
71
Karry Zhuang 23.1 72 [[image:image-20240718190249-4.png||height="287" width="515"]]
Karry Zhuang 18.1 73
74
Edwin Chen 7.1 75 == 1.6 Maintain ==
76
77
Karry Zhuang 26.1 78 * 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.
79 * 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.
80 * 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.
81 * 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 82
Edwin Chen 8.1 83 == 1.7 RS485 Commands ==
84
Karry Zhuang 15.2 85
86 RS485 signal (K1 default address 0x12; K10 default address 0x11):
87 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
88
89
Karry Zhuang 16.1 90 === 1.7.1 Query address ===
Edwin Chen 8.1 91
Karry Zhuang 16.1 92 send
Karry Zhuang 11.1 93
Karry Zhuang 32.2 94 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
95 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; 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: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
96 |(% style="width:99px" %)0XFE |(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X50|(% style="width:70px" %)0X00|(% style="width:72px" %)0X00|(% style="width:56px" %)0X51|(% style="width:56px" %)0XD4
Karry Zhuang 16.1 97
98 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.
99
100
101 response
102
103 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %)
104 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 50px;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 105 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0
Karry Zhuang 16.1 106
107 === 1.7.2 Change address ===
108
109 For example: Change the address of the sensor with address 1 to 2, master → slave
110
Karry Zhuang 32.2 111 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %)
112 |=(% style="width: 69px; background-color: rgb(79, 129, 189); color: white;" %)Original address|=(% style="width: 76px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 67px; 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: 73px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 73px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 57px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
113 |(% style="width:69px" %)0X01|(% style="width:76px" %)0X06|(% style="width:67px" %)0X00|(% style="width:68px" %)0X50|(% style="width:73px" %)0X00|(% style="width:73px" %)0X02|(% style="width:57px" %)0X08|(% style="width:56px" %)0X1A
Karry Zhuang 16.1 114
115 If the sensor receives correctly, the data is returned along the original path.
116 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.
117
118
119 === 1.7.3 Modify intercept ===
120
121
122 send
123
124 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
125 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 27.1 126 |(% style="width:99px" %)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" %)(((
127 0X07
Karry Zhuang 16.1 128 )))
129
130 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command.
131
132 response
133
134 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
135 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
136 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X06|(% style="width:135px" %)(((
137 0X02
Karry Zhuang 27.1 138 )))|(% style="width:126px" %)0X00|(% style="width:85px" %)0X00|(% style="width:1px" %)0X0A|(% style="width:1px" %)0X38|(% style="width:1px" %)(((
139 0X8F
Karry Zhuang 16.1 140 )))
141
142 === 1.7.4 Query data ===
143
Karry Zhuang 16.3 144 The address of the EC K10 sensor is 11
Karry Zhuang 16.1 145
Karry Zhuang 10.1 146 The query data command is 11 03 00 00 00 02 C6 9B
147
Karry Zhuang 11.1 148 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
Karry Zhuang 10.1 149
150
151 The address of the EC K1 sensor is 12
152
153 The query data command is 12 03 00 00 00 02 C6 A8
154
Karry Zhuang 16.1 155 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
Karry Zhuang 10.1 156
Karry Zhuang 11.1 157
Karry Zhuang 16.2 158 === 1.7.5 Calibration Method ===
Karry Zhuang 12.1 159
160
Karry Zhuang 15.1 161 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 162
Karry Zhuang 15.1 163 The calibration steps are as follows:
164 (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.
165
Karry Zhuang 14.1 166 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
167 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 139.083px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Data|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
168 |(% 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" %)(((
169 0X00
Karry Zhuang 12.1 170
Karry Zhuang 14.1 171 0X00
172
173 0X37
174
175 0X32
176 )))|(% style="width:1px" %)0XBD|(% style="width:1px" %)0XFC
177
Karry Zhuang 15.1 178 1413*10 gives 0X00003732
Karry Zhuang 14.1 179
Karry Zhuang 16.1 180 response
Karry Zhuang 15.1 181
Karry Zhuang 13.1 182 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
Karry Zhuang 14.1 183 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
184 |(% 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
185
186 (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
187
188 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
Karry Zhuang 13.1 189 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 139.083px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Data|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
Karry Zhuang 14.1 190 |(% 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" %)(((
191 0X00
Karry Zhuang 12.1 192
Karry Zhuang 14.1 193 0X01
194
195 0XF7
196
197 0X20
198 )))|(% style="width:1px" %)0X33|(% style="width:1px" %)0X75
199
Karry Zhuang 15.1 200 12880*10 gives 0X01F720
201
Karry Zhuang 16.1 202 response
Karry Zhuang 14.1 203
204 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
205 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
206 |(% 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
207
Edwin Chen 8.1 208 = 2. DR-PH01 Water PH Sensor =
209
210
Karry Zhuang 28.2 211 == 2.1 Specification ==
Edwin Chen 9.1 212
Karry Zhuang 26.1 213 * **Power Input**: DC7~~30
214 * **Power Consumption** : < 0.5W
215 * **Interface**: RS485. 9600 Baud Rate
216 * **pH measurement range**: 0~~14.00pH; resolution: 0.01pH
217 * **pH measurement error**:±0.15pH
218 * **Repeatability error**:±0.02pH
219 * **Temperature measurement range**:0~~60℃; resolution: 0.1℃ (set temperature for manual temperature compensation, default 25℃)
220 * **Temperature measurement error**: ±0.5℃
221 * **Temperature Measure Range**: -20 ~~ 60 °C
222 * **Temperature Accuracy: **±0.5 °C
223 * **IP Rated**: IP68
224 * **Max Pressure**: 0.6MPa
225
226 == 2.2 Wiring ==
227
228
229 == (% style="color:inherit; font-family:inherit" %)2.3 (% style="color:inherit; font-family:inherit; font-size:26px" %)Mechinical Drawing(%%) ==
230
231 [[image:image-20240714174241-2.png]]
232
233
234 == 2.4 Installation Notice ==
235
236 Do not power on while connect the cables. Double check the wiring before power on.
237
238 Installation Photo as reference:
239
240 **~ Submerged installation:**
241
242 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.
243
244 [[image:image-20240718191348-6.png]]
245
246 **~ Pipeline installation:**
247
248 Connect the equipment to the pipeline through the 3/4 thread.
249
250 [[image:image-20240718191336-5.png||height="239" width="326"]]
251
252 **Sampling:**
253
254 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.
255
256 **Measure the pH of the water sample:**
257
258 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.
259
260
261 === 2.5 Maintenance ===
262
263
264 * 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!
265 * 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.
266 * 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.
267 * 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.
268 * 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.
269 * The electrode should be cleaned with deionized water before and after measurement to ensure accuracy.
270 * 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.
271 * 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.
272 * (((
273 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.
274 )))
275
276 == 2.6 RS485 Commands ==
277
Karry Zhuang 27.1 278 RS485 signaldefault address 0x10
279 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
Karry Zhuang 26.1 280
Karry Zhuang 33.2 281 === 2.6.1 Query address ===
Karry Zhuang 27.1 282
283 send
284
285 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
286 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
287 |(% 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
288
289 response
290
291 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %)
292 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 50px;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
293 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0
294
295 === 2.6.2 Change address ===
296
297 For example: Change the address of the sensor with address 1 to 2, master → slave
298
299 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
300 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
301 |(% 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
302
303 If the sensor receives correctly, the data is returned along the original path.
304 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.
305
306
307 === 2.6.3 Modify intercept ===
308
309
310 send
311
Karry Zhuang 34.3 312 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:570.333px" %)
313 |=(% style="width: 71px; background-color: rgb(79, 129, 189); color: white;" %)Address|=(% style="width: 74px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 67px; 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: 69px; background-color: rgb(79, 129, 189); color: white;" %)Register Length high|=(% style="width: 66px; background-color: rgb(79, 129, 189); color: white;" %)Register Length low|=(% style="width: 57px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 57px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
314 |(% 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 315 0XA5
316 )))
317
318 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command.
319
320 response
321
322 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
323 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
324 |(% style="width:99px" %)0X10|(% style="width:112px" %)0X06|(% style="width:135px" %)(((
325 0X00
326 )))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)(((
327 0XA5
328 )))
329
330 === 2.6.4 Query data ===
331
332
Karry Zhuang 34.3 333 Query the data (PH) of the sensor (address 10), host → slave
Edwin Chen 9.1 334
Karry Zhuang 34.3 335 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
336 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; 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: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
337 |(% 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
338
339 If the sensor receives correctly, the following data will be returned, slave → host
340
341 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
342 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
343 |(% style="width:99px" %)0X14|(% style="width:72px" %)0X03|(% style="width:68px" %)0X02|(% style="width:70px" %)0X02|(% style="width:72px" %)0XAE|(% style="width:56px" %)0XC4|(% style="width:56px" %)0X9B
344
Karry Zhuang 11.1 345 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 346
Karry Zhuang 11.1 347 For example, the returned data is 10 03 02 (% style="color:red" %)**02 AE**(%%) C4 9B.
348
349 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.
350
351
Karry Zhuang 27.1 352 === 2.6.5 Calibration Method ===
353
354
355 This device uses three-point calibration, and three known pH standard solutions need to be prepared.
356 The calibration steps are as follows:
357 (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.
358
359 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %)
360 |=(% style="width: 64px; 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
361 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
362 0X00
363 )))|(% style="width:68px" %)0X20|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X8A|(% style="width:55px" %)(((
364 0XF1
365 )))
366
367 (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.
368
369 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %)
370 |=(% style="width: 64px; 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
371 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
372 0X00
373 )))|(% style="width:68px" %)0X21|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XDB|(% style="width:55px" %)(((
374 0X31
375 )))
376
377 (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.
378
379 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %)
380 |=(% style="width: 64px; 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
381 |(% style="width:64px" %)0X10|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
382 0X00
383 )))|(% style="width:68px" %)0X22|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X2B|(% style="width:55px" %)(((
384 0X31
385 )))
386
387 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.
388
389
Edwin Chen 8.1 390 = 3. DR-ORP1 Water ORP Sensor =
391
Karry Zhuang 27.2 392
Karry Zhuang 28.2 393 == 3.1 Specification ==
Karry Zhuang 27.2 394
395 * **Power Input**: DC7~~30
Karry Zhuang 32.1 396 * **Measuring range**:** **-1999~~1999mV
397 **Resolution**: 1mV
Karry Zhuang 27.2 398 * **Interface**: RS485. 9600 Baud Rate
399 * **Measurement error**: ±3mV
400 * **Stability**: ≤2mv/24 hours
401 * **Equipment working conditions**: Ambient temperature: 0-60℃ Relative humidity: <85%RH
402 * **IP Rated**: IP68
403 * **Max Pressure**: 0.6MPa
404
405 == 3.2 Wiring ==
406
407
408 == 3.3 Mechinical Drawing ==
409
410 [[image:image-20240714174241-2.png]]
411
412 == 3.4 Installation Notice ==
413
414 Do not power on while connect the cables. Double check the wiring before power on.
415
416 Installation Photo as reference:
417
418 **~ Submerged installation:**
419
420 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.
421
422 [[image:image-20240718191348-6.png]]
423
424 **~ Pipeline installation:**
425
426 Connect the equipment to the pipeline through the 3/4 thread.
427
428 [[image:image-20240718191336-5.png||height="239" width="326"]]
429
430
Karry Zhuang 32.3 431 === 3.5 Maintenance ===
Edwin Chen 8.1 432
Edwin Chen 9.1 433
Karry Zhuang 29.1 434 (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 435
Karry Zhuang 29.1 436 (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 437
Karry Zhuang 29.1 438 (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 439
Karry Zhuang 29.1 440 (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 441
Karry Zhuang 29.1 442 (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 443
Karry Zhuang 29.1 444 (6) The electrode should be cleaned with deionized water before and after the measurement to ensure the measurement accuracy.
Karry Zhuang 32.3 445
Karry Zhuang 29.1 446 (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 447
Karry Zhuang 29.1 448 (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 449
Karry Zhuang 29.1 450 (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.
451
452 == 3.6 RS485 Commands ==
453
454
455 RS485 signaldefault address 0x13
456 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
457
Karry Zhuang 33.2 458 === 3.6.1 Query address ===
Karry Zhuang 29.1 459
460 send
461
462 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
463 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
464 |(% 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
465
466 response
467
468 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %)
469 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 50px;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
470 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0
471
472 === 3.6.2 Change address ===
473
474 For example: Change the address of the sensor with address 1 to 2, master → slave
475
476 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
477 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
478 |(% 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
479
480 If the sensor receives correctly, the data is returned along the original path.
481 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.
482
483
484 === 3.6.3 Modify intercept ===
485
486 send
487
488 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
489 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
490 |(% 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" %)(((
491 0X96
492 )))
493
494 Change the intercept of the sensor with address 1 to 10 (default 0), which is 0X000A in the command.
495
496 response
497
498 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
499 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Function code|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address high|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)Quantity high|=(% style="width: 1px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 low|=(% style="width: 50px;background-color:#4F81BD;color:white" %)CRC16 high
500 |(% style="width:99px" %)0X13|(% style="width:112px" %)0X06|(% style="width:135px" %)(((
501 0X00
502 )))|(% style="width:126px" %)0X10|(% style="width:85px" %)0X00|(% style="width:1px" %)0X64|(% style="width:1px" %)0X8A|(% style="width:1px" %)(((
503 0X96
504 )))
505
506 === 3.6.4 Query data ===
507
Karry Zhuang 11.1 508 The address of the ORP sensor is 13
Edwin Chen 9.1 509
Karry Zhuang 11.1 510 The query data command is 13 03 00 00 00 01 87 78
Karry Zhuang 10.1 511
Karry Zhuang 11.1 512 For example, the returned data is 13 03 02 (% style="color:red" %)**02 AE**(%%) 80 9B.
Karry Zhuang 10.1 513
Karry Zhuang 11.1 514 02 AE is the ORP value, converted to decimal, the actual value is 686, 02 AE means the current ORP value is 686mV
515
516
Karry Zhuang 29.1 517 === 3.6.5 Calibration Method ===
518
519 This device uses two-point calibration, and two known ORP standard solutions need to be prepared. The calibration steps are as follows:
520 (1) Place the electrode in distilled water to clean it, and then place it in 86mV standard buffer solution. After the data stabilizes,
521 enter the following calibration command, and the 86mV point calibration is completed;
522
523 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %)
524 |=(% style="width: 64px; 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
525 |(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
526 0X00
527 )))|(% style="width:68px" %)0X24|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0XCB|(% style="width:55px" %)(((
528 0X03
529 )))
530
531 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.
532
533 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:575.333px" %)
534 |=(% style="width: 64px; 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
535 |(% style="width:64px" %)0X13|(% style="width:72px" %)0X06|(% style="width:66px" %)(((
536 0X00
537 )))|(% style="width:68px" %)0X25|(% style="width:72px" %)0XFF|(% style="width:70px" %)0XFF|(% style="width:55px" %)0X9A|(% style="width:55px" %)(((
538 0XC3
539 )))
540
Edwin Chen 8.1 541 = 4. DR-DO1 Dissolved Oxygen Sensor =
542
543
Karry Zhuang 11.1 544
Karry Zhuang 32.1 545 == 4.1 Specification ==
546
Karry Zhuang 33.2 547
548 * **Measuring range**: 0-20mg/L, 0-50℃
549 * **Accuracy**: 3%, ±0.5℃
550 * **Resolution**: 0.01 mg/L, 0.01℃
551 * **Maximum operating pressure**: 6 bar
552 * **Output signal**: A: 4-20mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01)
553 * **Power supply voltage**: 5-24V DC
554 * **Working environment**: temperature 0-60℃; humidity <95%RH
Karry Zhuang 32.1 555 * **Power consumption**: ≤0.5W
556
Karry Zhuang 33.2 557 == 4.2 wiring ==
Karry Zhuang 32.1 558
Karry Zhuang 33.2 559
560
561 == (% id="cke_bm_224234S" style="display:none" %) (%%)4.3 Impedance requirements for current signals ==
562
Karry Zhuang 32.1 563 [[image:image-20240718195414-8.png||height="100" width="575"]]
564
565
566 == 4.4 Mechinical Drawing ==
567
568
Karry Zhuang 33.2 569 [[image:image-20240719155308-1.png||height="226" width="527"]]
Karry Zhuang 32.1 570
Karry Zhuang 33.2 571
Karry Zhuang 32.1 572 === 4.5 Instructions for use and maintenance ===
573
574 * It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor.
575 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently.
576
577 == 4.6 RS485 Commands ==
578
Karry Zhuang 34.1 579 RS485 signaldefault address 0x14
580 Standard Modbus-RTU protocol, baud rate: 9600; check bit: none; data bit: 8; stop bit: 1
581
Karry Zhuang 32.3 582 === 4.6.1 Query address ===
Karry Zhuang 32.1 583
Karry Zhuang 32.3 584 send
585
586 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
Karry Zhuang 34.1 587 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Register address high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register address low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
588 |(% 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 589
Karry Zhuang 34.1 590 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 591
592
593 response
594
Karry Zhuang 34.1 595 Register 0 data high and register 0 data low indicate the actual address of the sensor: 1
596 Register 1 data high and register 1 data low indicate the sensor version
Karry Zhuang 32.3 597
Karry Zhuang 34.1 598 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
599 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register 1 Data low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
600 |(% 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
601
Karry Zhuang 33.2 602 === 4.6.2 Change address ===
Karry Zhuang 32.3 603
Karry Zhuang 34.1 604 For example: Change the address of the sensor with address 1 to 2(address range: 1-119), master → slave
Karry Zhuang 33.2 605
606 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:907.333px" %)
607 |=(% style="width: 67px; background-color: rgb(79, 129, 189); color: white;" %)Original address|=(% style="width: 71px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 65px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address high|=(% style="width: 65px; background-color: rgb(79, 129, 189); color: white;" %)Starting register address low|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Start address high|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Start address low|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Sensor version|=(% style="width: 53px; background-color: rgb(79, 129, 189); color: white;" %)Sensor version|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low
608 |(% 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
609
Karry Zhuang 34.1 610 response
Karry Zhuang 32.3 611
Karry Zhuang 34.1 612 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
613 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; 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: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
614 |(% 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 615
Karry Zhuang 34.1 616 === 4.6.3 Query data ===
Edwin Chen 9.1 617
618
Karry Zhuang 34.2 619 Query the data (dissolved oxygen) of the sensor (address 14), host → slave
Karry Zhuang 34.1 620
621 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
622 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; 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: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
623 |(% 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
624
Karry Zhuang 34.2 625 If the sensor receives correctly, the following data will be returned, slave → host
Karry Zhuang 34.1 626
627 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
628 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
Karry Zhuang 34.2 629 |(% 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 630
Karry Zhuang 11.1 631 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 632
633 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
634
Karry Zhuang 11.1 635
Karry Zhuang 34.2 636 Query the data (temperature) of the sensor (address 14), host → slave
637
638 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
639 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; 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: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register length high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Register length low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
640 |(% 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
641
642 If the sensor receives correctly, the following data will be returned, slave → host
643
644 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
645 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Data length|=(% style="width: 68px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data high|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)Register 0 Data low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
646 |(% 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
647
648 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.
649
650 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℃
651
652
Edwin Chen 8.1 653 = 5. DR-TS1 Water Turbidity Sensor =
654
Edwin Chen 9.1 655
Karry Zhuang 10.1 656
Karry Zhuang 32.3 657 == (% id="cke_bm_81470S" style="display:none" %) (%%)5.1 Specification ==
658
659 * **Measuring range**: 0.1~1000.0NTU
660 * **Accuracy**: ±5%
661 * **Resolution**: 0.1NTU
662 * **Stability**: ≤3mV/24 hours
663 * **Output signal**: A: 4~20 mA (current loop)B: RS485 (standard Modbus-RTU protocol, device default address: 01)
664 * **Power supply voltage**: 5~24V DC (when output signal is RS485)12~24V DC (when output signal is 4~20mA)
665 * **Working environment**: temperature 0~60℃; humidity ≤95%RH
666 * **Power consumption**: ≤0.5W
667
668 == 5.2 wiring ==
669
670
671 == 5.3 Impedance requirements for current signals ==
672
673 [[image:image-20240718195414-8.png||height="100" width="575"]]
674
675
676 == 5.4 Mechinical Drawing ==
677
678 [[image:image-20240718195058-7.png||height="305" width="593"]]
679
680
681 === 5.5 Instructions for use and maintenance ===
682
683 * It can be directly put into water without adding a protective tube, ensuring the long-term stability, reliability and accuracy of the sensor.
684 * If the water conditions are complex and you want accurate data, you need to wipe the sensor probe frequently.
685
686 == 5.6 RS485 Commands ==
687
688 === 4.6.1 Query address ===
689
690 send
691
692 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:599.333px" %)
693 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)Original address|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Function code|=(% style="width: 64px; 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: 70px; background-color: rgb(79, 129, 189); color: white;" %)Quantity high|=(% style="width: 72px; background-color: rgb(79, 129, 189); color: white;" %)Quantity low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 low|=(% style="width: 56px; background-color: rgb(79, 129, 189); color: white;" %)CRC16 high
694 |(% style="width:99px" %)0XFE |(% style="width:72px" %)0X03|(% style="width:64px" %)0X00|(% style="width:68px" %)0X50|(% style="width:70px" %)0X00|(% style="width:72px" %)0X00|(% style="width:56px" %)0X51|(% style="width:56px" %)0XD4
695
696 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.
697
698
699 response
700
701 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:561.333px" %)
702 |=(% style="width: 50px;background-color:#4F81BD;color:white" %)New address|=(% style="width: 50px;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
703 |(% style="width:99px" %)0X01|(% style="width:112px" %)0X03|(% style="width:106px" %)0X00|(% style="width:93px" %)0X20|(% style="width:104px" %)0XF0
704
705 === 5.6.2 Query data ===
706
707
Karry Zhuang 10.1 708 The address of the dissolved oxygen sensor is 15
709
Karry Zhuang 11.1 710 The query data command is 15 03 00 00 00 01 87 1E
Karry Zhuang 10.1 711
Karry Zhuang 11.1 712 For example, the returned data is 15 03 02 (% style="color:red" %)**02 9A**(%%) 09 4C
713
714 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