Last modified by Mengting Qiu on 2025/06/12 18:02

Show last authors
1
2
3 [[image:image-20250530172741-2.jpeg||data-xwiki-image-style-alignment="center" height="510" width="391"]]
4
5
6
7
8
9
10
11
12 **Table of Contents:**
13
14 {{toc/}}
15
16
17
18
19
20
21
22
23
24 = 1. Introduction =
25
26 == 1.1 Overview ==
27
28
29 The Dragino WSC2-N is the main unit in Dragino Weather Station solution which desianed for (% style="color:blue" %)**measuring atmospheric conditions**(%%) to provide information for weatherforecasts and to study the weather and climate.
30
31 WSC2-N can reads values from various sensors and upload these sensor data to IoT server via Nb-IoT wireless protocol.
32
33 WSC2-N supports input and (% style="color:blue" %)**12V recharge power**(%%) and (% style="color:blue" %)**build in 1000mAh rechargeable Li-ion battery**(%%). lf the user needs to connect other sensors, please kindly note the (% style="color:blue" %)**externalpower supply is required**.
34
35 WSC2-N supports connecting 3rd party RS485 multiple sensors. Users can purchase DR-F6C-4M one-to-four cables to connect more sensors according to their needs.
36
37 WSC2-N supports different uplink methods include (% style="color:blue" %)**TCP, MQTT,  UDP, MQTTS or CoAP**(%%) for different application requirement. and Support Uplinks to various IoT Servers.
38
39 *make sure you have NB-IoT coverage locally.
40
41
42 == 1.2 Features & Spec for WSC2-N Transmitter ==
43
44
45 * NB-IoT Bands: B1/B2/B3/B4/B5/B8/B12/B13/B17/B18/B19/B20/B25/B28/B66/B70/B85 @H-FDD
46 * Support reading the Rain Gauge, Wind Speed/Direction, CO2/PM2.5/PM10, Rain/Snow Detect, Temperature, Humidiity, Iillumiance, Pressure, Total Solar Radiation, PAR
47 * Support WSS09 9 in 1 Sensors: Wind Speed, Wind Direction, Temperature,  Humidity, Air Pressure, Illumination, PM2.5, PM10, Noise & Rain Gauge
48 * RS485 Interface for 3rd party Sensors
49 * Support WSS08 optical Rain Gauge or tipping bucket Rain Gauge
50 * Support Bluetooth v5.1 remote configure and update firmware
51 * Support wireless OTA update firmware
52 * AT Commands to change parameters
53 * Uplink on periodically
54 * Downlink to change configure
55 * IP66 Waterproof Enclosure
56 * 1000mAh Rechargeable Li-ion Battery
57 * Input and Recharge power: 12v
58
59 == 1.3 Specification for WSS-09 9 in 1 weather sensors ==
60
61 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/WSC2-L_Weather_Station_Kit_User_Manual/WebHome/image-20250505190455-1.png?width=226&height=283&rev=1.1||alt="image-20250505190455-1.png"]]
62
63 More Detail: [[WSS-09 Manual.>>doc:Main.Agriculture & Weather Stations.WebHome||anchor="H1.WSS099in1WeatherStationSensor"]]
64
65
66 (% style="color:blue" %)**Wind Speed:**
67
68 * Range: 0~~60m/s
69 * Accuracy: ±(0.2m/s±0.02*v)(v : the wind speed)
70 * Ultrasonic measurement,no start wind strength needed
71
72 (% style="color:blue" %)**Wind Direction:**
73
74 * Range: 0~~3599
75 * Accuracy: ±3°
76 * Ultrasonic measurement,no start wind strength needed
77 * Built-in electronic compass. No need to consider installation direction
78
79 (% style="color:blue" %)**Temperature:**
80
81 * Range: -40°C ~~ +80°C
82 * Accuracy: ±0.5°C
83
84 (% style="color:blue" %)**Humidity:**
85
86 * Range: 0 ~~ 99% RH
87 * Accuracy Tolerance : Typ ±3% RH
88
89 (% style="color:blue" %)**Air Pressure:**
90
91 * Accuracy: ±0.15kPa@25°C 101kPa
92 * Range: 0~~120kPa
93
94 (% style="color:blue" %)**Noise:**
95
96 * Range: 30dB~~120dB
97 * Accuracy: ±0.5dB
98
99 (% style="color:blue" %)**PM2.5:**
100
101 * Range: 0~~1000ug/m3
102 * Accuracy: ±3%FS
103 * Resolution: 1ug/m3
104
105 (% style="color:blue" %)**PM10:**
106
107 * Range: 0~~1000ug/m3
108 * Accuracy: ±3%FS
109 * Resolution: 1ug/m3
110
111 (% style="color:blue" %)**llumination:**
112
113 * Range: 0~~200k Lux
114 * Accuracy: ±7%(25 °C)
115
116 == 1.4 Specification for WSS-08 Optical Rain Guage ==
117
118 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/WSC2-L_Weather_Station_Kit_User_Manual/WebHome/image-20250505190636-2.png?width=201&height=158&rev=1.1||alt="image-20250505190636-2.png"]]
119
120 * Input Power: 9~~30 VDC
121 * Sense diameter: 6cm
122 * Pulse Output
123
124 More Detail: [[WSS-08 Manual.>>doc:Main.Agriculture & Weather Stations.WebHome||anchor="H2.WSS08OpticalRangeGuage"]]
125
126
127 = 2. How to use =
128
129 == 2.1 Installation ==
130
131
132 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"]] 
133
134 [[image:image-20250115184031-4.png||height="473" width="1022"]]
135
136
137 (% style="color:blue" %)** Wiring:**
138
139 1. WSC2-N and sensors all powered by solar power via MPPT
140 1. WSC2-N Weather Station Kit already include 9 sensors.
141 1. Possible to add optional 3rd sensors to measure more parameter
142
143 (% style="color:red" %)**Notice 1:**
144
145 * All weather sensors and WSC2-N are powered by MPPT solar recharge controller. MPPT is connected to solar panel and storage battery.
146 * Weather sensors won't work if solar panel and storage battery fails.
147
148 (% style="color:red" %)**Notice 2:**
149
150 Due to shipment and importation limitation, user is better to purchase below parts locally:
151
152 * Solar Panel
153 * Storage Battery
154 * MPPT Solar Recharger
155 * Cabinet.
156
157 == 2.2 Send data to IoT server via NB-IoT network ==
158
159
160 (((
161 The WSC2-N is equipped with a NB-IoT module, the pre-loaded firmware in WSC2-N will get environment data from sensors and send the value to local NB-IoT network via the NB-IoT module.  The NB-IoT network will forward this value to IoT server via the protocol defined by WSC2-N.
162 )))
163
164
165 Below shows the network structure:
166
167 [[image:image-20250115184047-5.png||height="425" width="918"]]
168
169 There are two version: (% style="color:blue" %)**-GE**(%%) and (% style="color:blue" %)**-1T**(%%) version of WSC2-N.
170
171
172 (% style="color:blue" %)**GE Version**(%%): This version doesn't include SIM card or point to any IoT server. User needs to use AT Commands to configure below two steps to set WSC2-N send data to IoT server.
173
174 * Install NB-IoT SIM card and configure APN. See instruction of [[Attach Network>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H2.AttachNetwork]].
175
176 * Set up sensor to point to IoT Server. See instruction of [[Configure to Connect Different Servers>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.Configuretoconnecttodifferentservers]]. 
177
178 Below shows result of different server as a glance.
179
180 (% border="1" cellspacing="3" style="width:515px" %)
181 |(% style="background-color:#4f81bd; color:white; width:100px" %)**Servers**|(% style="background-color:#4f81bd; color:white; width:300px" %)**Dash Board**|(% style="background-color:#4f81bd; color:white; width:115px" %)**Comments**
182 |(% style="width:127px" %)[[Node-Red>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.5A0Node-RedA028viaA0MQTT29]]|(% style="width:385px" %)(((
183 [[image:image-20250113195417-4.png]]
184 )))|(% style="width:170px" %)
185 |(% style="width:127px" %)[[DataCake>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]]|(% style="width:385px" %)(((
186 [[image:image-20250113195357-3.png]]
187 )))|(% style="width:170px" %)
188 |(% style="width:127px" %)[[Tago.IO>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.7A0Tago.ioA028viaA0MQTT29]]|(% style="width:385px" %)[[image:image-20250113195545-5.png]]|(% style="width:170px" %)
189 |(% style="width:127px" %)[[General UDP>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.1GeneralA0UDPA0Connection]]|(% style="width:385px" %)Raw Payload. Need Developer to design Dash Board|(% style="width:170px" %)
190 |(% style="width:127px" %)[[General MQTT>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.2GeneralA0MQTTA0Connection]]|(% style="width:385px" %)Raw Payload. Need Developer to design Dash Board|(% style="width:170px" %)
191 |(% style="width:127px" %)[[ThingSpeak>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.3A0ThingSpeakA028viaA0MQTT29]]|(% style="width:385px" %)(((
192 [[image:image-20250113195349-2.png]]
193 )))|(% style="width:170px" %)
194 |(% style="width:127px" %)[[ThingsBoard>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.6A0ThingsBoard.CloudA028viaA0MQTT29]]|(% style="width:385px" %)(((
195 [[image:image-20250113195339-1.png]]
196 )))|(% style="width:170px" %)
197
198 (% style="color:blue" %)**1T Version**(%%): This version has 1NCE SIM card pre-installed and configure to send value to ThingsEye. User Just need to select the sensor type in ThingsEyeand Activate WSC2-N and user will be able to see data in ThingsEye. See here for [[ThingsEye Config Instruction>>url:https://wiki.thingseye.io/xwiki/bin/view/Main/]].
199
200
201 == 2.3 Payload Types ==
202
203
204 To meet different server requirement, WSC2-N supports different payload type.
205
206 **Includes:**
207
208 * [[General JSON format payload>>||anchor="H2.2.1GeneralJsonFormat28Type3D529"]]. (Type=5)
209
210 * [[HEX format Payload>>||anchor="H2.2.2HEXformatPayload28Type3D029"]]. (Type=0)
211
212 * [[ThingSpeak Format>>||anchor="H2.2.4ThingSpeakPayload28Type3D129"]]. (Type=1)
213
214 * [[ThingsBoard Format>>||anchor="H2.2.3ThingsBoardPayload28Type3D329"]]. (Type=3)
215
216 User can specify the payload type when choose the connection protocol. Example:
217
218
219 (% style="color:#037691" %)**AT+PRO=1,0**  (%%) ~/~/ Use COAP Connection & hex Payload
220
221 (% style="color:#037691" %)**AT+PRO=1,5**   (%%) ~/~/ Use COAP Connection & Json Payload
222
223 (% style="color:#037691" %)**AT+PRO=2,0**  (%%) ~/~/ Use UDP Connection & hex Payload
224
225 (% style="color:#037691" %)**AT+PRO=2,5**   (%%) ~/~/ Use UDP Connection & Json Payload
226
227 (% style="color:#037691" %)**AT+PRO=3,0**  (%%) ~/~/ Use MQTT Connection & hex Payload
228
229 (% style="color:#037691" %)**AT+PRO=3,5 ** (%%) ~/~/ Use MQTT Connection & Json Payload
230
231 (% style="color:#037691" %)**AT+PRO=4,0**  (%%) ~/~/ Use TCP Connection & hex Payload
232
233 (% style="color:#037691" %)**AT+PRO=4,5 ** (%%) ~/~/ Use TCP Connection & Json Payload
234
235 **Since firmware V1.0.1**, (% style="color:#4472c4" %)**IMSI**(%%) has been added to payload.
236
237
238 === 2.3.1  General Json Format(Type~=5) ===
239
240 This is the **PMMOD=1** generic Json format. It is shown below:
241
242 (% style="color:#4472c4" %)**{"IMEI":"863663062798914","IMSI":"460083513507314","Model":"WSC2-N","payload_ver":1,"rain_count":0.00,"wind_speed":0.00,"wind_level":0,"wind_direction":0,"wind_angel":0,"humidity":44.4,"temperature":22.1,"voise":50.5,"PM2_5":33,"PM10":43,"pressure":102.0,"illumination":635,"interrupt":0,"interrupt_level":0,"battery":3.29,"signal":20,"time":"2025/01/14 02:36:31"}**
243
244 [[image:image-20250114104208-1.png]]
245
246
247 This is the **PMMOD=0** generic Json format. It is shown below:
248
249 (% style="color:#4472c4" %)**{"IMEI":"863663062798914","IMSI":"460083513507314","Model":"WSC2-N","payload_ver":1,"rain_count":100.00,"wind_speed":0.00,"wind_level":0,"wind_direction":0,"wind_angel":0,"humidity":35.4,"temperature":23.5,"voise":46.5,"CO2":31,"pressure":102.0,"illumination":628,"interrupt":0,"interrupt_level":0,"battery":3.28,"signal":16,"time":"2025/01/15 10:47:11"}**
250
251 [[image:image-20250115184850-6.png]]
252
253
254 (% style="color:red" %)**Notice, from above payload:**
255
256 If set to **PMMOD=1**, the following data will be uploaded:
257
258 * BAT,Singal,Mod,Interrupt,Interrupt_level,payload_ver,exit_count,wind_speed,wind_level,wind_direction,wind_angel, humidity,temperature,voise,PM2_5,PM10,pressure,illumination,flag,DIY Sensors(A1~~A4),Timestamp
259
260 If set to **PMMOD=0**, the following data will be uploaded
261
262 * BAT,Singal,Mod,Interrupt,Interrupt_level,payload_ver,exit_count,wind_speed,wind_level,wind_direction,wind_angel, humidity,temperature,voise,PM2_5,PM10,pressure,illumination,flag,DIY Sensors(A1~~A4),Timestamp
263
264 === 2.3.2  HEX format Payload(Type~=0) ===
265
266 ==== a. This is the hex format of PMMOD~=1. ====
267
268 (% class="wikigeneratedid" %)
269 It is shown below:
270
271 (% style="color:#4472c4" %)**f863663062798914f4600835135073143e650c471301000001000000d2003500010003009201d600e602610024003303f800000262810aa204ffffffff678624fe**
272
273 [[image:image-20250321104127-1.png||height="117" width="1395"]]
274
275 [[image:image-20250114164956-1.png]]
276
277 (% style="color:blue" %)**Version:**
278
279 These bytes include the hardware and software version.
280
281 (% style="color:#037691" %)**Higher byte:**(%%) Specify Sensor Model: 0x3e for WSC2-N
282
283 (% style="color:#037691" %)**Lower byte:**(%%) Specify the software version: 0x65=101, means firmware version 1.0.1
284
285
286 (% style="color:blue" %)**BAT (Battery Info):**
287
288 Ex1: 0x0CE5 = 3301mV/1000= 3.301V
289
290
291 (% style="color:blue" %)**Signal Strength:**
292
293 NB-IoT Network signal Strength.
294
295 **Ex1: 0x11 = 17**
296
297 **0**  -113dBm or less
298
299 **1**  -111dBm
300
301 **2...30** -109dBm... -53dBm
302
303 **31**   -51dBm or greater
304
305 **99**    Not known or not detectable
306
307
308 (% style="color:blue" %)**Interrupt:**
309
310 This data field shows if this packet is generated by interrupt or not.
311
312 **Example:**
313
314 If byte[0]&0x01=0x00 : Normal uplink packet.
315
316 If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
317
318
319 (% style="color:blue" %)**Interrupt_level:**
320
321 This byte shows whether the interrupt is triggered by a high or low level.
322
323 **Ex1:** 0x00  Interrupt triggered by falling edge (low level)
324
325 **Ex2: **0x01  Interrupt triggered by rising edge (high level)
326
327
328 (% style="color:blue" %)**payload_ver: **
329
330 The payload version number is used to parse different decodes.
331
332 **Ex2: **0x01  Payload decoding version v1.0.0
333
334
335 (% style="color:blue" %)**exit_count: **
336
337 Converted to rainfall based on the number of interruptions,
338
339 **Ex1:**
340
341 bytes[54]&0x0F(hex) / bytes[55](hex) = 0x81&0x0F / 0x0a = 1 / 10=0.1mm((% style="color:red" %)**Note:Calculate the accuracy of the trigger one time to 0.1mm**(%%))
342
343 bytes[10] | bytes[13] / 0.1mm = 0x000000d2(hex)  *  0.1 = 210(dec) * 0.1 = 21mm((% style="color:red" %)**Note:Use exit_count x precision = rainfall**(%%))
344
345
346 (% style="color:blue" %)**wind_speed:**
347
348 Ex1: 0x0035(hex) / 100 = 53(dec) / 100 = 0.53m/s
349
350
351 (% style="color:blue" %)**wind_level:**
352
353 Ex1: 0x0001(hex) = 1(dec)
354
355
356 (% style="color:blue" %)**wind_direction:**
357
358 Ex1: 0x0003(hex) = 3(dec)
359
360 (% style="color:red" %)**Note: 0 for due north, increasing clockwise, 2 for due east**
361
362
363 (% style="color:blue" %)**wind_angel:**
364
365 Ex1: 0x0092(hex) =  146(dec)
366
367 (% style="color:red" %)**Note: Calculation: 0° clockwise increase in degrees for due north, 90° for due east**
368
369
370 (% style="color:blue" %)**Humidity:   **
371
372 Ex1: :01d6(H)=470(D)    Value:  470 / 10=47.0, So 47.0%
373
374
375 (% style="color:blue" %)**Temperature:**
376
377 If payload is: 01d6H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
378
379 If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
380
381 (FF3F & 8000: Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
382
383
384 (% style="color:blue" %)**Voise:**
385
386 Ex1:0x0261(H) = 609(D)  Value: 609/10=60.9, So 60.9dB/y
387
388
389 (% style="color:blue" %)**PM2_5(CO2):**
390
391 Ex1: 0x0024(H) = 36(D)
392
393
394 (% style="color:blue" %)**PM10:**
395
396 Ex1: 0x0033(H) = 51(D)
397
398
399 (% style="color:blue" %)**Pressure:**
400
401 Ex1: 0x03f8(H) = 1016(D)  Value: 1016/10= 101.6, So 101.6kPa
402
403
404 (% style="color:blue" %)**illumination:**
405
406 Ex1: 0x00000262(H) = 610(D) Lux
407
408
409 (% style="color:blue" %)**Flag:**
410
411 (% style="color:#037691" %)**Higher byte:**
412
413 s_flag: (0x81>>6)&0x01= 000**1 **, A value of 1 for the last value means that the sensor has been recognized, and 0 means that, the sensor has not been recognized.
414
415 i_flag: (0x81>>5)&0x01 = 000**1 **, A last value of 1 means that the interrupt has been triggered, and 0 means that the interrupt has not been triggered.
416
417 (% style="color:#037691" %)**Low byte:**
418
419 Ext:0x0a = 10/100=0.1, This represents 0.1mm of rainfall per trigger conversion.
420
421
422 (% style="color:blue" %)**DIY Sensors(A1~~A4)**
423
424 Ex1:a204ffffffff
425
426 **a2**: 485 Sensor Address
427
428 **04**: Total bytes returned by the sensor
429
430 **ffffffff: **Hexadecimal data returned from sensor acquisition
431
432 (% style="color:red" %)**Note:**(%%)DIY sensor data needs to be set up before it has to go up with the device. (Setup reference link: [[Reference Links>>https://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/WSC2-N--Weather_Station_Kit_User_Manual/#H3.3.3AddorDeleteRS485Sensor]])
433
434
435 (% style="color:blue" %)**TimeStamp:   **
436
437 Unit TimeStamp Example: 678624fe(H) = 1736844542(D)
438
439 Put the decimal value into this link(https:~/~/www.epochconverter.com/) to get the time.
440
441
442 ==== b. This is the hex format of PMMOD~=0. ====
443
444 (% class="wikigeneratedid" %)
445 It is shown below:
446
447 (% style="color:#4472c4" %)**f863663062798914f4600835135073143e650ce81401000001000003e800580001000400ac016800ef026a002303fc00000274010aa204ffffffff67879587**
448
449 [[image:image-20250321104145-2.png||height="106" width="1304"]]
450
451 [[image:image-20250115190310-7.png]]
452
453 (% style="color:blue" %)**Version:**
454
455 These bytes include the hardware and software version.
456
457 (% style="color:#037691" %)**Higher byte:**(%%) Specify Sensor Model: 0x3e for WSC2-N
458
459 (% style="color:#037691" %)**Lower byte:**(%%) Specify the software version: 0x65=101, means firmware version 1.0.1
460
461
462 (% style="color:blue" %)**BAT (Battery Info):**
463
464 Ex1: 0x0CE8 = 3304mV/1000= 3.304V
465
466
467 (% style="color:blue" %)**Signal Strength:**
468
469 NB-IoT Network signal Strength.
470
471 **Ex1: 0x14 = 20**
472
473 **0**  -113dBm or less
474
475 **1**  -111dBm
476
477 **2...30** -109dBm... -53dBm
478
479 **31**   -51dBm or greater
480
481 **99**    Not known or not detectable
482
483
484 (% style="color:blue" %)**Interrupt:**
485
486 This data field shows if this packet is generated by interrupt or not.
487
488 **Example:**
489
490 If byte[0]&0x01=0x00 : Normal uplink packet.
491
492 If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
493
494
495 (% style="color:blue" %)**Interrupt_level:**
496
497 This byte shows whether the interrupt is triggered by a high or low level.
498
499 **Ex1:** 0x00  Interrupt triggered by falling edge (low level)
500
501 **Ex2: **0x01  Interrupt triggered by rising edge (high level)
502
503
504 (% style="color:blue" %)**payload_ver: **
505
506 The payload version number is used to parse different decodes.
507
508 **Ex2: **0x01  Payload decoding version v1.0.0
509
510
511 (% style="color:blue" %)**exit_count: **
512
513 Converted to rainfall based on the number of interruptions,
514
515 **Ex1:**
516
517 bytes[54]&0x0F(hex) / bytes[55](hex) = 0x81&0x0F / 0x0a = 1 / 10=0.1mm((% style="color:red" %)**Note:Calculate the accuracy of the trigger one time to 0.1mm**(%%))
518
519 bytes[10] | bytes[13] / 0.1mm = 0x000003e8(hex)  *  0.1 = 1000(dec) * 0.1 = 100mm((% style="color:red" %)**Note:Use exit_count x precision = rainfall**(%%))
520
521
522 (% style="color:blue" %)**wind_speed:**
523
524 Ex1: 0x0058(hex) / 100 = 88(dec) / 100 = 0.88m/s
525
526
527 (% style="color:blue" %)**wind_level:**
528
529 Ex1: 0x0001(hex) = 1(dec)
530
531
532 (% style="color:blue" %)**wind_direction:**
533
534 Ex1: 0x0004(hex) = 4(dec)
535
536 (% style="color:red" %)**Note: 0 for due north, increasing clockwise, 2 for due east**
537
538
539 (% style="color:blue" %)**wind_angel:**
540
541 Ex1: 0x00ac(hex) =  172(dec)
542
543 (% style="color:red" %)**Note: Calculation: 0° clockwise increase in degrees for due north, 90° for due east**
544
545
546 (% style="color:blue" %)**Humidity:   **
547
548 Ex1: :0168(H)=360(D)    Value:  360 / 10=36.0, So 36.0%
549
550
551 (% style="color:blue" %)**Temperature:**
552
553 If payload is: 00ef(H) :  (00ef & 8000 == 0), temp = 00ef(H) /10 = 23.9 degree
554
555 If payload is: FF3F(H) :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
556
557 (FF3F & 8000: Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
558
559
560 (% style="color:blue" %)**Voise:**
561
562 Ex1:0x026a(H) = 618(D)  Value: 618/10=61.8, So 61.8dB/y
563
564
565 (% style="color:blue" %)**CO2:**
566
567 Ex1: 0x0023(H) = 35(D)
568
569
570 (% style="color:blue" %)**Pressure:**
571
572 Ex1: 0x03fc(H) = 1020(D)  Value: 1020/10= 102.0, So 102.0kPa
573
574
575 (% style="color:blue" %)**illumination:**
576
577 Ex1: 0x00000274(H) = 266(D) Lux
578
579
580 (% style="color:blue" %)**Flag:**
581
582 (% style="color:#037691" %)**Higher byte:**
583
584 s_flag: (0x01>>6)&0x01= 000**1 **, A value of 1 for the last value means that the sensor has been recognized, and 0 means that, the sensor has not been recognized.
585
586 i_flag: (0x01>>5)&0x01 = 000**1 **, A last value of 1 means that the interrupt has been triggered, and 0 means that the interrupt has not been triggered.
587
588 (% style="color:#037691" %)**Low byte:**
589
590 Ext:0x0a = 10/100=0.1, This represents 0.1mm of rainfall per trigger conversion.
591
592
593 (% style="color:blue" %)**DIY Sensors(A1~~A4)**
594
595 Ex1:a204ffffffff
596
597 **a2**: 485 Sensor Address
598
599 **04**: Total bytes returned by the sensor
600
601 **ffffffff: **Hexadecimal data returned from sensor acquisition
602
603 (% style="color:red" %)**Note:**(%%)DIY sensor data needs to be set up before it has to go up with the device. (Setup reference link: [[Reference Links>>https://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/WSC2-N--Weather_Station_Kit_User_Manual/#H3.3.3AddorDeleteRS485Sensor]])
604
605
606 (% style="color:blue" %)**TimeStamp:    **
607
608 Unit TimeStamp Example: 67879587(H) = 1736938887(D)
609
610 Put the decimal value into this link(https:~/~/www.epochconverter.com/) to get the time.
611
612
613
614 === 2.3.3 ThingsBoard Payload(Type~=3) ===
615
616
617 Type3 payload special design for ThingsBoard, it will also configure other default server to ThingsBoard.
618
619 (% style="color:#4472c4" %)**{
620 "IMEI": "863663062798914",
621 "IMSI": "460083513507314",
622 "Model": "WSC2-N",
623 "payload_ver": 1,
624 "rain_count": 100.00,
625 "wind_speed": 0.00,
626 "wind_level": 0,
627 "wind_direction": 0,
628 "wind_angel": 0,
629 "humidity": 38.0,
630 "temperature": 24.8,
631 "voise": 47.8,
632 "CO2": 34,
633 "pressure": 101.0,
634 "illumination": 632,
635 "interrupt": 0,
636 "interrupt_level": 0,
637 "battery": 3.37,
638 "signal": 17,
639 "time": "2025/01/20 06:46:04"
640 }**
641
642 [[image:image-20250120144735-1.png]]
643
644
645 === 2.3.4 ThingSpeak Payload(Type~=1) ===
646
647
648 This payload meets ThingSpeak platform requirement. It includes only four fields. Form 1~~8 are:
649
650 (% style="color:#4472c4" %)**payload_ver**(%%), (% style="color:#4472c4" %)**exit_count(rain)**(%%), (% style="color:#4472c4" %)**WIND_SPEED**(%%) & (% style="color:#4472c4" %)**WIND_LEVEL **(%%)& (% style="color:#4472c4" %)**WIND_DIRECTION **(%%)& (% style="color:#4472c4" %)**WIND_ANGLE **(%%)& (% style="color:#4472c4" %)**Humidity **(%%)& (% style="color:#4472c4" %)**Temperature**(%%). This payload type only valid for ThingsSpeak Platform
651
652 As below:
653
654 (% style="color:#4472c4" %)**field1=payload_ver & field2=exit_count(rain) & field3=WIND_SPEED & field4=WIND_LEVEL & field5=WIND_DIRECTION & field6=WIND_ANGLE & field7=Humidity & field8=Temperature**
655
656 [[image:image-20250115153122-1.png]]
657
658 [[image:image-20250115153132-2.png]]
659
660
661 = 3. Configure WSC2-N =
662
663 == 3.1 Configure Methods ==
664
665
666 WSC2-N supports below configure method:
667
668 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
669
670 * 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]].
671
672 * NB-Iot Downlink.  Instruction for different platforms: See [[NB-Iot downlink>>https://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H4.A0MQTT2FUDP2FTCPdownlink]] section.
673
674 == 3.2  Serial Access Password ==
675
676 After the Bluetooth or UART connection is successful, use the Serial Access Password to enter the AT command window.
677
678 The label on the box of the node will print the initial password: AT+PIN=**xxxxxx**, and directly use the six-digit password to access the AT instruction window.
679
680 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-NB%2C-NS_RS485%2CUART_to_NB-IoT_Converter_User_Manual/WebHome/image-20250226165815-1.png?rev=1.1||alt="image-20250226165815-1.png"]]
681
682 If you need to change the password, use **AT+PWORD=**xxxxxx (6 characters), NB nodes only support lowercase letters.
683
684 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/TS01-CB--NB-IoTLTE-M_Tilting_Sensor_User_Manual/WebHome/image-20240826181440-2.png?rev=1.1||alt="image-20240826181440-2.png"]]
685
686 **Note: After entering the command, you need to add a line break, and you can also set automatic line breaks in the Bluetooth tool or UART connection tool.**
687
688 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/TS01-CB--NB-IoTLTE-M_Tilting_Sensor_User_Manual/WebHome/image-20240826181446-3.png?rev=1.1||alt="image-20240826181446-3.png"]]
689
690 == 3.3 Commands special design for WSC2-N ==
691
692
693 These commands only valid for WSC2-N, as below:
694
695
696 === 3.3.1 Set Transmit Interval Time ===
697
698
699 Feature: Change NB-Iot End Node Transmit Interval.
700
701 (% style="color:#037691" %)**AT Command: AT+TDC**
702
703 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:501px" %)
704 |(% 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**
705 |(% style="width:155px" %)AT+TDC=?|(% style="width:162px" %)Show current transmit Interval|(% style="width:177px" %)(((
706 30000
707 OK
708 the interval is 30000ms = 30s
709 )))
710 |(% style="width:155px" %)AT+TDC=60000|(% style="width:162px" %)Set Transmit Interval|(% style="width:177px" %)(((
711 OK
712 Set transmit interval to 60000ms = 60 seconds
713 )))
714
715 (% style="color:#037691" %)**Downlink Command: 0x01**
716
717 Format: Command Code (0x01) followed by 3 bytes time value.
718
719 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
720
721 * Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
722 * Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
723
724 === 3.3.2 Set the CO2 or PM mode ===
725
726
727 (% style="color:red" %)**Note: Default shipment is PM sensor, optional CO2 or PM sensor is available at the time of purchase, which needs to be modified according to the sensor selected at the time of purchase.**
728
729 Feature: Set the CO2/PM mode, and the user can set the corresponding mode according to the purchased sensor.
730
731 (% style="color:#037691" %)**AT Command:**
732
733 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:466px" %)
734 |(% 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**
735 |(% style="width:155px" %)AT+PMMOD=1|(% style="width:224px" %)The working sensors are PM2.5 and PM10|(% style="width:84px" %)(((
736 OK
737
738 )))
739 |(% style="width:155px" %)AT+PMMOD=0|(% style="width:224px" %)The working sensors are CO2|(% style="width:84px" %)(((
740 OK
741 )))
742
743 (% style="color:#037691" %)**Downlink Command:**
744
745 * 0xE101     Same as: AT+PMMOD=1
746 * 0xE100     Same as: AT+PMMOD=0
747
748 === 3.3.3 Add or Delete RS485 Sensor ===
749
750
751 (((
752 Feature: User can add or delete 3^^rd^^ party sensor as long they are RS485/Modbus interface,baud rate support 4800.Maximum can add 4 sensors.
753 )))
754
755 (((
756 (% style="color:#037691" %)**AT Command: **
757 )))
758
759 (((
760 (% style="color:blue" %)**AT+DYSENSOR=Type_Code, Query_Length, Query_Command , Read_Length , Valid_Data ,has_CRC,timeout**
761 )))
762
763 * (((
764 Type_Code range:  A1 ~~ A4
765 )))
766 * (((
767 Query_Length:  RS485 Query frame length, Value cannot be greater than 10
768 )))
769 * (((
770 Query_Command:  RS485 Query frame data to be sent to sensor, cannot be larger than 10 bytes
771 )))
772 * (((
773 Read_Length:  RS485 response frame length supposed to receive. Max can receive
774 )))
775 * (((
776 Valid_Data:  valid data from RS485 Response, Valid Data will be added to Payload and upload via LoRaWAN.
777 )))
778 * (((
779 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.
780 )))
781 * (((
782 timeout:  RS485 receive timeout (uint:ms). Device will close receive window after timeout
783 )))
784
785 (((
786 **Example:**
787 )))
788
789 (((
790 User need to change external sensor use the type code as address code.
791 )))
792
793 (((
794 With a 485 sensor, after correctly changing the address code to A1, the RS485 query frame is shown in the following table:
795 )))
796
797 [[image:image-20220624143553-10.png]]
798
799
800 The response frame of the sensor is as follows:
801
802 [[image:image-20220624143618-11.png]]
803
804
805 **Then the following parameters should be:**
806
807 * Address_Code range: A1
808 * Query_Length: 8
809 * Query_Command: A103000000019CAA
810 * Read_Length: 8
811 * Valid_Data: 23 (Indicates that the data length is 2 bytes, starting from the 3th byte)
812 * has_CRC: 1
813 * timeout: 1500 (Fill in the test according to the actual situation)
814
815 **So the input command is:**
816
817 AT+DYSENSOR=A1,8,A103000000019CAA,8,24,1,1500
818
819
820 In every sampling. WSC2-N will auto append the sensor segment as per this structure and uplink.
821
822 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:351px" %)
823 |=(% 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
824 |(% style="width:94px" %)A1|(% style="width:121px" %)2|(% style="width:132px" %)0x000A
825
826 **Related commands:**
827
828 AT+DYSENSOR=A1,0  ~-~->  Delete 3^^rd^^ party sensor A1.
829
830 AT+DYSENSOR  ~-~->  List All 3^^rd^^ Party Sensor. Like below:
831
832
833 (% style="color:#037691" %)**Downlink Command:  **
834
835 **delete custom sensor A1:**
836
837 * 0xE5A1     Same as: AT+DYSENSOR=A1,0
838
839 **Remove all custom sensors**
840
841 * 0xE5FF  
842
843 === 3.3.4 RS485 Test Command ===
844
845
846 (% style="color:#037691" %)**AT Command:**
847
848 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:494px" %)
849 |=(% 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**
850 |(% style="width:159px" %)AT+RSWRITE=xxxxxx|(% style="width:227px" %)(((
851 Send command to 485 sensor. Range : no more than 10 bytes
852 )))|(% style="width:85px" %)OK
853
854 Eg: Send command **01 03 00 00 00 01 84 0A** to 485 sensor
855
856 AT+RSWRITE=0103000001840A
857
858
859 (% style="color:#037691" %)**Downlink Command:**
860
861 * 0xE20103000001840A     Same as: AT+RSWRITE=0103000001840A
862
863 === 3.3.5 RS485 response timeout ===
864
865
866 Feature: Set or get extended time to receive 485 sensor data.
867
868 (% style="color:#037691" %)**AT Command:**
869
870 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:433px" %)
871 |=(% 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**
872 |(% style="width:157px" %)AT+DTR=1000|(% style="width:188px" %)(((
873 Set response timeout to: Range : 0~~10000
874 )))|(% style="width:85px" %)OK
875
876 (% style="color:#037691" %)**Downlink Command:**
877
878 Format: Command Code (0xE0) followed by 3 bytes time value.
879
880 If the downlink payload=E0000005, it means set the END Node's Transmit Interval to 0x000005=5(S), while type code is E0.
881
882 * Example 1: Downlink Payload: E0000005  ~/~/  Set Transmit Interval (DTR) = 5 seconds
883 * Example 2: Downlink Payload: E000000A  ~/~/  Set Transmit Interval (DTR) = 10 seconds
884
885 === 3.3.6 Set or get the total count value ===
886
887
888 Feature: The user can set the counting to start from the set value according to the requirements. (only available in counting mode).
889
890 (% style="color:#037691" %)**AT Command:**
891
892 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:433px" %)
893 |=(% 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**
894 |(% style="width:157px" %)AT+SETCNT=1000|(% style="width:188px" %)Set the total count to start from 1000|(% style="width:85px" %)OK
895
896 (% style="color:#037691" %)**Downlink Command:**
897
898 Format: Command Code (0x09) followed by 5 bytes time value.
899
900 If the downlink payload=09000003E8, This means that the count of the END node will start counting from setting 0x000003E8=1000 (times). while type code is 09.
901
902 * Example 1: Downlink Payload: 09000003E8  ~/~/  Set the value to start counting from 1000 = 1000 (times)
903
904 === 3.3.7  Set interrupt or counting mode ===
905
906
907 Feature: Users can set the trigger mode to counting mode or interrupt mode as needed.
908
909 (% style="color:#037691" %)**AT Command:**
910
911 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:433px" %)
912 |=(% 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**
913 |(% style="width:157px" %)AT+COUNTMOD=0|(% style="width:188px" %)set to interrupt mode|(% style="width:85px" %)OK
914 |(% style="width:157px" %)AT+COUNTMOD=1|(% style="width:188px" %)(((
915 set to counting mode
916 )))|(% style="width:85px" %)OK
917
918 (% style="color:#037691" %)**Downlink Command:**
919
920 Format: Command Code (0x10) followed by 1 bytes time value.
921
922 If the downlink payload=10 00, Set the trigger mode to interrupt mode, while type code is 10.
923
924 * Example 1: Downlink Payload: 10 00  ~/~/  Same as: AT+COUNTMOD=0  set to interrupt mode
925
926 === 3.3.8 Domain name resolution settings ===
927
928
929 Feature: Set dynamic domain name resolution IP.
930
931 (% style="color:blue" %)**AT command: AT+BKDNS**
932
933 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
934 |=(% style="width: 138px; background-color: rgb(79, 129, 189); color: white;" %)**Command Example**|=(% style="width: 143px; background-color: rgb(79, 129, 189); color: white;" %)**Function/Parameters**|=(% style="width: 229px; background-color: rgb(79, 129, 189); color: white;" %)**Response/Explanation**
935 |(% style="width:134px" %)(((
936 AT+BKDNS=?
937 )))|(% style="width:143px" %)Get current Settings|(% style="width:606px" %)(((
938 0,0,NULL  (default)
939 OK
940 )))
941 |(% colspan="1" rowspan="3" style="width:134px" %)(((
942
943
944
945
946
947
948
949
950
951
952
953 AT+BKDNS=a,b,c
954 )))|(% style="width:143px" %)(((
955 **a**: Enable/Disable dynamic domain name resolution.
956 )))|(% style="width:606px" %)**1**: Disable dynamic domain name update. The ip address will be saved after the domain name is resolved, if the next domain name resolution fails, the last saved ip address will be used.
957 **2**: Enable dynamic domain name update. The ip address will be saved after domain name resolution, if the next domain name resolution fails, the last saved ip address will be used, and the domain name resolution will be updated regularly according to the time set by the customer.
958 |(% style="width:143px" %)**b**: Set the time to update the domain name resolution at regular intervals.|(% style="width:606px" %)(((
959 Unit: hour
960 )))
961 |(% style="width:143px" %)(((
962 **c**: Set the IP address manually.
963 )))|(% style="width:606px" %)(((
964 The format is the same as AT+SERVADDR.
965 If domain name resolution fails, this ip address will be used directly, if domain name resolution succeeds, parameter c will be updated to the successfully resolved IP address.
966 )))
967
968 **Example:**
969
970 * AT+BKDNS=1,0  ~/~/ Dynamic domain name resolution is disabled.
971 * AT+BKDNS=2,1  ~/~/ The dynamic domain name resolution function is enabled and the automatic update time is set to 1 hour.
972 * AT+BKDNS=2,4,3.69.98.183,1883  ~/~/ The dynamic domain name resolution function is enabled and the automatic update time is set to 4 hour, and manually set the ip address, if the domain name failed to resolve, it will directly use this ip to communicate. When the next domain name resolution is successful, it will be updated to the ip address of the successful resolution.
973
974 (% style="color:blue" %)**Downlink Command:  **
975
976 No downlink commands for feature
977
978
979 === 3.3.9 Set the downlink debugging mode ===
980
981 Feature: Set the conversion between the standard version and 1T version downlinks.
982
983 (% style="color:blue" %)**AT command: AT+DOWNTE**
984
985 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
986 |=(% style="width: 138px; background-color: rgb(79, 129, 189); color: white;" %)**Command Example**|=(% style="width: 143px; background-color: rgb(79, 129, 189); color: white;" %)**Function/Parameters**|=(% style="width: 229px; background-color: rgb(79, 129, 189); color: white;" %)**Response/Explanation**
987 |(% style="width:134px" %)AT+DOWNTE=?|(% style="width:143px" %)Get current Settings|(% style="width:229px" %)(((
988 0,0  (default)
989 OK
990 )))
991 |(% colspan="1" rowspan="2" style="width:134px" %)(((
992
993
994
995
996 AT+DOWNTE=a,b
997 )))|(% style="width:143px" %)**a**: Set the conversion between the downlink of the standard version and 1T version|(% style="width:229px" %)(((
998 **0**: Set the downlink of the standard version.
999 **1**: Set the downlink of the 1T version(ThingsEye platform)
1000 )))
1001 |(% style="width:143px" %)**b**: Enable/Disable downlink debugging|(% style="width:229px" %)(((
1002 **0**: Disable downlink debugging mode.
1003 **1**: Enable downlink debugging mode, users can see the original downlink reception.
1004 )))
1005
1006 **Example:**
1007
1008 * AT+DOWNTE=0,1  ~/~/ Set to standard version downlink, and enable downlink debugging.
1009 * AT+DOWNTE=1,1  ~/~/ Set to 1T version downlink, and enable downlink debugging.
1010
1011 (% style="color:blue" %)**Downlink Command:  **
1012
1013 No downlink commands for feature
1014
1015
1016 === 3.3.10  Set CoAP option ===
1017
1018
1019 This command sets the connection parameters of the COAP.
1020
1021 (% style="color:blue" %)**AT command:**
1022
1023 * AT+URI1       ~/~/ CoAP option name, CoAP option length, "CoAP option value"
1024 * AT+URI2      ~/~/ CoAP option name, CoAP option length,  "CoAP option value"
1025 * AT+URI3     ~/~/ CoAP option name, CoAP option length,  "CoAP option value"
1026 * AT+URI4     ~/~/ CoAP option name, CoAP option length,  "CoAP option value"
1027
1028 **Example:**
1029
1030 * AT+URI1=11,38,"i/faaa241f-af4a-b780-4468-c671bb574858"
1031
1032 === 3.3.11 Add External Soil Moisture & EC Sensor & Leaf Moisture Sensor & SHT31 Sensor & DS18B20 (% style="color:red" %)(Customized feature, not included in standard firmware)(%%) ===
1033
1034
1035 (% style="color:blue" %)**Setting up external sensors:**
1036
1037 * (% style="color:#037691" %)**AT Command:**
1038
1039 (% style="color:#4472c4" %)**AT+EXT=a,b,c,d**
1040
1041 (% style="color:#4472c4" %)**a:    **(%%)**0:** ignore I2C interface.  **1:** Add SHT31 sensor support (4 bytes).
1042 (% style="color:#4472c4" %)**b:    **(%%)**0:** ignore Soil Moisture & EC Sensor(**RS485 protocol sensors**) interface.  **1:** Add Soil Moisture & EC Sensor(**RS485 protocol sensors**) support (4 bytes).
1043 (% style="color:#4472c4" %)**c:    **(%%)**0:** ignore Leaf Moisture Sensor interface.  **1:** Add Leaf Moisture Sensor Support (4 bytes).
1044 (% style="color:#4472c4" %)**d:    **(%%)**0:** ignore one wire interface.  **1:** Add DS18B20 support (2 bytes).
1045
1046 **Example:**
1047
1048 * (% style="color:#4472c4" %)**AT+EXT=1,1,1,1**(%%)  ~/~/  Device will add SHT31 sensor & Soil Moisture & EC Sensor & Leaf Moisture Sensor &  DS18B20 support.
1049 * (% style="color:#4472c4" %)**AT+EXT=0,1,0,1**(%%)  ~/~/  Device will add Soil Moisture & EC Sensor &  DS18B20** **support.
1050
1051 * (% style="color:#037691" %)**Downlink Command: 0x20 aa bb cc dd**
1052
1053 Format: Command Code (0x20) followed by 4 bytes.
1054
1055 (% style="color:#037691" %)**aa:**(%%) Set whether to add **SHT31 sensor** support.  **00**: No, **01**: Add.
1056
1057 (% style="color:#037691" %)**bb:**(%%) Set whether to add **Soil Moisture & EC Sensor** support.  **00**: No, **01**: Add.
1058
1059 (% style="color:#037691" %)**cc: **(%%)Set whether to add **Leaf Moisture Sensor** Support.  **00**: No, **01**: Add.
1060
1061 (% style="color:#037691" %)**dd:**(%%) Set whether to add **DS18B20** support.  **00**: No, **01**: Add.
1062
1063 **Example:**
1064
1065 Downlink payload:  20 01 01 01 01  ~/~/AT+EXT=1,1,1,1  Add SHT31 sensor & Soil Moisture & EC Sensor & Leaf Moisture Sensor &  DS18B20 support
1066
1067 Downlink payload:  20 00 00 01 01  ~/~/AT+EXT=0,0,1,1  Add Leaf Moisture Sensor support and DS18B20 support
1068
1069 Downlink payload:  20 01 01 00 01  ~/~/AT+EXT=1,0,1,1  Add SHT31 sensor support & Soil Moisture & EC Sensor and DS18B20 support
1070
1071
1072 (% id="cke_bm_508279S" style="color:blue; display:none" %)** **(% style="color:blue" %)**Connect Soil Moisture & EC Sensor(RS485 protocol sensors):**
1073
1074 Connect the red and black wires of the soil moisture and conductivity sensors to the external power supply +12v and GND pins;
1075
1076 connect the RS485-A and RS485-B signal wires of the sensors to pins A and B of the motherboard.
1077
1078 [[image:image-20250429092725-1.jpeg||height="394" width="654"]]
1079
1080
1081 (% style="color:blue" %)**Connect Leaf Moisture Sensor:**
1082
1083 Connect the red and black wires of the Leaf Moisture Sensor to the external power supply +12v and GND pins;
1084
1085 connect the RS485-A and RS485-B signal wires of the sensors to pins A and B of the motherboard.
1086
1087 [[image:image-20250429092738-2.jpeg||height="402" width="668"]]
1088
1089
1090 (% id="cke_bm_499462S" style="color:blue; display:none" %)** **(% style="color:blue" %)**Connect SHT31 sensor:**
1091
1092 **RED <~-~-~-~-~-~-~-~--> VBAT_OUT(+3.3V)**
1093
1094 **YELLOW <~-~-~-~-> SCL**
1095
1096 **GREEN <~-~-~-~-~-~-> SDA**
1097
1098 **BLACK <~-~-~-~-~-~-> GND**
1099
1100 [[image:image-20250428140527-2.jpeg]]
1101
1102
1103 (% style="color:blue" %)**Connect DS18B20 sensor:**
1104
1105 **RED <~-~-~-~-~-~-~-~--> VBAT_OUT(+3.3V)**
1106
1107 **YELLOW <~-~-~-~-> ONE_WIRE**
1108
1109 **BLACK <~-~-~-~-~-~-> GND**
1110
1111 [[image:image-20250428142910-1.jpeg]]
1112
1113
1114
1115 ==== 3.3.11.1 HEX format Payload(Type~=0) ====
1116
1117 [[image:image-20250429135216-1.png]]
1118
1119
1120 (% style="color:blue" %)**Version:**
1121
1122 These bytes include the hardware and software version.
1123
1124 (% style="color:#037691" %)**Higher byte:**(%%) Specify Sensor Model: 0x3e for WSC2-N
1125
1126 (% style="color:#037691" %)**Lower byte:**(%%) Specify the software version: 0x6e=110, means firmware version 1.1.0
1127
1128
1129 (% style="color:blue" %)**BAT (Battery Info):**
1130
1131 Ex1: 0x0d32 = 3378mV/1000= 3.378V
1132
1133
1134 (% style="color:blue" %)**Signal Strength:**
1135
1136 NB-IoT Network signal Strength.
1137
1138 **Ex1: 0x11 = 17**
1139
1140 **0**  -113dBm or less
1141
1142 **1**  -111dBm
1143
1144 **2...30** -109dBm... -53dBm
1145
1146 **31**   -51dBm or greater
1147
1148 **99**    Not known or not detectable
1149
1150
1151 (% style="color:blue" %)**Interrupt:**
1152
1153 This data field shows if this packet is generated by interrupt or not.
1154
1155 **Example:**
1156
1157 If byte[0]&0x01=0x00 : Normal uplink packet.
1158
1159 If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
1160
1161
1162 (% style="color:blue" %)**Interrupt_level:**
1163
1164 This byte shows whether the interrupt is triggered by a high or low level.
1165
1166 **Ex1:** 0x00  Interrupt triggered by falling edge (low level)
1167
1168 **Ex2: **0x01  Interrupt triggered by rising edge (high level)
1169
1170
1171 (% style="color:blue" %)**payload_ver: **
1172
1173 The payload version number is used to parse different decodes.
1174
1175 **Ex2: **0x01  Payload decoding version v1.0.0
1176
1177
1178 (% style="color:blue" %)**exit_count: **
1179
1180 Converted to rainfall based on the number of interruptions,
1181
1182 **Ex1:**
1183
1184 bytes[54]&0x0F(hex) / bytes[55](hex) = 0x81&0x0F / 0x0a = 1 / 10=0.1mm((% style="color:red" %)**Note:Calculate the accuracy of the trigger one time to 0.1mm**(%%))
1185
1186 bytes[10] | bytes[13] / 0.1mm = 0x000003e8(hex)  *  0.1 = 1000(dec) * 0.1 = 100mm((% style="color:red" %)**Note:Use exit_count x precision = rainfall**(%%))
1187
1188
1189 (% style="color:blue" %)**wind_speed:**
1190
1191 Ex1: 0x0058(hex) / 100 = 88(dec) / 100 = 0.88m/s
1192
1193
1194 (% style="color:blue" %)**wind_level:**
1195
1196 Ex1: 0x0001(hex) = 1(dec)
1197
1198
1199 (% style="color:blue" %)**wind_direction:**
1200
1201 Ex1: 0x0004(hex) = 4(dec)
1202
1203 (% style="color:red" %)**Note: 0 for due north, increasing clockwise, 2 for due east**
1204
1205
1206 (% style="color:blue" %)**wind_angel:**
1207
1208 Ex1: 0x00ac(hex) =  172(dec)
1209
1210 (% style="color:red" %)**Note: Calculation: 0° clockwise increase in degrees for due north, 90° for due east**
1211
1212
1213 (% style="color:blue" %)**Humidity:   **
1214
1215 Ex1: :01cb(H)=459(D)    Value:  459 / 10=45.9, So 45.9%
1216
1217
1218 (% style="color:blue" %)**Temperature:**
1219
1220 If payload is: 0101(H) :  (0101 & 8000 == 0), temp = 0101(H) /10 = 25.7 degree
1221
1222 If payload is: FF3F(H) :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
1223
1224 (FF3F & 8000: Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
1225
1226
1227 (% style="color:blue" %)**Voise:**
1228
1229 Ex1:0x0203(H) = 515(D)  Value: 515/10=51.5, So 51.5dB/y
1230
1231
1232 (% style="color:blue" %)**CO2:**
1233
1234 Ex1: 0x0008(H) = 8(D)
1235
1236
1237 (% style="color:blue" %)**Pressure:**
1238
1239 Ex1: 0x03f3(H) = 1011(D)  Value: 1011/10= 101.1, So 101.1kPa
1240
1241
1242 (% style="color:blue" %)**illumination:**
1243
1244 Ex1: 0x0000028d(H) = 653(D) Lux
1245
1246
1247 (% style="color:blue" %)**Flag: **
1248
1249 (% style="color:#037691" %)**Higher byte:**
1250
1251 s_flag: (0x01>>6)&0x01= 000**1 **, A value of 1 for the last value means that the sensor has been recognized, and 0 means that, the sensor has not been recognized.
1252
1253 i_flag: (0x01>>5)&0x01 = 000**1 **, A last value of 1 means that the interrupt has been triggered, and 0 means that the interrupt has not been triggered.
1254
1255 (% style="color:#037691" %)**Low byte:**
1256
1257 Ext:0x0a = 10/100=0.1, This represents 0.1mm of rainfall per trigger conversion.
1258
1259
1260 (% style="color:blue" %)**wss_rain:**
1261
1262 This field displays the rainfall value of the tipping bucket rain gauge sensor.
1263
1264 Ex1: 0x0000(H) = 0(D)mm
1265
1266
1267 (% style="color:blue" %)**wss_tsr:**
1268
1269 This field displays the radiation value of the total radiation sensor.
1270
1271 Ex1: 0x0000(H) = 0(D)W/m²
1272
1273
1274 (% style="color:blue" %)**soil_hum: **
1275
1276 This field displays the humidity value of the soil sensor.
1277
1278 (((
1279 Get the moisture content of the soil. The value range of the register is 0-10000(Decimal), divide this value by 100 to get the percentage of moisture in the soil.
1280 )))
1281
1282 (((
1283 For example, if the data you get from the register is **__0x07 0xcd__**, the moisture content in the soil is (% style="color:blue" %)**07cd(H) = 1998(D) /100 = 19.98%.**
1284 )))
1285
1286
1287 (% style="color:blue" %)**soil_temp:**
1288
1289 This field displays the temperature value of the soil sensor.
1290
1291 (((
1292 Get the temperature in the soil. The value range of the register is -4000 - +800(Decimal), divide this value by 100 to get the temperature in the soil. For example, if the data you get from the register is 0x09 0xEC, the temperature content in the soil is
1293 )))
1294
1295 (((
1296 **Example**:
1297 )))
1298
1299 (((
1300 If payload is 0105H: ((0x086c & 0x8000)>>15 === 0),temp = 086c(H)/100 = 21.56 °C
1301 )))
1302
1303 (((
1304 If payload is FF7EH: ((FF7E & 0x8000)>>15 ===1),temp = (FF7E(H)-FFFF(H))/100 = -1.29 °C
1305 )))
1306
1307
1308 (% style="color:blue" %)**conduct_soil(EC) :**
1309
1310 This field displays the conductivity value of the soil sensor.
1311
1312 Obtain (% style="color:blue" %)**__soluble salt concentration__**(%%) in soil or (% style="color:blue" %)**__soluble ion concentration in liquid fertilizer__**(%%) or (% style="color:blue" %)**__planting medium__**(%%). The value range of the register is 0 - 20000(Decimal)( Can be greater than 20000).
1313
1314 (((
1315 For example, if the data you get from the register is 0x00 0x60, the soil conductivity is 0060(H) = 96(D) = 96 uS/cm.
1316 )))
1317
1318 (((
1319 Generally, the EC value of irrigation water is less than 800uS / cm.
1320
1321
1322 )))
1323
1324 (% style="color:blue" %)**fws_hum:**
1325
1326 This field displays the humidity value of the foliage sensor.
1327
1328 Ex1: 0x0007(H) = 7(D)% / 10 = 0.7%
1329
1330
1331 (% style="color:blue" %)**fws_temp:**
1332
1333 This field displays the temperature value of the foliage sensor.
1334
1335 Ex1: 0x0103(H) = 259(D)℃ / 10 = 25.9℃
1336
1337
1338 (% style="color:blue" %)**DS18B20_Temperature:**
1339
1340 This field displays the temperature value of the DS18B20 sensor.
1341
1342 **Example:** 0x00f5(H)= 245(D) =24.5℃
1343
1344 (% style="color:red" %)**Note:**(%%) If the DS18B20 sensor is not connected, the hex payload is **0xFFFF** and Serial port print: **-409.5 ° C.**
1345
1346
1347 (% style="color:blue" %)**sht3x_temp: **
1348
1349 This field displays the temperature value of the SHT3x sensor.
1350
1351 If payload is: 0102H:  (0102 & 8000 == 0), temp = 0102H /10 = 25.8 degree
1352
1353 If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
1354
1355 (FF3F & 8000: Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
1356
1357
1358 (% style="color:blue" %)**sht3x_hum:   **
1359
1360 This field displays the humidity value of the SHT3x sensor.
1361
1362 Read:01b4(H)=436(D)    Value:  436 / 10=43.6, So 43.6%
1363
1364
1365 (% style="color:blue" %)**DIY Sensors(A1~~A4)**
1366
1367 Ex1:a204ffffffff
1368
1369 **a2**: 485 Sensor Address
1370
1371 **04**: Total bytes returned by the sensor
1372
1373 **ffffffff: **Hexadecimal data returned from sensor acquisition
1374
1375 (% style="color:red" %)**Note:**(%%)DIY sensor data needs to be set up before it has to go up with the device. (Setup reference link: [[Reference Links>>https://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/WSC2-N--Weather_Station_Kit_User_Manual/#H3.3.3AddorDeleteRS485Sensor]])
1376
1377
1378 (% style="color:blue" %)**TimeStamp:    **
1379
1380 Unit TimeStamp Example: 67879587(H) = 1736938887(D)
1381
1382 Put the decimal value into this link(https:~/~/www.epochconverter.com/) to get the time.
1383
1384
1385 ==== 3.3.11.2  General Json Format(Type~=5) ====
1386
1387 This is the **PMMOD=0** generic Json format. It is shown below:
1388
1389 (% style="color:#4472c4" %)**{"IMEI":"863663062798914","IMSI":"460083513507314","Model":"WSC2-N","payload_ver":1,"rain_count":0.00,"wind_speed":0.00,"wind_level":0,"wind_direction":0,"wind_angel":0,"humidity":44.6,"temperature":26.1,"voise":56.3,"CO2":13,"pressure":101.0,"illumination":657,"interrupt":0,"interrupt_level":0,"battery":3.38,"signal":18,"wss_rain":"0.0","wss_tsr":"0","soil_temp":"18.02","soil_hum":"20.92","conduct_soil":"94","fws_temp":"26.0","fws_hum":"0.6","sht3x_temp":"25.9","sht3x_hum":"43.3","ds18b20_temp":"24.8","time":"2025/04/29 02:53:59"}**
1390
1391 [[image:image-20250429140544-2.png]]
1392
1393
1394
1395 == 3.4 Add 3rd RS485 / Modbus Sensor ==
1396
1397 === 3.4.1 Hardware Connection ===
1398
1399
1400 WSC2-N has a 1 to 3 cables. All the three connectors has same defination as below. It include Five Pins: VCC, GND, RS485-A, RS485-B, Count.
1401
1402 (% style="color:red" %)**Notice: RS485-A,RS485-B can be used to connect multiply sensors. but the COUNT can be only use for one sensor. Which means if you already add a Pulse output Rain Guage in the system, you are not able to add another Pulse Output device.**
1403
1404 [[image:image-20240707220859-4.png||height="313" width="366"]]
1405
1406
1407 === 3.4.2 Software Setup ===
1408
1409
1410 Send AT+DYSENSOR to activate the RS485 sensor for collecting 3rd RS485 sensor. You can refer to the instructions in section 3.3.3 of the manual.
1411
1412 For example: AT+DYSENSOR=A1,8,A103000000019CAA,8,24,1,1500
1413
1414
1415 === 3.4.3 Payload ===
1416
1417 [[image:image-20240416163658-1.png]]
1418
1419 For example: A1 02 00 00
1420
1421 A1 : A1 register data acquisition instruction
1422
1423 02 : The valid data returned is 2 bytes in total.
1424
1425 00 00 : Return valid data
1426
1427
1428 = 3.5 Add tipping bucket total solar radiation sensor =
1429
1430 === 3.5.1 Hardware Connection ===
1431
1432
1433 The following is an example of connecting a total solar radiation sensor to a matching interface cable, and then using the interface to connect the WSC2-N.
1434
1435 Users can also choose to connect the sensor directly to the WSC2-N via the cable and pin instructions below.
1436
1437 The following is an explanation of the [[pins>>||anchor="H5.7PinMapping"]] required for WSC2-N:
1438
1439 **A:** RS485-A  (Connect the RS485 sensor)
1440
1441 **B:** RS485-B  (Connect the RS485 sensor)
1442
1443 **GPIO_EXTI:** Interrupt pin  (Can be used to connect an additionally added pulsed rain gauge)
1444
1445
1446 * Total Solar Radiation Sensor Cable Descripti
1447
1448 [[image:image-20240906174635-2.jpeg||height="430" width="813"]]
1449
1450
1451
1452 * Mating Interface Cable Description
1453
1454 [[image:image-20240906173843-1.jpeg||height="404" width="815"]]
1455
1456 * Connect to WSC2-N
1457
1458 The Total solar radiation sensor does not need to connect the interrupt pin, so the white cable is not wired.
1459
1460 [[image:image-20240906182250-3.jpeg||height="442" width="820"]]
1461
1462
1463 === 3.5.2 Calculating & Decode ===
1464
1465
1466 0FC6 01 00000000 00EB 000F 0000 0003 008E 0251 00CE 0213 0017 001B 03EC 000000DE 90 A1020000 A2020032
1467
1468 For example:  A2 02 00 32
1469
1470 A2 : A2 register data acquisition instruction
1471
1472 02 : The valid data returned is 2 bytes in total.
1473
1474 00 32(HEX) : Return valid data = 50(DEC)W/m2
1475
1476
1477 == 3.6 AT Commands Set ==
1478
1479 AT+<CMD>? : Help on <CMD>
1480
1481 AT+<CMD> : Run <CMD>
1482
1483 AT+<CMD>=<value> : Set the value
1484
1485 AT+<CMD>=? : Get the value
1486
1487
1488 (% style="color:blue" %)**General Commands **
1489
1490 AT+MODEL : Get module information
1491
1492 ATZ : Trig a reset of the MCU
1493
1494 AT+CFGMOD : Working mode selection
1495
1496 AT+DEUI : Get or set the Device ID
1497
1498 AT+CFG : Print all settings
1499
1500 AT+SERVADDR: Get or Set the Server address
1501
1502 AT+TDC : Get or set the application data transmission interval in s
1503
1504 AT+INTMOD : Get or Set the trigger interrupt mode (0:input,1:falling or rising,2:falling,3:rising)
1505
1506 AT+APN : Get or set the APN
1507
1508 AT+PRO : Get or Set usage agreement (1:COAP,2:UDP,3:MQTT,4:TCP)
1509
1510 AT+RXDL : Get or Set the receiving time
1511
1512 AT+LDATA : Get the last upload data
1513
1514 AT+COUNTMOD : Get or Set the count mode
1515
1516 AT+RSWRITE : Write command to 485 sensor
1517
1518 AT+DTR : Set or get the delay time for receiving 485 sensor data
1519
1520 AT+DYSENSOR : Set or get 485 sensor
1521
1522 AT+PMMOD : CO2 to PM2.5/10
1523
1524 AT+SETCNT : Get or set the count at present
1525
1526 AT+FACTOR : Get or Set factor
1527
1528 AT+GETSENSORVALUE : Returns the current sensor measurement
1529
1530 AT+DNSCFG : Get or Set DNS Server
1531
1532 AT+CSQTIME : Get or Set the time to join the network
1533
1534 AT+BKDNS : Get or Set dynamic domain name resolution IP
1535
1536 AT+SLEEP : Get or Set the sleep mode
1537
1538 AT+GETLOG : Print serial port logs
1539
1540 AT+DOWNTE: Get or set the conversion between the standard version and 1T version downlinks
1541
1542
1543 (% style="color:blue" %)**MQTT Management**
1544
1545 AT+MQOS : Set the QoS level of MQTT
1546
1547 AT+CLIENT : Get or Set the MQTT clientID
1548
1549 AT+UNAME : Get or Set the MQTT Username
1550
1551 AT+PWD : Get or Set the MQTT password
1552
1553 AT+PUBTOPIC: Get or set MQTT publishing topic
1554
1555 AT+SUBTOPIC: Get or set MQTT subscription topic
1556
1557 AT+TLSMOD : Get or Set the TLS mode
1558
1559
1560 (% style="color:blue" %)**information**
1561
1562 AT+FDR1 : Reset parameters to factory default values except for passwords
1563
1564 AT+FDR : Reset Parameters to Factory Default
1565
1566 AT+PWORD : Get or set the System password
1567
1568
1569 (% style="color:blue" %)**COAP Management**
1570
1571 AT+URI1: Get or set CoAP option 1
1572
1573 AT+URI2: Get or set CoAP option 2
1574
1575 AT+URI3: Get or set CoAP option 3
1576
1577 AT+URI4: Get or set CoAP option 4
1578
1579
1580 = 4. Power consumption and battery =
1581
1582 == 4.1 Total Power Consumption ==
1583
1584
1585 Dragino Weather Station serial products include the main process unit (WSC2-N) and various sensors. The total power consumption equal total power of all above units. The power consumption for main process unit WSC2-N is 18ma @ 12v. and the power consumption of each sensor can be found on the Sensors chapter.
1586
1587
1588 == 4.2 Battery ==
1589
1590
1591 (((
1592 All sensors are only power by external power source. If external power source is off. All sensor won't work.
1593 )))
1594
1595 (((
1596 Main Process Unit WSC2-N is powered by both external power source and internal 1000mAh rechargeable battery. If external power source is off, WSC2-N still runs and can send periodically uplinks, but the sensors value will become invalid.  External power source can recharge the 1000mAh rechargeable battery.
1597 )))
1598
1599
1600 = 5. Main Process Unit WSC2-N =
1601
1602
1603 WSC2-N is the main process unit in Dragino Weather Station solution. WSC2-N is an an outdoor NB-IOT RS485 end node. It is powered by external 12v solar power and have a built-in Li-ion backup battery.
1604
1605 WSC2-N reads value from various sensors and upload these sensor data to IoT server via NB-Iot wireless protocol.
1606
1607 WSC2-N Supports BLE configure and wireless OTA update which make user easy to use.
1608
1609
1610 == 5.1 Features ==
1611
1612
1613 * NB-IoT Bands: B1/B2/B3/B4/B5/B8/B12/B13/B17/B18/B19/B20/B25/B28/B66/B70/B85 @H-FDD
1614 * Ultra-low power consumption
1615 * RS485 / Modbus protocol
1616 * AT Commands to change parameters
1617 * Downlink to change configure
1618 * Powered by external 12v battery
1619 * Back up rechargeable 1000mAh battery
1620 * IP Rating: IP65
1621 * Support default sensors or 3rd party RS485 sensors
1622 * Support wireless OTA update firmware
1623 * Wall Attachable.
1624
1625 == 5.2 Power Consumption ==
1626
1627
1628 WSC2-N (without external sensor): Idle: 4mA, Transmit: max 40mA
1629
1630
1631 == 5.3 Storage & Operation Temperature ==
1632
1633
1634 -20°C to +60°C
1635
1636
1637 == 5.4 Sleep mode and working mode ==
1638
1639
1640 (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any NB-IoT activate. This mode is used for storage and shipping to save battery life.
1641
1642 (% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as NB-IoT Sensor to Join NB-IoT 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.
1643
1644
1645 == 5.5 Button & LEDs ==
1646
1647
1648 [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675071855856-879.png]]
1649
1650
1651 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
1652 |=(% 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**
1653 |[[image:1749524248416-217.png]] 1~~3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
1654 If sensor has already attached to NB-IoT network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
1655 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
1656 )))
1657 |[[image:1749524250201-933.png]] >3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
1658 (% 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 attach NB-IoT network.
1659 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device attach NB-IoT network or not.
1660 )))
1661 |[[image:1749524283492-545.png]] x5|(% 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.
1662
1663 (% style="color:red" %)**Note: When the device is executing a program, the buttons may become invalid. It is best to press the buttons after the device has completed the program execution.**
1664
1665
1666 == 5.6 BLE connection ==
1667
1668
1669 WSC2-N supports BLE remote configure.
1670
1671 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:
1672
1673 * Press button to send an uplink
1674 * Press button to active device.
1675 * Device Power on or reset.
1676
1677 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
1678
1679
1680 == 5.7 Pin Mapping ==
1681
1682
1683 [[image:image-20240412165523-2.png]]
1684
1685
1686 == 5.8 Mechanical ==
1687
1688
1689 Refer LSn50v2 enclosure drawing in:  [[https:~~/~~/www.dropbox.com/sh/0ir0l9jjmk6p95e/AADwWXorcKuNpPR5em7VgrEja?dl=0>>https://www.dropbox.com/sh/0ir0l9jjmk6p95e/AADwWXorcKuNpPR5em7VgrEja?dl=0]]
1690
1691
1692 = 6. OTA Firmware update =
1693
1694
1695 (% class="wikigeneratedid" %)
1696 **User can change firmware WSC2-N to:**
1697
1698 * Change Frequency band/ region.
1699 * Update with new features.
1700 * Fix bugs.
1701
1702 **Firmware and changelog can be downloaded from :** **[[Firmware download link>>https://www.dropbox.com/sh/8j3ioji411ni9gu/AADnOw3ErB1REsthKilfaq_Pa?dl=0]]**
1703
1704 **Methods to Update Firmware:**
1705
1706 * (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/]]**
1707
1708 * 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]]**.
1709
1710 = 7. FAQ =
1711
1712 == 7.1 What else do I need to purchase to build Weather Station? ==
1713
1714
1715 Below is the installation photo and structure:
1716
1717 [[image:image-20250115160005-3.png||height="464" width="1003"]]
1718
1719 == 7.2 Where can i find the modbus command for the WSS-09 sensor? ==
1720
1721
1722 See this link for the [[modbus command set>>https://www.dropbox.com/scl/fo/ztlw35a9xbkomu71u31im/AOxW4xT4iXkfpDYN6Q-cUnM/NB-IoT/WSC2-N?dl=0&e=1&preview=Weather_Sensors_Modbus_Command_List.xlsx&rlkey=ojjcsw927eaow01dgooldq3nu&subfolder_nav_tracking=1]].
1723
1724
1725 = 8. Trouble Shooting =
1726
1727 == 8.1 What should I do when the RS485 sensor cannot collect data? ==
1728
1729
1730 ~1. Recheck whether the sensor's power supply voltage is 12V at maximum.
1731
1732 2. Recheck whether the A and B signal lines of the sensor are connected reversely.
1733
1734 3. Check whether the sensor's transmission baud rate is 4800. If not, please change it to 4800 and try reading again.
1735
1736
1737 == 8.2 Why does the weather station make electric current sounds during operation? ==
1738
1739
1740 ~1. Because a certain amount of sound will be produced during long-term power supply operation. This is a normal phenomenon and does not affect use.
1741
1742
1743 == 8.3 How to solve the problem of temperature difference in weather stations? ==
1744
1745
1746 You can use AT+RSWRITE (downlink: E2 xx xx xx xx xx xx xx ) to modify the temperature compensation function in the weather station.
1747
1748 **For example:**
1749
1750 When the temperature of the weather station is 3°C different from the right value, you can use AT+RSWRITE=01 06 00 50 00 1E 09 D3 (downlink: E2 01 06 00 50 00 1E 09 D3) to modify the temperature compensation value of the weather station to +3°C .
1751
1752
1753 == 8.4 Why does the rain gauge have no data? ==
1754
1755
1756 The default mode of the rain gauge is trigger mode.
1757 When it rains, it will trigger an uplink, and the data does not include rainfall data.
1758 If you want to query rainfall data, please change to counting mode
1759
1760 Feature: Users can set the trigger mode to counting mode or interrupt mode as needed.
1761
1762 (% style="color:#037691" %)**AT Command:**
1763
1764 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:433px" %)
1765 |=(% 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**
1766 |(% style="width:157px" %)AT+COUNTMOD=0|(% style="width:188px" %)set to interrupt mode|(% style="width:85px" %)OK
1767 |(% style="width:157px" %)AT+COUNTMOD=1|(% style="width:188px" %)(((
1768 set to counting mode
1769 )))|(% style="width:85px" %)OK
1770
1771 (% style="color:#037691" %)**Downlink Command:**
1772
1773 Format: Command Code (0x10) followed by 1 bytes time value.
1774
1775 If the downlink payload=10 00, Set the trigger mode to interrupt mode, while type code is 10.
1776
1777 * Example 1: Downlink Payload: 10 00  ~/~/  Same as: AT+COUNTMOD=0  set to interrupt mode
1778
1779 = 9. Order Info =
1780
1781
1782 (% style="color:red" %)**Please note that the WSC2-N only includes the wireless transmitter, and the WSS-08, WSS-09, WSS-21, WSS-22, WSS-23, WSS-24, WSS-25, WSS-26, WSS-27 sensor need to be purchased separately. If you need to connect more than 3 sensors, please purchase an additional one to four adapter cable (DR-F6C-4M).**
1783
1784 **Part Number:**
1785
1786 (% style="color:blue" %)**Wireless Transmitter :**(%%)** WSC2-N-XX **
1787
1788 (% style="color:red" %)**XX**(%%):
1789
1790 * (% style="color:#037691" %)**GE**(%%): General version ( Exclude SIM card)
1791
1792 * (% style="color:#037691" %)**1T**(%%): with 1NCE * 10 years 500MB SIM card and Pre-configure to ThingsEye server
1793
1794 (% style="color:green" %)**Sensors Option :**(%%)** WSS-08, WSS-09, WSS-21, WSS-22, WSS-23, WSS-24, WSS-25, WSS-26, WSS-27**
1795
1796
1797 = 10. Support =
1798
1799
1800 * 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.
1801
1802 * 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]].