Version 136.1 by Bei Jinggeng on 2025/01/13 10:38

Show last authors
1 ​**Table of Contents:**
2
3 {{toc/}}
4
5
6
7
8
9
10 = 1. The use of this guideline =
11
12
13 This configure instruction is for Dragino NB-IoT models with -CB or -CS suffix, for example DDS75-CB. These models use the same NB-IoT Module **[[BG95-M2>>https://www.dropbox.com/sh/3ilyaswz4odgaru/AADR86cAgL9UGlmLuEH-UZgla?st=x1ry6v5j&dl=0]]** and has the same software structure. The have the same configure instruction to different IoT servers. Use can follow the instruction here to see how to configure to connect to those servers.
14
15
16 = 2. Attach Network =
17
18 == 2.1 General Configure to attach network ==
19
20
21 To attache end nodes to NB-IoT or LTE-M Network, You need to:
22
23 1. Get a NB-IoT or LTE-M SIM card from Service Provider. (Not the same as the SIM card we use in mobile phone)
24 1. Power Off End Node ( See below for the power off/on position)
25 1. Insert the SIM card to Sensor. ( See below for direction)
26 1. Power On End Node
27 1. [[Configure APN>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20configure%20APN%20in%20the%20node/]] in the sensor (AT+APN=<APN>), example AT+APN=iot.1nce.net
28
29 [[image:image-20240602220856-1.png]]
30
31
32 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20230808205045-1.png?width=438&height=293&rev=1.1||alt="image-20230808205045-1.png"]]
33
34
35 After doing above, the end nodes should be able to attach to NB-IoT network .
36
37 The -CB and -CS models support (% style="color:blue" %)**LTE Cat NB2 and LTE-M (CAT-M1)**(%%), with below frequency band: multiple frequency bands of
38
39 ~-~-(% style="color:blue" %)** CAT-NB2: B1/B2/B3/B4/B5/B8/B12/B13/B18/B19/B20/B25/B28/B66/B71/B85 **(%%).
40
41 ~-~-(% style="color:blue" %)** CAT-M1: B1/B2/B3/B4/B5/B8/B12/B13/B18/B19/B20/B25/B26/B27/B28/B66/B85 **(%%).
42
43 Make sure you use a the NB-IoT or LTE-M SIM card.
44
45 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1134px" %)
46 |(% style="background-color:#4f81bd; color:white; width:117px" %)**SIM Provider**|(% style="background-color:#4f81bd; color:white; width:151px" %)**AT+APN=**|(% style="background-color:#4f81bd; color:white; width:406px" %)**NB-IoT Coverage**|(% style="background-color:#4f81bd; color:white; width:351px" %)**LTE-M Coverage**|(% style="background-color:#4f81bd; color:white; width:120px" %)**Comments**
47 |(% style="width:117px" %)**[[1NCE>>https://1nce.com]]**|(% style="width:151px" %)iot.1nce.net|(% style="width:406px" %)(((
48 **[[Coverage Reference Link>>https://1nce.com/en-ap/1nce-connect]]**
49
50 Austria, Belgium, Bulgaria, China, Croatia, Czech Republic, Denmark, Estonia, Finland, Germany, Great Britain, Greece, Hungary, Ireland,Italy, Latvia, Malta, Netherlands, Norway, Portugal, Puerto Rico, Russia, Slovak,Republic, Slovenia, Spain, Sweden, Switzerland, Taiwan, USA, US Virgin Islands
51 )))|(% style="width:351px" %)(((
52 Argentina, Austria, Australia, Belgium, Canada, Denmark,Estonia, Finland, France, Germany, Great Britain, Hungary, Ireland, Japan,Jersey, Korea, Repiblic of, Latvia, Luxembourg, Mexico, Netherlands, New Zealand, Norway, Poland, Puerto Rico, Romania, Spain, Sweden, Switzerland,Taiwan, USA, US Virgin Islands.
53 )))|(% style="width:120px" %)UK: Band20
54 |(% style="width:117px" %)China Mobile|(% style="width:151px" %)No need configure|(% style="width:406px" %)China Mainland, HongKong|(% style="width:351px" %) |(% style="width:120px" %)
55 |(% style="width:117px" %)China Telecom|(% style="width:151px" %)ctnb|(% style="width:406px" %)China Mainland|(% style="width:351px" %) |(% style="width:120px" %)
56
57 (% class="wikigeneratedid" %)
58 cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
59
60 == 2.2 Speed Up Network Attach time ==
61
62
63 **BG95-M2** supports multi bands (% style="color:blue" %)**in NB-IoT and LTE-M. **(%%) It will search one by one and try to attach, this will take a lot of time and even cause attach fail and show **Signal Strenght:99**.
64
65 **Note:**Before using the NB module command, users need to power on the NB module. Run the AT+QSW command to turn on and off the NB module.Remember to shut down after using the NB module command, otherwise it will consume power.
66
67 Attache to 1NCE card for Australia use:
68
69 * AT+COPS=1,2,"50501",8 
70 * AT+QCFG="band",0,0x8000000,0x8000000,1
71
72 After connection is successful, user can use (% style="color:#037691" %)**AT+QENG="servingcell"**(%%) to check which band is actually in used.
73
74 AT+QENG="servingcell"
75 +QENG: "servingcell","NOCONN","eMTC","FD
76 D",505,01,90D2C0B,258,9410,28,5,5,901A,-112,-17,-80,10,27
77
78
79 See bands used for different provider:** [[NB-IoT Deployment , Bands, Operator list>>http://wiki.dragino.com/xwiki/bin/view/Main/NB-IoT%20Deployment%20%2C%20Bands%2C%20Operator%20list/]]**
80
81 === **1. Configure Frequency Band** ===
82
83 AT+QCFG="band"[,<GSM_bandval>,<eMTC_bandval>,<NB-IoT_bandval>[,<effect>]]
84
85 <GSM_bandval>:
86
87 0 No change 
88 0x1 EGSM900
89 0x2 DCS1800
90 0x4 GSM850 
91 0x8 PCS1900 
92 0xF All of the supported bands above
93
94 <eMTC_bandval>:
95
96 0 No change 
97 0x1  LTE B1
98 0x2  LTE B2 
99 0x4  LTE B3 
100 0x8  LTE B4 
101 0x10  LTE B5 
102 0x80  LTE B8 
103 0x800  LTE B12 
104 0x1000  LTE B13 
105 0x20000  LTE B18 
106 0x40000  LTE B19 
107 0x80000  LTE B20 
108 0x1000000  LTE B25 
109 0x2000000  LTE B26 
110 0x4000000  LTE B27 
111 0x8000000  LTE B28 
112 0x40000000  LTE B31 
113 0x20000000000000000  LTE B66 
114 0x800000000000000000  LTE B72 
115 0x1000000000000000000  LTE B73 
116 0x1000000000000000000000  LTE B85
117
118 <NB-IoT_bandval>:
119
120 0 No change 
121 0x1  LTE B1
122 0x2  LTE B2 
123 0x4  LTE B3 
124 0x8  LTE B4 
125 0x10  LTE B5 
126 0x80  LTE B8 
127 0x800  LTE B12 
128 0x1000  LTE B13 
129 0x20000  LTE B18 
130 0x40000  LTE B19 
131 0x80000  LTE B20 
132 0x1000000  LTE B25 
133 0x8000000  LTE B28 
134 0x40000000  LTE B31 
135 0x20000000000000000  LTE B66
136
137 0x400000000000000000  LTE B71
138 0x800000000000000000  LTE B72 
139 0x1000000000000000000  LTE B73 
140 0x1000000000000000000000  LTE B85
141
142 For example, setting the LTE-M network frequency band to 3.
143
144 AT+QCFG="band",0xF,0x4,0,1
145
146 When searching for all bands, the value of this command is set to:
147
148 AT+QCFG="band",0xF,0x100002000000000f0e189f,0x10004200000000090e189f,1
149
150
151 === **2. Configure search network sequence** ===
152
153 AT+QCFG="nwscanseq",<scanseq>,1
154
155 <scanseq>:
156
157 00 Automatic (eMTC → NB-IoT → GSM) 
158 01 GSM 
159 02 eMTC 
160 03 NB-IoT
161
162 AT+QCFG="nwscanseq",02,1  ~/~/Priority search for eMTC
163
164
165 === **3. Configure Network Category to be Searched for under LTE RAT** ===
166
167 AT+QCFG="iotopmode",mode,1
168
169 0 eMTC 
170 1 NB-IoT 
171 2 eMTC and NB-IoT
172
173
174 === **4. AT command to set frequency band and network category** ===
175
176 AT+QBAND=0x100002000000000f0e189f,0x10004200000000090e189f  ~/~/<eMTC_bandval>,<NB-IoT_bandval>
177
178 AT+IOTMOD=0  ~/~/ 0 eMTC  1 NB-IoT  2 eMTC and NB-IoT
179
180 **Example :**
181
182 Taking the use of 1nce cards in **the United States** as an example.
183
184 AT+APN=iot.1nce.net  ~/~/set APN
185
186 AT+QBAND=0x100180A,0  ~/~/ eMTC :Set frequency band B2,B4,B12,B13,B25  NB-IoT:No change
187
188 AT+IOTMOD=0  ~/~/ Set  eMTC Network
189
190 **Setting the above commands in the United States will greatly reduce the network search time of the NB module.**
191
192
193 = 3. Configure to connect to different servers =
194
195 == 3.1 General UDP Connection ==
196
197
198 The NB-IoT Sensor can send packet to server use UDP protocol.
199
200
201 === 3.1.1 Simulate UDP Connection by PC tool ===
202
203
204 We can use PC tool to simulate UDP connection to make sure server works ok.
205
206 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20230802112413-1.png?width=1024&height=468&rev=1.1||alt="image-20230802112413-1.png"]]
207
208
209 === 3.1.2 Configure NB-IoT Sensor ===
210
211 ==== 3.1.2.1 AT Commands ====
212
213
214 (% style="color:blue" %)**AT Commands:**
215
216 * (% style="color:#037691" %)**AT+PRO=2,0**  (%%) ~/~/ Set to use UDP protocol to uplink ,Payload Type select Hex payload
217
218 * (% style="color:#037691" %)**AT+SERVADDR=8.217.91.207,1999**  (%%) ~/~/ Set UDP server address and port
219
220 [[image:image-20240819102802-1.png]]
221
222
223 ==== 3.1.2.2 Uplink Example ====
224
225
226 [[image:image-20240819105418-8.png||height="611" width="1287"]]
227
228
229 == 3.2 General COAP Connection ==
230
231
232 The NB-IoT Sensor can send packet to server use COAP protocol.
233
234 Below are the commands.
235
236 (% style="color:blue" %)**AT Commands:**
237
238 * (% style="color:#037691" %)**AT+PRO=1,0**   (%%) ~/~/ Set to use COAP protocol to uplink, Payload Type select Hex payload.
239
240 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5683** (%%) ~/~/ Set COAP server address and port
241
242 * (% style="color:#037691" %)**AT+URI1=11,"i"**  (%%) ~/~/  Configure CoAP Message Options
243 * (% style="color:#037691" %)**AT+URI2=11,"aaa05e26-4d6d-f01b-660e-1d8de4a3bfe1"**    (%%) ~/~/ Configure CoAP Message Options
244
245 [[image:image-20240819103212-2.png]]
246
247
248 === 3.2.1 Uplink Example ===
249
250
251 [[image:image-20240819103909-4.png||height="453" width="955"]]
252
253
254 == 3.2 General MQTT Connection ==
255
256
257 The NB-IoT Sensor can send packet to server use MQTT protocol.
258
259 Below are the commands.
260
261 (% style="color:blue" %)**AT Commands:**
262
263 * (% style="color:#037691" %)**AT+PRO=3,0**   (%%) ~/~/ Set to use MQTT protocol to uplink, Payload Type select Hex payload.
264
265 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883**  (%%) ~/~/ Set MQTT server address and port
266
267 * (% style="color:#037691" %)**AT+CLIENT=CLIENT**     (%%) ~/~/ Set up the CLIENT of MQTT
268
269 * (% style="color:#037691" %)**AT+UNAME=UNAME**        (%%) ~/~/ Set the username of MQTT
270
271 * (% style="color:#037691" %)**AT+PWD=PWD**             (%%) ~/~/ Set the password of MQTT
272
273 * (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB**  (%%) ~/~/ Set the sending topic of MQTT
274
275 * (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB**  (%%) ~/~/ Set the subscription topic of MQTT
276
277 [[image:image-20240819105003-7.png||height="613" width="458"]]
278
279
280 [[image:image-20240819104942-6.png||height="702" width="974"]]
281
282 (% style="color:red" %)**Notice: MQTT protocol has a much higher power consumption compare with UDP/CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval.**
283
284
285 == 3.3 [[ThingSpeak>>url:https://thingspeak.com/]] (via MQTT) ==
286
287 === 3.3.1 Get MQTT Credentials ===
288
289
290 [[ThingSpeak>>url:https://thingspeak.com/]] connection uses MQTT Connection. So we need to get MQTT Credentials first. You need to point MQTT Devices to ThingSpeak Channel as well.
291
292 [[image:image-20240819173602-1.png||height="401" width="743"]]
293
294 [[image:image-20240819173706-3.png||height="595" width="597"]]
295
296
297 === 3.3.2 Simulate with MQTT.fx ===
298
299 ==== 3.3.2.1 Establish MQTT Connection ====
300
301
302 After we got MQTT Credentials, we can first simulate with PC tool MQTT.fx tool to see if the Credentials and settings are fine.
303
304 [[image:image-20240819173826-4.png||height="534" width="734"]]
305
306 * (% style="color:#037691" %)**Broker Address:**(%%) mqtt3.thingspeak.com
307
308 * (% style="color:#037691" %)**Broker Port:**(%%) 1883
309
310 * (% style="color:#037691" %)**Client ID:**(%%) <Your ThingSpeak MQTT ClientID>
311
312 * (% style="color:#037691" %)**User Name:**(%%) <Your ThingSpeak MQTT User Name>
313
314 * (% style="color:#037691" %)**Password:**(%%) <Your ThingSpeak MQTT Password>
315
316 ==== 3.3.2.2 Publish Data to ThingSpeak Channel ====
317
318
319 [[image:image-20240819174033-5.png]]
320
321 [[image:image-20240819174209-6.png]]
322
323 (% style="color:blue" %)**In MQTT.fx, we can publish below info:**
324
325 * (% style="color:#037691" %)**Topic:**(%%) channels/YOUR_CHANNEL_ID/publish
326
327 * (% style="color:#037691" %)**Payload:**(%%) field1=63&field2=67&status=MQTTPUBLISH
328
329 Where 63 and 67 are the value to be published to field1 & field2.
330
331 (% style="color:blue" %)**Result: **
332
333 [[image:image-20240819174314-7.png||height="469" width="785"]]
334
335
336 === 3.3.3 Configure NB-IoT Sensor for connection ===
337
338 ==== 3.3.3.1 AT Commands: ====
339
340
341 In the NB-IoT, we can run below commands so to publish the channels like MQTT.fx
342
343 * (% style="color:blue" %)**AT+PRO=3,1** (%%) ~/~/ Set to use ThingSpeak Server and Related Payload
344
345 * (% style="color:blue" %)**AT+CLIENT=<Your ThingSpeak MQTT ClientID>**
346
347 * (% style="color:blue" %)**AT+UNAME=<Your ThingSpeak MQTT User Name>**
348
349 * (% style="color:blue" %)**AT+PWD=<Your ThingSpeak MQTT Password>**
350
351 * (% style="color:blue" %)**AT+PUBTOPIC=<YOUR_CHANNEL_ID>**
352
353 * (% style="color:blue" %)**AT+SUBTOPIC=<YOUR_CHANNEL_ID>**
354
355 ==== 3.3.3.2 Uplink Examples ====
356
357
358 [[image:image-20240819174540-8.png]]
359
360 For SE01-NB
361
362 For DDS20-NB
363
364 For DDS45-NB
365
366 For DDS75-NB
367
368 For NMDS120-NB
369
370 For SPH01-NB
371
372 For NLM01-NB
373
374 For NMDS200-NB
375
376 For CPN01-NB
377
378 For DS03A-NB
379
380 For SN50V3-NB
381
382
383 ==== 3.3.3.3 Map fields to sensor value ====
384
385
386 When NB-IoT sensor upload to ThingSpeak. The payload already specify which fileds related to which sensor value. Use need to create fileds in Channels Settings. with name so to see the value correctly.
387
388 [[image:image-20240819174610-9.png]]
389
390 [[image:image-20240819174618-10.png]]
391
392 Below is the NB-IoT Product Table show the mapping.
393
394 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1353.82px" %)
395 |(% style="background-color:#4f81bd; width:143px" %) |(% style="background-color:#4f81bd; color:white; width:103px" %)Field1|(% style="background-color:#4f81bd; color:white; width:102px" %)Field2|(% style="background-color:#4f81bd; color:white; width:157px" %)Field3|(% style="background-color:#4f81bd; color:white; width:139px" %)Field4|(% style="background-color:#4f81bd; color:white; width:141px" %)Field5|(% style="background-color:#4f81bd; color:white; width:142px" %)Field6|(% style="background-color:#4f81bd; color:white; width:151px" %)Field7|(% style="background-color:#4f81bd; color:white; width:137px" %)Field8|(% style="background-color:#4f81bd; color:white; width:69px" %)Field9|(% style="background-color:#4f81bd; color:white; width:65px" %)Field10
396 |(% style="background-color:#4f81bd; color:white; width:143px" %)S31x-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)Battery|(% style="width:139px" %)RSSI|(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
397 |(% style="background-color:#4f81bd; color:white; width:143px" %)SE01-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)conduct|(% style="width:139px" %)dielectric_constant|(% style="width:141px" %)Battery|(% style="width:142px" %)RSSI|(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
398 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS20-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:139px" %) |(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
399 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS45-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:139px" %) |(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
400 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS75-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:139px" %) |(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
401 |(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS120-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:139px" %) |(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
402 |(% rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SPH01-NB|(% style="width:103px" %)ph|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:139px" %)RSSI|(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% colspan="1" rowspan="1" style="width:65px" %)
403 |(% style="background-color:#4f81bd; color:white; width:143px" %)NLM01-NB|(% style="width:103px" %)Humidity|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:139px" %)RSSI|(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
404 |(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS200-NB|(% style="width:103px" %)distance1|(% style="width:102px" %)distance2|(% style="width:157px" %)Battery|(% style="width:139px" %)RSSI|(% style="width:141px" %) |(% style="width:142px" %) |(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
405 |(% style="background-color:#4f81bd; color:white; width:143px" %)CPN01-NB|(% style="width:103px" %)alarm|(% style="width:102px" %)count|(% style="width:157px" %)door open duration|(% style="width:139px" %)calc flag|(% style="width:141px" %)Battery|(% style="width:142px" %)RSSI|(% style="width:151px" %) |(% style="width:137px" %) |(% style="width:69px" %) |(% style="width:65px" %)
406 |(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)DS03A-NB|(% colspan="1" rowspan="1" style="width:103px" %)level|(% colspan="1" rowspan="1" style="width:102px" %)alarm|(% colspan="1" rowspan="1" style="width:157px" %)pb14door open num|(% colspan="1" rowspan="1" style="width:139px" %)pb14 last open time|(% colspan="1" rowspan="1" style="width:141px" %)pb15 level status|(% colspan="1" rowspan="1" style="width:142px" %)pb15 alarm status|(% colspan="1" rowspan="1" style="width:151px" %)pb15 door open num|(% colspan="1" rowspan="1" style="width:137px" %)pb15 last open time|(% colspan="1" rowspan="1" style="width:69px" %)Battery|(% colspan="1" rowspan="1" style="width:65px" %)RSSI
407 |(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod1|(% colspan="1" rowspan="1" style="width:103px" %)mod|(% colspan="1" rowspan="1" style="width:102px" %)Battery|(% colspan="1" rowspan="1" style="width:157px" %)RSSI|(% colspan="1" rowspan="1" style="width:139px" %)DS18B20 Temp|(% colspan="1" rowspan="1" style="width:141px" %)exit_state/input PA4|(% colspan="1" rowspan="1" style="width:142px" %)adc0|(% colspan="1" rowspan="1" style="width:151px" %)Temperature |(% colspan="1" rowspan="1" style="width:137px" %)Humidity|(% colspan="1" rowspan="1" style="width:69px" %) |(% colspan="1" rowspan="1" style="width:65px" %)
408 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod2|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)DS18B20 Temp|(% colspan="1" style="width:141px" %)exit_state/input PA4|(% colspan="1" style="width:142px" %)adc0|(% colspan="1" style="width:151px" %)distance|(% colspan="1" style="width:137px" %) |(% colspan="1" style="width:69px" %) |(% colspan="1" style="width:65px" %)
409 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod3|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)adc0|(% colspan="1" style="width:141px" %)exit_state/input PA4|(% colspan="1" style="width:142px" %)adc1|(% colspan="1" style="width:151px" %)Temperature|(% colspan="1" style="width:137px" %)Humidity|(% colspan="1" style="width:69px" %)adc4|(% colspan="1" style="width:65px" %)
410 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod4|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)DS18B20 Temp|(% colspan="1" style="width:141px" %)adc0|(% colspan="1" style="width:142px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)DS18B20 Temp2|(% colspan="1" style="width:137px" %)DS18B20 Temp3|(% colspan="1" style="width:69px" %) |(% colspan="1" style="width:65px" %)
411 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod5|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)DS18B20 Temp|(% colspan="1" style="width:141px" %)adc0|(% colspan="1" style="width:142px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)Weight|(% colspan="1" style="width:137px" %) |(% colspan="1" style="width:69px" %) |(% colspan="1" style="width:65px" %)
412 |(% colspan="1" style="background-color:#4f81bd; color:white; width:143px" %)SN50V3-NB mod6|(% colspan="1" style="width:103px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:157px" %)RSSI|(% colspan="1" style="width:139px" %)count|(% colspan="1" style="width:141px" %) |(% colspan="1" style="width:142px" %) |(% colspan="1" style="width:151px" %) |(% colspan="1" style="width:137px" %) |(% colspan="1" style="width:69px" %) |(% colspan="1" style="width:65px" %)
413
414 == 3.4 [[Datacake>>https://datacake.co/]] ==
415
416 (% class="wikigeneratedid" %)
417 Dragino NB-IoT sensors has its template in **[[Datacake>>https://datacake.co/]]** Platform. There are two version for NB Sensor,
418
419 (% class="wikigeneratedid" %)
420 As example for S31B-CB. there are two versions: **S31B-CB-1D and S31B-CB-GE.**
421
422 * (% style="color:blue" %)**S31B-CB-1D**(%%): This version have pre-configure DataCake connection. User just need to Power on this device, it will auto connect send data to DataCake Server.
423
424 * (% style="color:blue" %)**S31B-CB-GE**(%%): This verson doesn't have pre-configure Datacake connection. User need to enter the AT Commands to connect to Datacake. See below for instruction.
425
426 === 3.4.1 For device Already has template ===
427
428 ==== 3.4.1.1 Create Device ====
429
430
431 (% style="color:blue" %)**Add Device**(%%) in DataCake.
432
433 [[image:image-20240820110003-1.png]]
434
435 [[image:image-20240820110017-2.png]]
436
437 (% style="color:blue" %)**Choose the correct model**(%%) from template.
438
439 [[image:image-20240820110031-3.png]]
440
441 (% style="color:blue" %)**Fill Device ID**(%%). The device ID needs to be filled in with IMEI, and a prefix of(% style="color:blue" %)** 'f' **(%%)needs to be added.
442
443 [[image:image-20240820110048-4.png]]
444
445 [[image:image-20240820110103-5.png]]
446
447 [[image:image-20240820110114-6.png]]
448
449
450 === 3.4.2 For Device already registered in DataCake before shipped ===
451
452 ==== 3.4.2.1 Scan QR Code to get the device info ====
453
454
455 Users can use their phones or computers to scan QR codes to obtain device data information.
456
457 [[image:image-20240820110129-7.png]]
458
459 [[image:image-20240820110218-9.png]]
460
461
462 ==== 3.4.2.2 Claim Device to User Account ====
463
464 By Default, the device is registered in Dragino's DataCake Account. User can Claim it to his account.
465
466
467 === 3.4.3 Manual Add Decoder in DataCake ( don't use the template in DataCake) ===
468
469
470 **Step1: Add a device**
471
472 [[image:image-20240820110235-10.png]][[image:image-20240129170024-1.png||height="330" width="900"]]
473
474
475 **Step2: Choose your device type,please select dragino NB-IOT device**
476
477 [[image:image-20240820110247-11.png]]
478
479
480 **Step3: Choose to create a new device**
481
482 [[image:image-20240820111016-12.png]]
483
484
485 **Step4: Fill in the device ID of your NB device**
486
487 [[image:image-20240820111101-13.png]]
488
489
490 **Step5: Please select your device plan according to your needs and complete the creation of the device**
491
492 [[image:image-20240820111113-14.png]]
493
494
495 **Step6: Please add the decoder at the payload decoder of the device configuration.**
496
497 **Decoder location:**[[dragino-end-node-decoder/Datacake-Dragino_NB at main · dragino/dragino-end-node-decoder (github.com)>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/Datacake-Dragino_NB]]
498
499 [[image:image-20240820111236-15.png]]
500
501 [[image:image-20240820111248-16.png]]
502
503
504 **Step7: Add the output of the decoder as a field**
505
506 [[image:image-20240820111259-17.png]]
507
508
509 **Step8: Customize the dashboard and use fields as parameters of the dashboard**
510
511 [[image:image-20240820111312-18.png]]
512
513 [[image:image-20240820111322-19.png]]
514
515 [[image:image-20240820111333-20.png]]
516
517
518 === 3.4.4 For device have not configured to connect to DataCake ===
519
520
521 (% class="lead" %)
522 Use AT command for connecting to DataCake
523
524 (% style="color:blue" %)**AT+PRO=2,0**
525
526 (% style="color:blue" %)**AT+SERVADDR=67.207.76.90,4445**
527
528
529 == 3.5 Node-Red (via MQTT) ==
530
531 === 3.5.1 Configure [[Node-Red>>http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/]] ===
532
533
534 Take S31-NB UDP protocol as an example.
535
536 Dragino provides input flow examples for the sensors.
537
538 User can download the required JSON file through Dragino Node-RED input flow template.
539
540 Download sample JSON file link: [[https:~~/~~/www.dropbox.com/sh/mduw85jcuwsua22/AAAvwPhg9z6dLjJhmZjqBf_ma?dl=0>>url:https://www.dropbox.com/sh/mduw85jcuwsua22/AAAvwPhg9z6dLjJhmZjqBf_ma?dl=0]]
541
542 We can directly import the template.
543
544 The templates for S31-NB and NB95S31B are the same.
545
546 [[image:image-20240820111353-21.png]]
547
548 Please select the NB95S31B template.
549
550 [[image:image-20240820111405-22.png]]
551
552 [[image:image-20240820111418-23.png]]
553
554 [[image:image-20240820111427-24.png]]
555
556 Successfully imported template.
557
558 [[image:image-20240820111438-25.png]]
559
560 Users can set UDP port.
561
562 [[image:image-20240820111448-26.png]]
563
564
565 === 3.5.2 Simulate Connection ===
566
567
568 We have completed the configuration of UDP. We can try sending packets to node red.
569
570 [[image:image-20240820111504-27.png]]
571
572 [[image:image-20240820111515-28.png]]
573
574
575 === 3.5.3 Configure NB-IoT Sensors ===
576
577
578 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%) **~/~/ hex format or json format**
579 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>or User Defined**
580 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>or User Defined**
581 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
582 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
583 * (% style="color:#037691" %)**AT+PWD=“Your device token”**
584
585 == 3.6 ThingsBoard.Cloud (via MQTT) ==
586
587 === 3.6.1 Configure ThingsBoard ===
588
589 ==== 3.6.1.1 Create Device ====
590
591
592 Create a New Device in [[ThingsBoard>>url:https://thingsboard.cloud/]]. Record Device Name which is used for MQTT connection.
593
594 [[image:image-20240820112210-29.png]]
595
596
597 ==== 3.6.1.2 Create Uplink & Downlink Converter ====
598
599
600 (% style="color:blue" %)**Uplink Converter**
601
602 The purpose of the decoder function is to parse the incoming data and metadata to a format that ThingsBoard can consume. deviceName and deviceType are required, while attributes and telemetry are optional. Attributes and telemetry are flat key-value objects. Nested objects are not supported.
603
604 To create an uplink converter go to the (% style="color:blue" %)**Integrations center**(%%) -> (% style="color:blue" %)**Data converters**(%%) page and click (% style="color:blue" %)**“plus”** (%%)button. Name it (% style="color:blue" %)**“MQTT Uplink Converter”**(%%) and select type (% style="color:blue" %)"**Uplink"**(%%). Use debug mode for now.
605
606 [[image:image-20240820112222-30.png]]
607
608 (% style="color:blue" %)**Downlink Converter**
609
610 The Downlink converter transforming outgoing RPC message and then the Integration sends it to external MQTT broke
611
612 [[image:image-20240820112236-31.png]]
613
614 (% style="color:red" %)**Note: Our device payload is already human readable data. Therefore, users do not need to write decoders. Simply create by default.**
615
616
617 ==== 3.6.1.3 MQTT Integration Setup ====
618
619
620 Go to the (% style="color:blue" %)**Integrations center**(%%) **->** (% style="color:blue" %)**Integrations page**(%%) and click **“(% style="color:blue" %)plus(%%)”** icon to add a new integration. Name it (% style="color:blue" %)**“MQTT Integration”**(%%), select type (% style="color:blue" %)**MQTT**;
621
622 [[image:image-20240820112247-32.png]]
623
624 * The next steps is to add the recently created uplink and downlink converters;
625
626 [[image:image-20240820112302-33.png]]
627
628 [[image:image-20240820112316-34.png]]
629
630 (% style="color:blue" %)**Add a topic filter:**
631
632 Consistent with the theme of the node setting.
633
634 You can also select an MQTT QoS level. We use MQTT QoS level 0 (At most once) by default;
635
636 [[image:image-20240820112330-35.png]]
637
638
639 === 3.6.2 Simulate with MQTT.fx ===
640
641 [[image:image-20240820112340-36.png]]
642
643 [[image:image-20240820112351-37.png]]
644
645
646 === 3.6.3 Configure NB-IoT Sensor ===
647
648
649 (% style="color:blue" %)**AT Commands**
650
651 * (% style="color:#037691" %)**AT+PRO=3,3  **(%%)** **~/~/ Use MQTT to connect to ThingsBoard. Payload Type set to 3.
652
653 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>**
654
655 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>**
656
657 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
658
659 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
660
661 * (% style="color:#037691" %)**AT+PWD=<device name> or User Defined**
662
663 Test Uplink by click the button for 1 second
664
665 [[image:image-20240820112404-38.png]]
666
667 [[image:image-20240820112416-39.png]]
668
669 [[image:image-20240820112426-40.png]]
670
671
672
673 == 3.7 ThingsBoard.Cloud (via COAP) ==
674
675 === 3.7.1 Configure ThingsBoard ===
676
677 ==== 3.7.1.1 Create Uplink & Downlink Converter ====
678
679
680 (% style="color:blue" %)**Uplink Converter**
681
682 The purpose of the decoder function is to parse the incoming data and metadata to a format that ThingsBoard can consume. deviceName and deviceType are required, while attributes and telemetry are optional. Attributes and telemetry are flat key-value objects. Nested objects are not supported.
683
684 To create an uplink converter go to the (% style="color:blue" %)**Integrations center**(%%) -> (% style="color:blue" %)**Data converters**(%%) page and click (% style="color:blue" %)**“plus”** (%%)button. Name it (% style="color:blue" %)**“COAP Uplink Converter”**(%%) and select type (% style="color:blue" %)"**Uplink"**(%%). Use debug mode for now.
685
686 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20240729141300-1.png?width=1115&height=552&rev=1.1||alt="image-20240729141300-1.png" height="579" width="1168"]]
687
688
689 (% style="color:blue" %)**Downlink Converter**
690
691 The Downlink converter transforming outgoing RPC message and then the Integration sends it to external COAP broker.
692
693 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20240729142505-3.png?width=1023&height=507&rev=1.1||alt="image-20240729142505-3.png" height="579" width="1168"]]
694
695
696 ==== 3.7.1.2 COAP Integration Setup ====
697
698
699 Go to the (% style="color:blue" %)**Integrations center**(%%) **->** (% style="color:blue" %)**Integrations page**(%%) and click **“(% style="color:blue" %)plus(%%)”** icon to add a new integration. Name it (% style="color:blue" %)**“CoAP Integration”**(%%), select type **COAP    **(% style="color:blue" %);
700
701 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20240729144058-4.png?width=1021&height=506&rev=1.1||alt="image-20240729144058-4.png" height="583" width="1176"]]
702
703
704 The next steps is to add the recently created uplink converters;
705
706 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20240729150142-5.png?width=1023&height=507&rev=1.1||alt="image-20240729150142-5.png" height="591" width="1193"]]
707
708
709 ==== 3.7.1.3 Add COAP Integration ====
710
711 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20240729161543-9.png?width=1009&height=500&rev=1.1||alt="image-20240729161543-9.png" height="590" width="1191"]]
712
713
714 === 3.7.2 Node Configuration(Example: Connecting to the Thingsboard platform) ===
715
716 ==== 3.7.2.1 Instruction Description ====
717
718
719 * AT+PRO=1,0(HEX format uplink)  &AT+PRO=1,5(JSON format uplink)
720 * AT+SERVADDR=COAP Server Address,5683
721
722 Example: AT+SERVADDR=int.thingsboard.cloud,5683(The address is automatically generated when the COAP integration is created)
723
724 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20240729172305-12.png?width=624&height=361&rev=1.1||alt="image-20240729172305-12.png" height="417" width="721"]]
725
726 Note:The port for the COAP protocol has been fixed to 5683
727
728
729 * AT+URL1=11,"i"
730 * AT+URL2=11,"Needs to be consistent with the CoAP endpoint URL in the platform"
731 *
732
733 -CB devices using a (% style="color:red" %)**BG95-M2**(%%) module, you need to configure (% style="color:red" %)**TWO**(%%) URL commands,
734
735 e.g.
736
737 * AT+URL1=11, "i"
738 * AT+URL2=11,"faaaa241f-af4a-b780-4468-c671bb574858"
739
740 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/General%20Configure%20to%20Connect%20to%20IoT%20server%20for%20-NB%20%26%20-NS%20NB-IoT%20models/WebHome/image-20240729172500-14.png?width=700&height=403&rev=1.1||alt="image-20240729172500-14.png" height="413" width="718"]]
741
742
743 == 3.8 [[Tago.io>>url:https://admin.tago.io/]] (via MQTT) ==
744
745 === 3.8.1 Create device & Get Credentials ===
746
747
748 We use MQTT Connection to send data to [[Tago.io>>url:https://admin.tago.io/]]. We need to Create Device and Get MQTT Credentials first.
749
750 [[image:image-20240820112516-41.png]]
751
752 [[image:image-20240820112526-42.png]]
753
754 Go to the Device section and create a device. Then, go to the section tokens and copy your device-token.
755
756 [[image:image-20240820112539-43.png]]
757
758 The device needs to enable the TLS mode and set the (% style="color:blue" %)**AT+TLSMOD=1,0**(%%) command.
759
760 (% style="color:blue" %)**On the Connection Profile window, set the following information:**
761
762 * (% style="color:#037691" %)**Profile Name: “Any name”**
763
764 * (% style="color:#037691" %)**Broker Address: mqtt.tago.io**
765
766 * (% style="color:#037691" %)**Broker Port: 8883**
767
768 * (% style="color:#037691" %)**Client ID: “Any value”**
769
770 (% style="color:blue" %)**On the section User credentials, set the following information:**
771
772 * (% style="color:#037691" %)**User Name: “Any value”** (%%) **~/~/ Tago validates your user by the token only**
773
774 * (% style="color:#037691" %)**Password: “Your device token”**
775
776 * (% style="color:#037691" %)**PUBTOPIC: “Any value”**
777
778 * (% style="color:#037691" %)**SUBTOPIC: “Any value”**
779
780 (% style="color:blue" %)**AT command:**
781
782 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%) **~/~/ hex format or json format**
783
784 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>or User Defined**
785
786 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>or User Defined**
787
788 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
789
790 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
791
792 * (% style="color:#037691" %)**AT+PWD=“Your device token”**
793
794 === 3.8.2 Simulate with MQTT.fx ===
795
796
797 [[image:image-20240820112552-44.png]]
798
799 [[image:image-20240820112604-45.png]]
800
801 Users can run the (% style="color:blue" %)**AT+PRO=3,5**(%%) command, and the payload will be converted to **JSON format**.
802
803 [[image:image-20240820112615-46.png]]
804
805 [[image:image-20240820112626-47.png]]
806
807
808 === 3.8.3 tago data ===
809
810
811 [[image:image-20240820112637-48.png]]
812
813 [[image:image-20240820112647-49.png]]
814
815
816 == 3.9 TCP Connection ==
817
818
819 (% style="color:blue" %)**AT command:**
820
821 * (% style="color:#037691" %)**AT+PRO=4,0   ** (%%) ~/~/ Set to use TCP protocol to uplink(HEX format)
822
823 * (% style="color:#037691" %)**AT+PRO=4,5   ** (%%) ~/~/ Set to use TCP protocol to uplink(JSON format)
824
825 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5600 ** (%%) ~/~/ to set TCP server address and port
826
827 (% style="color:blue" %)**Sensor Console Output when Uplink:**
828
829 [[image:image-20240820112704-50.png]]
830
831 (% style="color:blue" %)**See result in TCP Server:**
832
833 [[image:image-20240820112716-51.png]]
834
835
836 == 3.10 AWS Connection ==
837
838
839 Users can refer to [[Dragino NB device connection to AWS platform instructions>>http://wiki.dragino.com/xwiki/bin/view/Dragino%20NB%20device%20connection%20to%20AWS%20platform%20instructions/#H1.LogintotheplatformandfindIoTcore]]
840
841
842 = 4. COAP/UDP/MQTT/TCP downlink =
843
844 == 4.1 MQTT (via MQTT.fx) ==
845
846
847 Configure MQTT connections properly and send downlink commands to configure nodes through the Publish function of MQTT.fx//.//
848
849 **1.** Configure node MQTT connection (via MQTT.fx):
850
851 (% style="color:blue" %)**AT command:**
852
853 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%)~/~/ hex format or json format
854
855 * (% style="color:#037691" %)**AT+SUBTOPIC=User Defined**
856
857 * (% style="color:#037691" %)**AT+PUBTOPIC=User Defined**
858
859 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
860
861 * (% style="color:#037691" %)**AT+PWD=<device name> or User Defined**
862
863 * (% style="color:#037691" %)**AT+SERVADDR=8.217.91.207,1883 ** (%%) ~/~/ to set MQTT server address and port
864
865 (% style="color:red" %)**Note: To uplink and downlink via MQTT.fx, we need set the publish topic and subscribe topic different, for example: AT+SUBTOPIC=SE01_SUB & AT+PUBTOPIC=SE01_PUB.**
866
867 [[image:image-20240820112732-52.png]][[image:image-20240820112758-53.png]]
868
869
870 **2. **When the node uplink packets, we can observe the data in MQTT.fx.
871
872 [[image:image-20240820112813-54.png]]
873
874
875 **3. **The downlink command can be successfully sent only when the downlink port is open.
876
877 The downlink port is opened for about 3 seconds after uplink packets are sent.
878
879 Therefore, when we see the node uplink packets in the **Subscribe** window, we need to immediately switch to the **publish** window to publish the **hex format** command.
880
881 [[image:image-20240820112824-55.png]]
882
883 [[image:image-20240820112835-56.png]]
884
885 (% style="color:red" %)**Note: Users can edit the hex command in advance. When the node uplink, directly click the publish button several times to increase the success rate of command configuration.**
886
887
888 == 4.2 UDP (via Thingseye) ==
889
890
891 (% style="color:red" %)**Note:**(%%) The UDP service on the ThingsEye platform needs to be built by the user. (Description Link:[[UDP service building instructions>>http://www.ithingsboard.com/docs/user-guide/integrations/udp/]])
892
893 After the node is successfully connected to the platform, you need to select the corresponding node (you can refer to the node's IMEI to find it)
894
895 [[image:image-20240820141843-2.png||height="546" width="821"]]
896
897 After clicking Show Node Details Page, (% style="color:blue" %)**Select Properties ~-~-- select Shared Properties ~-~-- click Add Properties**
898
899 [[image:image-20240820143316-3.png||height="555" width="1170"]]
900
901 After clicking Add Shared Attribute, set the key to (% style="color:red" %)**value**(%%), and write the command that needs to be downlinked in the Downlink Command Input box
902
903 (% style="color:red" %)**(Note: Downlinks can only be downlinked in string format, otherwise the node will not recognize the downlink command.)**
904
905 [[image:image-20240820143820-4.png||height="554" width="1168"]]
906
907 After the command is successfully added, the platform will send the command down on the node's next uplink.
908
909 [[image:image-20240820144913-6.png||height="585" width="1232"]]
910
911 [[image:image-20240820145133-7.png||height="582" width="1227"]]
912
913 Upon successful issuance, the platform automatically eliminates the attributes from the queue and waits for the next addition of new attributes
914
915 [[image:image-20240820145309-8.png]]
916
917
918 = 5. GPS positioning function =
919
920 == 1. Turn on GPS function ==
921
922
923 (% class="wikigeneratedid" %)
924 AT+GPS=1 or 0  ~/~/ GPS function on or off
925
926
927 == 2. Extend the time to turn on GNSS ==
928
929
930 AT+GNSST=30  ~/~/ GPS search for positioning information for 30 seconds
931
932
933 == 3. Get or set GPS positioning interval in units of hour ==
934
935
936 AT+GTDC=24  ~/~/ The device will activate GPS positioning every 24 hours
937
938
939 = 6. FAQ =
940
941 == 6.1 What is the usage of Multi Sampling and One Uplink? ==
942
943
944 The NB series has the feature for Multi Sampling and one uplink. See one of them
945
946 [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-NB_BN-IoT_Sensor_Node_User_Manual/#H2.5Multi-SamplingsandOneuplink>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SN50v3-NB_BN-IoT_Sensor_Node_User_Manual/#H2.5Multi-SamplingsandOneuplink]]
947
948 User can use this feature for below purpose:
949
950 1. **Reduce power consumption**. The NB-IoT transmit power is much more higher than the sensor sampling power. To save battery life, we can sampling often and send in one uplink.
951 1. Give more sampling data points.
952 1. Increase reliable in transmission. For example. If user set
953 1*. **AT+TR=1800** ~/~/ The unit is seconds, and the default is to record data once every 1800 seconds (30 minutes, the minimum can be set to 180 seconds)
954 1*. **AT+NOUD=24** ~/~/ The device uploads 24 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
955 1*. **AT+TDC=7200** ~/~/ Uplink every 2 hours.
956 1*. this will mean each uplink will actually include the 6 uplink data (24 set data which cover 12 hours). So if device doesn't lost 6 continue data. There will not data lost.
957
958 == 6.2 Why the uplink JSON format is not standard? ==
959
960
961 The json format in uplink packet is not standard Json format. Below is the example. This is to make the payload as short as possible, due to NB-IoT transmit limition, a standard Json is not able to include 32 sets of sensors data with timestamp.
962
963 The firmware version released after 2024, Mar will use change back to use Json format. Detail please check changelog.
964
965 [[image:image-20240820112848-57.png]]
966
967
968 = 7. Trouble Shooting: =
969
970 == 7.1 Checklist for debuging Network Connection issue. Signal Strenght:99 issue. ==
971
972
973 There are many different providers provide NB-IoT service in the world. They might use different band, different APN & different operator configuration. Which makes connection to NB-IoT network is complicate.
974
975 If end device successfully attached NB-IoT Network, User can normally see the signal strengh as below (between 0~~31)
976
977 [[image:image-20240820112859-58.png]]
978
979 If fail to attach network, it will shows signal 99. as below:
980
981 [[image:image-20240820112908-59.png]]
982
983 (% class="lead" %)
984 When see this issue, below are the checklist:
985
986 * Does your SIM card support NB-IoT network? If SIM card doesn't not specify support NB-IoT clearly, normally it doesn't support. You need to confirm with your operator.
987 * Do you configure the correct APN? [[Check here for APN settings>>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.1GeneralConfiguretoattachnetwork]].
988 * Do you lock the frequency band? This is the most case we see. [[Explain and Instruction>>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.2SpeedUpNetworkAttachtime]].
989 * Check if the device is attached to Carrier network but reject. (need to check with operator).
990 * Check if the antenna is connected firmly.
991
992 If you have check all above and still fail. please send console log files (as many as possible) to [[support@dragino.com>>mailto:support@dragino.com]] so we can check.
993
994
995 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)7.2 Why sometime the AT Command is slow in reponse?(%%) ==
996
997
998 When the MCU is communicating with the NB-IoT module, the MCU response of AT Command will become slower, it might takes several seconds to response.
999
1000 [[image:image-20240820113015-60.png]]
1001
1002
1003 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)7.3 What is the Downlink Command by the -CB device?(%%) ==
1004
1005 (% data-sider-select-id="bb6e9353-0c3f-473c-938d-4b416c9a03e6" %)
1006 === UDP: ===
1007
1008 (% data-sider-select-id="14a4790e-7faa-4508-a4dd-7605a53f1cb3" %)
1009 Its downlink command is the same as the AT command, but brackets are required.
1010 Example:
1011
1012 {AT+TDC=300}
1013
1014
1015 (% data-sider-select-id="90b80f1a-e924-4c8a-afc5-4429e019a657" %)
1016 === MQTT: ===
1017
1018 Json:
1019
1020 The Json format in MQTT mode needs to be configured with all commands.
1021 If you have configurations that need to be changed, please change them in the template below.
1022 Template:
1023
1024 {
1025 "AT+SERVADDR":"119.91.62.30,1882",
1026 "AT+CLIENT":"JwcXKjQBNhQ2JykDDAA5Ahs",
1027 "AT+UNAME":"usenamedragino",
1028 "AT+PWD":"passworddragino",
1029 "AT+PUBTOPIC":"123",
1030 "AT+SUBTOPIC":"321",
1031 "AT+TDC":"7200",
1032 "AT+INTMOD":"0",
1033 "AT+APN":"NULL",
1034 "AT+5VT":"0",
1035 "AT+PRO":"3,5",
1036 "AT+TR":"900",
1037 "AT+NOUD":"0",
1038 "AT+CSQTIME":"5",
1039 "AT+DNSTIMER":"0",
1040 "AT+TLSMOD":"0,0",
1041 "AT+MQOS":"0",
1042 "AT+TEMPALARM1":"0",
1043 "AT+TEMPALARM2":"10",
1044 "AT+TEMPALARM3":"0"
1045 }
1046
1047 Hex:
1048
1049 MQTT's hex format. Since many commands need to support strings, only a few commands are supported.
1050
1051 The supported commands are consistent with LoRaWAN's hex commands.
1052 Please refer to the following link to obtain the hex format:
1053
1054 [[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/]]
1055
1056
1057 == 7.4 What if the signal is good but the domain name resolution fails? ==
1058
1059
1060 If the domain name resolution fails, first check whether the domain name is correct, users can use their own website domain name resolution tool to verify the domain name.
1061
1062 [[image:image-20240827150705-6.png||height="489" width="687"]]
1063
1064 If the domain name is correct, but the domain name cannot be resolved, the user can turn off the domain name resolution function(AT+GDNS=1) and use the domain name communication directly.
1065
1066 * Set the DNS
1067
1068 (% style="color:blue" %)**AT Command: AT+GDNS**
1069
1070 **AT+GDNS=0**  ~/~/ Default. Automatically resolves the domain name and uses the resolved IP to communicate.
1071
1072 **AT+GDNS=1    **~/~/ Disabling Domain name resolution. Use the domain name directly to communicate.
1073
1074 (% style="color:red" %)**Note: For -CB products, with the exception of AT+PRO=2,5, all protocols and payload formats support direct domain communication.**
1075
1076 Example:
1077
1078 [[image:image-20240827150121-5.png||height="473" width="676"]][[image:image-20240827145055-4.png||height="474" width="665"]]
1079
1080
1081 == 7.5 GPS debugging ==
1082
1083
1084 Indoor GPS signal is very weak, **outdoor** positioning is generally recommended.
1085
1086 [[image:image-20240903104250-9.png||height="275" width="614"]]
1087
1088
1089 [[image:image-20240903104431-10.png||height="291" width="621"]]
1090
1091
1092 === 7.5.1 GPS commands ===
1093
1094
1095 The following are three related AT commands that introduce GPS functions.
1096
1097 * **Turn on/off GPS**
1098
1099 (% style="color:blue" %)**AT Command: **(% style="color:#037691" %)**AT+GPS **
1100
1101 **Ex1:  **AT+GPS=0  ~/~/ Turn off GPS
1102
1103 **Ex2:  **AT+GPS=1  ~/~/ Turn on GPS
1104
1105 (% style="color:blue" %)**Downlink command:**(%%)** (% style="color:#037691" %)0x11(%%)**
1106
1107 Format: Command Code (0x11) followed by 1 byte.
1108
1109 Example:  Downlink Payload: **11 01   **~/~/ AT+GPS=1
1110
1111 * **Set GNSS open time**
1112
1113 Extend the time to turn on GNSS. The automatic GPS location time is extended when the node is activated.
1114
1115 (% style="color:blue" %)**AT Command: **(% style="color:#037691" %)**AT+GNSST**
1116
1117 Example: AT+GNSST=30  ~/~/ Set the GPS positioning time to 30 seconds
1118
1119 (% style="color:blue" %)**Downlink command:**(%%)** (% style="color:#037691" %)0x10(%%)**
1120
1121 Format: Command Code (0x10) followed by 2 bytes.
1122
1123 Example:  Downlink Payload: **10 00 1E    **~/~/ AT+GNSST=30
1124
1125 * **Set GPS positioning interval**
1126
1127 Feature: Set GPS positioning interval (unit: hour).
1128
1129 When GPS is enabled, the node automatically locates and uplinks each time it passes **GTDC time** after activation.
1130
1131 (% style="color:blue" %)**AT Command: **(% style="color:#037691" %)**AT+GTDC**
1132
1133 Example: AT+GTDC=24  ~/~/ Set the GPS positioning interval to 24h.
1134
1135 (% style="color:blue" %)**Downlink command:**(%%)** (% style="color:#037691" %)0x12(%%)**
1136
1137 Format: Command Code (0x12) followed by 3 bytes.
1138
1139 Example: 24 hours:  24(D)=0x18(H)
1140
1141 Downlink Payload: **12 00 00 18   **~/~/ AT+GTDC=24
1142
1143
1144 === 7.5.2 GPS workflow ===
1145
1146
1147 The whole working process after the GPS function is enabled((% style="color:#037691" %)**AT+GPS=1**(%%)) is as follows:
1148
1149 ~1. When activate the node, the node will turn on the GNSS, if the GPS signal is good, the node will print and upload the position information with the first data packet immediately.
1150
1151 If the signal is not good, it may take the whole (% style="color:#037691" %)**GNSST**(%%) time but still can not search the latitude and longitude information, at this time the node uploads the latitude and longitude all to 0.
1152
1153 So if there is a failure of positioning, the user can extend the (% style="color:#037691" %)**GNSST**(%%) time appropriately.
1154
1155 2. Each TDC time node is not repositioned and the positioning interval is determined by the AT+GTDC time.
1156
1157 The latitude and longitude payload uplinked at each TDC time is the GPS positioning information from the previous (% style="color:#037691" %)**GTDC**(%%) time.
1158
1159 Only when the node is activated or every (% style="color:#037691" %)**GTDC**(%%) time is reached, the node turns on the GNSS and we can observe the GPS search information through the serial assistant or Bluetooth tool.
1160
1161
1162 === 7.5.3 GPS debugging methods ===
1163
1164
1165 In summary, we can deduce the methods of debugging GPS:
1166
1167 * **Check whether the GPS function is enabled.**
1168
1169 [[image:image-20240903102327-5.png||height="271" width="529"]]
1170
1171 * **Check whether the GPS antenna is loose**.
1172
1173 If the GPS antenna is loose, the GPS signal is weak, and the positioning fails.
1174
1175 [[image:image-20240903094214-1.png||height="340" width="461"]]
1176
1177 * **Use the AT+GNSST command to extend the positioning time.**
1178
1179 The default AT+GNSST=30, that is, the default positioning time is 30 seconds.
1180
1181 If the location fails, users can extend the location time.
1182
1183 [[image:image-20240903102641-8.png||height="303" width="600"]]
1184
1185
1186
1187
1188