Wiki source code of Water Quality Sensors

Version 14.1 by Karry Zhuang on 2024/07/18 16:11

Show last authors
1 **Table of Contents:**
2
3 {{toc/}}
4
5
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
40 == 1.6 Maintain ==
41
42
43 == 1.7 RS485 Commands ==
44
45 === 1.7.1 Query data ===
46
47 The address of the EC K10 sensor is 11
48
49 The query data command is 11 03 00 00 00 02 C6 9B
50
51 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
52
53
54 The address of the EC K1 sensor is 12
55
56 The query data command is 12 03 00 00 00 02 C6 A8
57
58 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.
59
60
61 === 1.7.2 Calibration Method ===
62
63
64 This device uses one-point calibration, and you need to prepare a known E standard solution. When mileage K=1, 1~~2000 uses 1413uS/cm standard solution, and when mileage K=10, 10~~20000 uses 12.88mS/cm standard solution. The calibration steps are as follows:
65 (1) Place the electrode in distilled water and clean it. When mileage 1~~2000 uses 1413HS/cm standard solution, enter the following calibration command after the data is stable.
66
67 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
68 |=(% 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
69 |(% 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" %)(((
70 0X00
71
72 0X00
73
74 0X37
75
76 0X32
77 )))|(% style="width:1px" %)0XBD|(% style="width:1px" %)0XFC
78
79 return
80
81 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
82 |=(% 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
83 |(% 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
84
85
86 (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
87
88 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
89 |=(% 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
90 |(% 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" %)(((
91 0X00
92
93 0X01
94
95 0XF7
96
97 0X20
98 )))|(% style="width:1px" %)0X33|(% style="width:1px" %)0X75
99
100 Return
101
102 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:676.25px" %)
103 |=(% 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
104 |(% 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
105
106
107
108
109
110
111 = 2. DR-PH01 Water PH Sensor =
112
113 == 2.7 RS485 Commands ==
114
115
116 The address of the pH  sensor is 10
117
118 The query data command is 10 03 00 00 00 01 87 4B. After the query, 7 bytes will be returned.
119
120 For example, the returned data is 10 03 02 (% style="color:red" %)**02 AE**(%%) C4 9B.
121
122 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.
123
124
125 = 3. DR-ORP1 Water ORP Sensor =
126
127 == 3.7 RS485 Commands ==
128
129
130 The address of the ORP sensor is 13
131
132 The query data command is 13 03 00 00 00 01 87 78
133
134 For example, the returned data is 13 03 02 (% style="color:red" %)**02 AE**(%%) 80 9B.
135
136 02 AE is the ORP value, converted to decimal, the actual value is 686, 02 AE means the current ORP value is 686mV
137
138
139 = 4. DR-DO1 Dissolved Oxygen Sensor =
140
141 == 4.7 RS485 Commands ==
142
143
144 The address of the dissolved oxygen sensor is 14
145
146 The query data command is 14 03 00 14 00 01 C6 CB
147
148 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.
149
150 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
151
152
153 = 5. DR-TS1 Water Turbidity Sensor =
154
155 == 5.7 RS485 Commands ==
156
157
158 The address of the dissolved oxygen sensor is 15
159
160 The query data command is 15 03 00 00 00 01 87 1E
161
162 For example, the returned data is 15 03 02 (% style="color:red" %)**02 9A**(%%) 09 4C
163
164 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
165
166