Last modified by Mengting Qiu on 2023/12/14 11:15

From version 67.2
edited by Xiaoling
on 2023/05/30 14:01
Change comment: There is no comment for this version
To version 62.4
edited by Xiaoling
on 2023/05/30 09:19
Change comment: There is no comment for this version

Summary

Details

Page properties
Title
... ... @@ -1,1 +1,1 @@
1 -SW3L-LB -- LoRaWAN Flow Sensor User Manual
1 +CPL03-LB -- LoRaWAN Pulse/Contact Sensor User Manual
Content
... ... @@ -1,10 +1,7 @@
1 1  (% style="text-align:center" %)
2 -[[image:image-20230530140053-1.jpeg||height="645" width="645"]]
2 +[[image:image-20230530084608-2.jpeg||height="707" width="707"]]
3 3  
4 4  
5 -
6 -
7 -
8 8  **Table of Contents:**
9 9  
10 10  {{toc/}}
... ... @@ -36,9 +36,6 @@
36 36  Each CPL03-LB is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on.
37 37  
38 38  
39 -[[image:image-20230530135919-1.png||height="404" width="806"]]
40 -
41 -
42 42  == 1.2 ​Features ==
43 43  
44 44  
... ... @@ -84,6 +84,8 @@
84 84  * Sleep Mode: 5uA @ 3.3v
85 85  * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm
86 86  
81 +
82 +
87 87  == 1.4 Applications ==
88 88  
89 89  
... ... @@ -91,6 +91,8 @@
91 91  * Pulse meter application
92 92  * Dry Contact Detection
93 93  
90 +
91 +
94 94  == 1.5 Sleep mode and working mode ==
95 95  
96 96  
... ... @@ -99,7 +99,7 @@
99 99  (% 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.
100 100  
101 101  
102 -== 1.6 Button & LEDs ==
100 +== 1.5 Button & LEDs ==
103 103  
104 104  
105 105  [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675071855856-879.png]]
... ... @@ -118,10 +118,10 @@
118 118  )))
119 119  |(% 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.
120 120  
121 -== 1.7 BLE connection ==
119 +== 1.6 BLE connection ==
122 122  
123 123  
124 -CPL03-LB support BLE remote configure.
122 +S31x-LB support BLE remote configure.
125 125  
126 126  
127 127  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:
... ... @@ -133,12 +133,12 @@
133 133  If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
134 134  
135 135  
136 -== 1.8 Pin Definitions ==
134 +== 1.7 Pin Definitions ==
137 137  
138 138  [[image:image-20230523174230-1.png]]
139 139  
140 140  
141 -== 1.9 Mechanical ==
139 +== 1.8 Mechanical ==
142 142  
143 143  
144 144  [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143884058-338.png]]
... ... @@ -150,14 +150,13 @@
150 150  [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675143909447-639.png]]
151 151  
152 152  
153 -= 2. Configure CPL03-LB to connect to LoRaWAN network =
151 += 2. Configure S31x-LB to connect to LoRaWAN network =
154 154  
155 155  == 2.1 How it works ==
156 156  
157 157  
158 -The CPL03-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the CPL03-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
156 +The S31x-LB is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and press the button to activate the S31x-LB. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes.
159 159  
160 -(% style="display:none" %) (%%)
161 161  
162 162  == 2.2 ​Quick guide to connect to LoRaWAN server (OTAA) ==
163 163  
... ... @@ -164,15 +164,13 @@
164 164  
165 165  Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example.
166 166  
167 -The LPS8v2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.
164 +The LPS8V2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server.
168 168  
169 -[[image:image-20230530135929-2.png||height="404" width="806"]](% style="display:none" %)
170 170  
167 +(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from S31x-LB.
171 171  
172 -(% style="color:blue" %)**Step 1:**(%%) Create a device in TTN with the OTAA keys from CPL03-LB.
169 +Each S31x-LB is shipped with a sticker with the default device EUI as below:
173 173  
174 -Each CPL03-LB is shipped with a sticker with the default device EUI as below:
175 -
176 176  [[image:image-20230426084152-1.png||alt="图片-20230426084152-1.png" height="233" width="502"]]
177 177  
178 178  
... ... @@ -200,10 +200,10 @@
200 200  [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LSN50v2-S31-S31B%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20User%20Manual/WebHome/image-20220611161308-6.png?width=744&height=485&rev=1.1||alt="图片-20220611161308-6.png"]]
201 201  
202 202  
203 -(% style="color:blue" %)**Step 2:**(%%) Activate on CPL03-LB
198 +(% style="color:blue" %)**Step 2:**(%%) Activate on S31x-LB
204 204  
205 205  
206 -Press the button for 5 seconds to activate the CPL03-LB.
201 +Press the button for 5 seconds to activate the S31x-LB.
207 207  
208 208  (% 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. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
209 209  
... ... @@ -215,7 +215,7 @@
215 215  === 2.3.1 Device Status, FPORT~=5 ===
216 216  
217 217  
218 -Users can use the downlink command(**0x26 01**) to ask CPL03-LB to send device configure detail, include device configure status. CPL03-LB will uplink a payload via FPort=5 to server.
213 +Users can use the downlink command(**0x26 01**) to ask S31x-LB to send device configure detail, include device configure status. S31x-LB will uplink a payload via FPort=5 to server.
219 219  
220 220  The Payload format is as below.
221 221  
... ... @@ -227,10 +227,10 @@
227 227  
228 228  Example parse in TTNv3
229 229  
230 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652859749264-179.png?width=723&height=275&rev=1.1||alt="1652859749264-179.png"]]
225 +[[image:image-20230524144422-1.png||height="174" width="1080"]]
231 231  
232 232  
233 -(% style="color:#037691" %)**Sensor Model**(%%): For CPL03-LB, this value is 0x0A
228 +(% style="color:#037691" %)**Sensor Model**(%%): For S31x-LB, this value is 0x0A
234 234  
235 235  (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version
236 236  
... ... @@ -283,479 +283,260 @@
283 283  Ex2: 0x0B49 = 2889mV
284 284  
285 285  
286 -=== 2.3.2 Sensor Configuration, FPORT~=4 ===
281 +=== 2.3.2  Sensor Data. FPORT~=2 ===
287 287  
288 288  
289 -CPL03-LB will only send this command after getting the downlink command (0x26 02) from the server.
284 +Sensor Data is uplink via FPORT=2
290 290  
291 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
292 -|(% colspan="6" style="background-color:#d9e2f3; color:#0070c0; width:504px" %)**Sensor Configuration FPORT=4**
293 -|**Size(bytes)**|(% style="width:75px" %)**3**|(% style="width:77px" %)**1**|(% style="width:96px" %)**1**|(% style="width:158px" %)**2**|(% style="width:158px" %)**1**
294 -|**Value**|(% style="width:75px" %)TDC (unit:sec)|(% style="width:77px" %)Disalarm|(% style="width:96px" %)Keep status|(% style="width:158px" %)Keep time (unit: sec)|(% style="width:158px" %)Trigger mode
295 -
296 -* (((
297 -(% style="color:#037691" %)** TDC: (default: 0x001C20)**
286 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
287 +|=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)(((
288 +**Size(bytes)**
289 +)))|=(% style="width: 40px;background-color:#D9E2F3;color:#0070C0" %)2|=(% style="width: 90px;background-color:#D9E2F3;color:#0070C0" %)4|=(% style="width: 150px; background-color: #D9E2F3;color:#0070C0" %)1|=(% style="width: 80px; background-color: #D9E2F3;color:#0070C0" %)**2**|=(% style="width: 80px; background-color: #D9E2F3;color:#0070C0" %)2
290 +|(% style="width:99px" %)Value|(% style="width:69px" %)(((
291 +Battery
292 +)))|(% style="width:130px" %)(((
293 +Unix TimeStamp
294 +)))|(% style="width:194px" %)(((
295 +Alarm Flag & MOD& Level of PA8
296 +)))|(% style="width:106px" %)(((
297 +Temperature
298 +)))|(% style="width:97px" %)(((
299 +Humidity
298 298  )))
299 299  
300 -(((
301 -Uplink interval for the total pulse count, default value is 0x001C20 which is 7200 seconds = 2 hours.
302 +[[image:image-20230524144456-2.png||height="180" width="1142"]]
302 302  
303 -
304 -)))
305 305  
306 -* (((
307 -(% style="color:#037691" %)** Disalarm: (default: 0)**
308 -)))
305 +==== (% style="color:#4472c4" %)**Battery**(%%) ====
309 309  
310 -(((
311 -(% style="color:blue" %)** If Disalarm = 1**(%%), CPL03-LB will only send uplink at every TDC periodically. This is normally use for pulse meter application, in this application, there are many disconnect/connect event, and platform only care about the total number of pulse.
312 -)))
307 +Sensor Battery Level.
313 313  
314 -(((
315 -(% style="color:blue" %)** If Disalarm = 0**(%%), CPL03-LB will send uplink at every TDC periodically.
309 +Ex1: 0x0B45 = 2885mV
316 316  
317 -
318 -)))
311 +Ex2: 0x0B49 = 2889mV
319 319  
320 -* (((
321 -(% style="color:#037691" %)** Keep Status & Keep Time**
322 -)))
323 323  
324 -(((
325 -Shows the configure value of [[Alarm Base on Timeout Feature>>||anchor="H3.3.5AlarmBaseonTimeout"]]
326 326  
327 -
328 -)))
315 +==== (% style="color:#4472c4" %)**Temperature**(%%) ====
329 329  
330 -* (((
331 -(% style="color:#037691" %)** Trigger mode (default: 0)**
332 -)))
317 +**Example**:
333 333  
334 -(((
335 -(% style="color:blue" %)** If Trigger mode = 0**(%%), count close to open event.
336 -)))
319 +If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
337 337  
338 -(((
339 -(% style="color:blue" %)** If Trigger mode = 1**(%%), count open to close event.
340 -)))
321 +If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
341 341  
342 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652860064987-743.png?width=730&height=152&rev=1.1||alt="1652860064987-743.png"]]
323 +(FF3F & 8000:Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
343 343  
344 344  
345 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652860079526-831.png?width=729&height=209&rev=1.1||alt="1652860079526-831.png"]]
326 +==== (% style="color:#4472c4" %)**Humidity**(%%) ====
346 346  
347 347  
348 -=== 2.3.3 Real-Time Open/Close Status, Uplink FPORT~=2 ===
329 +Read:0x(0197)=412    Value 412 / 10=41.2, So 41.2%
349 349  
350 350  
351 -(((
352 -(((
353 -CPL03-LB will send this uplink **after** Device Status once join the LoRaWAN network successfully. And CPL03-LB will:
354 -)))
355 -)))
332 +==== (% style="color:#4472c4" %)**Alarm Flag & MOD & Level of PA8**(%%) ====
356 356  
357 -(((
358 -(((
359 -periodically send this uplink every 2 hours, this interval [[can be changed>>||anchor="H3.3.1SetTransmitIntervalTime"]].
360 -)))
361 -)))
362 362  
363 -(((
364 -(((
365 -Uplink Payload totals 11 bytes.
366 -)))
367 -)))
335 +**Example:**
368 368  
369 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:520px" %)
370 -|=(% colspan="5" style="background-color:#D9E2F3;color:#0070C0; width: 520px;" %)**Real-Time Open/Close Status, FPORT=2**
371 -|(% style="width:60px" %)**Size(bytes)**|(% style="width:65px" %)**1**|(% style="width:65px" %)**3**|(% style="width:240px" %)**3**|(% style="width:90px" %)**4**
372 -|(% style="width:101px" %)**Value**|(% style="width:133px" %)Status & [[Alarm>>||anchor="H3.3.5AlarmBaseonTimeout"]]|(% style="width:92px" %)Total pulse|(% style="width:247px" %)The last open duration (unit: min)|(% style="width:149px" %)[[Unix TimeStamp>>||anchor="H2.5.2UnixTimeStamp"]]
337 +If payload & 0x01 = 0x01  **~-~->** This is an Alarm Message.It means that the temperature and humidity exceed the alarm value or trigger an interrupt.
373 373  
374 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:504px" %)
375 -|=(% colspan="4" style="background-color:#D9E2F3;color:#0070C0; width: 502px;" %)**Status & Alarm field**
376 -|(% style="width:60px" %)**Size(bit)**|(% style="width:70px" %)**6**|(% style="width:228px" %)**1**|(% style="width:146px" %)**1**
377 -|(% style="width:76px" %)Value|(% style="width:80px" %)Calculate Flag|(% style="width:208px" %)Alarm: 0: No Alarm; 1: Alarm|(% style="width:136px" %)Contact Status: 0: Open, 1: Close
339 +If payload & 0x01 = 0x00  **~-~->** This is a normal uplink message, no alarm.
378 378  
379 -* (((
380 -(% style="color:#037691" %)** Calculate Flag**
381 -)))
341 +If payload & 0x80>>7 = 0x01  **~-~->** The PA8 is low level.
382 382  
383 -(((
384 -The calculate flag is a user define field, IoT server can use this filed to handle different meter with different pulse factor. For example, if there are 100 water meters, meter 1 ~~50 are 1 liter/pulse and meter 51 ~~ 100 has 1.5 liter/pulse.
385 -)))
343 +If payload & 0x80>>7 =0x00  **~-~->** The PA8 is high level.
386 386  
387 -(((
388 -User can set calculate flag to 1 for meter 1~~50 and 2 for meter 51 ~~ 100, So IoT Server can use this field for calculation.
389 -)))
345 +If payload >> 2 = 0x00  **~-~->**  means MOD=1, This is a sampling uplink message.
390 390  
391 -(((
392 -Default value: 0. 
393 -)))
347 +If payload >> 2 = 0x31  **~-~->**  means MOD=31, this message is a reply message for polling, this message contains the alarm settings. see [[this link>>path:#HPolltheAlarmsettings:]] for detail. 
394 394  
395 -(((
396 -Range (6 bits): (b)000000 ~~ (b) 111111
397 -)))
398 398  
399 -(((
400 -Refer: [[Set Calculate Flag>>||anchor="H3.3.8Setthecalculateflag"]]
350 +== 2.4 Payload Decoder file ==
401 401  
402 -
403 -)))
404 404  
405 -* (((
406 -(% style="color:#037691" %)** Alarm**
407 -)))
353 +In TTN, use can add a custom payload so it shows friendly reading
408 408  
409 -(((
410 -See [[Alarm Base on Timeout>>||anchor="H3.3.5AlarmBaseonTimeout"]]
355 +In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from:
411 411  
412 -
413 -)))
357 +[[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/S31-LB%26S31B-LB>>https://github.com/dragino/dragino-end-node-decoder/tree/main/S31-LB%26S31B-LB]]
414 414  
415 -* (((
416 -(% style="color:#037691" %)** Contact Status**
417 -)))
418 418  
419 -(((
420 -0: Open
421 -)))
360 +== 2.5 Datalog Feature ==
422 422  
423 -(((
424 -1: Close
425 425  
426 -
427 -)))
363 +Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, S31x-LB will store the reading for future retrieving purposes.
428 428  
429 -* (((
430 -(% style="color:#037691" %)** Total pulse**
431 -)))
432 432  
433 -(((
434 -Total pulse/counting base on dry [[contact trigger event>>||anchor="H2.3.2SensorConfiguration2CFPORT3D4"]]
435 -)))
366 +=== 2.5.1 Ways to get datalog via LoRaWAN ===
436 436  
437 -(((
438 -Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215
439 439  
440 -
441 -)))
369 +Set [[PNACKMD=1>>||anchor="H2.5.4DatalogUplinkpayload28FPORT3D329"]], S31x-LB will wait for ACK for every uplink, when there is no LoRaWAN network,S31x-LB will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
442 442  
443 443  * (((
444 -(% style="color:#037691" %)** The last open duration**
372 +a) S31x-LB will do an ACK check for data records sending to make sure every data arrive server.
445 445  )))
446 -
447 -(((
448 -Dry Contact last open duration.
374 +* (((
375 +b) S31x-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but S31x-LB won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if S31x-LB gets a ACK, S31x-LB will consider there is a network connection and resend all NONE-ACK messages.
449 449  )))
450 450  
451 -(((
452 -Unit: min.
453 -)))
378 +Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
454 454  
455 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652860403792-491.png?width=735&height=153&rev=1.1||alt="1652860403792-491.png"]]
380 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220703111700-2.png?width=1119&height=381&rev=1.1||alt="图片-20220703111700-2.png" height="381" width="1119"]]
456 456  
457 457  
458 -=== 2.3.4 Real-Time Open/Close Status, 3 pulse mode, Uplink FPORT~=6 ===
383 +=== 2.5.2 Unix TimeStamp ===
459 459  
460 460  
461 -(% style="color:red" %)**Note:**
386 +S31x-LB uses Unix TimeStamp format based on
462 462  
463 -* Firmware support for this mode is not released. If users want to test, please contact Dragino support.
464 -* Users need to run (% style="color:blue" %)**AT+MOD=3**(%%) to support this model after updating the firmware.
465 -* This mode doesn't support Historical Events and Datalog features.
388 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]]
466 466  
467 -(% style="color:blue" %)**CPL03-LB 3 Pulse Wiring:**
390 +User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
468 468  
469 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/image-20221013153352-1.png?width=720&height=628&rev=1.1||alt="image-20221013153352-1.png"]]
392 +Below is the converter example
470 470  
394 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]]
471 471  
472 -(% style="color:blue" %)**Payload:**
473 473  
474 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/image-20221013153352-2.png?width=1215&height=167&rev=1.1||alt="image-20221013153352-2.png"]]
397 +So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
475 475  
476 476  
477 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:447px" %)
478 -|(% style="background-color:#d9e2f3; color:#0070c0; width:95px" %)**Size(bytes)**|(% style="background-color:#d9e2f3; color:#0070c0; width:61px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:98px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:98px" %)**3**|(% style="background-color:#d9e2f3; color:#0070c0; width:95px" %)**3**
479 -|(% style="width:93px" %)Value|(% style="width:59px" %)Status|(% style="width:98px" %)(((
480 -Port1 Total Pulse(PB14)
481 -)))|(% style="width:96px" %)(((
482 -Port2 Total Pulse(PB15)
483 -)))|(% style="width:94px" %)(((
484 -Port3 Total Pulse(PA4)
485 -)))
400 +=== 2.5.3 Set Device Time ===
486 486  
487 -(% style="color:blue" %)**Status:**
488 488  
489 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:257px" %)
490 -|(% style="background-color:#d9e2f3; color:#0070c0; width:75px" %)**Size(bit)**|(% style="background-color:#d9e2f3; color:#0070c0; width:112px" %)**6**|(% style="background-color:#d9e2f3; color:#0070c0; width:70px" %)**2**
491 -|(% style="width:75px" %)Value|(% style="width:111px" %)Calculate Flag|(% style="width:68px" %)Reserve
403 +User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
492 492  
493 -(% style="color:red" %)**Max COUNT for each port is 16777215. Exceed this number will reset to 1.**
405 +Once S31x-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to S31x-LB. If S31x-LB fails to get the time from the server, S31x-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
494 494  
407 +(% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 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 V3 v2 if SYNCMOD=1.**
495 495  
496 -(% style="color:blue" %)**Related AT Command:**
497 497  
498 -(% style="color:#037691" %)**AT+TTRMOD1:  Port1 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
410 +=== 2.5.4 Datalog Uplink payload (FPORT~=3) ===
499 499  
500 - AT+TTRMOD1=0  Downlink Command: 0xA4 01 00
501 501  
502 - AT+TTRMOD1=1  Downlink Command: 0xA4 01 01
413 +The Datalog uplinks will use below payload format.
503 503  
415 +**Retrieval data payload:**
504 504  
505 -(% style="color:#037691" %)**AT+TTRMOD2:  Port2 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
506 -
507 - AT+TTRMOD1=0  Downlink Command: 0xA4 02 00
508 -
509 - AT+TTRMOD1=1  Downlink Command: 0xA4 02 01
510 -
511 -
512 -(% style="color:#037691" %)**AT+TTRMOD3:  Port3 count mode;  0: Signal falling edge(Default), 1: Signal raising edge**
513 -
514 - AT+TTRMOD1=0  Downlink Command: 0xA4 03 00
515 -
516 - AT+TTRMOD1=1  Downlink Command: 0xA4 03 01
517 -
518 -
519 -(% style="color:#037691" %)**AT+CALCFLAG:  Calculate Flag ( Default : 0 )**
520 -
521 - AT+CALCFLAG=aa
522 -
523 -
524 -(% style="color:blue" %)**Downlink Command: 0xA5 aa**
525 -
526 -(% style="color:#037691" %)**AT+COUNTMOD:  Accumulative Mode;  0: Accumulative (Default),1: Reset after uplink.**
527 -
528 - AT+COUNTMOD=0 Downlink Command: 0x0B 00
529 -
530 - AT+COUNTMOD=1 Downlink Command: 0x0B 01
531 -
532 -
533 -(% style="color:#037691" %)**AT+SETCNT:  Set count value**
534 -
535 - AT+SETCNT=1,aa  Downlink Command: 0xA6 01 aa aa aa
536 -
537 - AT+SETCNT=2,aa  Downlink Command: 0xA6 02 aa aa aa
538 -
539 - AT+SETCNT=3,aa  Downlink Command: 0xA6 03 aa aa aa
540 -
541 -
542 -(% style="color:blue" %)**Decode:  **(%%)[[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
543 -
544 -
545 -=== 2.3.5 Historical Door Open/Close Event, FPORT~=3 ===
546 -
547 -
417 +(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
418 +|=(% style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)(((
419 +**Size(bytes)**
420 +)))|=(% style="width: 40px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 55px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 65px; background-color:#D9E2F3;color:#0070C0" %)**2**|=(% style="width: 180px; background-color:#D9E2F3;color:#0070C0" %)**1**|=(% style="width: 100px; background-color:#D9E2F3;color:#0070C0" %)**4**
421 +|(% style="width:103px" %)Value|(% style="width:68px" %)(((
422 +ignore
423 +)))|(% style="width:104px" %)(((
548 548  (((
549 -CPL03-LB stores sensor values and users can retrieve these history values via the [[downlink command>>||anchor="H2.5DatalogFeature"]].
425 +Humidity
550 550  )))
551 551  
552 552  (((
553 -The historical payload includes one or multiplies entries and every entry has the same payload as Real-Time open/close status.
429 +
554 554  )))
431 +)))|(% style="width:87px" %)(((
432 +Temperature
433 +)))|(% style="width:178px" %)(((
434 +Poll message flag & Alarm Flag& Level of PA8
435 +)))|(% style="width:137px" %)Unix Time Stamp
555 555  
556 -* (((
557 -Each data entry is 11 bytes and has the same structure as [[Real-Time open/close status>>||anchor="H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]], to save airtime and battery, CPL03-LB will send max bytes according to the current DR and Frequency bands.
558 -)))
437 +**Poll message flag & Alarm Flag & Level of PA8:**
559 559  
560 -(((
561 -For example, in the US915 band, the max payload for different DR is:
562 -)))
439 +[[image:image-20230524114302-1.png||height="115" width="736"]]
563 563  
564 -(((
565 -a) (% style="color:blue" %)**DR0**(%%): max is 11 bytes so one entry of data
566 -)))
567 567  
568 -(((
569 -b) (% style="color:blue" %)**DR1**(%%): max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
570 -)))
442 +**No ACK Message**:  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for **PNACKMD=1** feature)
571 571  
572 -(((
573 -c) (% style="color:blue" %)**DR2**(%%): total payload includes 11 entries of data
574 -)))
444 +**Poll Message Flag**: 1: This message is a poll message reply.
575 575  
576 -(((
577 -d) (% style="color:blue" %)**DR3**(%%): total payload includes 22 entries of data.
578 -)))
446 +* Poll Message Flag is set to 1.
579 579  
580 -(((
581 -If CPL03-LB doesn't have any data in the polling time. It will uplink 11 bytes of 0
448 +* Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
582 582  
583 -
584 -)))
450 +For example, in US915 band, the max payload for different DR is:
585 585  
586 -(% style="color:blue" %)** Downlink:**
452 +**a) DR0:** max is 11 bytes so one entry of data
587 587  
588 -(% class="box" %)
589 -(((
590 -**0x31 61 E9 3A D4 61 E9 3D E0 05**
591 -)))
454 +**b) DR1:** max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
592 592  
593 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652861353248-624.png?width=720&height=189&rev=1.1||alt="1652861353248-624.png"]]
456 +**c) DR2:** total payload includes 11 entries of data
594 594  
458 +**d) DR3: **total payload includes 22 entries of data.
595 595  
596 -(% style="color:blue" %)** Uplink:**
460 +If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
597 597  
598 -(% class="box" %)
599 -(((
600 -**0E 00 23 E6 00 00 00 61 E9 3B 04 0E 00 23 E6 00 00 00 61 E9 3B 25 0D 00 00 00 00 00 00 61 E9 3B C8 0E 00 00 02 00 00 00 61 E9 3B D4 0E 00 00 06 00 00 00 61 E9 3B DB 01 00 00 00 00 00 00 61 E9 3C 91 01 00 00 00 00 00 00 61 E9 3C A1 0D 00 00 00 00 00 00 61 E9 3C BC 0E 00 00 07 00 00 00 61 E9 3C D6 00 00 00 00 00 00 00 61 E9 3D A6**
601 -)))
462 +**Example:**
602 602  
603 -(% style="color:#037691" %)** **
464 +If S31x-LB has below data inside Flash:
604 604  
605 -(% style="color:#037691" %)**Parsed Value:**
466 +[[image:image-20230524114654-2.png]]
606 606  
607 -(((
608 -[ALARM, PIN_STATUS, TOTAL_PULSE, CALCULATE_FLAG, LAST_OPEN_DURATION, TIME]
609 -)))
610 610  
611 -(((
612 -
613 -)))
469 +If user sends below downlink command: 31646D84E1646D856C05
614 614  
615 -(((
616 -[TRUE, CLOSE, 9190, 3, 0, 2022-01-20 10:35:48],
617 -)))
471 +Where : Start time: 646D84E1 = time 23/5/24 03:30:41
618 618  
619 -(((
620 -[TRUE, CLOSE, 9190, 3, 0, 2022-01-20 10:36:21],
621 -)))
473 + Stop time: 646D856C= time 23/5/24 03:33:00
622 622  
623 -(((
624 -[FALSE, OPEN, 0, 3, 0, 2022-01-20 10:39:04],
625 -)))
626 626  
476 +**S31x-LB will uplink this payload.**
477 +
478 +[[image:image-20230524114826-3.png||height="448" width="1244"]]
479 +
627 627  (((
628 -[TRUE, CLOSE, 2, 3, 0, 2022-01-20 10:39:16],
481 +00 00 02 36 01 10 40 64 6D 84 E1 00 00 02 37 01 10 40 64 6D 84 F8 00 00 02 37 01 0F 40 64 6D 85 04 00 00 02 3A 01 0F 40 64 6D 85 18 00 00 02 3C 01 0F 40 64 6D 85 36 00 00 02 3D 01 0E 40 64 6D 85 3F 00 00 02 3F 01 0E 40 64 6D 85 60 00 00 02 40 01 0E 40 64 6D 85 6A
629 629  )))
630 630  
631 631  (((
632 -[TRUE, CLOSE, 6, 3, 0, 2022-01-20 10:39:23],
485 +Where the first 11 bytes is for the first entry:
633 633  )))
634 634  
635 635  (((
636 -[FALSE, OPEN, 0, 0, 0, 2022-01-20 10:42:25],
489 +00 00 02 36 01 10 40 64 6D 84 E1
637 637  )))
638 638  
639 639  (((
640 -[FALSE, OPEN, 0, 0, 0, 2022-01-20 10:42:41],
493 +**Hum**=0x0236/10=56.6
641 641  )))
642 642  
643 643  (((
644 -[FALSE, OPEN, 0, 3, 0, 2022-01-20 10:43:08],
497 +**Temp**=0x0110/10=27.2
645 645  )))
646 646  
647 647  (((
648 -[TRUE, CLOSE, 7, 3, 0, 2022-01-20 10:43:34],
501 +**poll message flag & Alarm Flag & Level of PA8**=0x40,means reply data,sampling uplink message,the PA8 is low level.
649 649  )))
650 650  
651 651  (((
652 -[FALSE, CLOSE, 0, 0, 0, 2022-01-20 10:47:02],
653 -
654 -
505 +**Unix time** is 0x646D84E1=1684899041s=23/5/24 03:30:41
655 655  )))
656 656  
657 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/1652861480446-216.png?rev=1.1||alt="1652861480446-216.png"]]
658 658  
509 +(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的(% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" data-widget="image" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220, 220, 220, 0.5); display:none" tabindex="-1" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||alt="数据 URI 图片" draggable="true" height="15" role="presentation" title="单击并拖动以移动" width="15"]](% aria-label="数据 URI 图像图像小部件" contenteditable="false" role="region" style="background-image:url(http://wiki1.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" tabindex="-1" title="单击并拖动以调整大小" %)的
659 659  
660 -== 2.4 Payload Decoder file ==
511 +== 2.6 Temperature Alarm Feature ==
661 661  
662 662  
663 -In TTN, use can add a custom payload so it shows friendly reading
514 +S31x-LB work flow with Alarm feature.
664 664  
665 -In the page (% style="color:#037691" %)**Applications ~-~-> Payload Formats ~-~-> Custom ~-~-> decoder**(%%) to add the decoder from: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
666 666  
517 +[[image:image-20230524110125-3.png||height="768" width="1115"]]
667 667  
668 -== 2.5 Datalog Feature ==
669 669  
670 670  
671 -Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, CPL03-LB will store the reading for future retrieving purposes.
672 -
673 -
674 -=== 2.5.1 Ways to get datalog via LoRaWAN ===
675 -
676 -
677 -Set PNACKMD=1, CPL03-LB will wait for ACK for every uplink, when there is no LoRaWAN network,CPL03-LB will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
678 -
679 -* (((
680 -a) CPL03-LB will do an ACK check for data records sending to make sure every data arrive server.
681 -)))
682 -* (((
683 -b) CPL03-LB will send data in **CONFIRMED Mode** when PNACKMD=1, but CPL03-LB won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if CPL03-LB gets a ACK, CPL03-LB will consider there is a network connection and resend all NONE-ACK messages.
684 -)))
685 -
686 -Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
687 -
688 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220703111700-2.png?width=1119&height=381&rev=1.1||alt="图片-20220703111700-2.png" height="381" width="1119"]]
689 -
690 -
691 -=== 2.5.2 Unix TimeStamp ===
692 -
693 -
694 -CPL03-LB uses Unix TimeStamp format based on
695 -
696 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-11.png?width=627&height=97&rev=1.1||alt="图片-20220523001219-11.png" height="97" width="627"]]
697 -
698 -User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
699 -
700 -Below is the converter example
701 -
702 -[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220523001219-12.png?width=720&height=298&rev=1.1||alt="图片-20220523001219-12.png" height="298" width="720"]]
703 -
704 -
705 -So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
706 -
707 -
708 -=== 2.5.3 Set Device Time ===
709 -
710 -
711 -User need to set (% style="color:blue" %)**SYNCMOD=1**(%%) to enable sync time via MAC command.
712 -
713 -Once CPL03-LB Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to CPL03-LB. If CPL03-LB fails to get the time from the server, CPL03-LB will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
714 -
715 -(% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 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 V3 v2 if SYNCMOD=1.**
716 -
717 -
718 -=== 2.5.4 Poll sensor value ===
719 -
720 -
721 -Users can poll sensor values based on timestamps. Below is the downlink command.
722 -
723 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:425.818px" %)
724 -|(% colspan="4" style="background-color:#d9e2f3; color:#0070c0; width:423px" %)**Downlink Command to poll Open/Close status (0x31)**
725 -|(% style="width:58px" %)**1byte**|(% style="width:127px" %)**4bytes**|(% style="width:124px" %)**4bytes**|(% style="width:114px" %)**1byte**
726 -|(% style="width:58px" %)31|(% style="width:127px" %)Timestamp start|(% style="width:124px" %)Timestamp end|(% style="width:114px" %)Uplink Interval
727 -
728 -(((
729 -Timestamp start and Timestamp end-use Unix TimeStamp format as mentioned above. Devices will reply with all data logs during this period, using the uplink interval.
730 -)))
731 -
732 -(((
733 -For example, downlink command [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/WebHome/image-20220518162852-1.png?rev=1.1||alt="image-20220518162852-1.png"]]
734 -)))
735 -
736 -(((
737 -Is to check 2021/11/12 12:00:00 to 2021/11/12 15:00:00's data
738 -)))
739 -
740 -(((
741 -Uplink Internal =5s,means CPL03-LB will send one packet every 5s. range 5~~255s.
742 -)))
743 -
744 -
745 745  == 2.7 Frequency Plans ==
746 746  
747 747  
748 -The CPL03-LB uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
524 +The S31x-LB uses OTAA mode and below frequency plans by default. If user want to use it with different frequency plan, please refer the AT command sets.
749 749  
750 750  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]]
751 751  
752 752  
753 -= 3. Configure CPL03-LB =
529 += 3. Configure S31x-LB =
754 754  
755 755  == 3.1 Configure Methods ==
756 756  
757 757  
758 -CPL03-LB supports below configure method:
534 +S31x-LB supports below configure method:
759 759  
760 760  * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
761 761  * 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]].
... ... @@ -774,25 +774,21 @@
774 774  [[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/]]
775 775  
776 776  
777 -== 3.3 Commands special design for CPL03-LB ==
553 +== 3.3 Commands special design for S31x-LB ==
778 778  
779 779  
780 -These commands only valid for CPL03-LB, as below:
556 +These commands only valid for S31x-LB, as below:
781 781  
782 782  
783 783  === 3.3.1 Set Transmit Interval Time ===
784 784  
785 785  
786 -(((
787 787  Feature: Change LoRaWAN End Node Transmit Interval.
788 -)))
789 789  
790 -(((
791 791  (% style="color:blue" %)**AT Command: AT+TDC**
792 -)))
793 793  
794 794  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
795 -|=(% style="width: 156px;background-color:#D9E2F3; color:#0070c0" %)**Command Example**|=(% style="width: 137px;background-color:#D9E2F3; color:#0070c0" %)**Function**|=(% style="background-color:#D9E2F3; color:#0070c0" %)**Response**
567 +|=(% style="width: 156px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 137px;background-color:#D9E2F3" %)**Function**|=(% style="background-color:#D9E2F3" %)**Response**
796 796  |(% style="width:156px" %)AT+TDC=?|(% style="width:137px" %)Show current transmit Interval|(((
797 797  30000
798 798  OK
... ... @@ -803,47 +803,18 @@
803 803  Set transmit interval to 60000ms = 60 seconds
804 804  )))
805 805  
806 -(((
807 807  (% style="color:blue" %)**Downlink Command: 0x01**
808 -)))
809 809  
810 -(((
811 811  Format: Command Code (0x01) followed by 3 bytes time value.
812 -)))
813 813  
814 -(((
815 815  If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
816 -)))
817 817  
818 -* (((
819 -Example 1: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
820 -)))
821 -* (((
822 -Example 2: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
584 +* Example 1: Downlink Payload: 0100001E  ~/~/  Set Transmit Interval (TDC) = 30 seconds
585 +* Example 2: Downlink Payload: 0100003C  ~/~/  Set Transmit Interval (TDC) = 60 seconds
823 823  
587 +=== 3.3.2 Get Device Status ===
824 824  
825 -
826 -)))
827 827  
828 -=== 3.3.2 Quit AT Command ===
829 -
830 -
831 -Feature: Quit AT Command mode, so user needs to input the password again before using AT Commands.
832 -
833 -(% style="color:blue" %)**AT Command: AT+DISAT**
834 -
835 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:452px" %)
836 -|=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 198px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 99px;background-color:#D9E2F3;color:#0070C0" %)**Response**
837 -|(% style="width:155px" %)AT+DISAT|(% style="width:198px" %)Quit AT Commands mode|(% style="width:96px" %)OK
838 -
839 -(% style="color:blue" %)**Downlink Command:**
840 -
841 -No downlink command for this feature.
842 -
843 -
844 -=== 3.3.3 Get Device Status ===
845 -
846 -
847 847  Send a LoRaWAN downlink to ask device send Alarm settings.
848 848  
849 849  (% style="color:blue" %)**Downlink Payload:  **(%%)0x26 01
... ... @@ -851,194 +851,82 @@
851 851  Sensor will upload Device Status via FPORT=5. See payload section for detail.
852 852  
853 853  
854 -=== 3.3.4 Enable / Disable Alarm ===
597 +=== 3.3.3 Set Temperature Alarm Threshold ===
855 855  
856 856  
857 -Feature: Enable/Disable Alarm for open/close event. Default value 0.
600 +* (% style="color:blue" %)**AT Command:**
858 858  
859 -(% style="color:blue" %)**AT Command:**
602 +(% style="color:#037691" %)**AT+SHTEMP=min,max**
860 860  
861 -(% border="1" cellspacing="4" style="background-color:#f2f2f2; width:520px" %)
862 -|(% style="background-color:#d9e2f3; color:#0070c0; width:154px" %)**Command Example**|(% style="background-color:#d9e2f3; color:#0070c0; width:278px" %)**Function**|(% style="background-color:#d9e2f3; color:#0070c0; width:88px" %)**Response**
863 -|(% style="width:154px" %)AT+DISALARM=1|(% style="width:278px" %)End node will only send packets in TDC time.|OK
864 -|(% style="width:154px" %)AT+DISALARM=0|(% style="width:278px" %)End node will send packets in TDC time or status change for door sensor|OK
604 +* When min=0, and max≠0, Alarm higher than max
605 +* When min≠0, and max=0, Alarm lower than min
606 +* When min≠0 and max≠0, Alarm higher than max or lower than min
865 865  
866 -(% style="color:blue" %)**Downlink Command:**
608 +Example:
867 867  
868 -**0xA7 01**  ~/~/  Same As AT+DISALARM=1
610 + AT+SHTEMP=0,30   ~/~/ Alarm when temperature higher than 30.
869 869  
870 -**0xA7 00    ** ~/~/  Same As AT+DISALARM=0
612 +* (% style="color:blue" %)**Downlink Payload:**
871 871  
614 +(% style="color:#037691" %)**0x(0C 01 00 1E)**  (%%) ~/~/ Set AT+SHTEMP=0,30
872 872  
873 -=== 3.3.5 Alarm Base on Timeout ===
616 +(% style="color:red" %)**(note: 3^^rd^^ byte= 0x00 for low limit(not set), 4^^th^^ byte = 0x1E for high limit: 30)**
874 874  
875 875  
876 -(((
877 -CPL03-LB can monitor the timeout for a status change, this feature can be used to monitor some events such as door opening too long etc. Related Parameters are:
878 -)))
619 +=== 3.3.4 Set Humidity Alarm Threshold ===
879 879  
880 880  
881 -(((
882 -(% style="color:#4f81bd" %)**1. Keep Status: Status to be monitor**
883 -)))
622 +* (% style="color:blue" %)**AT Command:**
884 884  
885 -(((
886 -**Keep Status = 1**: Monitor Close to Open event
887 -)))
624 +(% style="color:#037691" %)**AT+SHHUM=min,max**
888 888  
889 -(((
890 -**Keep Status = 0**: Monitor Open to Close event
891 -)))
626 +* When min=0, and max≠0, Alarm higher than max
627 +* When min≠0, and max=0, Alarm lower than min
628 +* When min≠0 and max≠0, Alarm higher than max or lower than min
892 892  
630 +Example:
893 893  
894 -(((
895 -(% style="color:#4f81bd" %)**2. Keep Time: Timeout to send an Alarm**
896 -)))
632 + AT+SHHUM=70,0  ~/~/ Alarm when humidity lower than 70%.
897 897  
898 -(((
899 -Range 0 ~~ 65535(0xFFFF) seconds.
900 -)))
634 +* (% style="color:blue" %)**Downlink Payload:**
901 901  
902 -(((
903 -If** keep time = 0**, Disable Alarm Base on Timeout feature.
904 -)))
636 +(% style="color:#037691" %)**0x(0C 02 46 00)**(%%)  ~/~/ Set AT+SHTHUM=70,0
905 905  
906 -(((
907 -If **keep time > 0**, device will monitor the keep status event and send an alarm when status doesn’t change after timeout.
908 -)))
638 +(% style="color:red" %)**(note: 3^^rd^^ byte= 0x46 for low limit (70%), 4^^th^^ byte = 0x00 for high limit (not set))**
909 909  
910 910  
911 -(((
912 -(% style="color:#4f81bd" %)**AT Command**(%%) to configure:
913 -)))
641 +=== 3.3.5 Set Alarm Interval ===
914 914  
915 -(((
916 -(% style="color:blue" %)**AT+TTRIG=1,30**(%%)  ~-~-> When the **Keep Status** change from connect to disconnect, and device remains in disconnect status for more than 30 seconds. CPL03-LB will send an uplink packet, the [[Alarm bit>>||anchor="H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2"]] (the second bit of 1^^st^^ byte of payload) on this uplink packet is set to 1.
917 -)))
918 918  
919 -(((
920 -(% style="color:blue" %)**AT+TTIG=0,0 **(%%) ~-~-> Default Value, disable timeout Alarm.
921 -)))
644 +The shortest time of two Alarm packet. (unit: min)
922 922  
646 +* (% style="color:blue" %)**AT Command:**
923 923  
924 -(((
925 -(% style="color:#4f81bd" %)**Downlink Command**(%%) to configure:
926 -)))
648 +(% style="color:#037691" %)**AT+ATDC=30** (%%) ~/~/ The shortest interval of two Alarm packets is 30 minutes, Means is there is an alarm packet uplink, there won't be another one in the next 30 minutes.
927 927  
928 -(((
929 -**Command: 0xA9 aa bb cc**
930 -)))
650 +* (% style="color:blue" %)**Downlink Payload:**
931 931  
932 -(((
933 -**A9: **Command Type Code
934 -)))
652 +(% style="color:#037691" %)**0x(0D 00 1E)**(%%)     **~-~--> ** Set AT+ATDC=0x 00 1E = 30 minutes
935 935  
936 -(((
937 -**aa: **status to be monitored
938 -)))
939 939  
940 -(((
941 -**bb cc: **timeout.
942 -)))
655 +=== 3.3.6 Get Alarm settings ===
943 943  
944 944  
945 -(((
946 -If user send 0xA9 01 00 1E: equal to AT+TTRIG=1,30
947 -)))
658 +Send a LoRaWAN downlink to ask device send Alarm settings.
948 948  
949 -(((
950 -Or
951 -)))
660 +* (% style="color:#037691" %)**Downlink Payload:  **(%%)0x0E 01
952 952  
953 -(((
954 -0xA9 00 00 00: Equal to AT+TTRIG=0,0. Disable timeout Alarm.
955 -)))
662 +**Example:**
956 956  
664 +[[image:image-20230524110211-4.png]]
957 957  
958 -=== 3.3.6 Clear Flash Record ===
666 +**Explain:**
959 959  
668 +* Alarm & MOD bit is 0x7C, 0x7C >> 2 = 0x31: Means this message is the Alarm settings message.
960 960  
961 -Feature: Clear flash storage for data log feature.
670 +=== 3.3.7 Set Interrupt Mode ===
962 962  
963 -(% style="color:blue" %)**AT Command: AT+CLRDTA**
964 964  
965 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:500px" %)
966 -|=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 169px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 174px;background-color:#D9E2F3;color:#0070C0" %)**Response**
967 -|(% style="width:157px" %)AT+CLRDTA|(% style="width:169px" %)Clear flash storage for data log feature.|Clear all stored sensor data… OK
968 -
969 -(((
970 -(% style="color:blue" %)**Downlink Command:**
971 -)))
972 -
973 -(((
974 -* **Example**: 0xA301  ~/~/  Same as AT+CLRDTA
975 -)))
976 -
977 -
978 -
979 -=== 3.3.7 Set trigger mode ===
980 -
981 -
982 -Feature: Set the trigger interrupt mode.
983 -
984 -(% style="color:blue" %)**AT Command: AT+TTRMOD**
985 -
986 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:495px" %)
987 -|=(% style="width: 157px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 246px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 92px;background-color:#D9E2F3;color:#0070C0" %)**Response**
988 -|(% style="width:157px" %)(((
989 -AT+TTRMOD=1
990 -)))|(% style="width:156px" %)Count and trigger from open to close (rising edge)|(% style="width:89px" %)(((
991 -(((
992 -OK
993 -)))
994 -)))
995 -|(% style="width:157px" %)(((
996 -AT+TTRMOD=0
997 -)))|(% style="width:156px" %)Count and trigger from close to open (falling edge)|(% style="width:89px" %)(((
998 -OK
999 -)))
1000 -
1001 -(% style="color:blue" %)**Downlink Command:**
1002 -
1003 -* **Example**: 0xA401  ~/~/  Same as AT+ TTRMOD =1
1004 -
1005 -=== 3.3.8 Set the calculate flag ===
1006 -
1007 -
1008 -Feature: Set the calculate flag
1009 -
1010 -(% style="color:blue" %)**AT Command: AT+CALCFLAG**
1011 -
1012 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:461px" %)
1013 -|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 193px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 110px;background-color:#D9E2F3;color:#0070C0" %)**Response**
1014 -|(% style="width:158px" %)AT+CALCFLAG =1|(% style="width:192px" %)Set the calculate flag to 1.|(% style="width:109px" %)OK
1015 -|(% style="width:158px" %)AT+CALCFLAG =2|(% style="width:192px" %)Set the calculate flag to 2.|(% style="width:109px" %)OK
1016 -
1017 -(% style="color:blue" %)**Downlink Command:**
1018 -
1019 -* **Example**: 0XA501  ~/~/  Same as AT+CALCFLAG =1
1020 -
1021 -=== 3.3.9 Set count number ===
1022 -
1023 -
1024 -Feature: Manually set the count number
1025 -
1026 -(% style="color:blue" %)**AT Command: AT+SETCNT**
1027 -
1028 -(% border="1" cellspacing="5" style="background-color:#f2f2f2; width:479px" %)
1029 -|=(% style="width: 160px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 223px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 96px;background-color:#D9E2F3;color:#0070C0" %)**Response**
1030 -|(% style="width:160px" %)AT+ SETCNT =0|(% style="width:221px" %)Set the count number to 0.|(% style="width:95px" %)OK
1031 -|(% style="width:160px" %)AT+ SETCNT =100|(% style="width:221px" %)Set the count number to 100.|(% style="width:95px" %)OK
1032 -
1033 -(% style="color:blue" %)**Downlink Command:**
1034 -
1035 -* **Example**: 0xA6000001  ~/~/  Same as AT+ SETCNT =1
1036 -
1037 -* **Example**: 0xA6000064  ~/~/  Same as AT+ SETCNT =100
1038 -
1039 -=== 3.3.10 Set Interrupt Mode ===
1040 -
1041 -
1042 1042  Feature, Set Interrupt mode for PA8 of pin.
1043 1043  
1044 1044  When AT+INTMOD=0 is set, PA8 is used as a digital input port.
... ... @@ -1046,7 +1046,7 @@
1046 1046  (% style="color:blue" %)**AT Command: AT+INTMOD**
1047 1047  
1048 1048  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1049 -|=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Response**
680 +|=(% style="width: 155px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3" %)**Response**
1050 1050  |(% style="width:154px" %)AT+INTMOD=?|(% style="width:196px" %)Show current interrupt mode|(% style="width:157px" %)(((
1051 1051  0
1052 1052  OK
... ... @@ -1067,10 +1067,9 @@
1067 1067  This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06.
1068 1068  
1069 1069  * Example 1: Downlink Payload: 06000000  ~/~/  Turn off interrupt mode
1070 -
1071 1071  * Example 2: Downlink Payload: 06000003  ~/~/  Set the interrupt mode to rising edge trigger
1072 1072  
1073 -=== 3.3.11 Set Power Output Duration ===
703 +=== 3.3.8 Set Power Output Duration ===
1074 1074  
1075 1075  
1076 1076  Control the output duration 5V . Before each sampling, device will
... ... @@ -1084,7 +1084,7 @@
1084 1084  (% style="color:blue" %)**AT Command: AT+5VT**
1085 1085  
1086 1086  (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:510px" %)
1087 -|=(% style="width: 155px;background-color:#D9E2F3;color:#0070C0" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3;color:#0070C0" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3;color:#0070C0" %)**Response**
717 +|=(% style="width: 155px;background-color:#D9E2F3" %)**Command Example**|=(% style="width: 197px;background-color:#D9E2F3" %)**Function**|=(% style="width: 158px;background-color:#D9E2F3" %)**Response**
1088 1088  |(% style="width:154px" %)AT+5VT=?|(% style="width:196px" %)Show 5V open time.|(% style="width:157px" %)0 (default)
1089 1089  OK
1090 1090  |(% style="width:154px" %)AT+5VT=500|(% style="width:196px" %)Close after a delay of 1000 milliseconds.|(% style="width:157px" %)OK
... ... @@ -1096,13 +1096,12 @@
1096 1096  The first and second bytes are the time to turn on.
1097 1097  
1098 1098  * Example 1: Downlink Payload: 070000  **~-~-->**  AT+5VT=0
1099 -
1100 1100  * Example 2: Downlink Payload: 0701F4  **~-~-->**  AT+5VT=500
1101 1101  
1102 1102  = 4. Battery & Power Consumption =
1103 1103  
1104 1104  
1105 -CPL03-LB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
734 +S31x-LB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
1106 1106  
1107 1107  [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
1108 1108  
... ... @@ -1111,36 +1111,30 @@
1111 1111  
1112 1112  
1113 1113  (% class="wikigeneratedid" %)
1114 -User can change firmware CPL03-LB to:
743 +User can change firmware S31x-LB to:
1115 1115  
1116 1116  * Change Frequency band/ region.
1117 -
1118 1118  * Update with new features.
1119 -
1120 1120  * Fix bugs.
1121 1121  
1122 1122  Firmware and changelog can be downloaded from : **[[Firmware download link>>url:https://www.dropbox.com/sh/kwqv57tp6pejias/AAAopYMATh1GM6fZ-VRCLrpDa?dl=0]]**
1123 1123  
751 +
1124 1124  Methods to Update Firmware:
1125 1125  
1126 1126  * (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/]]
1127 -
1128 1128  * 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]]**.
1129 1129  
1130 1130  = 6. FAQ =
1131 1131  
1132 -== 6.1  AT Commands input doesn't work ==
1133 1133  
1134 1134  
1135 -In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:green" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:green" %)**ENTER**(%%) while press the send key, user need to add ENTER in their string.
1136 -
1137 -
1138 1138  = 7. Order Info =
1139 1139  
1140 1140  
1141 -Part Number: (% style="color:blue" %)**CPL03-LB-XXX**
764 +Part Number: (% style="color:blue" %)**S31-LB-XX  / S31B-LB-XX**
1142 1142  
1143 -(% style="color:red" %)**XXX**(%%): The default frequency band
766 +(% style="color:red" %)**XX**(%%): The default frequency band
1144 1144  
1145 1145  * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
1146 1146  
... ... @@ -1163,7 +1163,7 @@
1163 1163  
1164 1164  (% style="color:#037691" %)**Package Includes**:
1165 1165  
1166 -* CPL03-LB LoRaWAN Pulse/Contact Sensor
789 +* S31x-LB LoRaWAN Temperature & Humidity Sensor
1167 1167  
1168 1168  (% style="color:#037691" %)**Dimension and weight**:
1169 1169  
image-20230530111051-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -85.1 KB
Content
image-20230530111412-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -85.0 KB
Content
image-20230530135919-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -87.6 KB
Content
image-20230530135929-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -87.6 KB
Content
image-20230530140053-1.jpeg
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -1.3 MB
Content