Version 119.1 by kai on 2024/04/12 16:55

Show last authors
1
2
3
4
5
6
7
8
9 **Table of Contents:**
10
11 {{toc/}}
12
13
14
15
16
17
18
19
20
21 = 1. Introduction =
22
23
24 == 1.1 Overview ==
25
26 Dragino WSC2-L Weather Station Kit is designed for measuring atmospheric conditions to provide information for weather forecasts and to study the weather and climate. WSC2-L Weather Station kit includes a 9 in 1 weather station and a LoRaWAN transmitter.
27
28
29 The 9 in 1 weather station kit can measure below values: (% style="color:blue" %)Wind Speed, Wind Direction, Temperature, Humidity, Air Pressure, Illumination, PM2.5, PM10 & Noise(%%). The LoRaWAN transmitter use RS485 interface to communicate with the 9 in 1 weather station. It can also connect (% style="color:blue" %)3rd party RS485 sensors(%%) to measure more environment data. It also has a pulse counting input which can be used to connect (% style="color:blue" %)tipping bucket Rain Gauge(%%).
30
31
32 WSC2-L is full compatible with LoRaWAN Class A protocol, it can work with standard LoRaWAN gateway.
33
34
35 == 1.2 Features ==
36
37 * LoRaWAN 1.0.3 Class A
38 * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865
39 * Ultra-low power consumption
40 * Built-in sensors: Wind Speed, Wind Direction, Temperature,  Humidity, Air Pressure, Illumination, PM2.5, PM10
41 * RS485 Interface for 3rd Sensors
42 * Support tipping bucket Rain Gauge
43 * Support Bluetooth v5.1 and LoRaWAN remote configure
44 * Support wireless OTA update rmware
45 * AT Commands to change parameters
46 * Downlink to change configure
47 * IP66 Waterproof Enclosure
48 * 1000mAh Rechargeable Lion Battery
49 * Input and Recharge power : 12v
50
51 == 1.3 Specification ==
52
53 **~ Wind Speed:**
54
55 * Range:0~~60m/s
56 * Accuracy:±(0.2m/s±0.02*v)(v : the wind speed)
57 * Ultrasonic measurement,no start wind strength needed
58
59 **~ Wind Direction:**
60
61 * Range:0~~3599
62 * Accuracy:+3°
63 * Ultrasonic measurement,no start wind strength needed
64 * Built-in electronic compass. No need to consider installation direction
65
66 **~ Temperature:**
67
68 * Range:-40C~~+80C
69 * Accuracy:+0.5C
70
71 **~ Humidity:**
72
73 * Range:0 ~~99% RH
74 * Accuracy Tolerance :Typ +3% RH
75
76 **~ Air Pressure:**
77
78 * Accuracy: ±0.15kPa@25℃ 101kPa
79 * Range: 0-120kPa
80
81 **~ Noise:**
82
83 * Range: 30dB~~120dB
84 * Accuracy: +0.5dB
85
86 **~ PM2.5:**
87
88 * Range: 0-1000ug/m3
89 * Accuracy: ±3%FS
90 * Resolution:1ug/m3
91
92 **~ PM10:**
93
94 * Range: 0-1000ug/m3
95 * Accuracy: +3%FS
96 * Resolution:1ug/m3
97
98 **~ llumination:**
99
100 * Range: 0-200k Lux
101 * Accuracy:+7%(25 ℃)
102
103 = 2. How to use =
104
105 == 2.1 Installation ==
106
107 Below is an installation example for the weather station. Field installation example can be found at [[Appendix I: Field Installation Photo.>>||anchor="H12.AppendixI:FieldInstallationPhoto"]] 
108
109 [[image:image-20240327231510-1.png||height="499" width="1156"]]
110
111
112 (% style="color:blue" %)** Wiring:**
113
114 1. WSC2-L and sensors all powered by solar power via MPPT
115 1. WSC2-L Weather Station Kit already include 9 sensors.
116 1. Possible to add optional 3rd sensors to measure more parameter
117
118 (% style="color:red" %)**Notice 1:**
119
120 * All weather sensors and WSC2-L are powered by MPPT solar recharge controller. MPPT is connected to solar panel and storage battery.
121 * Weather sensors won't work if solar panel and storage battery fails.
122
123 (% style="color:red" %)**Notice 2:**
124
125 Due to shipment and importation limitation, user is better to purchase below parts locally:
126
127 * Solar Panel
128 * Storage Battery
129 * MPPT Solar Recharger
130 * Cabinet.
131
132 == 2.2 How it works? ==
133
134
135 (((
136 Each WSC2-L is shipped with a worldwide unique set of OTAA keys. To use WSC2-L in a LoRaWAN network, user needs to input the OTAA keys in LoRaWAN network server. After finish installation as above. Create WSC2-L in your LoRaWAN server and Power on WSC2-L , it can join the LoRaWAN network and start to transmit sensor data. The default period for each uplink is 20 minutes.
137 )))
138
139
140 == 2.3 Example to use for LoRaWAN network ==
141
142
143 This section shows an example for how to join the TTN V3 LoRaWAN IoT server. Usages with other LoRaWAN IoT servers are of similar procedure.
144
145
146 Assume the DLOS8 is already set to connect to [[TTN V3 network >>url:https://eu1.cloud.thethings.network/]]. We need to add the WSC2-L device in TTN V3:
147
148
149 (% style="color:blue" %)**Step 1**(%%): Create a device in TTN V3 with the OTAA keys from WSC2-L.
150
151 Each WSC2-L is shipped with a sticker with the default device EUI as below:
152
153 [[image:image-20230426084533-1.png||height="231" width="497"]]
154
155
156 User can enter these keys in the LoRaWAN Server portal. Below is TTN V3 screen shot:
157
158 Put a Jumper on JP2 to power on the device. ( The Jumper must be in FLASH position).
159
160 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSE01-LoRaWAN%20Soil%20Moisture%20%26%20EC%20Sensor%20User%20Manual/WebHome/image-20220606163915-7.png?rev=1.1||alt="image-20220606163915-7.png"]]
161
162 **Add APP EUI in the application.**
163
164 [[image:1656042662694-311.png]]
165
166 [[image:1656042673910-429.png]]
167
168
169
170
171 **Choose Manually to add WSC2-L**
172
173 [[image:1656042695755-103.png]]
174
175
176
177 **Add APP KEY and DEV EUI**
178
179 [[image:1656042723199-746.png]]
180
181
182
183 (((
184 (% style="color:blue" %)**Step 2**(%%): Power on WSC2-L, it will start to join TTN server. After join success, it will start to upload sensor data to TTN V3 and user can see in the panel.
185 )))
186
187
188 [[image:1656042745346-283.png]]
189
190
191 == 2.4 Uplink Payload ==
192
193
194 Uplink payloads include two types: Valid Sensor Value and other status / control command.
195
196 * Valid Sensor Value: Use FPORT=2
197 * Other control command: Use FPORT other than 2.
198
199 === 2.4.1 Uplink FPORT~=5, Device Status ===
200
201
202 Uplink the device configures with FPORT=5. Once WSC2-L Joined the network, it will uplink this message to the server. After first uplink, WSC2-L will uplink Device Status every 12 hours
203
204
205 (((
206 User can also use downlink command**(0x2301)** to ask WSC2-L to resend this uplink
207 )))
208
209 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %)
210 |=(% style="width: 70px;background-color:#4F81BD;color:white" %)**Size(**bytes)|=(% style="width: 60px;background-color:#4F81BD;color:white" %)1|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 50px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 100px;background-color:#4F81BD;color:white" %)**3**
211 |(% style="width:99px" %)Value|(% style="width:112px" %)[[Sensor Model>>||anchor="HSensorModel:"]]|(% style="width:135px" %)[[Firmware Version>>||anchor="HFirmwareVersion:"]]|(% style="width:126px" %)[[Frequency Band>>||anchor="HFrequencyBand:"]]|(% style="width:85px" %)[[Sub-band>>||anchor="HSub-Band:"]]|(% style="width:46px" %)[[BAT>>||anchor="HBAT:"]]|(% style="width:166px" %)[[Weather Sensor Types>>||anchor="HWeatherSensorTypes:"]]
212
213 [[image:1656043061044-343.png]]
214
215
216 Example Payload (FPort=5):  [[image:image-20220624101005-1.png]]
217
218
219 ==== (% style="color:#037691" %)**Sensor Model:**(%%) ====
220
221 For WSC2-L, this value is 0x0D.
222
223
224 ==== (% style="color:#037691" %)**Firmware Version:**(%%) ====
225
226 0x0100, Means: v1.0.0 version.
227
228
229 ==== (% style="color:#037691" %)**Frequency Band:**(%%) ====
230
231 0x01: EU868
232
233 0x02: US915
234
235 0x03: IN865
236
237 0x04: AU915
238
239 0x05: KZ865
240
241 0x06: RU864
242
243 0x07: AS923
244
245 0x08: AS923-1
246
247 0x09: AS923-2
248
249 0x0a: AS923-3
250
251
252 ==== (% style="color:#037691" %)**Sub-Band:**(%%) ====
253
254 value 0x00 ~~ 0x08(only for CN470, AU915,US915. Others are0x00)
255
256
257 ==== (% style="color:#037691" %)**BAT:**(%%) ====
258
259 (((
260 shows the battery voltage for WSC2-L MCU.
261 )))
262
263 (((
264 Ex1: 0x0BD6/1000 = 3.03 V
265 )))
266
267
268 ==== (% style="color:#037691" %)**Weather Sensor Types:**(%%) ====
269
270 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:100px" %)
271 |Byte3|Byte2|Byte1
272
273 Bit = 1 means this sensor is connected, Bit=0 means this sensor is not connected
274
275 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
276 |(% rowspan="2" style="width:53px" %)Byte3|(% style="width:71px" %)Bit23|(% style="width:113px" %)Bit22|(% style="width:112px" %)Bit21|(% style="width:110px" %)Bit20|(% style="width:112px" %)Bit19|(% style="width:70px" %)Bit18|(% style="width:72px" %)Bit17|(% style="width:53px" %)Bit16
277 |(% style="width:71px" %)N/A|(% style="width:113px" %)Customize-A4|(% style="width:112px" %)Customize-A3|(% style="width:113px" %)Customize-A2|(% style="width:112px" %)Customize-A1|(% style="width:70px" %)N/A|(% style="width:72px" %)N/A|(% style="width:53px" %)N/A
278 |(% rowspan="2" style="width:53px" %)Byte2|(% style="width:71px" %)Bit15|(% style="width:113px" %)Bit14|(% style="width:112px" %)Bit13|(% style="width:113px" %)Bit12|(% style="width:112px" %)Bit11|(% style="width:70px" %)Bit10|(% style="width:72px" %)Bit9|(% style="width:53px" %)Bit8
279 |(% style="width:71px" %)N/A|(% style="width:113px" %)N/A|(% style="width:112px" %)N/A|(% style="width:113px" %)N/A|(% style="width:112px" %)N/A|(% style="width:70px" %)N/A|(% style="width:72px" %)N/A|(% style="width:53px" %)N/A
280 |(% rowspan="2" style="width:53px" %)Byte1|(% style="width:71px" %)Bit7|(% style="width:113px" %)Bit6|(% style="width:112px" %)Bit5|(% style="width:113px" %)Bit4|(% style="width:112px" %)Bit3|(% style="width:70px" %)Bit2|(% style="width:72px" %)Bit1|(% style="width:53px" %)Bit0
281 |(% style="width:71px" %)WSS-07|(% style="width:113px" %)WSS-06|(% style="width:112px" %)WSS-05|(% style="width:113px" %)WSS-04|(% style="width:112px" %)WSS-03|(% style="width:70px" %)WSS-02|(% style="width:72px" %)WSS-01|(% style="width:53px" %)N/A
282
283 Eg: 0x1000FE = 1 0000 0000 0000 1111 1110(b)
284
285 External sensors detected by WSC2-L include :
286
287 custom sensor A1,
288
289 PAR sensor (WSS-07),
290
291 Total Solar Radiation sensor (WSS-06),
292
293 CO2/PM2.5/PM10 (WSS-03),
294
295 Wind Speed/Direction (WSS-02)
296
297
298 User can also use downlink command(0x26 01) to ask WSC2-L to resend this uplink :
299
300 (% style="color:#037691" %)**Downlink:0x26 01**
301
302 [[image:1656049673488-415.png]]
303
304
305 === 2.4.2 Uplink FPORT~=2, Real time sensor value ===
306
307
308 (((
309 WSC2-L will send this uplink after Device Config uplink once join LoRaWAN network successfully. And it will periodically send this uplink. Default interval is 20 minutes and [[can be changed>>||anchor="H3.1SetTransmitIntervalTime"]].
310 )))
311
312 (((
313 Uplink uses FPORT=2 and every 20 minutes send one uplink by default.
314 )))
315
316
317 (((
318 The upload length is dynamic, depends on what type of weather sensors are connected. The uplink payload is combined with sensor segments. As below:
319 )))
320
321
322 (% style="color:#4472c4" %)** Uplink Payload**:
323
324 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:464px" %)
325 |(% style="width:140px" %)Sensor Segment 1|(% style="width:139px" %)Sensor Segment 2|(% style="width:42px" %)……|(% style="width:140px" %)Sensor Segment n
326
327 (% style="color:#4472c4" %)** Sensor Segment Define**:
328
329 (% border="1" cellspacing="10" style="background-color:#f2f2f2; width:330px" %)
330 |(% style="width:89px" %)Type Code|(% style="width:114px" %)Length (Bytes)|(% style="width:124px" %)Measured Value
331
332 (% style="color:#4472c4" %)**Sensor Type Table:**
333
334 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
335 |(% style="background-color:#4f81bd; color:white; width:80px" %)**Sensor Type**|(% style="background-color:#4f81bd; color:white; width:65px" %)**Type Code**|(% style="background-color:#4f81bd; color:white; width:97px" %)**Range**|(% style="background-color:#4f81bd; color:white; width:78px" %)**Length( Bytes)**|(% style="background-color:#4f81bd; color:white; width:190px" %)**Example**
336 |(% style="width:103px" %)Wind Speed|(% style="width:91px" %)0x01|(% style="width:158px" %)(((
337 Speed: 0 ~~ 60m/s
338 Level: 0 ~~ 17
339 )))|(% style="width:122px" %)0x03 |(% style="width:904px" %)(((
340 (((
341 0x0024/10=3.6m/s (0x02FE: No Sensor, 0x02EE: Value Error)
342 )))
343
344 (((
345 0x02=2 (0x14: No Sensor, 0x15: Value Error)
346 )))
347 )))
348 |(% style="width:103px" %)Wind Direction|(% style="width:91px" %)0x02|(% style="width:158px" %)(((
349 Angel: 0 ~~ 360°
350 Direction: 16 positions
351 )))|(% style="width:122px" %)0x03|(% style="width:904px" %)(((
352 (((
353 0x02C9/10=66.6°(0x0EFE: No Sensor,0x0EFF: Value Error)
354 )))
355
356 (((
357 0X03=3(ENE) (0x14: No Sensor,0x15: Value Error)
358 )))
359 )))
360 |(% style="width:103px" %)Illumination|(% style="width:91px" %)0x03|(% style="width:158px" %)0~200000kLux|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
361 0x04D2*10=12340kLux (0x4EFE: No Sensor,0x4EFF: Value Error)
362 )))
363 |(% style="width:103px" %)Rain / Snow|(% style="width:91px" %)0x04|(% style="width:158px" %)0A: No, 01 Yes.|(% style="width:122px" %)0x01|(% style="width:904px" %)(((
364 (((
365 0x00 (00) No Rain or snow detected
366 )))
367
368 (((
369 (0x02: No Sensor,0x03: Value Error)
370 )))
371 )))
372 |(% style="width:103px" %)CO2|(% style="width:91px" %)0x05|(% style="width:158px" %)0~5000ppm|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
373 0x0378=888ppm (0x14FE: No Sensor,0x14FF: Value Error)
374 )))
375 |(% style="width:103px" %)Temperature|(% style="width:91px" %)0x06|(% style="width:158px" %)-30℃~70℃|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
376 0xFFDD/10=-3.5℃ (0x02FE: No Sensor,0x02FF: Value Error)
377 )))
378 |(% style="width:103px" %)Humidity|(% style="width:91px" %)0x07|(% style="width:158px" %)0~100%RH|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
379 0x0164/10=35.6%RH (0x03FE: No Sensor,0x03FF: Value Error)
380 )))
381 |(% style="width:103px" %)Pressure|(% style="width:91px" %)0x08|(% style="width:158px" %)10~1100hPa|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
382 0x2748/10=1005.6hPa    (0x00: No Sensor,0x01: Value Error)
383 )))
384 |(% style="width:103px" %)Rain Gauge|(% style="width:91px" %)0x09|(% style="width:158px" %)(((
385 0mm~100mm(Rainfall in the last 24 hours)
386 )))|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
387 (((
388 0x0050/10=8mm (Rainfall within the 24 hours:8.0mm)
389 )))
390
391 (((
392 (0x03FE: No Sensor,0x03FF: Value Error)
393 )))
394 )))
395 |(% style="width:103px" %)PM2.5|(% style="width:91px" %)0x0A|(% style="width:158px" %)0~1000μg/m^^3^^|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
396 0x0023=35μg/m^^3  ^^(0x03FE: No Sensor,0x03FF: Value Error)
397 )))
398 |(% style="width:103px" %)PM10|(% style="width:91px" %)0x0B|(% style="width:158px" %)0~1000μg/m^^3^^|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
399 0x002D=45μg/m^^3  ^^(0x03FE: No Sensor,0x03FF: Value Error)
400 )))
401 |(% style="width:103px" %)PAR|(% style="width:91px" %)0x0C|(% style="width:158px" %)(((
402 0~2500μmol/m^^2^^•s
403 )))|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
404 0x00B3=179μmol/m^^2^^•s (0x09FE: No Sensor,0x09FF: Value Error)
405 )))
406 |(% style="width:103px" %)(((
407 Total Solar Radiation
408 )))|(% style="width:91px" %)0x0D|(% style="width:158px" %)0~2000W/m^^2^^|(% style="width:122px" %)0x02|(% style="width:904px" %)(((
409 0x0073/10=11.5W/m^^2^^(0x4EFE: No Sensor,0x4EFF: Value Error)
410 )))
411
412 (((
413 Below is an example payload:  [[image:image-20220624140615-3.png]]
414 )))
415
416
417 (((
418 When sending this payload to LoRaWAN server. WSC2-L will send this in one uplink or several uplinks according to LoRaWAN spec requirement. For example, total length of Payload is 54 bytes.
419 )))
420
421 * (((
422 When WSC2-L sending in US915 frequency DR0 data rate. Because this data rate has limitation of 11 bytes payload for each uplink. The payload will be split into below packets and uplink.
423 )))
424
425 (((
426 Uplink 1:  [[image:image-20220624140735-4.png]]
427 )))
428
429
430 (((
431 Uplink 2:  [[image:image-20220624140842-5.png]]
432
433 )))
434
435 * (((
436 When WSC2-L sending in EU868 frequency DR0 data rate. The payload will be split into below packets and uplink:
437 )))
438
439 (((
440 Uplink 1:  [[image:image-20220624141025-6.png]]
441 )))
442
443
444 Uplink 2:  [[image:image-20220624141100-7.png]]
445
446
447 === 2.4.3 Decoder in TTN V3 ===
448
449
450 (((
451 In LoRaWAN platform, user only see HEX payload by default, user needs to use payload formatters to decode the payload to see human-readable value.
452 )))
453
454 (((
455 Download decoder for suitable platform from:  [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
456 )))
457
458
459 (((
460 and put as below:
461 )))
462
463 [[image:1656051152438-578.png]]
464
465
466 == 2.5 Show data on Application Server ==
467
468
469 (((
470 Application 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:
471 )))
472
473 (((
474 (% style="color:blue" %)**Step 1**(%%): Be sure that your device is programmed and properly connected to the LoRaWAN network.
475 )))
476
477 (((
478 (% style="color:blue" %)**Step 2**(%%): Configure your Application to forward data to Datacake you will need to add integration. Go to TTN V3 Console ~-~-> Applications ~-~-> Integrations ~-~-> Add Integrations.
479 )))
480
481 [[image:1656051197172-131.png]]
482
483
484
485 **Add TagoIO:**
486
487 [[image:1656051223585-631.png]]
488
489
490
491 **Authorization:**
492
493 [[image:1656051248318-368.png]]
494
495
496
497 In TagoIO console ([[https:~~/~~/admin.tago.io~~/~~/>>url:https://datacake.co/]]) , add WSC2-L:
498
499
500 [[image:1656051277767-168.png]]
501
502
503 == 2.6 Frequency Plans ==
504
505
506 The WSC2-L uses OTAA mode and below frequency plans by default. Each frequency band use different firmware, user update the firmware to the corresponding band for their country.
507
508 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
509
510
511 = 3. Configure WSC2-L =
512
513 == 3.1 Configure Methods ==
514
515
516 WSC2-L supports below configure method:
517
518 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
519
520 * AT Command via UART Connection : See [[UART Connection>>http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]].
521
522 * LoRaWAN Downlink.  Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section.
523
524 == 3.2 General Commands ==
525
526
527 These commands are to configure:
528
529 * General system settings like: uplink interval.
530 * LoRaWAN protocol & radio related command.
531
532 They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki:
533
534 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]]
535
536
537 == 3.3 Commands special design for WSC2-L ==
538
539
540 These commands only valid for WSC2-L, as below:
541
542
543 === 3.3.1 Set Transmit Interval Time ===
544
545
546 Feature: Change LoRaWAN End Node Transmit Interval.
547
548 (% style="color:#037691" %)**AT Command: AT+TDC**
549
550 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:501px" %)
551 |(% style="background-color:#4f81bd; color:white; width:155px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:166px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:180px" %)**Response**
552 |(% style="width:155px" %)AT+TDC=?|(% style="width:162px" %)Show current transmit Interval|(% style="width:177px" %)(((
553 30000
554 OK
555 the interval is 30000ms = 30s
556 )))
557 |(% style="width:155px" %)AT+TDC=60000|(% style="width:162px" %)Set Transmit Interval|(% style="width:177px" %)(((
558 OK
559 Set transmit interval to 60000ms = 60 seconds
560 )))
561
562 (% style="color:#037691" %)**Downlink Command: 0x01**
563
564 Format: Command Code (0x01) followed by 3 bytes time value.
565
566 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
567
568 * Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
569 * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
570
571 === 3.3.2 Set Emergency Mode ===
572
573
574 Feature: In emergency mode, WSC2-L will uplink data every 1 minute.
575
576 (% style="color:#037691" %)**AT Command:**
577
578 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:466px" %)
579 |(% style="background-color:#4f81bd; color:white; width:156px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:225px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:85px" %)**Response**
580 |(% style="width:155px" %)AT+ALARMMOD=1|(% style="width:224px" %)Enter emergency mode. Uplink every 1 minute|(% style="width:84px" %)(((
581 OK
582
583 )))
584 |(% style="width:155px" %)AT+ALARMMOD=0|(% style="width:224px" %)Exit emergency mode. Uplink base on TDC time|(% style="width:84px" %)(((
585 OK
586 )))
587
588 (% style="color:#037691" %)**Downlink Command:**
589
590 * 0xE101     Same as: AT+ALARMMOD=1
591 * 0xE100     Same as: AT+ALARMMOD=0
592
593 === 3.3.3 Add or Delete RS485 Sensor ===
594
595
596 (((
597 Feature: User can add or delete 3^^rd^^ party sensor as long they are RS485/Modbus interface,baud rate support 9600.Maximum can add 4 sensors.
598 )))
599
600 (((
601 (% style="color:#037691" %)**AT Command: **
602 )))
603
604 (((
605 (% style="color:blue" %)**AT+DYSENSOR=Type_Code, Query_Length, Query_Command , Read_Length , Valid_Data ,has_CRC,timeout**
606 )))
607
608 * (((
609 Type_Code range:  A1 ~~ A4
610 )))
611 * (((
612 Query_Length:  RS485 Query frame length, Value cannot be greater than 10
613 )))
614 * (((
615 Query_Command:  RS485 Query frame data to be sent to sensor, cannot be larger than 10 bytes
616 )))
617 * (((
618 Read_Length:  RS485 response frame length supposed to receive. Max can receive
619 )))
620 * (((
621 Valid_Data:  valid data from RS485 Response, Valid Data will be added to Payload and upload via LoRaWAN.
622 )))
623 * (((
624 has_CRC:  RS485 Response crc check  (0: no verification required 1: verification required). If CRC=1 and CRC error, valid data will be set to 0.
625 )))
626 * (((
627 timeout:  RS485 receive timeout (uint:ms). Device will close receive window after timeout
628 )))
629
630 (((
631 **Example:**
632 )))
633
634 (((
635 User need to change external sensor use the type code as address code.
636 )))
637
638 (((
639 With a 485 sensor, after correctly changing the address code to A1, the RS485 query frame is shown in the following table:
640 )))
641
642 [[image:image-20220624143553-10.png]]
643
644
645 The response frame of the sensor is as follows:
646
647 [[image:image-20220624143618-11.png]]
648
649
650 **Then the following parameters should be:**
651
652 * Address_Code range: A1
653 * Query_Length: 8
654 * Query_Command: A103000000019CAA
655 * Read_Length: 8
656 * Valid_Data: 23 (Indicates that the data length is 2 bytes, starting from the 3th byte)
657 * has_CRC: 1
658 * timeout: 1500 (Fill in the test according to the actual situation)
659
660 **So the input command is:**
661
662 AT+DYSENSOR=A1,8,A103000000019CAA,8,24,1,1500
663
664
665 In every sampling. WSC2-L will auto append the sensor segment as per this structure and uplink.
666
667 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:351px" %)
668 |=(% style="width: 95px;background-color:#4F81BD;color:white" %)Type Code|=(% style="width: 122px;background-color:#4F81BD;color:white" %)Length (Bytes)|=(% style="width: 134px;background-color:#4F81BD;color:white" %)Measured Value
669 |(% style="width:94px" %)A1|(% style="width:121px" %)2|(% style="width:132px" %)0x000A
670
671 **Related commands:**
672
673 AT+DYSENSOR=A1,0  ~-~->  Delete 3^^rd^^ party sensor A1.
674
675 AT+DYSENSOR  ~-~->  List All 3^^rd^^ Party Sensor. Like below:
676
677
678 (% style="color:#037691" %)**Downlink Command:  **
679
680 **delete custom sensor A1:**
681
682 * 0xE5A1     Same as: AT+DYSENSOR=A1,0
683
684 **Remove all custom sensors**
685
686 * 0xE5FF  
687
688 === 3.3.4 RS485 Test Command ===
689
690
691 (% style="color:#037691" %)**AT Command:**
692
693 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:494px" %)
694 |=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 248px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 86px;background-color:#4F81BD;color:white" %)**Response**
695 |(% style="width:159px" %)AT+RSWRITE=xxxxxx|(% style="width:227px" %)(((
696 Send command to 485 sensor. Range : no more than 10 bytes
697 )))|(% style="width:85px" %)OK
698
699 Eg: Send command **01 03 00 00 00 01 84 0A** to 485 sensor
700
701 AT+RSWRITE=0103000001840A
702
703
704 (% style="color:#037691" %)**Downlink Command:**
705
706 * 0xE20103000001840A     Same as: AT+RSWRITE=0103000001840A
707
708 === 3.3.5 RS485 response timeout ===
709
710
711 Feature: Set or get extended time to receive 485 sensor data.
712
713 (% style="color:#037691" %)**AT Command:**
714
715 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:433px" %)
716 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 190px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 86px;background-color:#4F81BD;color:white" %)**Response**
717 |(% style="width:157px" %)AT+DTR=1000|(% style="width:188px" %)(((
718 Set response timeout to: Range : 0~~10000
719 )))|(% style="width:85px" %)OK
720
721 (% style="color:#037691" %)**Downlink Command:**
722
723 Format: Command Code (0xE0) followed by 3 bytes time value.
724
725 If the downlink payload=E0000005, it means set the END Node's Transmit Interval to 0x000005=5(S), while type code is E0.
726
727 * Example 1: Downlink Payload: E0000005  ~/~/  Set Transmit Interval (DTR) = 5 seconds
728 * Example 2: Downlink Payload: E000000A  ~/~/  Set Transmit Interval (DTR) = 10 seconds
729
730 === 3.3.6 Set Sensor Type ===
731
732
733 (((
734 Feature: Set sensor in used. If there are 6 sensors, user can set to only send 5 sensors values.
735 )))
736
737 (((
738 See [[definition>>||anchor="HWeatherSensorTypes:"]] for the sensor type.
739
740 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:517px" %)
741 |(% rowspan="2" %)Byte3|Bit23|Bit22|Bit21|Bit20|Bit19|Bit18|Bit17|Bit16
742 | |A4|A3|A2|A1| | |
743 |(% rowspan="2" %)Byte2|Bit15|Bit14|Bit13|Bit12|Bit11|Bit10|Bit9|Bit8
744 | | |Solar Radiation|PAR|PM10|PM2.5|(((
745 Rain
746 Gauge
747 )))|(((
748 Air
749 Pressure
750 )))
751 |(% rowspan="2" %)Byte1|Bit7|Bit6|Bit5|Bit4|Bit3|Bit2|Bit1|Bit0
752 |Humidity|Temperature|CO2|(((
753 Rain/Snow
754 Detect
755 )))|illuminance|(((
756 Wind
757 Direction
758 )))|Wind Speed|BAT
759 )))
760
761
762 (% style="color:#037691" %)**AT Command:**
763
764 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:377px" %)
765 |=(% style="width: 157px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 132px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 88px;background-color:#4F81BD;color:white" %)**Response**
766 |(% style="width:157px" %)AT+STYPE=80221|(% style="width:130px" %)Set sensor types|(% style="width:87px" %)OK
767
768 Eg: The setting command **AT+STYPE=80221** means:
769
770 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:495px" %)
771 |(% rowspan="2" style="width:57px" %)Byte3|(% style="width:57px" %)Bit23|(% style="width:59px" %)Bit22|(% style="width:56px" %)Bit21|(% style="width:51px" %)Bit20|(% style="width:54px" %)Bit19|(% style="width:54px" %)Bit18|(% style="width:52px" %)Bit17|(% style="width:52px" %)Bit16
772 |(% style="width:57px" %)0|(% style="width:59px" %)0|(% style="width:56px" %)0|(% style="width:51px" %)0|(% style="width:54px" %)1|(% style="width:54px" %)0|(% style="width:52px" %)0|(% style="width:52px" %)0
773 |(% rowspan="2" style="width:57px" %)Byte2|(% style="width:57px" %)Bit15|(% style="width:59px" %)Bit14|(% style="width:56px" %)Bit13|(% style="width:51px" %)Bit12|(% style="width:54px" %)Bit11|(% style="width:54px" %)Bit10|(% style="width:52px" %)Bit9|(% style="width:52px" %)Bit8
774 |(% style="width:57px" %)0|(% style="width:59px" %)0|(% style="width:56px" %)0|(% style="width:51px" %)0|(% style="width:54px" %)0|(% style="width:54px" %)0|(% style="width:52px" %)1|(% style="width:52px" %)0
775 |(% rowspan="2" style="width:57px" %)Byte1|(% style="width:57px" %)Bit7|(% style="width:59px" %)Bit6|(% style="width:56px" %)Bit5|(% style="width:51px" %)Bit4|(% style="width:54px" %)Bit3|(% style="width:54px" %)Bit2|(% style="width:52px" %)Bit1|(% style="width:52px" %)Bit0
776 |(% style="width:57px" %)0|(% style="width:59px" %)0|(% style="width:56px" %)1|(% style="width:51px" %)0|(% style="width:54px" %)0|(% style="width:54px" %)0|(% style="width:52px" %)0|(% style="width:52px" %)1
777
778 So WSC2-L will upload the following data: Custom Sensor A1, Rain Gauge,CO2,BAT.
779
780
781 (% style="color:#037691" %)**Downlink Command:**
782
783 * 0xE400080221  Same as: AT+STYPE=80221
784
785 (% style="color:red" %)**Note:**
786
787 ~1. The sensor type will not be saved to flash, and the value will be updated every time the sensor is restarted or rescanned.
788
789
790 == 3.4 Add 3rd RS485 / Modbus Sensor ==
791
792 === 3.4.1 Hardware Connection ===
793
794
795 === 3.4.2 Software Setup ===
796
797
798 === 3.4.3 Payload ===
799
800
801 == 3.5 Add tipping bucket Rain Guage ==
802
803 === 3.5.1 Hardware Connection ===
804
805
806 === 3.5.2 Calculating & Decode ===
807
808
809
810 = 4. Power consumption and battery =
811
812 == 4.1 Total Power Consumption ==
813
814
815 Dragino Weather Station serial products include the main process unit (WSC2-L) and various sensors. The total power consumption equal total power of all above units. The power consumption for main process unit WSC2-L is 18ma @ 12v. and the power consumption of each sensor can be found on the Sensors chapter.
816
817
818 == 4.2 Reduce power consumption ==
819
820
821 The main process unit WSC2-L is set to LoRaWAN Class C by default. If user want to reduce the power consumption of this unit, user can set it to run in Class A. In Class A mode, WSC2-L will not be to get real-time downlink command from IoT Server.
822
823
824 == 4.3 Battery ==
825
826
827 (((
828 All sensors are only power by external power source. If external power source is off. All sensor won't work.
829 )))
830
831 (((
832 Main Process Unit WSC2-L is powered by both external power source and internal 1000mAh rechargeable battery. If external power source is off, WSC2-L still runs and can send periodically uplinks, but the sensors value will become invalid.  External power source can recharge the 1000mAh rechargeable battery.
833 )))
834
835
836 = 5. Main Process Unit WSC2-L =
837
838
839 WSC2-L is the main process unit in Dragino Weather Station solution. WSC2-LB is an an outdoor LoRaWAN RS485 end node. It is powered by external 12v solar power and have a built-in li-on backup battery.
840
841 WSC2-L reads value from various sensors and upload these sensor data to IoT server via LoRaWAN wireless protocol.
842
843 WSC2-L is full compatible with LoRaWAN Class C protocol, it can work with standard LoRaWAN gateway.
844
845 WSC2-L Supports BLE configure and wireless OTA update which make user easy to use.
846
847 Each WSC2-L is pre-load with a set of unique keys for LoRaWAN registration, register these keys to local LoRaWAN server and it will auto connect after power on.
848
849
850 == 5.1 Features ==
851
852
853 * LoRaWAN v1.0.3 Class A protocol.
854 * RS485 / Modbus protocol
855 * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915
856 * AT Commands to change parameters
857 * Downlink to change configure
858 * Powered by external 12v battery
859 * Back up rechargeable 1000mAh battery
860 * IP Rating: IP65
861 * Support default sensors or 3rd party RS485 sensors
862 * Support Bluetooth v5.1 and LoRaWAN remote configure
863 * Support wireless OTA update firmware
864 * Wall Attachable.
865
866 == 5.2 Power Consumption ==
867
868
869 WSC2-L (without external sensor): Idle: 4mA, Transmit: max 40mA
870
871
872 == 5.3 Storage & Operation Temperature ==
873
874
875 -20°C to +60°C
876
877
878 == 5.4 Sleep mode and working mode ==
879
880
881 (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life.
882
883 (% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
884
885
886 == 5.5 Button & LEDs ==
887
888
889 [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675071855856-879.png]]
890
891
892 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
893 |=(% style="width: 167px;background-color:#4F81BD;color:white" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 226px;background-color:#4F81BD;color:white" %)**Action**
894 |(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
895 If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
896 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
897 )))
898 |(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
899 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network.
900 (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
901 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network.
902 )))
903 |(% style="width:167px" %)Fast press ACT 5 times.|(% style="width:117px" %)Deactivate Device|(% style="width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means device is in Deep Sleep Mode.
904
905 == 5.6 BLE connection ==
906
907
908 WSC2-L supports BLE remote configure.
909
910
911 BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case:
912
913 * Press button to send an uplink
914 * Press button to active device.
915 * Device Power on or reset.
916
917 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
918
919
920 == 5.7 Pin Mapping ==
921
922
923 [[image:image-20240412165523-2.png]]
924
925
926 == 5.8 Mechanical ==
927
928
929 Refer LSn50v2 enclosure drawing in:  [[https:~~/~~/www.dropbox.com/sh/0ir0l9jjmk6p95e/AADwWXorcKuNpPR5em7VgrEja?dl=0>>https://www.dropbox.com/sh/0ir0l9jjmk6p95e/AADwWXorcKuNpPR5em7VgrEja?dl=0]]
930
931
932 == 5.9 Connect to RS485 Sensors ==
933
934
935 WSC2-L includes a RS485 converter PCB. Which help it easy to connect multiply RS485 sensors. Below is the photo for reference.
936
937
938 [[image:1656054389031-379.png]]
939
940
941 Hardware Design for the Converter Board please see:
942
943 [[https:~~/~~/www.dropbox.com/sh/bqyvsvitb70qtgf/AABLpD7_yxsQ_drVMxHIEI7wa?dl=0>>https://www.dropbox.com/sh/bqyvsvitb70qtgf/AABLpD7_yxsQ_drVMxHIEI7wa?dl=0]]
944
945
946 = 7. OTA Firmware update =
947
948
949 (% class="wikigeneratedid" %)
950 **User can change firmware WSC2-L to:**
951
952 * Change Frequency band/ region.
953 * Update with new features.
954 * Fix bugs.
955
956 **Firmware and changelog can be downloaded from :** **[[Firmware download link>>https://www.dropbox.com/sh/8j3ioji411ni9gu/AADnOw3ErB1REsthKilfaq_Pa?dl=0]]**
957
958 **Methods to Update Firmware:**
959
960 * (Recommanded way) OTA firmware update via wireless: **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]**
961
962 * Update through UART TTL interface: **[[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]**.
963
964 = 8. FAQ =
965
966 == 8.1 What else do I need to purchase to build Weather Station? ==
967
968
969 Below is the installation photo and structure:
970
971
972 [[image:1656057598349-319.png]]
973
974
975 [[image:1656057608049-693.png]]
976
977
978 = 9. Trouble Shooting =
979
980
981 = 10. Order Info =
982
983
984 Part Number: (% style="color:blue" %)**WSC2-L-XX**
985
986 (% style="color:blue" %)**XX**(%%): The default frequency band
987
988 * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
989 * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
990 * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
991 * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
992 * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
993 * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
994 * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
995 * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
996
997 = 11. Support =
998
999 * 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.
1000
1001 * Provide as much information as possible regarding your enquiry (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]].