Version 121.1 by kai on 2024/09/09 17:43

Show last authors
1
2
3 (% style="text-align:center" %)
4 [[image:image-20230819102136-3.png||height="425" width="646"]]
5
6
7
8
9
10
11 **Table of Contents:**
12
13 {{toc/}}
14
15
16
17
18
19
20 = 1. Introduction =
21
22 == 1.1 What is S31x-NB NB-IoT Temperature & Humidity Sensor ==
23
24
25 The Dragino S31-NB and S31B-NB are (% style="color:blue" %)**NB-IoT Temperature and Humidity Sensor**(%%) for Internet of Things solution. It is used to measure the surrounding (% style="color:blue" %)**environment temperature and relative air humidity precisely**(%%), and then upload to IoT server via NB-IoT network*.
26
27 The temperature & humidity sensor used in S31-NB is SHT31, which is fully calibrated, linearized, and temperature compensated digital output from Sensirion, it provides a strong reliability and long-term stability. The SHT31 is fixed in a (% style="color:blue" %)**waterproof anti-condensation casing**(%%) for long term use.
28
29 S31-NB supports different uplink methods include (% style="color:blue" %)**TCP, MQTT, UDP**(%%) for different application requirement. and Support Uplinks to various IoT Servers.
30
31 S31-NB is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to several years. (Real-world battery life depends on the use environment, update period and uplink method. Please check related Power Analyze report).
32
33 *make sure you have NB-IoT coverage locally.
34
35
36 [[image:1692411831805-116.png]]
37
38
39 == 1.2 ​Features ==
40
41
42 * NB-IoT Bands: B1/B2/B3/B4/B5/B8/B12/B13/B17/B18/B19/B20/B25/B28/B66/B70/B85 @H-FDD
43 * Ultra-low power consumption
44 * External 3 meters SHT31 probe (For S31-NB)
45 * Measure range -40°C ~~ 80°C
46 * Temperature & Humidity alarm
47 * Multiply Sampling and one uplink
48 * Support Bluetooth v5.1 remote configure and update firmware
49 * Uplink on periodically
50 * Downlink to change configure
51 * 8500mAh Battery for long term use
52 * Nano SIM card slot for NB-IoT SIM
53
54 == 1.3 Specification ==
55
56
57 (% style="color:blue" %)**Common DC Characteristics:**
58
59 * Supply Voltage: 2.1v ~~ 3.6v
60 * Operating Temperature: -40 ~~ 85°C
61
62 (% style="color:blue" %)**Temperature Sensor:**
63
64 * Range: -40 to + 80°C
65 * Accuracy: ±0.2 @ 0-90 °C
66 * Resolution: 0.1°C
67 * Long Term Shift: <0.03 °C/yr
68
69 (% style="color:blue" %)**Humidity Sensor: **
70
71 * Range: 0 ~~ 99.9% RH
72 * Accuracy: ± 2%RH ( 0 ~~ 100%RH)
73 * Resolution: 0.01% RH
74 * Long Term Shift: <0.25 %RH/yr
75
76 (% style="color:blue" %)**NB-IoT Spec:**
77
78 (% style="color:#037691" %)**NB-IoT Module: BC660K-GL**
79
80 (% style="color:#037691" %)**Support Bands:**
81
82 * B1 @H-FDD: 2100MHz
83 * B2 @H-FDD: 1900MHz
84 * B3 @H-FDD: 1800MHz
85 * B4 @H-FDD: 2100MHz
86 * B5 @H-FDD: 860MHz
87 * B8 @H-FDD: 900MHz
88 * B12 @H-FDD: 720MHz
89 * B13 @H-FDD: 740MHz
90 * B17 @H-FDD: 730MHz
91 * B18 @H-FDD: 870MHz
92 * B19 @H-FDD: 870MHz
93 * B20 @H-FDD: 790MHz
94 * B25 @H-FDD: 1900MHz
95 * B28 @H-FDD: 750MHz
96 * B66 @H-FDD: 2000MHz
97 * B70 @H-FDD: 2000MHz
98 * B85 @H-FDD: 700MHz
99
100 (% style="color:blue" %)**Battery:**
101
102 * Li/SOCI2 un-chargeable battery
103 * Capacity: 8500mAh
104 * Self Discharge: <1% / Year @ 25°C
105 * Max continuously current: 130mA
106 * Max boost current: 2A, 1 second
107
108 (% style="color:blue" %)**Power Consumption**
109
110 * STOP Mode: 10uA @ 3.3v
111 * Max transmit power: 350mA@3.3v
112
113 == 1.4 Applications ==
114
115
116 * Smart Buildings & Home Automation
117 * Logistics and Supply Chain Management
118 * Smart Metering
119 * Smart Agriculture
120 * Smart Cities
121 * Smart Factory
122
123 == 1.5 Sleep mode and working mode ==
124
125
126 (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any NB-IoT activate. This mode is used for storage and shipping to save battery life.
127
128 (% style="color:blue" %)**Working Mode:** (%%)In this mode, Sensor will work as NB-IoT Sensor to Join NB-IoT network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode.
129
130
131 == 1.6 Button & LEDs ==
132
133
134 [[image:Main.User Manual for LoRaWAN End Nodes.D20-LBD22-LBD23-LB_LoRaWAN_Temperature_Sensor_User_Manual.WebHome@1675071855856-879.png]]
135
136 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
137 |=(% 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**
138 |(% style="width:167px" %)Pressing ACT between 1s < time < 3s|(% style="width:117px" %)Send an uplink|(% style="width:225px" %)(((
139 If sensor has already attached to NB-IoT network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once.
140 Meanwhile, BLE module will be active and user can connect via BLE to configure device.
141 )))
142 |(% style="width:167px" %)Pressing ACT for more than 3s|(% style="width:117px" %)Active Device|(% style="width:225px" %)(((
143 (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to attach NB-IoT network.
144 (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network.
145 Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device attach NB-IoT network or not.
146 )))
147 |(% 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.
148
149 (% style="color:red" %)**Note: When the device is executing a program, the buttons may become invalid. It is best to press the buttons after the device has completed the program execution.**
150
151
152 == 1.7 BLE connection ==
153
154
155 S31x-NB support BLE remote configure and firmware update.
156
157 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:
158
159 * Press button to send an uplink
160 * Press button to active device.
161 * Device Power on or reset.
162
163 If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode.
164
165
166 == 1.8 Pin Definitions , Switch & SIM Direction ==
167
168
169 S31x-NB use the mother board from S31-NB which as below.
170
171 [[image:image-20230819104805-5.png]]
172
173
174 === 1.8.1 Jumper JP2 ===
175
176
177 Power on Device when put this jumper.
178
179 Power off device when take out this jumper
180
181
182 === 1.8.2 BOOT MODE / SW1 ===
183
184
185 **1)** (% style="color:blue" %)**ISP**(%%): upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. Firmware won't run.
186
187 **2)** (% style="color:blue" %)**Flash**(%%): work mode, device starts to work and send out console output for further debug
188
189
190 === 1.8.3 Reset Button ===
191
192
193 Press to reboot the device.
194
195
196 === 1.8.4 SIM Card Direction ===
197
198 See this link. [[How to insert SIM Card>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H2.AttachNetwork]].
199
200
201 == 1.9 Hardware Variant ==
202
203
204 (% border="1" cellspacing="3" style="width:410px" %)
205 |=(% style="width: 103px;background-color:#4F81BD;color:white" %)Model|=(% style="width: 127px; background-color:#4F81BD;color:white" %)Photo|=(% style="width: 180px;background-color:#4F81BD;color:white" %)Probe Info
206 |(% style="width:102px" %)(((
207 S31-NB
208 )))|(% style="width:126px" %)(((
209 (% style="text-align:center" %)
210 [[image:image-20230819110632-6.png||height="130" width="104"]]
211 )))|(% style="width:179px" %)(((
212 1 x SHT31 Probe
213
214 Cable Length : 3 meters
215
216
217 )))
218 |(% style="width:102px" %)(((
219 S31B-NB
220 )))|(% style="width:126px" %)(((
221 (% style="text-align:center" %)
222 [[image:image-20230819110702-7.png||height="164" width="90"]]
223 )))|(% style="width:179px" %)(((
224 1 x SHT31 Probe
225
226 Installed in device.
227 )))
228
229 (% style="display:none" %)
230
231
232
233 = 2. Use S31-NB to communicate with IoT Server =
234
235 == 2.1 Send data to IoT server via NB-IoT network ==
236
237
238 The S31-NB is equipped with a NB-IoT module, the pre-loaded firmware in S31-NB will get environment data from sensors and send the value to local NB-IoT network via the NB-IoT module.  The NB-IoT network will forward this value to IoT server via the protocol defined by S31-NB.
239
240
241 Below shows the network structure:
242
243 [[image:1692415924540-357.png]]
244
245
246 There are two version: (% style="color:blue" %)**-GE**(%%) and (% style="color:blue" %)**-1D**(%%) version of S31-NB.
247
248
249 (% style="color:blue" %)**GE Version**(%%): This version doesn't include SIM card or point to any IoT server. User needs to use AT Commands to configure below two steps to set S31-NB send data to IoT server.
250
251 * Install NB-IoT SIM card and configure APN. See instruction of [[Attach Network>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H2.AttachNetwork]].
252
253 * Set up sensor to point to IoT Server. See instruction of [[Configure to Connect Different Servers>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.Configuretoconnecttodifferentservers]]. 
254
255 Below shows result of different server as a glance.
256
257 (% border="1" cellspacing="3" style="width:515px" %)
258 |(% style="background-color:#4f81bd; color:white; width:100px" %)**Servers**|(% style="background-color:#4f81bd; color:white; width:300px" %)**Dash Board**|(% style="background-color:#4f81bd; color:white; width:115px" %)**Comments**
259 |(% style="width:127px" %)[[Node-Red>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.5A0Node-RedA028viaA0MQTT29]]|(% style="width:385px" %)(((
260 (% style="text-align:center" %)
261 [[image:image-20230819113244-8.png||height="183" width="367"]]
262 )))|(% style="width:170px" %)
263 |(% style="width:127px" %)[[DataCake>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]]|(% style="width:385px" %)(((
264 (% style="text-align:center" %)
265 [[image:image-20230819113244-9.png||height="119" width="367"]]
266 )))|(% style="width:170px" %)
267 |(% style="width:127px" %)[[Tago.IO>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.7A0Tago.ioA028viaA0MQTT29]]|(% style="width:385px" %) |(% style="width:170px" %)
268 |(% style="width:127px" %)[[General UDP>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.1GeneralA0UDPA0Connection]]|(% style="width:385px" %)Raw Payload. Need Developer to design Dash Board|(% style="width:170px" %)
269 |(% style="width:127px" %)[[General MQTT>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.2GeneralA0MQTTA0Connection]]|(% style="width:385px" %)Raw Payload. Need Developer to design Dash Board|(% style="width:170px" %)
270 |(% style="width:127px" %)[[ThingSpeak>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.3A0ThingSpeakA028viaA0MQTT29]]|(% style="width:385px" %)(((
271 (% style="text-align:center" %)
272 [[image:image-20230819113244-10.png||height="104" width="367"]]
273 )))|(% style="width:170px" %)
274 |(% style="width:127px" %)[[ThingsBoard>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.6A0ThingsBoard.CloudA028viaA0MQTT29]]|(% style="width:385px" %)(((
275 (% style="text-align:center" %)
276 [[image:image-20230819113244-11.png||height="141" width="367"]]
277 )))|(% style="width:170px" %)
278
279 (% style="color:blue" %)**1D Version**(%%): This version has 1NCE SIM card pre-installed and configure to send value to DataCake. User Just need to select the sensor type in DataCake and Activate S31-NB and user will be able to see data in DataCake. See here for [[DataCake Config Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/#H3.4Datacake]].
280
281
282 == 2.2 ​Payload Types ==
283
284
285 To meet different server requirement, S31-NB supports different payload type.
286
287 **Includes:**
288
289 * [[General JSON format payload>>||anchor="H2.2.1GeneralJsonFormat28Type3D529"]]. (Type=5)
290
291 * [[HEX format Payload>>||anchor="H2.2.2HEXformatPayload28Type3D029"]]. (Type=0)
292
293 * [[ThingSpeak Format>>||anchor="H2.2.4ThingSpeakPayload28Type3D129"]]. (Type=1)
294
295 * [[ThingsBoard Format>>||anchor="H2.2.3ThingsBoardPayload28Type3D329"]]. (Type=3)
296
297 User can specify the payload type when choose the connection protocol. Example:
298
299
300 (% style="color:#037691" %)**AT+PRO=1,0**  (%%) ~/~/ Use COAP Connection & hex Payload
301
302 (% style="color:#037691" %)**AT+PRO=1,5**   (%%) ~/~/ Use COAP Connection & Json Payload
303
304 (% style="color:#037691" %)**AT+PRO=2,0**  (%%) ~/~/ Use UDP Connection & hex Payload
305
306 (% style="color:#037691" %)**AT+PRO=2,5**   (%%) ~/~/ Use UDP Connection & Json Payload
307
308 (% style="color:#037691" %)**AT+PRO=3,0**  (%%) ~/~/ Use MQTT Connection & hex Payload
309
310 (% style="color:#037691" %)**AT+PRO=3,5 ** (%%) ~/~/ Use MQTT Connection & Json Payload
311
312 (% style="color:#037691" %)**AT+PRO=4,0**  (%%) ~/~/ Use TCP Connection & hex Payload
313
314 (% style="color:#037691" %)**AT+PRO=4,5 ** (%%) ~/~/ Use TCP Connection & Json Payload
315
316
317 === 2.2.1 General Json Format(Type~=5) ===
318
319
320 This is the General Json Format. As below:
321
322 (% style="color:#4472c4" %)**{"IMEI":"863663062798914","Model":"S31x-NB","temperature":24.9,"humidity":51.8,"interrupt":0,"interrupt_level":0,"battery":3.35,"signal":17,"1":[0.0,0.0,"2024/05/29 05:51:27"],"2":[24.3,70.5,"2024/05/29 05:50:27"],"3":[24.3,70.5,"2024/05/29 05:49:27"],"4":[24.3,71.1,"2024/05/29 05:48:27"],"5":[24.2,70.3,"2024/05/29 05:47:27"],"6":[24.2,70.5,"2024/05/29 05:46:27"],"7":[24.1,71.6,"2024/05/29 05:43:58"],"8":[24.1,71.7,"2024/05/29 05:42:58"]}**
323
324
325 (% style="color:red" %)**Notice, from above payload:**
326
327 * Temperature, Humidity, Interrupt, Interrupt_level, Battery & Signal are the value at uplink time.
328
329 * Json entry 1 ~~ 8 are the last 1 ~~ 8 sampling data as specify by (% style="color:#037691" %)**AT+CLOCKLOG=1,65535,15,8 ** (%%)Command. Each entry includes (from left to right): Temperature, Humidity, Sampling time.
330
331 Example:
332
333 [[image:image-20240531153921-1.png||height="730" width="949"]]
334
335
336
337 === 2.2.2 HEX format Payload(Type~=0) ===
338
339
340 This is the HEX Format. As below:
341
342 (% style="color:#4472c4" %)**f863663062798914007b0d021101Ffff000000000000f7020a6656c43300f902056656c3df000000006656c25f00f302c16656c22300f302c16656c1e700f302c76656c1ab00f202bf6656c16f00f202c16656c13300f102cc6656c09e**
343
344 [[image:image-20240531155440-2.png]]
345
346 [[image:image-20240531155507-3.png||height="756" width="981"]]
347
348 (% style="color:blue" %)**Version:**
349
350 These bytes include the hardware and software version.
351
352 (% style="color:#037691" %)**Higher byte:**(%%) Specify Sensor Model: 0x00 for S31B-NB & S31-NB
353
354 (% style="color:#037691" %)**Lower byte:**(%%) Specify the software version: 0x7b=123, means firmware version 1.2.3
355
356
357 (% style="color:blue" %)**BAT (Battery Info):**
358
359 Ex1: 0x0CBA = 3258mV
360
361
362 (% style="color:blue" %)**Signal Strength:**
363
364 NB-IoT Network signal Strength.
365
366 **Ex1: 0x16 = 22**
367
368 **0**  -113dBm or less
369
370 **1**  -111dBm
371
372 **2...30** -109dBm... -53dBm
373
374 **31**   -51dBm or greater
375
376 **99**    Not known or not detectable
377
378
379 (% style="color:blue" %)**DS18B20_Temperature:**
380
381 **Example:** 0x00de(H)= 222(D) =22.2℃
382
383 (% style="color:red" %)**Note:**(%%) If the DS18B20 sensor is not connected, the hex payload is **0xFFFF** and Serial port print: **-409.5 ° C.**
384
385
386 (% style="color:blue" %)**PA4_level:**
387
388 Level of PA4 pin. (0: Low level  1: High level)
389
390
391 (% style="color:blue" %)**Interrupt:**
392
393 This data field shows if this packet is generated by interrupt or not.
394
395 **Example:**
396
397 If byte[0]&0x01=0x00 : Normal uplink packet.
398
399 If byte[0]&0x01=0x01 : Interrupt Uplink Packet.
400
401
402 (% style="color:blue" %)**Interrupt_level:**
403
404 This byte shows whether the interrupt is triggered by a high or low level.
405
406 **Ex1:** 0x00  Interrupt triggered by falling edge (low level)
407
408 **Ex2: **0x01  Interrupt triggered by rising edge (high level)
409
410
411 (% style="color:blue" %)**Temperature: **
412
413 If payload is: 0105H:  (0105 & 8000 == 0), temp = 0105H /10 = 26.1 degree
414
415 If payload is: FF3FH :  (FF3F & 8000 == 1) , temp = (FF3FH - 65536)/10 = -19.3 degrees.
416
417 (FF3F & 8000: Judge whether the highest bit is 1, when the highest bit is 1, it is negative)
418
419
420 (% style="color:blue" %)**Humidity:   **
421
422 Read:0295(H)=661(D)    Value:  661 / 10=66.1, So 66.1%
423
424
425 (% style="color:blue" %)**TimeStamp:   **
426
427 Unit TimeStamp Example: 64d49439(H) = 1691653177(D)
428
429 Put the decimal value into this link(https:~/~/www.epochconverter.com/) to get the time.
430
431
432 === 2.2.3 ThingsBoard Payload(Type~=3) ===
433
434
435 Type3 payload special design for ThingsBoard, it will also configure other default server to ThingsBoard.
436
437 (% style="color:#4472c4" %)**{
438 "topic": "2276492",
439 "payload": {
440 "IMEI": "863663062798914",
441 "Model": "S31x-NB",
442 "temperature": 26.0,
443 "humidity": 70.8,
444 "interrupt": 0,
445 "interrupt_level": 0,
446 "battery": 3.36,
447 "signal": 21,
448 "1": [204.8, 10.0, "2024/05/30 10:19:53"],
449 "2": [204.8, 10.0, "2024/05/30 10:19:18"],
450 "3": [204.8, 10.0, "2024/05/30 10:17:53"],
451 "4": [204.8, 10.0, "2024/05/30 10:16:53"],
452 "5": [204.8, 10.0, "2024/05/30 10:16:28"],
453 "6": [204.8, 10.0, "2024/05/30 10:14:53"],
454 "7": [204.8, 10.0, "2024/05/30 10:13:53"],
455 "8": [204.8, 10.0, "2024/05/30 10:12:53"]
456 }
457 }**
458
459 [[image:image-20240531171441-4.png||height="559" width="1179"]]
460
461 === 2.2.4 ThingSpeak Payload(Type~=1) ===
462
463
464 This payload meets ThingSpeak platform requirement. It includes only four fields. Form 1~~4 are:
465
466 Temperature, Humidity, Battery & Signal. This payload type only valid for ThingsSpeak Platform
467
468 As below:
469
470 (% style="color:#4472c4" %)**field1=Tem&field2=Hum&field3=BatV&field4=Singal**
471
472 [[image:image-20240531171506-5.png]]
473
474
475 == 2.3 Test Uplink and Change Update Interval ==
476
477
478 By default, Sensor will send uplinks (% style="color:blue" %)**every 2 hours**(%%)
479
480 User can use below commands to change the (% style="color:blue" %)**uplink interval**.
481
482 (% style="color:#037691" %)**AT+TDC=7200 ** (%%) ~/~/ Set Update Interval to 7200s
483
484 User can also push the button for more than 1 seconds to activate an uplink.
485
486
487 == 2.4 Multi-Samplings and One uplink ==
488
489 (% style="color:red" %)Notice: The AT+NOUD feature is upgraded to Clock Logging, please refer [[Clock Logging Feature>>||anchor="H2.7Clocklogging28Sincefirmwareversionv1.2.129"]]
490
491 To save battery life, S31-NB will sample temperature & humidity data every 15 minutes and send one uplink every 2 hours. So each uplink it will include 8 stored data + 1 real-time data. They are defined by:
492
493 * (% style="color:#037691" %)**AT+TR=900**   (%%) ~/~/ The unit is seconds, and the default is to record data once every 900 seconds (15 minutes, the minimum can be set to 180 seconds)
494
495 * (% style="color:#037691" %)**AT+NOUD=8**     (%%)~/~/  The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
496
497 The diagram below explains the relationship between TR, NOUD, and TDC more clearly:
498
499 [[image:1692424376354-959.png]]
500
501
502 == 2.5 Humidity and Temperature alarm function ==
503
504
505 On each sampling define by AT+TR ( default 900s or 15 minutes), when the value exceed the range, it will trigger an Alarm and immediately sends a uplink.
506
507
508 (% style="color:blue" %)**AT Commands:**
509
510 (% style="color:#037691" %)**AT+ SHHUM=min,max**
511
512 Example: AT+ SHHUM=50,80  ~/~/ Alarm when humidity lower than 50 or higher than 80.
513
514
515 (% style="color:#037691" %)**AT+ SHTEMP=min,max**
516
517 Example: AT+ SHTEMP=20,30  ~/~/ Alarm when temperature lower than 20 or higher than 30
518
519
520 (% style="color:red" %)**Notice:**
521
522 * To disable Alarm, user can set min and max to same value , such as (% style="color:#037691" %)**AT+SHTEMP=0,0.**
523
524 * If user only want to send only min or max, user can set the alarm to a value that device won’t reach. For example: (% style="color:#037691" %)**AT+SHTEMP=-80,0.**
525
526 == 2.6 Trggier an uplink by external interrupt ==
527
528
529 S31-NB has an external trigger interrupt function. Users can use the PB15 pin to trigger the upload of data packets.
530
531 (% style="color:blue" %)**AT command:**
532
533 * (% style="color:#037691" %)**AT+INTMOD **(%%) ~/~/ Set the trigger interrupt mode
534
535 * (% style="color:#037691" %)**AT+INTMOD=0 **(%%) ~/~/ Disable Interrupt
536
537 * (% style="color:#037691" %)**AT+INTMOD=1 **(%%) ~/~/ Trigger by rising and falling edge
538
539 * (% style="color:#037691" %)**AT+INTMOD=2 **(%%) ~/~/ Trigger by falling edge
540
541 * (% style="color:#037691" %)**AT+INTMOD=3  **(%%) ~/~/ Trigger by rising edge
542
543 == 2.7 Clock logging (Since firmware version v1.2.1) ==
544
545
546 Sometimes when we deploy lots of end nodes in field. We want all sensors sample data at the same time, and upload these data together for analyze. In such case, we can use clock loging feature.
547
548 We can use this command to set the start time of data recording and the time interval to meet the requirements of the specific collection time of data.
549
550 * (% style="color:blue" %)**AT command:**(%%)** (% style="color:#037691" %)AT+CLOCKLOG=a,b,c,d(%%)**
551
552 (% style="color:#037691" %)**a: **(%%)**0:** Disable Clock logging.  ** 1: **Enable Clock Logging
553
554 (% style="color:#037691" %)**b:**(%%)** **Specify First sampling start second: range **(0 ~~ 3599, 65535)   ** ~/~/ (% style="color:red" %)**Note: **(%%)If parameter b is set to 65535, the log period starts after the node accesses the network and sends packets.
555
556 (% style="color:#037691" %)**c: **(%%)Specify the sampling interval: range **(0 ~~ 255 minutes)**
557
558 (% style="color:#037691" %)**d:**(%%)** **How many entries should be uplink on every TDC **(max 32)**
559
560 (% style="color:red" %)**Note: To disable clock recording, set the following parameters: AT+CLOCKLOG=1,65535,0,0**
561
562 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SPH01-NB_NB-IoT_Soil_pH_Sensor_User_Manual/WebHome/image-20240315141254-1.png?rev=1.1||alt="image-20240315141254-1.png"]]
563
564 **Example:**
565
566 **AT+CLOCKLOG=1,65535,1,5**
567
568 After the node sends the first packet, data is recorded to the memory at intervals of 1 minute. For each TDC uplink, the uplink load will include: battery information + the last 5 memory records (payload + timestamp).
569
570 (% class="wikigeneratedid" %)
571 [[image:image-20240316172630-1.png||height="452" width="1127"]]
572
573 (% class="wikigeneratedid" %)
574 (% style="color:red" %)**Note: Users need to synchronize the server time before configuring this command. If the server time is not synchronized before this command is configured, the command takes effect only after the node is reset.**
575
576
577 * (% style="color:blue" %)**Downlink command:**(%%)** (% style="color:#037691" %)0x0A(%%)**
578
579 Format: Command Code (0x0A) followed by 5 bytes.
580
581 * **Example 1**: Downlink Payload:** 0A01FFFF0F08**  ~/~/ Set SHT record time: AT+CLOCKLOG=1,65535,15,8
582 * **Example 1**: Downlink Payload:** 0A0104B00F08**  ~/~/ Set SHT record time: AT+CLOCKLOG=1,1200,15,8
583
584 (% style="color:red" %)**Note: When entering the downlink payload, there must be no Spaces between bytes.**(%%)
585
586
587 === Poll sensor value ===
588
589
590 User can poll sensor value based on timestamps from the server. Below is the downlink command.
591
592 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:330px" %)
593 |=(% style="width: 63px; background-color: rgb(79, 129, 189); color: white;" %)**1 byte**|=(% style="width: 129px; background-color: rgb(79, 129, 189); color: white;" %)**4 bytes**|=(% style="width: 131px; background-color: rgb(79, 129, 189); color: white;" %)**4 bytes**
594 |(% style="width:63px" %)31|(% style="width:129px" %)Timestamp start|(% style="width:131px" %)Timestamp end
595
596 Timestamp start and Timestamp end use Unix TimeStamp format as mentioned above. Devices will reply with all data log during this time period.
597
598 For example, downlink command **31 66DE 6384 66DE 7194**
599
600 Is to check 2024/9/9 02:55:00 to 2024/9/9 03:55:00's data
601
602
603 ==== Datalog Uplink payload ====
604
605
606 The Datalog poll reply uplink will use below payload format.
607
608 **Retrieval data payload:**
609
610 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:460px" %)
611 |=(% style="width: 63px; background-color: rgb(79, 129, 189); color: white;" %)**Size(bytes)**|=(% style="width: 128px; background-color: rgb(79, 129, 189); color: white;" %)2|=(% style="width: 126px; background-color: rgb(79, 129, 189); color: white;" %)**2**|=(% style="width: 109px; background-color: rgb(79, 129, 189); color: white;" %)2
612 |(% style="width:63px" %)value|(% style="width:128px" %)Hum|(% style="width:126px" %)Temp|(% style="width:109px" %)Timestamp
613
614 (% style="color:blue" %)**Function Description: **(%%)This feature is only used when the clock logging feature is turned on. one uplink packet can send **64** groups of stored data totaling **512** bytes.
615
616 (% style="color:blue" %)**Example(For MQTT.fx):**
617
618 If user sends below downlink command:
619
620 Where : Start time: 60065F97 = time 24/9/9 02:55:00
621
622 Stop time: 66DE6A8C= time 24/9/9 03:25:00
623
624 **S31x-NB will uplink this payload.**
625
626 [[image:image-20240909163051-1.png||height="463" width="641"]]
627
628 0x0100024966de638b 0100024866de63c7 00ff024d66de6403 00ff024b66de643f 00ff024666de647b 0100024b66de64b7 00ff024f66de64f3 00ff024566de652f
629
630 [[image:image-20240909165436-4.png]]
631
632 Temp=0x0100/10=25.6℃
633
634 Hum=0x0249/10=58.5%rh
635
636 Unix time is 0x66de638b =1725850507s=24/9/9 02:55:00
637
638
639 == 2.8 Example Query saved historical records ==
640
641
642 * (% style="color:blue" %)**AT command:**(%%)** (% style="color:#037691" %)AT+CDP(%%)**
643
644 This command can be used to search the saved history, recording up to 32 groups of data, each group of historical data contains a maximum of 100 bytes.
645
646 (% class="wikigeneratedid" %)
647 [[image:image-20240316172700-2.png||height="610" width="791"]]
648
649
650 == 2.9 Uplink log query ==
651
652
653 * (% style="color:blue" %)**AT command:**(%%)** (% style="color:#037691" %)AT+GETLOG(%%)**
654
655 This command can be used to query upstream logs of data packets.
656
657 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/PS-NB-NA_NB-IoT_Analog_Sensor_User_Manual/WebHome/image-20240407191922-2.png?width=903&height=631&rev=1.1||alt="image-20240407191922-2.png" height="539" width="771"]]
658
659
660 == 2.10 Scheduled domain name resolution ==
661
662
663 This command is used to set up scheduled domain name resolution
664
665 (% style="color:blue" %)**AT command:**
666
667 * (% style="color:#037691" %)**AT+DNSTIMER=XX**(%%)**  **~/~/ Unit: hour
668
669 After setting this command, domain name resolution will be performed regularly.
670
671
672 == 2.11 Set the QoS level ==
673
674 This command is used to set the QoS level of **MQTT**.
675
676 (% style="color:blue" %)**AT command:**
677
678 * (% style="color:#037691" %)**AT+MQOS=xx**(%%)**   **~/~/ 0~~2
679
680 (% style="color:blue" %)**Downlink command:**(%%)** (% style="color:#037691" %)0x07(%%)**
681
682 Format: Command Code (0x07) followed by 1 byte.
683
684 **Ex1:** Downlink payload: **0x0700**  ~/~/AT+MQOS=0
685
686 **Ex2:** Downlink payload: **0x0701**  ~/~/AT+MQOS=1
687
688
689 == 2.12  Set CoAP option ==
690
691 This command sets the connection parameters of the COAP.
692
693 (% style="color:blue" %)**AT command:**
694
695 * AT+URI1       ~/~/CoAP option name, CoAP option length, "CoAP option value"
696 * AT+URI2      ~/~/CoAP option name, CoAP option length,  "CoAP option value"
697 * AT+URI3     ~/~/CoAP option name, CoAP option length,  "CoAP option value"
698 * AT+URI4     ~/~/CoAP option name, CoAP option length,  "CoAP option value"
699
700 **Example:**
701
702 * AT+URI1=11,38,"i/faaa241f-af4a-b780-4468-c671bb574858"
703
704 == 2.13 Print last few data entries ==
705
706 Feature: Print the last few data entries
707
708 (% style="color:blue" %)**AT command: AT+PLDTA**
709
710 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
711 |=(% style="width: 148px; background-color: rgb(79, 129, 189); color: white;" %)**Command Example**|=(% style="width: 169px; background-color: rgb(79, 129, 189); color: white;" %)**4 bytes**
712 |(% style="width:148px" %)AT+PLDTA=5
713 Print last 5 entries|(% style="width:169px" %)(((
714 Stop Tx events when read sensor data
715
716 1 24/9/9 09:02:12 temp=25.4 hum=65.9
717
718 2 24/9/9 09:03:12 temp=25.4 hum=64.4
719
720 3 24/9/9 09:04:12 temp=25.3 hum=63.8
721
722 4 24/9/9 09:05:12 temp=25.4 hum=63.8
723
724 5 24/9/9 09:06:15 temp=25.4 hum=62.6
725
726 Start Tx events
727
728
729 OK
730 )))
731
732 (% style="color:blue" %)**Downlink Command: **
733
734 No downlink commands for feature
735
736
737 == 2.14 Print data entries base on page ==
738
739 Feature: Print the sector data from start page to stop page.
740
741 (% style="color:blue" %)**AT command: AT+PDTA**
742
743 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
744 |=(% style="width: 148px; background-color: rgb(79, 129, 189); color: white;" %)**Command Example**|=(% style="width: 169px; background-color: rgb(79, 129, 189); color: white;" %)**4 bytes**
745 |(% style="width:148px" %)AT+PDTA=1,1
746 Print page 1 to 1|(% style="width:169px" %)(((
747 Stop Tx events when read sensor data
748
749 8028A00 24/9/9 02:55:07 temp=25.6 hum=58.5
750
751 8028A08 24/9/9 02:56:07 temp=25.6 hum=58.4
752
753 8028A10 24/9/9 02:57:07 temp=25.5 hum=58.9
754
755 8028A18 24/9/9 02:58:07 temp=25.5 hum=58.7
756
757 8028A20 24/9/9 02:59:07 temp=25.5 hum=58.2
758
759 8028A28 24/9/9 03:00:07 temp=25.6 hum=58.7
760
761 8028A30 24/9/9 03:01:07 temp=25.5 hum=59.1
762
763 8028A38 24/9/9 03:02:07 temp=25.5 hum=58.1
764
765 8028A40 24/9/9 03:03:07 temp=25.5 hum=57.7
766
767 8028A48 24/9/9 03:04:07 temp=25.5 hum=57.6
768
769 8028A50 24/9/9 03:05:07 temp=25.4 hum=59.3
770
771 8028A58 24/9/9 03:06:07 temp=25.4 hum=58.7
772
773 8028A60 24/9/9 03:07:07 temp=25.3 hum=58.3
774
775 8028A68 24/9/9 03:08:07 temp=25.3 hum=58.9
776
777 8028A70 24/9/9 03:09:07 temp=25.4 hum=59.1
778
779 8028A78 24/9/9 03:10:07 temp=25.4 hum=60.0
780
781 Start Tx events
782
783 OK
784 )))
785
786 (% style="color:blue" %)**Downlink Command: **
787
788 No downlink commands for feature
789
790
791 == 2.15 Clear Flash Record ==
792
793 Feature: Clear flash storage for data log feature.
794
795 (% style="color:blue" %)**AT command: AT+CLRDTA**
796
797 (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %)
798 |=(% style="width: 153px; background-color: rgb(79, 129, 189); color: white;" %)**Command Example**|=(% style="width: 139px; background-color: rgb(79, 129, 189); color: white;" %)**Function**|=(% style="width: 213px; background-color: rgb(79, 129, 189); color: white;" %)**Response**
799 |(% style="width:153px" %)AT+CLRDTA |(% style="width:139px" %)(((
800 Clear date record
801 )))|(% style="width:213px" %)(((
802 Stop Tx events,Please wait for the erase to complete
803
804 Clear all stored sensor data...
805
806 Start Tx events
807
808 OK
809 )))
810
811 (% style="color:blue" %)**Downlink Command:  0x32**
812
813 * Example: 0x32 00   ~/~/  Same as AT+CLRDTA
814
815
816 = 3. Configure S31x-NB =
817
818 == 3.1 Configure Methods ==
819
820
821 S31x-NB supports below configure method:
822
823 * AT Command via Bluetooth Connection (**Recommended**): [[BLE Configure Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]].
824
825 * 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]].
826
827 == 3.2  Serial Access Password ==
828
829
830 After the Bluetooth or UART connection is successful, use the Serial Access Password to enter the AT command window.
831
832 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.
833
834 [[image:image-20240826165238-3.png]]
835
836
837 If you need to change the password, use **AT+PWORD=**xxxxxx (6 characters), NB nodes only support lowercase letters.
838
839 [[image:image-20240826165233-2.png]]
840
841
842 (% 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.**
843
844 [[image:image-20240826165228-1.png]]
845
846
847 == 3.3 AT Commands Set ==
848
849
850 AT+<CMD>?        : Help on <CMD>
851
852 AT+<CMD>         : Run <CMD>
853
854 AT+<CMD>=<value> : Set the value
855
856 AT+<CMD>=?       : Get the value
857
858
859 (% style="color:blue" %)**General Commands**      
860
861 AT                    : Attention       
862
863 AT?  : Short Help     
864
865 ATZ  : MCU Reset    
866
867 AT+TDC  : Application Data Transmission Interval
868
869 AT+CFG  : Print all configurations
870
871 AT+CFGMOD           : Working mode selection
872
873 AT+DEUI  : Get or set the Device ID
874
875 AT+INTMOD            : Set the trigger interrupt mode
876
877 AT+5VT           : Set extend the time of 5V power  
878
879 AT+PRO          : Choose agreement
880
881 AT+RXDL  : Extend the sending and receiving time
882
883 AT+DNSCFG  : Get or Set DNS Server
884
885 AT+GETSENSORVALUE   : Returns the current sensor measurement
886
887 AT+CLOCKLOG  : Get or set SHT record time
888
889 AT+CDP     : AT+CDP Read cached data/AT+CDP=0  Clear cached data
890
891 AT+SHTEMP:  Get or Set alarm of temp
892
893 AT+SHHUM:  Get or Set alarm of moisture
894
895 AT+SERVADDR :  Server Address
896
897
898 (% style="color:blue" %)**MQTT Management**
899
900 AT+CLIENT               : Get or Set MQTT client
901
902 AT+UNAME              : Get or Set MQTT Username
903
904 AT+PWD                  : Get or Set MQTT password
905
906 AT+PUBTOPIC  : Get or Set MQTT publish topic
907
908 AT+SUBTOPIC  : Get or Set MQTT subscription topic
909
910
911 (% style="color:blue" %)**Information**          
912
913 AT+FDR  : Factory Data Reset
914
915 AT+PWORD  : Serial Access Password
916
917 AT+LDATA  : Get the last upload data
918
919 AT+CDP  : AT+CDP Read cached data/AT+CDP=0  Clear cached data
920
921
922 (% style="color:blue" %)**COAP Management**
923
924 AT+URI1  : Get or set CoAP option 1
925
926 AT+URI2  : Get or set CoAP option 2
927
928 AT+URI3  : Get or set CoAP option 3
929
930 AT+URI4  : Get or set CoAP option 4
931
932
933 (% style="color:blue" %)**Print or clear historical data**
934
935 AT+PDTA  : Print the sector data from start page to stop page
936
937 AT+PLDTA  : Print the last few sets of data
938
939 AT+CLRDTA  : Clear the storage, record position back to 1st
940
941
942 = 4. Battery & Power Consumption =
943
944
945 S31x-NB use ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
946
947 [[**Battery Info & Power Consumption Analyze**>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
948
949
950 = 5. Firmware update =
951
952
953 User can change device firmware to::
954
955 * Update with new features.
956
957 * Fix bugs.
958
959 Firmware and changelog can be downloaded from : **[[Firmware download link>>https://www.dropbox.com/sh/fhb3uyl4gt6clru/AAAiZVTFcxrfE1JOOyfcgO9ha?dl=0]]**
960
961 Methods to Update Firmware:
962
963 * (Recommended way) OTA firmware update via BLE: [[**Instruction**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE_Firmware_Update_NB_Sensors_BC660K-GL/]].
964
965 * Update through UART TTL interface : **[[Instruction>>http://wiki.dragino.com/xwiki/bin/view/Main/UART_Access_for_NB_ST_BC660K-GL/#H4.2UpdateFirmware28Assumethedevicealreadyhaveabootloader29]]**.
966
967 = 6. FAQ =
968
969 == 6.1 How can I access t BC660K-GL AT Commands? ==
970
971
972 User can access to BC660K-GL directly and send AT Commands.
973
974 [[See BC660K-GL AT Command set>>url:https://www.dropbox.com/sh/5f6ssda5fum8rvs/AABT68l8ZzWOvZ5eg2qwOoFda?dl=0]]
975
976
977 = 7. Order Info =
978
979
980 Part Number: (% style="color:blue" %)**S31-NB-XX  / S31B-NB-XX**
981
982 (% style="color:red" %)**XX**(%%):
983
984 * (% style="color:#037691" %)**GE**(%%): General version ( Exclude SIM card)
985
986 * (% style="color:#037691" %)**1D**(%%): with 1NCE* 10 years 500MB SIM card and Pre-configure to DataCake server
987
988 (% style="color:#037691" %)**1NCE SIM Card NB-IoT network coverage**(%%): Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Finland, Germany, Great Britain, Greece, Hungary, Ireland, Italy, Latvia, Malta, Netherlands, Norway, Puerto Rico, Russia, Slovak , Republic, Slovenia, Spain, Sweden, Switzerland, Taiwan, USA, US Virgin Islands
989
990
991 = 8. ​Packing Info =
992
993
994 (% style="color:#037691" %)**Package Includes**:
995
996 * S31-NB or S31-NB NB-IoT Sensor Node x 1
997
998 * External antenna x 1
999
1000 (% style="color:#037691" %)**Dimension and weight**:
1001
1002 * Device Size: 13.0 x 5 x 4.5 cm
1003
1004 * Device Weight: 150g
1005
1006 * Package Size / pcs : 14.0 x 8x 5 cm
1007
1008 * Weight / pcs : 180g
1009
1010 = 9. Support =
1011
1012
1013 * 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.
1014
1015 * 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.cc>>mailto:Support@dragino.cc]].
1016
1017 (% style="display:none" %) (%%)