Wiki source code of SW3L -- LoRaWAN Outdoor Flow Sensor
Last modified by Mengting Qiu on 2025/02/17 16:42
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | |||
2 | |||
3 | (% style="text-align:center" %) | ||
4 | [[image:image-20220519085532-1.png||_mstalt="431171" height="429" width="366"]] | ||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | **Table of Contents:** | ||
11 | |||
12 | {{toc/}} | ||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | = 1. Introduction = | ||
20 | |||
21 | == 1.1 What is SW3L LoRaWAN Flow Sensor == | ||
22 | |||
23 | |||
24 | ((( | ||
25 | The Dragino SW3L is a (% style="color:#037691" %)**LoRaWAN Flow Sensor**(%%). It detects water flow volume and uplink to IoT server via LoRaWAN network. User can use this to** (% style="color:#037691" %)monitor the water usage for buildings.(%%)** | ||
26 | ))) | ||
27 | |||
28 | ((( | ||
29 | SW3L is powered by (% style="color:#037691" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to 10 years. (Actually Battery life depends on the use environment, update period.) | ||
30 | ))) | ||
31 | |||
32 | ((( | ||
33 | The SW3L will send water flow volume every 20 minutes. It can also (% style="color:#037691" %)**detect the water flow status**(%%) and (% style="color:#037691" %)**send Alarm**(%%), to avoid the waste for water usage such as broken toilet case. | ||
34 | ))) | ||
35 | |||
36 | ((( | ||
37 | SW3L is designed for both indoor and outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures. | ||
38 | ))) | ||
39 | |||
40 | ((( | ||
41 | Each SW3L is pre-load with a set of unique keys for LoRaWAN registration, register these keys to LoRaWAN server and it will auto connect after power on | ||
42 | ))) | ||
43 | |||
44 | ((( | ||
45 | *Battery life depends on how often to send data, please see battery analyzer. | ||
46 | ))) | ||
47 | |||
48 | |||
49 | == 1.2 Features == | ||
50 | |||
51 | |||
52 | * LoRaWAN v1.0.3 Class A protocol. | ||
53 | * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865/RU864 | ||
54 | * Upload water flow volume | ||
55 | * Monitor water waste | ||
56 | * 8500mAh industrial battery(none-rechargeable) | ||
57 | * AT Commands to change parameters | ||
58 | * Uplink on periodically and open/close event | ||
59 | * Datalog feature | ||
60 | * Remote configure parameters via LoRa Downlink | ||
61 | * Firmware upgradable via program port | ||
62 | * Wall Mountable | ||
63 | * Outdoor Use | ||
64 | |||
65 | == 1.3 Installation == | ||
66 | |||
67 | |||
68 | Each SW3L package is shipped with a flow sensor. Install the flow sensor into water pipe with correct flow direction to start monitoring. | ||
69 | |||
70 | |||
71 | == 1.4 Storage & Operation Temperature == | ||
72 | |||
73 | |||
74 | -40°C to +85°C | ||
75 | |||
76 | |||
77 | == 1.5 Applications == | ||
78 | |||
79 | |||
80 | * Flow Sensor application | ||
81 | * Water Control | ||
82 | * Toilet Flow Sensor | ||
83 | * Monitor Waste water | ||
84 | |||
85 | == 1.6 Flow Sensor Spec == | ||
86 | |||
87 | |||
88 | ((( | ||
89 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:515px" %) | ||
90 | |=(% style="width: 103px; background-color:#4F81BD; color: white;" %)**Model**|=(% style="width: 103px; background-color:#4F81BD; color: white;" %)**SW3L-004**|=(% style="width: 103px; background-color:#4F81BD; color: white;" %)SW3L-006|=(% style="width: 103px; background-color:#4F81BD; color: white;" %)SW3L-010|=(% style="width: 103px; background-color:#4F81BD; color: white;" %)SW3L-020 | ||
91 | |(% style="width:152px" %)**Probe #**|(% style="width:176px" %)DW-004|(% style="width:173px" %)DW-006|(% style="width:165px" %)DW-010|(% style="width:190px" %)DW-020 | ||
92 | |(% style="width:152px" %)**Diameter**|(% style="width:176px" %)G1/2" / DN15|(% style="width:173px" %)G3/4" / DN20|(% style="width:165px" %)G1" / DN25|(% style="width:190px" %)G2" / DN50 | ||
93 | |(% style="width:152px" %)**Working Range**|(% style="width:176px" %)1~~30L/min|(% style="width:173px" %)1~~60L/min|(% style="width:165px" %)2~~100L/min|(% style="width:190px" %)10~~300L/min | ||
94 | |(% style="width:152px" %)**Measure**|(% style="width:176px" %)450 pulse = 1 L|(% style="width:173px" %)390 pulse = 1 L|(% style="width:165px" %)64 pulse = 1 L|(% style="width:190px" %)12 pulse = 1 L | ||
95 | |(% style="width:152px" %)**Accurancy**|(% style="width:176px" %)±5%|(% style="width:173px" %)±5%|(% style="width:165px" %)±5%|(% style="width:190px" %)±5% | ||
96 | |(% style="width:152px" %)**Power Consumption**|(% style="width:176px" %)1uA, 3.6v (Sensor Only)|(% style="width:173px" %)1uA, 3.6v (Sensor Only)|(% style="width:165px" %)1uA, 3.6v (Sensor Only)|(% style="width:190px" %)1uA, 3.6v (Sensor Only) | ||
97 | |(% style="width:152px" %)**Max Pressure**|(% style="width:176px" %)≤ 1.75Mpa|(% style="width:173px" %)≤ 1.75Mpa |(% style="width:165px" %)≤ 1.75Mpa|(% style="width:190px" %)≤ 1.75Mpa | ||
98 | |(% style="width:152px" %)**Temperature range**|(% style="width:176px" %)<80°C|(% style="width:173px" %)<80°C|(% style="width:165px" %)<80°C|(% style="width:190px" %)<80°C | ||
99 | |(% style="width:152px" %)**Humidity Range**|(% style="width:176px" %)35%~~90%RH (no frost)|(% style="width:173px" %)35%~~90%RH (no frost)|(% style="width:165px" %)35%~~90%RH (no frost)|(% style="width:190px" %)35%~~90%RH (no frost) | ||
100 | ))) | ||
101 | |||
102 | |||
103 | == 1.7 Mechanical == | ||
104 | |||
105 | |||
106 | [[image:1652922789057-479.png||_mstalt="299312"]] | ||
107 | |||
108 | [[image:1652922797548-885.png||_mstalt="300391"]] | ||
109 | |||
110 | |||
111 | (% style="color:blue" %)**004: DW-004 Flow Sensor: diameter: G1/2” / DN15. 450 pulse = 1 L** | ||
112 | |||
113 | [[image:image-20220519091350-1.png||_mstalt="429611" height="385" width="722"]] | ||
114 | |||
115 | |||
116 | (% style="color:blue" %)**006: DW-006 Flow Sensor: diameter: G3/4” / DN20. 390 pulse = 1 L** | ||
117 | |||
118 | [[image:image-20220519091423-2.png||_mstalt="5391646" height="258" width="723"]] | ||
119 | |||
120 | |||
121 | (% style="color:blue" %)**010: DW-010 Flow Sensor: diameter: G 1” / DN25. 64 pulse = 1 L** | ||
122 | |||
123 | [[image:image-20220519091423-3.png||_mstalt="5391971" height="448" width="724"]] | ||
124 | |||
125 | |||
126 | (% style="color:blue" %)**020: DW-020 Flow Sensor: diameter: G 2” / DN50. 12 pulse = 1 L** | ||
127 | |||
128 | [[image:image-20240125090604-1.png]] | ||
129 | |||
130 | |||
131 | == 1.8 Pin Definitions and Switch == | ||
132 | |||
133 | |||
134 | [[image:1652923899427-927.png||_mstalt="299377" height="372" width="723"]] | ||
135 | |||
136 | |||
137 | === 1.8.1 Pin Definition === | ||
138 | |||
139 | |||
140 | SW3L is pre-configured to connect to two external wires. The other pins are not used. If user wants to know more about other pins, please refer to the user manual of LSN50v2 at: | ||
141 | |||
142 | [[https:~~/~~/www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0>>https://www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0]] | ||
143 | |||
144 | (% style="color:red" %)**Add PA11 digital input and PA12 digital input(Since firmware v1.2.0)** | ||
145 | |||
146 | |||
147 | === 1.8.2 Jumper JP2(Power ON/OFF) === | ||
148 | |||
149 | |||
150 | Power on Device when putting this jumper. | ||
151 | |||
152 | |||
153 | === 1.8.3 BOOT MODE / SW1 === | ||
154 | |||
155 | |||
156 | ((( | ||
157 | 1) ISP: upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run. | ||
158 | 2) Flash: work mode, the device starts to work and send out console output for further debug | ||
159 | ))) | ||
160 | |||
161 | |||
162 | === 1.8.4 Reset Button === | ||
163 | |||
164 | |||
165 | Press to reboot the device. | ||
166 | |||
167 | |||
168 | === 1.8.5 LED === | ||
169 | |||
170 | |||
171 | It will flash: | ||
172 | 1) Boot the device in flash mode | ||
173 | 2) Send an uplink packe | ||
174 | |||
175 | |||
176 | = 2. Operation Mode = | ||
177 | |||
178 | == 2.1 How it works? == | ||
179 | |||
180 | |||
181 | Each SW3L is shipped with a worldwide unique set of OTAA keys. To use SW3L in a LoRaWAN network, user needs to input the OTAA keys in the LoRaWAN network server. So SW3L can join the LoRaWAN network and start to transmit sensor data. | ||
182 | |||
183 | |||
184 | == 2.2 Example to use for LoRaWAN network == | ||
185 | |||
186 | |||
187 | This section shows an example of how to join the TTN V3 LoRaWAN IoT server. Usages with other LoRaWAN IoT servers are similar. | ||
188 | |||
189 | [[image:1652944563101-603.png||_mstalt="292279" height="321" width="729"]] | ||
190 | |||
191 | |||
192 | * In this use case, the SW3L is connected into water line to measure water flow and send the status to the LoRaWAN server. The SW3L will uplink different types of messages to the LoRaWAN server. See [[Uplink payload>>||anchor="H2.3UplinkPayload"]] for detail. | ||
193 | |||
194 | ((( | ||
195 | Assume the DLOS8 is already set to connect to the [[TTN V3 network >>url:https://eu1.cloud.thethings.network]]. We need to add the SW3L device in TTN V3: | ||
196 | |||
197 | |||
198 | ))) | ||
199 | |||
200 | ((( | ||
201 | (% style="color:blue" %)**Step 1**(%%): Create a device in TTN V3 with the OTAA keys from SW3L. | ||
202 | ))) | ||
203 | |||
204 | ((( | ||
205 | Each SW3L is shipped with a sticker with the default device EUI as below: | ||
206 | ))) | ||
207 | |||
208 | [[image:image-20230426085254-1.png||height="236" width="508"]] | ||
209 | |||
210 | |||
211 | Users can enter these keys in the LoRaWAN Server portal. Below is the TTN V3 screenshot: | ||
212 | |||
213 | Add APP EUI in the application. | ||
214 | |||
215 | [[image:image-20220519151704-1.png||_mstalt="429715"]] | ||
216 | |||
217 | |||
218 | [[image:image-20220519151704-2.png||_mstalt="430079" height="322" width="717"]] | ||
219 | |||
220 | |||
221 | [[image:image-20220519151704-3.png||_mstalt="430443"]] | ||
222 | |||
223 | |||
224 | [[image:image-20220519151704-4.png||_mstalt="430807"]] | ||
225 | |||
226 | Add APP KEY and DEV EUI | ||
227 | |||
228 | |||
229 | |||
230 | (% style="color:blue" %)**Step 2**(%%): Power on SW3L | ||
231 | |||
232 | [[image:image-20220519094347-1.png||_mstalt="432549" height="430" width="725"]] | ||
233 | |||
234 | |||
235 | ((( | ||
236 | Put the jumper to power on SW3L and it will auto-join to the TTN V3 network. After join success, it will start to upload sensor data to TTN V3 and the user can see it in the panel. | ||
237 | ))) | ||
238 | |||
239 | [[image:1652924675638-547.png||_mstalt="298363" height="254" width="732"]] | ||
240 | |||
241 | |||
242 | == 2.3 Uplink Payload == | ||
243 | |||
244 | |||
245 | ((( | ||
246 | Uplink payloads have two types: | ||
247 | ))) | ||
248 | |||
249 | * ((( | ||
250 | Open/Close Status: Use FPORT=2 | ||
251 | ))) | ||
252 | * ((( | ||
253 | Other control commands: Use other FPORT fields. | ||
254 | ))) | ||
255 | |||
256 | ((( | ||
257 | The application server should parse the correct value based on FPORT settings. | ||
258 | |||
259 | |||
260 | ))) | ||
261 | |||
262 | === 2.3.1 Device Status, FPORT~=5 === | ||
263 | |||
264 | |||
265 | ((( | ||
266 | ((( | ||
267 | Include device configure status. Once SW3L Joined the network, it will uplink this message to the server. After that, SW3L will uplink Device Status every 12 hours. | ||
268 | ))) | ||
269 | ))) | ||
270 | |||
271 | ((( | ||
272 | ((( | ||
273 | Users can also use the downlink command(0x26 01) to ask SW3L to resend this uplink. This uplink payload also includes the DeviceTimeReq to get time. | ||
274 | |||
275 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
276 | |(% colspan="6" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=5)** | ||
277 | |(% style="width:103px" %)**Size (bytes)**|(% style="width:72px" %)**1**|**2**|(% style="width:91px" %)**1**|(% style="width:86px" %)**1**|(% style="width:44px" %)**2** | ||
278 | |(% style="width:103px" %)Value|(% style="width:72px" %)Sensor Model|Firmware Version|(% style="width:91px" %)Frequency Band|(% style="width:86px" %)Sub-band|(% style="width:44px" %)BAT | ||
279 | ))) | ||
280 | ))) | ||
281 | |||
282 | |||
283 | Example parse in TTNv3 | ||
284 | |||
285 | [[image:1652925144491-755.png||_mstalt="296296" height="139" width="732"]] | ||
286 | |||
287 | * (% style="color:#037691" %)**Sensor Model**(%%): For SW3L, this value is 0x11 | ||
288 | |||
289 | * (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version | ||
290 | |||
291 | * (% style="color:#037691" %)**Frequency Band**(%%): | ||
292 | |||
293 | *0x01: EU868 | ||
294 | |||
295 | *0x02: US915 | ||
296 | |||
297 | *0x03: IN865 | ||
298 | |||
299 | *0x04: AU915 | ||
300 | |||
301 | *0x05: KZ865 | ||
302 | |||
303 | *0x06: RU864 | ||
304 | |||
305 | *0x07: AS923 | ||
306 | |||
307 | *0x08: AS923-1 | ||
308 | |||
309 | *0x09: AS923-2 | ||
310 | |||
311 | *0x0a: AS923-3 | ||
312 | |||
313 | *0x0b: CN470 | ||
314 | |||
315 | *0x0c: EU433 | ||
316 | |||
317 | *0x0d: KR920 | ||
318 | |||
319 | *0x0e: MA869 | ||
320 | |||
321 | * ((( | ||
322 | (% style="color:#037691" %)**Sub-Band**: | ||
323 | |||
324 | * AU915 and US915:value 0x00 ~~ 0x08 | ||
325 | * CN470: value 0x0B ~~ 0x0C | ||
326 | * Other Bands: Always 0x00 | ||
327 | |||
328 | |||
329 | ))) | ||
330 | |||
331 | * (% style="color:#037691" %)**Battery Info:** | ||
332 | |||
333 | Check the battery voltage. | ||
334 | |||
335 | **Ex1**: 0x0B45 = 2885mV | ||
336 | |||
337 | **Ex2**: 0x0B49 = 2889mV | ||
338 | |||
339 | |||
340 | === 2.3.2 Sensor Configuration, FPORT~=4 === | ||
341 | |||
342 | |||
343 | SW3L will only send this command after getting the downlink command (0x26 02) from the server. | ||
344 | |||
345 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
346 | |(% style="background-color:#4f81bd; color:white; width:70px" %) **Size(bytes)**|(% style="background-color:#4f81bd; color:white; width:105px" %)**3**|(% style="background-color:#4f81bd; color:white; width:60px" %)**1**|(% style="background-color:#4f81bd; color:white; width:96px" %)**1**|(% style="background-color:#4f81bd; color:white; width:105px" %)**2**|(% style="background-color:#4f81bd; color:white; width:74px" %)**1** | ||
347 | |Value|(% style="width:104px" %)TDC(unit:sec)|(% style="width:43px" %)N/A|(% style="width:91px" %)Stop Timer|(% style="width:100px" %)Alarm Timer|(% style="width:69px" %)Reserve | ||
348 | |||
349 | * (% style="color:#037691" %)**TDC: (default: 0x0004B0)** | ||
350 | |||
351 | Uplink interval for the total pulse count, default value is 0x0004B0 which is 1200 seconds = 20 minutes. | ||
352 | |||
353 | |||
354 | * (% style="color:#037691" %)**STOP Duration & Alarm Timer** | ||
355 | |||
356 | Shows the configure value of [[Alarm for continuously water flow>>||anchor="H3.4Alarmforcontinuouslywaterflow"]] | ||
357 | |||
358 | [[image:image-20220519095747-2.png||_mstalt="434460" height="113" width="723"]] | ||
359 | |||
360 | |||
361 | === 2.3.3 Water Flow Value, Uplink FPORT~=2 === | ||
362 | |||
363 | |||
364 | ((( | ||
365 | SW3L will send this uplink **after** Device Status once join the LoRaWAN network successfully. And SW3L will: | ||
366 | ))) | ||
367 | |||
368 | ((( | ||
369 | periodically send this uplink every 20 minutes, this interval [[can be changed>>||anchor="H3.1SetTransmitIntervalTime"]]. | ||
370 | ))) | ||
371 | |||
372 | ((( | ||
373 | Uplink Payload totals 11 bytes. | ||
374 | ))) | ||
375 | |||
376 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
377 | |=(% colspan="6" style="width: 510px;background-color:#4F81BD;color:white" %)**Water Flow Value, FPORT=2** | ||
378 | |(% style="width:60px" %)**Size(bytes)**|(% style="width:130px" %)**1**|(% style="width:130px" %)**4**|(% style="width:30px" %)**1**|(% style="width:50px" %)**1**|(% style="width:80px" %)**4** | ||
379 | |(% style="width:110px" %)Value|(% style="width:81px" %)Calculate Flag & [[Alarm>>||anchor="H3.4Alarmforcontinuouslywaterflow"]]|(% style="width:95px" %)((( | ||
380 | Total pulse Or Last Pulse | ||
381 | )))|(% style="width:55px" %)MOD|(% style="width:115px" %)Reserve(0x01)|(% style="width:129px" %)[[Unix TimeStamp>>||anchor="H2.4.1UnixTimeStamp"]] | ||
382 | |||
383 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:470px" %) | ||
384 | |=(% colspan="4" style="width: 470px;background-color:#4F81BD;color:white" %)**Status & Alarm field** | ||
385 | |(% style="width:60px" %)**Size(bit)**|(% style="width:80px" %)**6**|(% style="width:310px" %)**1**|(% style="width:20px" %)**1** | ||
386 | |(% style="width:88px" %)Value|(% style="width:117px" %)Calculate Flag|(% style="width:221px" %)Alarm: 0: No Alarm; 1: Alarm|(% style="width:64px" %)N/A | ||
387 | |||
388 | [[image:image-20220519095946-3.png||_mstalt="435110" height="284" width="736"]] | ||
389 | |||
390 | |||
391 | * ((( | ||
392 | (% style="color:#037691" %)**Calculate Flag** | ||
393 | ))) | ||
394 | |||
395 | ((( | ||
396 | The calculate flag is a user defined field, IoT server can use this flag to handle different meters with different pulse factors. For example, if there are 100 Flow Sensors, meters 1 ~~50 are 1 liter/pulse and meters 51 ~~ 100 has 1.5 liter/pulse. | ||
397 | ))) | ||
398 | |||
399 | ((( | ||
400 | **Example: in the default payload:** | ||
401 | ))) | ||
402 | |||
403 | ((( | ||
404 | * calculate flag=0: for SW3L-004 Flow Sensor: 450 pulse = 1 L | ||
405 | * calculate flag=1: for SW3L-006 Flow Sensor: 390 pulse = 1 L | ||
406 | * calculate flag=2: for SW3L-010 Flow Sensor: 64 pulse = 1 L | ||
407 | |||
408 | (% style="color:red" %)**Note: At present, the calculation flag can only be set to 0~~2, and probe types other than this can directly calculate water flow using different decoding.** | ||
409 | ))) | ||
410 | |||
411 | ((( | ||
412 | Default value: 0. | ||
413 | ))) | ||
414 | |||
415 | ((( | ||
416 | Range (6 bits): (b)000000 ~~ (b) 111111 | ||
417 | |||
418 | If user use with a meter for example is 0.02L/pulse. To proper decode the correct value in server, | ||
419 | |||
420 | 1) User can set the Calculate Flag of this sensor to 3. | ||
421 | |||
422 | 2) In server side, when a sensor data arrive, the decoder will check the value of Calculate Flag, It the value is 3, the total volume = 0.02 x Pulse Count. | ||
423 | ))) | ||
424 | |||
425 | ((( | ||
426 | (% style="color:red" %)**NOTE: User need to set Calculate Flag to proper value before use Flow Sensor. Downlink or AT Command see: **(%%)Refer: [[Set Calculate Flag>>||anchor="H3.6Setthecalculateflag"]] | ||
427 | |||
428 | |||
429 | ))) | ||
430 | |||
431 | * ((( | ||
432 | (% style="color:#037691" %)**Alarm** | ||
433 | ))) | ||
434 | |||
435 | ((( | ||
436 | See [[Alarm for continuously water flow>>||anchor="H3.4Alarmforcontinuouslywaterflow"]] | ||
437 | ))) | ||
438 | |||
439 | [[image:image-20220519095946-4.png||_mstalt="435474" height="65" width="724"]] | ||
440 | |||
441 | |||
442 | * ((( | ||
443 | (% style="color:#037691" %)**Total pulse** | ||
444 | ))) | ||
445 | |||
446 | ((( | ||
447 | Total pulse/counting since factory | ||
448 | ))) | ||
449 | |||
450 | ((( | ||
451 | Range (4 Bytes) : 0x00000000~~ 0xFFFFFFFF . | ||
452 | |||
453 | |||
454 | ))) | ||
455 | |||
456 | * ((( | ||
457 | (% style="color:#037691" %)**Last Pulse** | ||
458 | ))) | ||
459 | |||
460 | ((( | ||
461 | Total pulse since last FPORT=2 uplink. (Default 20 minutes) | ||
462 | ))) | ||
463 | |||
464 | ((( | ||
465 | Range (4 Bytes) : 0x00000000~~ 0xFFFFFFFF . | ||
466 | |||
467 | |||
468 | ))) | ||
469 | |||
470 | * ((( | ||
471 | (% style="color:#037691" %)**MOD: Default =0** | ||
472 | ))) | ||
473 | |||
474 | ((( | ||
475 | MOD=0 ~-~-> Uplink Total Pulse since factory | ||
476 | ))) | ||
477 | |||
478 | ((( | ||
479 | MOD=1 ~-~-> Uplink total pulse since last FPORT=2 uplink. | ||
480 | |||
481 | |||
482 | ))) | ||
483 | |||
484 | * ((( | ||
485 | (% style="color:#037691" %)**Water Flow Value** | ||
486 | |||
487 | |||
488 | |||
489 | ))) | ||
490 | |||
491 | ((( | ||
492 | Total Water Flow Volume = (Calculate Flag) x (Total Pulse)=9597/450=21.3L | ||
493 | |||
494 | |||
495 | ))) | ||
496 | |||
497 | [[image:image-20220519095946-5.png||_mstalt="435838" height="50" width="727"]] | ||
498 | |||
499 | |||
500 | |||
501 | ((( | ||
502 | Total Water Flow for TDC timer = (Calculate Flag) x (Last Pulse)=79/450=0.2L | ||
503 | |||
504 | |||
505 | ))) | ||
506 | |||
507 | [[image:image-20220519095946-6.png||_mstalt="436202" height="43" width="733"]] ** ** | ||
508 | |||
509 | |||
510 | === 2.3.4 Historical Water Flow Status, FPORT~=3 === | ||
511 | |||
512 | |||
513 | ((( | ||
514 | SW3L stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.4DatalogFeature"]]. | ||
515 | ))) | ||
516 | |||
517 | ((( | ||
518 | The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time water flow status. | ||
519 | ))) | ||
520 | |||
521 | * ((( | ||
522 | Each data entry is 11 bytes and has the same structure as [[real time water flow status>>||anchor="H2.3.3A0WaterFlowValue2CUplinkFPORT3D2"]], to save airtime and battery, SW3L will send max bytes according to the current DR and Frequency bands. | ||
523 | ))) | ||
524 | |||
525 | ((( | ||
526 | For example, in the US915 band, the max payload for different DR is: | ||
527 | ))) | ||
528 | |||
529 | ((( | ||
530 | **a) DR0:** max is 11 bytes so one entry of data | ||
531 | ))) | ||
532 | |||
533 | ((( | ||
534 | **b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes) | ||
535 | ))) | ||
536 | |||
537 | ((( | ||
538 | **c) DR2:** total payload includes 11 entries of data | ||
539 | ))) | ||
540 | |||
541 | ((( | ||
542 | **d) DR3:** total payload includes 22 entries of data. | ||
543 | ))) | ||
544 | |||
545 | ((( | ||
546 | If SW3L doesn't have any data in the polling time. It will uplink 11 bytes of 0 | ||
547 | |||
548 | |||
549 | ))) | ||
550 | |||
551 | ((( | ||
552 | (% style="color:#037691" %)**Downlink:** | ||
553 | ))) | ||
554 | |||
555 | ((( | ||
556 | 0x31 62 46 B1 F0 62 46 B3 94 07 | ||
557 | ))) | ||
558 | |||
559 | [[image:1652926690850-712.png||_mstalt="295178" height="115" width="726"]] | ||
560 | |||
561 | |||
562 | ((( | ||
563 | (% style="color:#037691" %)**Uplink:** | ||
564 | ))) | ||
565 | |||
566 | ((( | ||
567 | 00 00 01 00 00 00 00 62 46 B2 26 00 00 01 00 00 00 00 62 46 B2 5D 00 00 01 00 00 00 00 62 46 B2 99 00 00 01 00 00 00 00 62 46 B2 D5 00 00 01 00 00 01 15 62 46 B3 11 00 00 01 00 00 01 1F 62 46 B3 7E | ||
568 | |||
569 | |||
570 | ))) | ||
571 | |||
572 | ((( | ||
573 | (% style="color:#037691" %)**Parsed Value:** | ||
574 | ))) | ||
575 | |||
576 | ((( | ||
577 | [Alarm, Calculate Flag, MOD, Total pulse or Last Pulse,** **Water Flow Value, TIME] | ||
578 | ))) | ||
579 | |||
580 | ((( | ||
581 | |||
582 | ))) | ||
583 | |||
584 | ((( | ||
585 | [FALSE,0,0,0,0.0,2022-04-01 08:04:54], | ||
586 | ))) | ||
587 | |||
588 | ((( | ||
589 | [FALSE,0,0,0,0.0,2022-04-01 08:05:49], | ||
590 | ))) | ||
591 | |||
592 | ((( | ||
593 | [FALSE,0,0,0,0.0,2022-04-01 08:06:49], | ||
594 | ))) | ||
595 | |||
596 | ((( | ||
597 | [FALSE,0,0,0,0.0,2022-04-01 08:07:49], | ||
598 | ))) | ||
599 | |||
600 | ((( | ||
601 | [FALSE,0,0,277,0.6,2022-04-01 08:08:49], | ||
602 | ))) | ||
603 | |||
604 | ((( | ||
605 | [FALSE,0,0,287,0.6,2022-04-01 08:10:38], | ||
606 | |||
607 | |||
608 | ))) | ||
609 | |||
610 | [[image:1652926777796-267.png||_mstalt="300183" height="279" width="724"]] | ||
611 | |||
612 | |||
613 | == 2.4 Datalog Feature == | ||
614 | |||
615 | |||
616 | When a user wants to retrieve sensor value, he can send a poll command from the IoT platform to ask the sensor to send value in the required time slot. | ||
617 | |||
618 | |||
619 | === 2.4.1 Unix TimeStamp === | ||
620 | |||
621 | |||
622 | SW3L uses Unix TimeStamp format based on | ||
623 | |||
624 | [[image:1652926852443-847.png||_mstalt="297427" height="112" width="724"]] | ||
625 | |||
626 | Users can get this time from the link: [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] : | ||
627 | |||
628 | Below is the converter example | ||
629 | |||
630 | [[image:1652926913271-611.png||_mstalt="293605" height="421" width="720"]] | ||
631 | |||
632 | |||
633 | === 2.4.2 Set Device Time === | ||
634 | |||
635 | |||
636 | (% style="color:#4f81bd" %)**Through LoRaWAN MAC Command** | ||
637 | |||
638 | ((( | ||
639 | Once SW3L Joined the LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to SW3L. If SW3L fails to get the time from the server, SW3L will use the internal time and wait for the next time request ~[[[via Device Status (FPORT=5)>>||anchor="H2.3.1DeviceStatus2CFPORT3D5"]]]. | ||
640 | |||
641 | |||
642 | ))) | ||
643 | |||
644 | ((( | ||
645 | (% style="color:red" %)**Note: LoRaWAN Server needs to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature.** | ||
646 | |||
647 | |||
648 | ))) | ||
649 | |||
650 | === 2.4.3 Poll sensor value === | ||
651 | |||
652 | |||
653 | Users can poll sensor values based on timestamps. Below is the downlink command. | ||
654 | |||
655 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:459px" %) | ||
656 | |=(% colspan="4" style="width: 456px;background-color:#4F81BD;color:white" %)**Downlink Command to poll Open/Close status (0x31)** | ||
657 | |(% style="width:62px" %)**1byte**|(% style="width:137px" %)**4bytes**|(% style="width:136px" %)**4bytes**|(% style="width:120px" %)**1byte** | ||
658 | |(% style="width:62px" %)31|(% style="width:137px" %)Timestamp start|(% style="width:136px" %)Timestamp end|(% style="width:120px" %)Uplink Interval | ||
659 | |||
660 | ((( | ||
661 | Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval. | ||
662 | ))) | ||
663 | |||
664 | ((( | ||
665 | For example, downlink command[[image:image-20220519152849-5.png||_mstalt="434772"]] | ||
666 | ))) | ||
667 | |||
668 | ((( | ||
669 | Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data | ||
670 | ))) | ||
671 | |||
672 | ((( | ||
673 | Uplink Internal =5s,means CPL01 will send one packet every 5s. range 5~~255s. | ||
674 | |||
675 | |||
676 | ))) | ||
677 | |||
678 | === 2.4.4 Decoder in TTN V3 === | ||
679 | |||
680 | |||
681 | [[image:1652927365661-475.png||_mstalt="297089" height="359" width="723"]] | ||
682 | |||
683 | Please check the decoder from this link: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]] | ||
684 | |||
685 | |||
686 | == 2.5 Show data on Datacake == | ||
687 | |||
688 | |||
689 | ((( | ||
690 | Datacake IoT platform provides a human-friendly interface to show the sensor data, once we have sensor data in TTN V3, we can use Datacake to connect to TTN V3 and see the data in Datacake. Below are the steps: | ||
691 | ))) | ||
692 | |||
693 | ((( | ||
694 | (% style="color:blue" %)**Step 1**(%%): Link TTNv3 to Datacake [[https:~~/~~/docs.datacake.de/lorawan/lns/thethingsindustries#create-integration-on-tti>>url:https://docs.datacake.de/lorawan/lns/thethingsindustries#create-integration-on-tti]] | ||
695 | ))) | ||
696 | |||
697 | ((( | ||
698 | (% style="color:blue" %)**Step 2**(%%): Configure SW3L in Datacake | ||
699 | |||
700 | |||
701 | ))) | ||
702 | |||
703 | [[image:image-20220519103234-7.png||_mstalt="430482" height="562" width="492"]] | ||
704 | |||
705 | |||
706 | [[image:image-20220519103234-8.png||_mstalt="430846" height="550" width="549"]] | ||
707 | |||
708 | |||
709 | [[image:image-20220519103234-9.png||_mstalt="431210" height="493" width="666"]] | ||
710 | |||
711 | |||
712 | [[image:image-20220519103234-10.png||_mstalt="451217" height="234" width="724"]] | ||
713 | |||
714 | |||
715 | [[image:image-20220519103234-11.png||_mstalt="451594" height="386" width="727"]] | ||
716 | |||
717 | |||
718 | [[image:image-20220519103234-12.png||_mstalt="451971" height="262" width="728"]] | ||
719 | |||
720 | |||
721 | [[image:image-20220519103234-13.png||_mstalt="452348" height="216" width="727"]] | ||
722 | |||
723 | |||
724 | [[image:image-20220519103234-14.png||_mstalt="452725" height="464" width="722"]] | ||
725 | |||
726 | |||
727 | [[image:image-20220519103234-15.png||_mstalt="453102" height="488" width="725"]] | ||
728 | |||
729 | |||
730 | [[image:image-20220519103234-16.png||_mstalt="453479" height="407" width="722"]] | ||
731 | |||
732 | |||
733 | = 3. Configure SW3L via AT Command or LoRaWAN Downlink = | ||
734 | |||
735 | |||
736 | Use can configure SW3L via AT Command or LoRaWAN Downlink. | ||
737 | |||
738 | * AT Command Connection: See [[FAQ>>||anchor="H5.FAQ"]]. | ||
739 | * LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>doc:Main.WebHome]] | ||
740 | |||
741 | There are two kinds of commands to configure SW3L, they are: | ||
742 | |||
743 | |||
744 | * (% style="color:#4f81bd" %)**General Commands**. | ||
745 | |||
746 | These commands are to configure: | ||
747 | |||
748 | * General system settings like uplink interval. | ||
749 | * LoRaWAN protocol & radio related command. | ||
750 | |||
751 | They are the same for all Dragino Devices which support DLWS-005 LoRaWAN Stack(Note~*~*). These commands can be found on the wiki: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] | ||
752 | |||
753 | |||
754 | * (% style="color:#4f81bd" %)**Commands special design for SW3L** | ||
755 | |||
756 | These commands are only valid for SW3L, as below: | ||
757 | |||
758 | |||
759 | == 3.1 Set Transmit Interval Time == | ||
760 | |||
761 | |||
762 | Feature: Change LoRaWAN End Node Transmit Interval. | ||
763 | |||
764 | |||
765 | (% style="color:#4f81bd" %)**AT Command: AT+TDC** | ||
766 | |||
767 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
768 | |=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 140px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 210px;background-color:#4F81BD;color:white" %)**Response** | ||
769 | |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|((( | ||
770 | 30000 | ||
771 | OK | ||
772 | the interval is 30000ms = 30s | ||
773 | ))) | ||
774 | |(% style="width:156px" %)AT+TDC=60000|(% style="width:137px" %)Set Transmit Interval|((( | ||
775 | OK | ||
776 | Set transmit interval to 60000ms = 60 seconds | ||
777 | ))) | ||
778 | |||
779 | (% style="color:#4f81bd" %)**Downlink Command: 0x01** | ||
780 | |||
781 | Format: Command Code (0x01) followed by 3 bytes time value. | ||
782 | |||
783 | If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. | ||
784 | |||
785 | * **Example 1**: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds | ||
786 | * **Example 2**: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds | ||
787 | |||
788 | == 3.2 Set Password == | ||
789 | |||
790 | |||
791 | Feature: Set device password, max 9 digits | ||
792 | |||
793 | |||
794 | (% style="color:#4f81bd" %)**AT Command: AT+PWORD** | ||
795 | |||
796 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:405px" %) | ||
797 | |=(% style="width: 170px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 124px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 110px;background-color:#4F81BD;color:white" %)**Response** | ||
798 | |(% style="width:170px" %)((( | ||
799 | AT+PWORD=? | ||
800 | )))|(% style="width:123px" %)((( | ||
801 | Show password | ||
802 | )))|(% style="width:109px" %)((( | ||
803 | ((( | ||
804 | 123456 | ||
805 | ))) | ||
806 | |||
807 | ((( | ||
808 | OK | ||
809 | ))) | ||
810 | ))) | ||
811 | |(% style="width:170px" %)((( | ||
812 | AT+PWORD=999999 | ||
813 | )))|(% style="width:123px" %)((( | ||
814 | Set password | ||
815 | )))|(% style="width:109px" %)((( | ||
816 | OK | ||
817 | ))) | ||
818 | |||
819 | (% style="color:#4f81bd" %)**Downlink Command:** | ||
820 | |||
821 | No downlink command for this feature. | ||
822 | |||
823 | |||
824 | == 3.3 Quit AT Command == | ||
825 | |||
826 | |||
827 | ((( | ||
828 | Feature: Quit AT Command mode, so user needs to input the password again before using AT Commands. | ||
829 | (% style="color:#4f81bd" %)**AT Command: AT+DISAT** | ||
830 | ))) | ||
831 | |||
832 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:452px" %) | ||
833 | |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 198px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 99px;background-color:#4F81BD;color:white" %)**Response** | ||
834 | |(% style="width:155px" %)AT+DISAT|(% style="width:198px" %)Quit AT Commands mode|(% style="width:96px" %)OK | ||
835 | |||
836 | (% style="color:#4f81bd" %)**Downlink Command:** | ||
837 | |||
838 | No downlink command for this feature. | ||
839 | |||
840 | |||
841 | == 3.4 Alarm for continuously water flow == | ||
842 | |||
843 | |||
844 | ((( | ||
845 | This feature is to monitor and send Alarm for continuously water flow. | ||
846 | ))) | ||
847 | |||
848 | ((( | ||
849 | Example case is for Toilet water monitoring, if some one push toilet button, the toilet will have water flow. If the toilet button has broken and can't returned to original state, the water flow will keep for hours or days which cause huge waste for water. | ||
850 | ))) | ||
851 | |||
852 | ((( | ||
853 | To monitor this faulty and send alarm, there are two settings: | ||
854 | ))) | ||
855 | |||
856 | * ((( | ||
857 | (% style="color:#4f81bd" %)**Stop Duration: Unit: Second** | ||
858 | ))) | ||
859 | |||
860 | ((( | ||
861 | Default: 15s, If SW3L didn't see any water flow in 15s, SW3L will consider stop of water flow event. | ||
862 | ))) | ||
863 | |||
864 | * ((( | ||
865 | (% style="color:#4f81bd" %)**Alarm Timer: Units: Minute; Default 0 minutes (means Alarm disable)** | ||
866 | ))) | ||
867 | |||
868 | ((( | ||
869 | |||
870 | |||
871 | **Example:** 3 minutes, if SW3L detect a start of water flow event and didn't detect a stop event within Alarm timer, SW3L will send an Alarm to indicate a water flow abnormal alarm. | ||
872 | ))) | ||
873 | |||
874 | ((( | ||
875 | So for example, If we set stop duration=15s and Alarm Timer=3minutes. If the toilet water flow continuously for more than 3 minutes, Sensor will send an alarm (in Confirmed MODE) to platform. | ||
876 | ))) | ||
877 | |||
878 | ((( | ||
879 | (% style="color:red" %)**Note:** **After this alarm is send, sensor will consider a stop of water flow and count for another new event. So if water flow waste last for 1 hour, Sensor will keep sending alarm every 3 minutes.** | ||
880 | |||
881 | |||
882 | ))) | ||
883 | |||
884 | ((( | ||
885 | (% style="color:#4f81bd" %)**AT Command**(%%) to configure: | ||
886 | ))) | ||
887 | |||
888 | * ((( | ||
889 | AT+PTRIG=15,3 ~-~-> Set Stop duration: 15s, Alarm Timer: 3 minutes. | ||
890 | ))) | ||
891 | * ((( | ||
892 | AT+ PTRIG=15,0 ~-~-> Default Value, disable water waste Alarm. | ||
893 | ))) | ||
894 | |||
895 | ((( | ||
896 | |||
897 | |||
898 | (% style="color:#4f81bd" %)**Downlink Command**(%%) to configure: | ||
899 | ))) | ||
900 | |||
901 | ((( | ||
902 | Command: **0xAA aa bb cc** | ||
903 | ))) | ||
904 | |||
905 | ((( | ||
906 | AA: Command Type Code | ||
907 | ))) | ||
908 | |||
909 | ((( | ||
910 | aa: Stop duration | ||
911 | ))) | ||
912 | |||
913 | ((( | ||
914 | bb cc: Alarm Timer | ||
915 | ))) | ||
916 | |||
917 | ((( | ||
918 | If user send 0xAA 0F 00 03: equal to AT+PTRIG=15,3 | ||
919 | ))) | ||
920 | |||
921 | |||
922 | == 3.5 Clear Flash Record == | ||
923 | |||
924 | |||
925 | Feature: Clear flash storage for data log feature. | ||
926 | |||
927 | |||
928 | (% style="color:#4f81bd" %)**AT Command: AT+CLRDTA** | ||
929 | |||
930 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
931 | |=(% style="width: 156px; background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 177px; background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 177px; background-color:#4F81BD;color:white" %)**Response** | ||
932 | |(% style="width:154px" %)AT+CLRDTA|(% style="width:177px" %)Clear flash storage for data log feature.|(% style="width:177px" %)Clear all stored sensor data... OK | ||
933 | |||
934 | (% style="color:#4f81bd" %)**Downlink Command:** | ||
935 | |||
936 | * **Example**: 0xA301 ~/~/ Same as AT+CLRDTA | ||
937 | |||
938 | == 3.6 Set the calculate flag == | ||
939 | |||
940 | |||
941 | Feature: Set the calculate flag | ||
942 | |||
943 | |||
944 | (% style="color:#4f81bd" %)**AT Command: AT+CALCFLAG** | ||
945 | |||
946 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:462px" %) | ||
947 | |=(% style="width: 161px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 204px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 97px;background-color:#4F81BD;color:white" %)**Response** | ||
948 | |(% style="width:161px" %)AT+CALCFLAG=1|(% style="width:202px" %)Set the calculate flag to 1.|(% style="width:95px" %)OK | ||
949 | |(% style="width:161px" %)AT+CALCFLAG=2|(% style="width:202px" %)Set the calculate flag to 2.|(% style="width:95px" %)OK | ||
950 | |||
951 | (% style="color:#4f81bd" %)**Downlink Command:** | ||
952 | |||
953 | * **Example**: 0XA501 ~/~/ Same as AT+CALCFLAG=1 | ||
954 | |||
955 | == (% data-sider-select-id="e738628a-6dac-4911-8e57-1c07617a3bde" %)3.7 Set count number(%%) == | ||
956 | |||
957 | |||
958 | Feature: Manually set the count number | ||
959 | |||
960 | |||
961 | (% style="color:#4f81bd" %)**AT Command: AT+SETCNT** | ||
962 | |||
963 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:481px" %) | ||
964 | |=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 224px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 95px;background-color:#4F81BD;color:white" %)**Response** | ||
965 | |(% style="width:162px" %)AT+SETCNT=0|(% style="width:222px" %)Set the count number to 0.|(% style="width:93px" %)OK | ||
966 | |(% style="width:162px" %)AT+SETCNT=100|(% style="width:222px" %)Set the count number to 100.|(% style="width:93px" %)OK | ||
967 | |||
968 | (% style="color:#4f81bd" %)**Downlink Command:** | ||
969 | |||
970 | * **Example**: 0xA600000001 ~/~/ Same as AT+SETCNT=1 | ||
971 | * **Example**: 0xA600000064 ~/~/ Same as AT+SETCNT=100 | ||
972 | |||
973 | == 3.8 Set work mode == | ||
974 | |||
975 | |||
976 | Feature: Manually set the work mode | ||
977 | |||
978 | |||
979 | (% style="color:#4f81bd" %)**AT Command: AT+MOD** | ||
980 | |||
981 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:463px" %) | ||
982 | |=(% style="width: 162px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 193px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 108px;background-color:#4F81BD;color:white" %)**Response** | ||
983 | |(% style="width:162px" %)AT+MOD=0|(% style="width:191px" %)Set the work mode to 0.|(% style="width:106px" %)OK | ||
984 | |(% style="width:162px" %)AT+MOD=1|(% style="width:191px" %)Set the work mode to 1|(% style="width:106px" %)OK | ||
985 | |||
986 | (% style="color:#4f81bd" %)**Downlink Command:** | ||
987 | |||
988 | * **Example: **0x0A00 ~/~/ Same as AT+MOD=0 | ||
989 | * **Example:** 0x0A01 ~/~/ Same as AT+MOD=1 | ||
990 | |||
991 | = 4. Battery & Power Consumption = | ||
992 | |||
993 | |||
994 | SW3L uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace. | ||
995 | |||
996 | [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] . | ||
997 | |||
998 | |||
999 | = 5. FAQ = | ||
1000 | |||
1001 | == 5.1 How to use AT Command to configure SW3 == | ||
1002 | |||
1003 | |||
1004 | SW3L UART connection photo | ||
1005 | |||
1006 | [[image:1652943554687-149.png||_mstalt="298155" height="354" width="724"]] | ||
1007 | |||
1008 | |||
1009 | ((( | ||
1010 | In the PC, you need to set the serial baud rate to (% style="color:green" %)**9600**(%%) to access the serial console for LSN50. LSN50 will output system info once power on as below: | ||
1011 | ))) | ||
1012 | |||
1013 | [[image:1652943563580-704.png||_mstalt="295191" height="504" width="720"]] | ||
1014 | |||
1015 | |||
1016 | == 5.2 How to upgrade the firmware? == | ||
1017 | |||
1018 | |||
1019 | ((( | ||
1020 | A new firmware might be available for: | ||
1021 | ))) | ||
1022 | |||
1023 | * ((( | ||
1024 | Support new features | ||
1025 | ))) | ||
1026 | * ((( | ||
1027 | For bug fix | ||
1028 | ))) | ||
1029 | * ((( | ||
1030 | Change LoRaWAN bands. | ||
1031 | ))) | ||
1032 | |||
1033 | ((( | ||
1034 | Instruction for how to upgrade: [[Firmware Upgrade Instruction>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome||anchor="H2.HardwareUpgradeMethodSupportList" _mstmutation="1"]] | ||
1035 | ))) | ||
1036 | |||
1037 | ((( | ||
1038 | Firmware location: [[https:~~/~~/www.dropbox.com/sh/jktldt8q674i87l/AADqk1zoUEekCjDR_4ic2Tg0a?dl=0>>https://www.dropbox.com/sh/jktldt8q674i87l/AADqk1zoUEekCjDR_4ic2Tg0a?dl=0]] | ||
1039 | ))) | ||
1040 | |||
1041 | |||
1042 | == 5.3 How to change the LoRa Frequency Bands/Region? == | ||
1043 | |||
1044 | |||
1045 | Users can follow the introduction for how to upgrade images. When downloading the images, choose the required image file for download. | ||
1046 | |||
1047 | |||
1048 | == 5.4 Can I connect 3rd party flow sensor other than the default one? == | ||
1049 | |||
1050 | |||
1051 | If a user wants to connect SW3L to a 3rd party flow sensor such as a [[DN50 flow sensor>>https://valvesdirect.net/product/flow-sensor-2-inch-15-400lpm/]], that is possible. A flow sensor with pulse output is needed. | ||
1052 | |||
1053 | (% style="background-color:yellow" %)**Below is the notice for the connection:** | ||
1054 | |||
1055 | ~1. Connect the 3rd party flow meter to the pulse input and GND of SW3L. | ||
1056 | |||
1057 | 2. Make sure the pulse output voltage of 3rd party flow sensor is less than 5v. | ||
1058 | |||
1059 | 3. It is not recommended to use SW3L to power the external flow meter, unless you are sure the external flow sensor is low power ( several uA). Otherwise the battery of SW3L will be running out soon. | ||
1060 | |||
1061 | 4. After connection, user needs to set the [[Calculator Flag and change the payload>>||anchor="H2.3.3A0WaterFlowValue2CUplinkFPORT3D2"]] so to get the correct reading in the platform. | ||
1062 | |||
1063 | **Connection:** | ||
1064 | |||
1065 | [[image:image-20240918182813-2.jpeg||height="487" width="697"]] | ||
1066 | |||
1067 | |||
1068 | == 5.5 What can I do if error in Flash Write operation is displayed on the serial port? == | ||
1069 | |||
1070 | |||
1071 | When the STM32 module is running, sometimes there is no uplink data (FPORT=2). When we use the serial port to view the printing information, we will find that the serial port is printed as "error in Flash Write operation". | ||
1072 | |||
1073 | Example: | ||
1074 | |||
1075 | [[image:image-20250217163534-3.png||height="418" width="1068"]] | ||
1076 | |||
1077 | [[image:image-20250217163128-1.png||height="604" width="822"]] | ||
1078 | |||
1079 | The device will reset continuously, and we can use the **AT+CLRDTA** command to clear all stored sensor data. Then restart the device and the device will return to normal. | ||
1080 | |||
1081 | [[image:image-20250217163301-2.png]] | ||
1082 | |||
1083 | [[image:image-20250217164119-4.png||height="442" width="1135"]] | ||
1084 | |||
1085 | |||
1086 | = 6. Order Info = | ||
1087 | |||
1088 | |||
1089 | Part Number: (% style="color:#4f81bd" %)**SW3L-XXX-YYY** | ||
1090 | |||
1091 | (% style="color:#4f81bd" %)**XXX**(%%): The default frequency band | ||
1092 | |||
1093 | * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band | ||
1094 | * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band | ||
1095 | * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band | ||
1096 | * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band | ||
1097 | * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band | ||
1098 | * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band | ||
1099 | * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band | ||
1100 | * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band | ||
1101 | |||
1102 | ((( | ||
1103 | (% style="color:#4f81bd" %)**YYY**(%%): Flow Sensor Model: | ||
1104 | ))) | ||
1105 | |||
1106 | * 004: DW-004 Flow Sensor: diameter: G1/2” / DN15. 450 pulse = 1 L | ||
1107 | * 006: DW-006 Flow Sensor: diameter: G3/4” / DN20. 390 pulse = 1 L | ||
1108 | * 010: DW-010 Flow Sensor: diameter: G 1” / DN25. 64 pulse = 1 L | ||
1109 | * 020: DW-020 Flow Sensor: diameter: G 2” / DN50. 12 pulse = 1 L | ||
1110 | |||
1111 | = 7. Packing Info = | ||
1112 | |||
1113 | |||
1114 | **Package Includes**: | ||
1115 | |||
1116 | * SW3L Water Flow Sensor x 1 | ||
1117 | |||
1118 | = 8. Support = | ||
1119 | |||
1120 | |||
1121 | * ((( | ||
1122 | Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule. | ||
1123 | ))) | ||
1124 | * ((( | ||
1125 | Provide as much information as possible regarding your inquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:file:///D:/市场资料/说明书/LoRa/LT系列/support@dragino.com]]. | ||
1126 | |||
1127 | |||
1128 | |||
1129 | |||
1130 | ))) |