Wiki source code of WSC3-L -- Weather Station Kit User Manual
Last modified by Mengting Qiu on 2025/04/03 10:43
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | |||
2 | |||
3 | (% style="text-align:center" %) | ||
4 | [[image:image-20240707214707-1.png||height="476" width="570"]] | ||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | **Table of Contents:** | ||
13 | |||
14 | {{toc/}} | ||
15 | |||
16 | |||
17 | = 1. Introduction = | ||
18 | |||
19 | == 1.1 Overview == | ||
20 | |||
21 | |||
22 | The Dragino (% style="color:blue" %)**Weather Station Kit**(%%) is designed for **measuring atmospheric conditions** to provide information for weather forecasts and to study the weather and climate. | ||
23 | |||
24 | The Weather Station Kit includes (% style="color:blue" %)**a LoRaWAN transmitter WSC3-L, an interrupting rain gauge and a 3-in-1 sensor and a light sensor.** | ||
25 | |||
26 | (% style="color:blue" %)**Please note that the WSC3-L only includes the transmitter, the 3-in-1 sensor and the interrupting rain gauge and light sensor need to be purchased separately.** | ||
27 | |||
28 | The 3-in-1 sensor can measure the following values: (% style="color:blue" %)**Temperature, Humidity, Air pressure.** | ||
29 | |||
30 | The LoRaWAN transmitter uses an I2C interface to communicate with the weather station sensor. It also has a pulse count input that can be used to connect a (% style="color:blue" %)**tipping bucket Rain Gauge**(%%). | ||
31 | |||
32 | WSC3-L is full compatible with LoRaWAN Class A protocol, it can work with standard LoRaWAN gateway. | ||
33 | |||
34 | |||
35 | == 1.2 Features & Spec for WSC3-L Transmitter == | ||
36 | |||
37 | |||
38 | * LoRaWAN 1.0.3 Class A | ||
39 | * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865 | ||
40 | * Ultra-low power consumption | ||
41 | * Support interrupt rain gauge | ||
42 | * Support Bluetooth v5.1 and LoRaWAN remote configure | ||
43 | * Support wireless OTA update firmware | ||
44 | * AT Commands to change parameters | ||
45 | * Downlink to change configure | ||
46 | * IP66 Waterproof Enclosure | ||
47 | * 3000mAh Rechargeable Li-ion Battery | ||
48 | |||
49 | == 1.3 Specification for 3-in-1 sensors == | ||
50 | |||
51 | [[image:image-20250317162736-6.jpeg||height="226" width="302"]] | ||
52 | |||
53 | |||
54 | (% style="color:blue" %)**Temperature:** | ||
55 | |||
56 | * Range: -20 to + 80°C | ||
57 | * Accuracy: ±0.2 @ 0-90 °C | ||
58 | * Resolution: 0.1°C | ||
59 | * Long Term Shift: <0.03 °C/yr | ||
60 | |||
61 | (% style="color:blue" %)**Humidity:** | ||
62 | |||
63 | * Range: 0 ~~ 99.9% RH | ||
64 | * Accuracy: ± 2%RH ( 0 ~~ 100%RH) | ||
65 | * Resolution: 0.01% RH | ||
66 | * Long Term Shift: <0.25 %RH/yr | ||
67 | |||
68 | (% style="color:blue" %)**Air Pressure:** | ||
69 | |||
70 | * Accuracy: ±0.15kPa@25°C 101kPa | ||
71 | * Range: 300~~1100hPa | ||
72 | |||
73 | == 1.4 illuminace Sensor == | ||
74 | |||
75 | * Base on BH1750 Illumination Sensor | ||
76 | * Cable Length : 50cm | ||
77 | * Resolution: 1 lx | ||
78 | * Range: 0-65535 lx | ||
79 | * Operating Range: -40 °C ~~ 85 °C | ||
80 | |||
81 | |||
82 | |||
83 | == 1.5 Sleep mode and working mode == | ||
84 | |||
85 | |||
86 | (% 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. | ||
87 | |||
88 | (% 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. | ||
89 | |||
90 | |||
91 | == 1.6 Button & LEDs == | ||
92 | |||
93 | |||
94 | [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675071855856-879.png]] | ||
95 | |||
96 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
97 | |=(% 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** | ||
98 | |(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)((( | ||
99 | If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once. | ||
100 | Meanwhile, BLE module will be active and user can connect via BLE to configure device. | ||
101 | ))) | ||
102 | |(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)((( | ||
103 | (% 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. | ||
104 | (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network. | ||
105 | 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. | ||
106 | ))) | ||
107 | |(% 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. | ||
108 | |||
109 | == 1.7 BLE connection == | ||
110 | |||
111 | |||
112 | WSC3-L supports BLE remote configure. | ||
113 | |||
114 | 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: | ||
115 | |||
116 | * Press button to send an uplink | ||
117 | * Press button to active device. | ||
118 | * Device Power on or reset. | ||
119 | |||
120 | If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode. | ||
121 | |||
122 | |||
123 | == 1.8 Pin Mapping == | ||
124 | |||
125 | |||
126 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LB_Waterproof_RS485UART_to_LoRaWAN_Converter/WebHome/image-20250218100147-1.jpeg?width=818&height=376&rev=1.1||alt="image-20250218100147-1.jpeg"]] | ||
127 | |||
128 | |||
129 | == 1.9 Mechanical(for LS version) == | ||
130 | |||
131 | (% class="wikigeneratedid" id="H" %) | ||
132 | [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-LB/WebHome/image-20231231203439-3.png?width=886&height=385&rev=1.1||alt="image-20231231203439-3.png"]] | ||
133 | |||
134 | |||
135 | |||
136 | = 2. How to use = | ||
137 | |||
138 | == 2.1 How it works? == | ||
139 | |||
140 | |||
141 | ((( | ||
142 | Each WSC3-L is shipped with a worldwide unique set of OTAA keys. To use WSC3-L in a LoRaWAN network, user needs to input the OTAA keys in LoRaWAN network server. After finish installation as above. Create WSC3-L in your LoRaWAN server and Power on WSC3-L , it can join the LoRaWAN network and start to transmit sensor data. The default period for each uplink is 20 minutes. | ||
143 | ))) | ||
144 | |||
145 | |||
146 | == 2.2 Example to use for LoRaWAN network(OTAA) == | ||
147 | |||
148 | |||
149 | 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. | ||
150 | |||
151 | Assume the DLOS8 is already set to connect to [[TTN V3 network >>url:https://eu1.cloud.thethings.network/]]. We need to add the WSC3-L device in TTN V3: | ||
152 | |||
153 | |||
154 | (% style="color:blue" %)**Step 1**(%%): Create a device in TTN V3 with the OTAA keys from WSC3-L. | ||
155 | |||
156 | Each WSC3-L is shipped with a sticker with the default device EUI as below: | ||
157 | |||
158 | [[image:image-20230426084533-1.png||height="231" width="497"]] | ||
159 | |||
160 | |||
161 | User can enter these keys in the LoRaWAN Server portal. Below is TTN V3 screen shot: | ||
162 | |||
163 | (% style="color:blue" %)**Create the application.** | ||
164 | |||
165 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111048-1.png?width=1001&height=183&rev=1.1||alt="image-20240907111048-1.png"]] | ||
166 | |||
167 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111305-2.png?width=1000&height=572&rev=1.1||alt="image-20240907111305-2.png"]] | ||
168 | |||
169 | |||
170 | (% style="color:blue" %)**Add devices to the created Application.** | ||
171 | |||
172 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111659-3.png?width=977&height=185&rev=1.1||alt="image-20240907111659-3.png"]] | ||
173 | |||
174 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111820-5.png?width=975&height=377&rev=1.1||alt="image-20240907111820-5.png"]] | ||
175 | |||
176 | (% style="color:blue" %)**Enter end device specifics manually.** | ||
177 | |||
178 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112136-6.png?width=697&height=687&rev=1.1||alt="image-20240907112136-6.png"]] | ||
179 | |||
180 | |||
181 | (% style="color:blue" %)**Add DevEUI and AppKey. Customize a platform ID for the device.** | ||
182 | |||
183 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112427-7.png?rev=1.1||alt="image-20240907112427-7.png"]] | ||
184 | |||
185 | [[image:image-20250317151719-1.png||height="460" width="1332"]] | ||
186 | |||
187 | (% style="color:blue" %)**Step 2: **(%%)Add decoder | ||
188 | |||
189 | In TTN, user can add a custom payload so it shows friendly reading. | ||
190 | |||
191 | Click this link to get the decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/]] | ||
192 | |||
193 | Below is TTN screen shot: | ||
194 | |||
195 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/WSC3-L--Weather_Station_Kit_User_Manual/WebHome/image-20250317152542-5.png?width=1136&height=457&rev=1.1||alt="image-20250317152542-5.png"]] | ||
196 | |||
197 | == [[image:image-20250317171226-8.png]] == | ||
198 | |||
199 | (% style="color:blue" %)**Step 3:**(%%) Activate on WSC3-L | ||
200 | |||
201 | Press the button for 5 seconds to activate the WSC3-L. | ||
202 | |||
203 | (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. | ||
204 | |||
205 | (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network. | ||
206 | |||
207 | After join success, it will start to upload messages to TTN and you can see the messages in the panel. | ||
208 | |||
209 | |||
210 | == 2.3 Uplink Payload == | ||
211 | |||
212 | |||
213 | Uplink payloads include two types: Valid Sensor Value and other status / control command. | ||
214 | |||
215 | * Valid Sensor Value: Use FPORT=2 | ||
216 | * Other control command: Use FPORT other than 2. | ||
217 | |||
218 | === 2.3.1 Uplink FPORT~=5, Device Status === | ||
219 | |||
220 | |||
221 | Users can use the downlink command(**0x26 01**) to ask WSC3-L to send device configure detail, include device configure status. WSC3-L will uplink a payload via FPort=5 to server. | ||
222 | |||
223 | The Payload format is as below. | ||
224 | |||
225 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %) | ||
226 | |=(% colspan="6" style="width: 70px;background-color:#4F81BD;color:white" %)Device Status(FPORT=5) | ||
227 | |(% style="width:99px" %)**Size(bytes)**|(% style="width:112px" %)**1**|(% style="width:135px" %)**2**|(% style="width:126px" %)**1**|(% style="width:85px" %)**1**|(% style="width:46px" %)**2** | ||
228 | |(% 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:"]] | ||
229 | |||
230 | [[image:image-20250317151856-2.png]] | ||
231 | |||
232 | |||
233 | (% class="wikigeneratedid" id="HSensorModel:" %) | ||
234 | (% style="color:#037691" %)**Sensor Model:**(%%)For WSC3-L, this value is 0x4A. | ||
235 | |||
236 | (% class="wikigeneratedid" id="HFirmwareVersion:" %) | ||
237 | (% style="color:#037691" %)**Firmware Version:**(%%)0x0100, Means: v1.0.0 version. | ||
238 | |||
239 | (% class="wikigeneratedid" id="HFrequencyBand:" %) | ||
240 | (% style="color:#037691" %)**Frequency Band:** | ||
241 | |||
242 | 0x01: EU868 | ||
243 | |||
244 | 0x02: US915 | ||
245 | |||
246 | 0x03: IN865 | ||
247 | |||
248 | 0x04: AU915 | ||
249 | |||
250 | 0x05: KZ865 | ||
251 | |||
252 | 0x06: RU864 | ||
253 | |||
254 | 0x07: AS923 | ||
255 | |||
256 | 0x08: AS923-1 | ||
257 | |||
258 | 0x09: AS923-2 | ||
259 | |||
260 | 0x0a: AS923-3 | ||
261 | |||
262 | (% class="wikigeneratedid" id="HSub-Band:" %) | ||
263 | (% style="color:#037691" %)**Sub-Band:** | ||
264 | |||
265 | AU915 and US915:value 0x00 ~~ 0x08 | ||
266 | |||
267 | CN470: value 0x0B ~~ 0x0C | ||
268 | |||
269 | Other Bands: Always 0x00 | ||
270 | |||
271 | (% class="wikigeneratedid" id="HBAT:" %) | ||
272 | (% style="color:#037691" %)**Battery Info:** | ||
273 | |||
274 | ((( | ||
275 | shows the battery voltage for WSC3-L MCU. | ||
276 | ))) | ||
277 | |||
278 | ((( | ||
279 | Ex1: 0x0C66/1000 = 3174/1000=3.174V | ||
280 | ))) | ||
281 | |||
282 | |||
283 | Users can also use the downlink command (**0x23 01**) to change the uplink port of WSC3-L: | ||
284 | |||
285 | (% style="color:#037691" %)**Example**(%%) (% style="color:#037691" %)**Downlink:0x23 01(Change to port 1)** | ||
286 | |||
287 | [[image:image-20250317152430-4.png||height="358" width="1430"]] | ||
288 | |||
289 | |||
290 | === 2.3.2 Uplink FPORT~=2, Real time sensor value === | ||
291 | |||
292 | |||
293 | ((( | ||
294 | WSC3-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"]]. | ||
295 | ))) | ||
296 | |||
297 | ((( | ||
298 | Uplink uses FPORT=2 and every 20 minutes send one uplink by default. | ||
299 | ))) | ||
300 | |||
301 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
302 | |=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( | ||
303 | **Size(bytes)** | ||
304 | )))|=(% style="width: 40px;background-color:#4F81BD;color:white" %)2|=(% style="width: 78px; background-color: rgb(79, 129, 189); color: white;" %)1|=(% style="width: 63px; background-color: rgb(79, 129, 189); color: white;" %)3|=(% style="width: 121px; background-color: rgb(79, 129, 189); color: white;" %)**2**|=(% style="width: 80px; background-color: #4F81BD;color:white" %)2|=(% style="width: 80px; background-color: #4F81BD;color:white" %)2|=(% style="width: 80px; background-color: #4F81BD;color:white" %)2|=(% style="width: 80px; background-color: #4F81BD;color:white" %)2|=(% style="width: 80px; background-color: #4F81BD;color:white" %)1 | ||
305 | |(% style="width:99px" %)Value|(% style="width:69px" %)((( | ||
306 | Battery | ||
307 | )))|(% style="width:78px" %)((( | ||
308 | Payload | ||
309 | |||
310 | ((( | ||
311 | _ver | ||
312 | ))) | ||
313 | )))|(% style="width:63px" %)((( | ||
314 | Rain | ||
315 | )))|(% style="width:121px" %)((( | ||
316 | temp_ | ||
317 | |||
318 | DS18B20 | ||
319 | )))|(% style="width:97px" %)Temperature|(% style="width:97px" %)((( | ||
320 | Humidity | ||
321 | )))|(% style="width:97px" %)Pressure|(% style="width:97px" %)illumination|(% style="width:97px" %)i_flag | ||
322 | |||
323 | [[image:image-20250317173423-9.png]] | ||
324 | |||
325 | ((( | ||
326 | |||
327 | ))) | ||
328 | |||
329 | ==== (% style="color:#4472c4" %)**Battery**(%%) ==== | ||
330 | |||
331 | Sensor Battery Level. | ||
332 | |||
333 | Ex1: 0x0C72 = 3186mV | ||
334 | |||
335 | Ex2: 0x0B49 = 2889mV | ||
336 | |||
337 | |||
338 | ==== (% style="color:#4472c4" %)**Temperature**(%%) ==== | ||
339 | |||
340 | **Example**: | ||
341 | |||
342 | If payload is: 0105H: (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree | ||
343 | |||
344 | If payload is: FF3FH : (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees. | ||
345 | |||
346 | (FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative) | ||
347 | |||
348 | |||
349 | ==== (% style="color:#4472c4" %)**Humidity**(%%) ==== | ||
350 | |||
351 | Example: | ||
352 | |||
353 | 0x(0199) = 409 Value: 409 / 10=40.9, So 40.9% | ||
354 | |||
355 | |||
356 | ==== (% style="color:#4472c4" %)**Pressure**(%%) ==== | ||
357 | |||
358 | Example: | ||
359 | |||
360 | 0x(27ED) = 10221 Value: 10221/100 = 102.21Pa | ||
361 | |||
362 | |||
363 | ==== (% style="color:#4472c4" %)**illumination**(%%) ==== | ||
364 | |||
365 | Example: | ||
366 | |||
367 | 0x(0097) = 151 Lux | ||
368 | |||
369 | |||
370 | == 2.4 Unix TimeStamp == | ||
371 | |||
372 | |||
373 | WSC3-L uses Unix TimeStamp format based on | ||
374 | |||
375 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/1655694312268-590.png?rev=1.1||alt="1655694312268-590.png"]] | ||
376 | |||
377 | Users can get this time from the link: [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] | ||
378 | |||
379 | Below is the converter example | ||
380 | |||
381 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/1655694332878-202.png?rev=1.1||alt="1655694332878-202.png" height="323" width="778"]] | ||
382 | |||
383 | So, we can use AT+TIMESTAMP=1742278702 or downlink 3067D9102E to set current time : March 18, 2025 06:18:22 | ||
384 | |||
385 | |||
386 | == 2.5 Set Device Time == | ||
387 | |||
388 | |||
389 | ((( | ||
390 | ((( | ||
391 | There are two ways to set the device's time: | ||
392 | ))) | ||
393 | ))) | ||
394 | |||
395 | ((( | ||
396 | ((( | ||
397 | (% style="color:#4f81bd" %)**1. Through LoRaWAN MAC Command (Default settings)** | ||
398 | ))) | ||
399 | ))) | ||
400 | |||
401 | ((( | ||
402 | ((( | ||
403 | Users need to set SYNCMOD=1 to enable sync time via the MAC command. | ||
404 | ))) | ||
405 | ))) | ||
406 | |||
407 | ((( | ||
408 | Once WSC3-L Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and server will reply with (DeviceTimeAns) to send the current time to WSC3-L. If WSC3-L fails to get the time from server, WSC3-L will use the internal time and wait for next time request (AT+SYNCTDC to set time request period, default is 10 days). | ||
409 | |||
410 | |||
411 | ))) | ||
412 | |||
413 | ((( | ||
414 | ((( | ||
415 | (% style="color:red" %)**Note**(%%): (% style="color:#4f81bd" %)LoRaWAN Server needs to support LoRaWAN v1.0.3(MAC v1.0.3) (%%)or higher to support this MAC command feature, Chirpstack,TTN v3 and loriot support but TTN v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN v2 if SYNCMOD=1. | ||
416 | |||
417 | |||
418 | ))) | ||
419 | |||
420 | ((( | ||
421 | (% style="color:#4f81bd" %)**2. Manually Set Time** | ||
422 | ))) | ||
423 | |||
424 | ((( | ||
425 | Users need to set SYNCMOD=0 to manual time, otherwise, the user set time will be overwritten by the time set by the server. | ||
426 | ))) | ||
427 | ))) | ||
428 | |||
429 | |||
430 | == 2.6 Frequency Plans == | ||
431 | |||
432 | |||
433 | The WSC3-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. | ||
434 | |||
435 | [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]] | ||
436 | |||
437 | |||
438 | = 3. Configure WSC3-L = | ||
439 | |||
440 | == 3.1 Configure Methods == | ||
441 | |||
442 | |||
443 | WSC3-L supports below configure method: | ||
444 | |||
445 | * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]]. | ||
446 | |||
447 | * 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]]. | ||
448 | |||
449 | * LoRaWAN Downlink. Instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section. | ||
450 | |||
451 | == 3.2 Serial Access Password == | ||
452 | |||
453 | After the Bluetooth or UART connection is successful, use the Serial Access Password to enter the AT command window. | ||
454 | |||
455 | 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. | ||
456 | |||
457 | [[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"]] | ||
458 | |||
459 | If you need to change the password, use **AT+PWORD=**xxxxxx (6 characters) | ||
460 | |||
461 | [[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-20240826162734-1.png?rev=1.1||alt="image-20240826162734-1.png"]] | ||
462 | |||
463 | (% style="color:red" %)**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.** | ||
464 | |||
465 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/S31-CBS31B-CB--NB-IoTLTE-M_Temperature%26Humidity_Sensor_User_Manual/WebHome/image-20240826183302-3.png?rev=1.1||alt="image-20240826183302-3.png"]] | ||
466 | |||
467 | |||
468 | == 3.3 General Commands == | ||
469 | |||
470 | |||
471 | These commands are to configure: | ||
472 | |||
473 | * General system settings like: uplink interval. | ||
474 | * LoRaWAN protocol & radio related command. | ||
475 | |||
476 | They are same for all Dragino Devices which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki: | ||
477 | |||
478 | [[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/]] | ||
479 | |||
480 | |||
481 | == 3.4 Commands special design for WSC3-L == | ||
482 | |||
483 | |||
484 | These commands only valid for WSC3-L, as below: | ||
485 | |||
486 | |||
487 | === 3.4.1 Set Transmit Interval Time === | ||
488 | |||
489 | |||
490 | Feature: Change LoRaWAN End Node Transmit Interval. | ||
491 | |||
492 | (% style="color:#037691" %)**AT Command: AT+TDC** | ||
493 | |||
494 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:501px" %) | ||
495 | |(% 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** | ||
496 | |(% style="width:155px" %)AT+TDC=?|(% style="width:162px" %)Show current transmit Interval|(% style="width:177px" %)((( | ||
497 | 30000 | ||
498 | OK | ||
499 | the interval is 30000ms = 30s | ||
500 | ))) | ||
501 | |(% style="width:155px" %)AT+TDC=60000|(% style="width:162px" %)Set Transmit Interval|(% style="width:177px" %)((( | ||
502 | OK | ||
503 | Set transmit interval to 60000ms = 60 seconds | ||
504 | ))) | ||
505 | |||
506 | (% style="color:#037691" %)**Downlink Command: 0x01** | ||
507 | |||
508 | Format: Command Code (0x01) followed by 3 bytes time value. | ||
509 | |||
510 | If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. | ||
511 | |||
512 | * Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds | ||
513 | * Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds | ||
514 | |||
515 | === 3.4.2 Set Interrupt Mode === | ||
516 | |||
517 | |||
518 | Feature, Set Interrupt mode for GPIO_EXIT of pin. | ||
519 | |||
520 | When AT+INTMOD=0 is set, GPIO_EXIT is used as a digital input port. | ||
521 | |||
522 | (% style="color:blue" %)**AT Command: AT+INTMOD** | ||
523 | |||
524 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
525 | |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 197px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Response** | ||
526 | |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)((( | ||
527 | 0 | ||
528 | OK | ||
529 | the mode is 0 =Disable Interrupt | ||
530 | ))) | ||
531 | |(% style="width:154px" %)AT+INTMOD=2|(% style="width:196px" %)((( | ||
532 | Set Transmit Interval | ||
533 | 0. (Disable Interrupt), | ||
534 | ~1. (Trigger by rising and falling edge) | ||
535 | 2. (Trigger by falling edge) | ||
536 | 3. (Trigger by rising edge) | ||
537 | )))|(% style="width:157px" %)OK | ||
538 | |||
539 | (% style="color:blue" %)**Downlink Command: 0x06** | ||
540 | |||
541 | Format: Command Code (0x06) followed by 3 bytes. | ||
542 | |||
543 | This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06. | ||
544 | |||
545 | * Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode | ||
546 | * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger | ||
547 | |||
548 | === 3.4.3 Set or get the total count value === | ||
549 | |||
550 | |||
551 | Feature: The user can set the counting to start from the set value according to the requirements. (only available in counting mode). | ||
552 | |||
553 | (% style="color:#037691" %)**AT Command:** | ||
554 | |||
555 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:433px" %) | ||
556 | |=(% 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** | ||
557 | |(% style="width:157px" %)AT+SETCNT=1000|(% style="width:188px" %)Set the total count to start from 1000|(% style="width:85px" %)OK | ||
558 | |||
559 | (% style="color:#037691" %)**Downlink Command:** | ||
560 | |||
561 | Format: Command Code (0x09) followed by 5 bytes time value. | ||
562 | |||
563 | 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. | ||
564 | |||
565 | * Example 1: Downlink Payload: 09000003E8 ~/~/ Set the value to start counting from 1000 = 1000 (times) | ||
566 | |||
567 | === 3.4.4 Set interrupt or counting mode === | ||
568 | |||
569 | |||
570 | Feature: Users can set the trigger mode to counting mode or interrupt mode as needed. | ||
571 | |||
572 | (% style="color:#037691" %)**AT Command:** | ||
573 | |||
574 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:433px" %) | ||
575 | |=(% 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** | ||
576 | |(% style="width:157px" %)AT+COUNTMOD=0|(% style="width:188px" %)set to interrupt mode|(% style="width:85px" %)OK | ||
577 | |(% style="width:157px" %)AT+COUNTMOD=1|(% style="width:188px" %)((( | ||
578 | set to counting mode | ||
579 | )))|(% style="width:85px" %)OK | ||
580 | |||
581 | (% style="color:#037691" %)**Downlink Command:** | ||
582 | |||
583 | Format: Command Code (0x10) followed by 1 bytes time value. | ||
584 | |||
585 | If the downlink payload=10 00, Set the trigger mode to interrupt mode, while type code is 10. | ||
586 | |||
587 | * Example 1: Downlink Payload: 10 00 ~/~/ Same as: AT+COUNTMOD=0 set to interrupt mode | ||
588 | |||
589 | === 3.4.5 Set time synchronization method === | ||
590 | |||
591 | |||
592 | Feature: This command is used to enable automatic time calibration by time zone(Get or Set time synchronization method). | ||
593 | |||
594 | (% style="color:#037691" %)**AT Command: AT+SYNCMOD** | ||
595 | |||
596 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
597 | |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 156px; background-color: rgb(79, 129, 189); color: white;" %)**Function**|=(% style="width: 188px; background-color: rgb(79, 129, 189); color: white;" %)**Response/**Parameter | ||
598 | |(% style="width:154px" %)((( | ||
599 | AT+SYNCMOD=? | ||
600 | )))|(% style="width:156px" %)Get the current time synchronization method|(% style="width:188px" %)((( | ||
601 | 1,0 (Default) | ||
602 | |||
603 | OK | ||
604 | ))) | ||
605 | |(% colspan="1" rowspan="2" style="width:154px" %)AT+SYNCMOD=aa,bb|(% style="width:156px" %)((( | ||
606 | **aa:** Enable/disable automatic time zone calibration | ||
607 | )))|(% style="width:188px" %)((( | ||
608 | **0:** Disable automatic time zone calibration. | ||
609 | |||
610 | **1:** Enable automatic time zone calibration | ||
611 | ))) | ||
612 | |(% style="width:156px" %)**bb: **Set the time zone: -12 ~~ 12|(% style="width:188px" %)((( | ||
613 | Negative number: West Time Zone | ||
614 | |||
615 | Positive number: Eastern Time Zone | ||
616 | ))) | ||
617 | |||
618 | (% style="color:#037691" %)**Downlink Command: 0x28** | ||
619 | |||
620 | Format: Command Code (0x28) followed by 2 bytes. | ||
621 | |||
622 | * Example 1: Downlink Payload: 28 00 00 ~/~/ Turn off the time zone calibration time. | ||
623 | * Example 2: Downlink Payload: 28 01 FA ~/~/ Turn on time zone calibration time, UTC-6 | ||
624 | * Example 3: Downlink Payload: 28 01 06 ~/~/ Turn on time zone calibration time, UTC+6 | ||
625 | |||
626 | (% style="color:red" %)**Note: UTC-6: 256+(-6)=250(D)=0xFA(H)** | ||
627 | |||
628 | |||
629 | === 3.4.6 Set time synchronization interval === | ||
630 | |||
631 | |||
632 | Feature: Get or set time synchronization interval in day or hour. | ||
633 | |||
634 | (% style="color:#037691" %)**AT Command: AT+SYNCTDC** | ||
635 | |||
636 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %) | ||
637 | |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 188px; background-color: rgb(79, 129, 189); color: white;" %)**Function**|=(% style="width: 164px; background-color: rgb(79, 129, 189); color: white;" %)**Response/**Parameter | ||
638 | |(% style="width:154px" %)((( | ||
639 | AT+SYNCTDC=? | ||
640 | )))|(% style="width:188px" %)Gets the current time synchronization interval|(% style="width:164px" %)((( | ||
641 | 12,1 (Default) | ||
642 | |||
643 | OK | ||
644 | ))) | ||
645 | |(% colspan="1" rowspan="2" style="width:154px" %)((( | ||
646 | AT+SYNCTDC=aa,bb | ||
647 | )))|(% style="width:188px" %)((( | ||
648 | **aa:** Set the interval for automatic synchronization | ||
649 | )))|(% style="width:164px" %)Range: 0~~255 | ||
650 | |(% style="width:188px" %)**bb:** Set the unit of the time synchronization interval|(% style="width:164px" %)((( | ||
651 | **0:** Unit: day | ||
652 | |||
653 | **1:** Unit: hour | ||
654 | ))) | ||
655 | |||
656 | (% style="color:#037691" %)**Downlink Command: 0x29** | ||
657 | |||
658 | Format: Command Code (0x29) followed by 3 bytes. | ||
659 | |||
660 | * Example 1: Downlink Payload: 29 0C 00 ~/~/ Calibrate once every 12 days | ||
661 | * Example 2: Downlink Payload: 29 0C 01 ~/~/ Calibrate once every 12 hours | ||
662 | |||
663 | = 4. Power consumption & Battery = | ||
664 | |||
665 | |||
666 | The WSC3-L uses a 3000mAh lithium battery and a solar panel. For battery information and details on how to replace the battery, see the following links: | ||
667 | |||
668 | [[AI Calculation Battery Life Instructions>>https://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/#H4.3Method3:UseAItocalculate.]] | ||
669 | |||
670 | |||
671 | Here are the currents and durations of the WSC3-L device for different transmission rates: | ||
672 | |||
673 | [[image:image-20250321175033-3.png]] | ||
674 | |||
675 | |||
676 | = 6. OTA Firmware update = | ||
677 | |||
678 | |||
679 | (% class="wikigeneratedid" %) | ||
680 | **User can change firmware WSC3-L to:** | ||
681 | |||
682 | * Change Frequency band/ region. | ||
683 | * Update with new features. | ||
684 | * Fix bugs. | ||
685 | |||
686 | **Firmware and changelog can be downloaded from :** **[[Firmware download link>>https://www.dropbox.com/sh/8j3ioji411ni9gu/AADnOw3ErB1REsthKilfaq_Pa?dl=0]]** | ||
687 | |||
688 | **Methods to Update Firmware:** | ||
689 | |||
690 | * (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/]]** | ||
691 | |||
692 | * 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]]**. | ||
693 | |||
694 | = 7. FAQ = | ||
695 | |||
696 | |||
697 | = 8. Trouble Shooting = | ||
698 | |||
699 | |||
700 | == 8.1 Why does the rain gauge have no data? == | ||
701 | |||
702 | The default mode of the rain gauge is trigger mode. | ||
703 | When it rains, it will trigger an uplink, and the data does not include rainfall data. | ||
704 | If you want to query rainfall data, please change to counting mode | ||
705 | |||
706 | Feature: Users can set the trigger mode to counting mode or interrupt mode as needed. | ||
707 | |||
708 | (% style="color:#037691" %)**AT Command:** | ||
709 | |||
710 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:433px" %) | ||
711 | |=(% 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** | ||
712 | |(% style="width:157px" %)AT+COUNTMOD=0|(% style="width:188px" %)set to interrupt mode|(% style="width:85px" %)OK | ||
713 | |(% style="width:157px" %)AT+COUNTMOD=1|(% style="width:188px" %)((( | ||
714 | set to counting mode | ||
715 | )))|(% style="width:85px" %)OK | ||
716 | |||
717 | (% style="color:#037691" %)**Downlink Command:** | ||
718 | |||
719 | Format: Command Code (0x10) followed by 1 bytes time value. | ||
720 | |||
721 | If the downlink payload=10 00, Set the trigger mode to interrupt mode, while type code is 10. | ||
722 | |||
723 | * Example 1: Downlink Payload: 10 00 ~/~/ Same as: AT+COUNTMOD=0 set to interrupt mode | ||
724 | |||
725 | = 9. Order Info = | ||
726 | |||
727 | |||
728 | Part Number: (% style="color:blue" %)**WSC3-L-XX** | ||
729 | |||
730 | (% style="color:blue" %)**XX**(%%): The default frequency band | ||
731 | |||
732 | * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band | ||
733 | * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band | ||
734 | * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band | ||
735 | * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band | ||
736 | * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band | ||
737 | * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band | ||
738 | * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band | ||
739 | * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band | ||
740 | |||
741 | = 10. Packing Info = | ||
742 | |||
743 | |||
744 | (% style="color:#037691" %)**Packing Includes:** | ||
745 | |||
746 | |||
747 | * WSC3-L LoRaWAN Weather Station Sensor | ||
748 | |||
749 | (% style="color:#037691" %)**Dimension and weight:** | ||
750 | |||
751 | |||
752 | * Device Size: cm | ||
753 | |||
754 | * Device Weight: g | ||
755 | |||
756 | * Package Size / pcs : cm | ||
757 | |||
758 | * Weight / pcs : g | ||
759 | |||
760 | = 11. Support = | ||
761 | |||
762 | * 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. | ||
763 | |||
764 | * 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]]. |