Hide last authors
Xiaoling 83.3 1 (% class="wikigeneratedid" id="HTableofContents:" %)
2 **Table of Contents:**
Xiaoling 53.3 3
4 {{toc/}}
5
6
Xiaoling 100.2 7
8
9
10
Edwin Chen 1.1 11 = 1. The use of this guideline =
12
Xiaoling 1.2 13
Edwin Chen 1.1 14 This configure instruction is for Dragino NB-IoT models with -NB or -NS suffix, for example DDS75-NB. These models use the same NB-IoT Module **[[BC660K-GL>>https://www.quectel.com/product/lpwa-bc660k-gl-nb2]]** 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.
15
16
Edwin Chen 55.1 17 = 2. Attach Network =
Edwin Chen 1.1 18
Edwin Chen 103.1 19 == 2.1 General Configure to attach network ==
Edwin Chen 1.1 20
Xiaoling 104.4 21
Edwin Chen 54.1 22 To attache NB-IoT sensors to NB-IoT Network, You need to:
23
24 1. Get a NB-IoT SIM card from Service Provider. (Not the same as the SIM card we use in mobile phone)
Edwin Chen 137.1 25 1. Power Off End Node ( See below for the power off/on position)
26 1. Insert the SIM card to Sensor. ( See below for direction)
27 1. Power On End Node
Mengting Qiu 150.1 28 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
Edwin Chen 54.1 29
Edwin Chen 137.1 30 [[image:image-20240208102804-1.png||height="286" width="696"]]
31
Edwin Chen 83.1 32 [[image:image-20230808205045-1.png||height="293" width="438"]]
Edwin Chen 60.1 33
Edwin Chen 54.1 34 After doing above, the NB-IoT Sensors should be able to attach to NB-IoT network .
35
Xiaoling 1.3 36 The -NB and -NS models support (% style="color:blue" %)**LTE Cat NB2**(%%), with below frequency band: multiple frequency bands of (% style="color:blue" %)**B1/B2/B3/B4/B5/B8/B12/B13/B14/B17/B18/B19/B20/B25/B28/B66/B70/B85**(%%) . Make sure you use a the NB-IoT SIM card.
Edwin Chen 1.1 37
Edwin Chen 54.1 38 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:878px" %)
Edwin Chen 99.1 39 |(% 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:474px" %)**NB-IoT Coverage**|(% style="background-color:#4f81bd; color:white; width:135px" %)**Comments**
Xiaoling 56.2 40 |(% style="width:117px" %)**[[1NCE>>https://1nce.com]]**|(% style="width:151px" %)iot.1nce.net|(% style="width:474px" %)(((
Edwin Chen 54.1 41 **[[Coverage Reference Link>>https://1nce.com/en-ap/1nce-connect]]**
Edwin Chen 1.1 42
Edwin Chen 161.1 43 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, UK, US Virgin Islands
44 )))|(% style="width:135px" %)UK: Band20
Edwin Chen 57.1 45 |(% style="width:117px" %)China Mobile|(% style="width:151px" %)No need configure|(% style="width:474px" %)China Mainland, HongKong|(% style="width:135px" %)
David Huang 66.1 46 |(% style="width:117px" %)China Telecom|(% style="width:151px" %)ctnb|(% style="width:474px" %)China Mainland|(% style="width:135px" %)
Xiaoling 53.27 47
Edwin Chen 103.1 48 == 2.2 Speed Up Network Attach time ==
Xiaoling 99.3 49
Xiaoling 104.2 50
Edwin Chen 149.1 51 BC660K-GL supports multi bands (% style="color:blue" %)**B1/B2/B3/B4/B5/B8/B12/B13/B14/B17/B18/B19/B20/B25/B28/B66/B70/B85. **(%%) 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**. User can lock the band to specify band for its operator to make this faster.
Xiaoling 102.2 52
Edwin Chen 107.1 53 (% style="color:#037691" %)**AT+QBAND?       **(%%) ~/~/ Check what is the current used frequency band
54 (% style="color:#037691" %)**AT+QBAND=1,4    **(%%) ~/~/ Set to use 1 frequency band. Band4
Edwin Chen 129.1 55 (% style="color:#037691" %)**Europe General**(%%) **AT+QBAND=2,8,20 ** ~/~/ Set to use 2 frequency bands. Band 8 and Band 20
Edwin Chen 147.1 56 (% style="color:#037691" %)**Global General**(%%) : **AT+QBAND=10,8,20,28,2,4,12,13,66,85,5**
Edwin Chen 104.1 57
Edwin Chen 129.1 58 (% style="color:#037691" %)**Verizon**(%%)** ** AT+QBAND=1,13
59 (% style="color:#037691" %)**AT&T**(%%)           AT+QBAND=3,12,4,2
60 (% style="color:#037691" %)**Telstra**(%%)        AT+QBAND=1,28
61 (% style="color:#037691" %)**Softband**(%%)     AT+QBAND=2,3,8
Xiaoling 104.4 62
Edwin Chen 107.1 63 After connection is successful, user can use (% style="color:#037691" %)**AT+QENG=0 **(%%) to check which band is actually in used.
64
Edwin Chen 165.1 65 By default, device will search network for 5 minutes. User can set the time to 10 minutes by (% style="color:#037691" %)**AT+CSQTIME=10 **(%%)so it can search longer.
Edwin Chen 107.1 66
Edwin Chen 105.1 67 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/]]**
68
69
Edwin Chen 1.1 70 = 3. Configure to connect to different servers =
71
Xiaoling 53.3 72 == 3.1 General UDP Connection ==
Xiaoling 53.2 73
74
75 The NB-IoT Sensor can send packet to server use UDP protocol.
76
77
Xiaoling 53.3 78 === 3.1.1 Simulate UDP Connection by PC tool ===
79
80
Xiaoling 53.2 81 We can use PC tool to simulate UDP connection to make sure server works ok.
82
Xiaoling 105.2 83 [[image:image-20230802112413-1.png||height="468" width="1024"]]
Xiaoling 53.2 84
85
Xiaoling 53.3 86 === 3.1.2 Configure NB-IoT Sensor ===
Xiaoling 53.2 87
Xiaoling 53.3 88 ==== 3.1.2.1 AT Commands ====
Xiaoling 53.2 89
Xiaoling 53.3 90
Xiaoling 53.4 91 (% style="color:blue" %)**AT Commands:**
Xiaoling 53.3 92
Xiaoling 53.5 93 * (% style="color:#037691" %)**AT+PRO=2,0**  (%%) ~/~/  Set to use UDP protocol to uplink ,Payload Type select Hex payload
Xiaoling 53.8 94
Xiaoling 53.5 95 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5601**  (%%) ~/~/  Set UDP server address and port
Xiaoling 53.8 96
Xiaoling 53.2 97 [[image:image-20230802112413-2.png]]
98
99
Xiaoling 53.3 100 ==== 3.1.2.2 Uplink Example ====
Xiaoling 53.2 101
Xiaoling 53.3 102
Xiaoling 53.2 103 [[image:image-20230802112413-3.png]]
104
105
Xiaoling 53.7 106 == 3.2 General MQTT Connection ==
Xiaoling 53.2 107
Xiaoling 53.6 108
Xiaoling 53.2 109 The NB-IoT Sensor can send packet to server use MQTT protocol.
110
Xiaoling 53.6 111 Below are the commands.
Xiaoling 53.2 112
Xiaoling 53.8 113 (% style="color:blue" %)**AT Commands:**
Xiaoling 53.2 114
Xiaoling 53.9 115 * (% style="color:#037691" %)**AT+PRO=3,0**   (%%) ~/~/  Set to use MQTT protocol to uplink, Payload Type select Hex payload.
Xiaoling 53.2 116
Xiaoling 53.9 117 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883**  (%%) ~/~/  Set MQTT server address and port
Xiaoling 53.8 118
Xiaoling 53.9 119 * (% style="color:#037691" %)**AT+CLIENT=CLIENT**     (%%) ~/~/  Set up the CLIENT of MQTT
Xiaoling 53.8 120
Xiaoling 53.9 121 * (% style="color:#037691" %)**AT+UNAME=UNAME**        (%%) ~/~/  Set the username of MQTT
Xiaoling 53.8 122
Xiaoling 53.9 123 * (% style="color:#037691" %)**AT+PWD=PWD**             (%%) ~/~/  Set the password of MQTT
Xiaoling 53.8 124
125 * (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB**  (%%) ~/~/  Set the sending topic of MQTT
126
127 * (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB**  (%%) ~/~/  Set the subscription topic of MQTT
128
Xiaoling 53.2 129 [[image:image-20230802112413-4.png]]
130
Edwin Chen 102.1 131 [[image:image-20230802112413-5.png||height="530" width="987"]]
Xiaoling 53.2 132
Xiaoling 53.9 133 (% 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.**
Xiaoling 53.2 134
135
Xiaoling 53.7 136 == 3.3 [[ThingSpeak>>url:https://thingspeak.com/]] (via MQTT) ==
Xiaoling 53.2 137
Xiaoling 53.9 138 === 3.3.1 Get MQTT Credentials ===
Xiaoling 53.2 139
Xiaoling 53.9 140
Xiaoling 53.2 141 [[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.
142
Edwin Chen 102.1 143 [[image:image-20230802112413-6.png||height="336" width="925"]]
Xiaoling 53.2 144
145 [[image:image-20230802112413-7.png]]
146
147
Xiaoling 53.27 148 === 3.3.2 Simulate with MQTT.fx ===
Xiaoling 53.2 149
Xiaoling 53.27 150 ==== 3.3.2.1 Establish MQTT Connection ====
Xiaoling 53.2 151
Xiaoling 53.9 152
Xiaoling 53.2 153 After we got MQTT Credentials, we can first simulate with PC tool MQTT.fx tool to see if the Credentials and settings are fine.
154
155 [[image:image-20230802112413-8.png]]
156
Xiaoling 53.9 157 * (% style="color:#037691" %)**Broker Address:**(%%) mqtt3.thingspeak.com
Xiaoling 53.2 158
Xiaoling 53.9 159 * (% style="color:#037691" %)**Broker Port:**(%%) 1883
Xiaoling 53.10 160
Xiaoling 53.9 161 * (% style="color:#037691" %)**Client ID:**(%%) <Your ThingSpeak MQTT ClientID>
Xiaoling 53.10 162
Xiaoling 53.9 163 * (% style="color:#037691" %)**User Name:**(%%) <Your ThingSpeak MQTT User Name>
Xiaoling 53.10 164
Xiaoling 53.9 165 * (% style="color:#037691" %)**Password:**(%%) <Your ThingSpeak MQTT Password>
Xiaoling 53.2 166
Xiaoling 53.28 167 ==== 3.3.2.2 Publish Data to ThingSpeak Channel ====
168
169
Xiaoling 53.2 170 [[image:image-20230802112413-9.png]]
171
172 [[image:image-20230802112413-10.png]]
173
Xiaoling 53.43 174
Xiaoling 53.10 175 (% style="color:blue" %)**In MQTT.fx, we can publish below info:**
Xiaoling 53.2 176
Xiaoling 53.10 177 * (% style="color:#037691" %)**Topic:**(%%) channels/YOUR_CHANNEL_ID/publish
Xiaoling 53.2 178
Xiaoling 53.10 179 * (% style="color:#037691" %)**Payload:**(%%) field1=63&field2=67&status=MQTTPUBLISH
180
Xiaoling 53.2 181 Where 63 and 67 are the value to be published to field1 & field2.
182
183
Xiaoling 53.10 184 (% style="color:blue" %)**Result: **
Xiaoling 53.2 185
Edwin Chen 102.1 186 [[image:image-20230802112413-11.png||height="539" width="901"]]
Xiaoling 53.2 187
188
Xiaoling 53.28 189 === 3.3.3 Configure NB-IoT Sensor for connection ===
Xiaoling 53.2 190
Xiaoling 53.28 191 ==== 3.3.3.1 AT Commands: ====
Xiaoling 53.2 192
Xiaoling 53.10 193
Xiaoling 53.2 194 In the NB-IoT, we can run below commands so to publish the channels like MQTT.fx
195
Xiaoling 99.3 196 * (% style="color:blue" %)**AT+PRO=3,1** (%%) ~/~/ Set to use ThingSpeak Server and Related Payload
Xiaoling 53.9 197
Xiaoling 53.26 198 * (% style="color:blue" %)**AT+CLIENT=<Your ThingSpeak MQTT ClientID>**
Xiaoling 53.9 199
Xiaoling 53.26 200 * (% style="color:blue" %)**AT+UNAME=<Your ThingSpeak MQTT User Name>**
Xiaoling 53.9 201
Xiaoling 53.26 202 * (% style="color:blue" %)**AT+PWD=<Your ThingSpeak MQTT Password>**
Xiaoling 53.9 203
Xiaoling 53.26 204 * (% style="color:blue" %)**AT+PUBTOPIC=<YOUR_CHANNEL_ID>**
Xiaoling 53.9 205
Xiaoling 53.26 206 * (% style="color:blue" %)**AT+SUBTOPIC=<YOUR_CHANNEL_ID>**
Xiaoling 53.2 207
Xiaoling 53.28 208 ==== 3.3.3.2 Uplink Examples ====
Xiaoling 53.10 209
Xiaoling 104.4 210
Edwin Chen 102.1 211 [[image:image-20230816201942-1.png]]
Xiaoling 53.10 212
Xiaoling 53.2 213 For SE01-NB
214
215 For DDS20-NB
216
217 For DDS45-NB
218
219 For DDS75-NB
220
221 For NMDS120-NB
222
223 For SPH01-NB
224
225 For NLM01-NB
226
227 For NMDS200-NB
228
229 For CPN01-NB
230
231 For DS03A-NB
232
233 For SN50V3-NB
234
235
Xiaoling 53.28 236 ==== 3.3.3.3 Map fields to sensor value ====
Xiaoling 53.2 237
Xiaoling 53.10 238
Xiaoling 53.2 239 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.
240
241
Edwin Chen 102.1 242 [[image:image-20230802112413-12.png||height="504" width="1011"]]
Xiaoling 53.2 243
Edwin Chen 102.1 244 [[image:image-20230802112413-13.png||height="331" width="978"]]
Xiaoling 53.2 245
246
247 Below is the NB-IoT Product Table show the mapping.
248
Xiaoling 83.4 249 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:1424px" %)
250 |(% 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:154px" %)Field4|(% style="background-color:#4f81bd; color:white; width:153px" %)Field5|(% style="background-color:#4f81bd; color:white; width:151px" %)Field6|(% style="background-color:#4f81bd; color:white; width:160px" %)Field7|(% style="background-color:#4f81bd; color:white; width:152px" %)Field8|(% style="background-color:#4f81bd; color:white; width:67px" %)Field9|(% style="background-color:#4f81bd; color:white; width:69px" %)Field10
251 |(% style="background-color:#4f81bd; color:white; width:143px" %)S31x-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)Battery|(% style="width:154px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
252 |(% style="background-color:#4f81bd; color:white; width:143px" %)SE01-NB|(% style="width:103px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:157px" %)conduct|(% style="width:154px" %)dielectric_constant|(% style="width:153px" %)Battery|(% style="width:151px" %)RSSI|(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
253 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS20-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:154px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
254 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS45-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:154px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
255 |(% style="background-color:#4f81bd; color:white; width:143px" %)DDS75-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:154px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
256 |(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS120-NB|(% style="width:103px" %)distance|(% style="width:102px" %)Battery|(% style="width:157px" %)RSSI|(% style="width:154px" %) |(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
257 |(% 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:154px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% colspan="1" rowspan="1" style="width:69px" %)
258 |(% style="background-color:#4f81bd; color:white; width:143px" %)NLM01-NB|(% style="width:103px" %)Humidity|(% style="width:102px" %)Temperature|(% style="width:157px" %)Battery|(% style="width:154px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
259 |(% style="background-color:#4f81bd; color:white; width:143px" %)NMDS200-NB|(% style="width:103px" %)distance1|(% style="width:102px" %)distance2|(% style="width:157px" %)Battery|(% style="width:154px" %)RSSI|(% style="width:153px" %) |(% style="width:151px" %) |(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
260 |(% 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:154px" %)calc flag|(% style="width:153px" %)Battery|(% style="width:151px" %)RSSI|(% style="width:160px" %) |(% style="width:152px" %) |(% style="width:67px" %) |(% style="width:69px" %)
261 |(% 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:154px" %)pb14 last open time|(% colspan="1" rowspan="1" style="width:153px" %)pb15 level status|(% colspan="1" rowspan="1" style="width:151px" %)pb15 alarm status|(% colspan="1" rowspan="1" style="width:160px" %)pb15 door open num|(% colspan="1" rowspan="1" style="width:152px" %)pb15 last open time|(% colspan="1" rowspan="1" style="width:67px" %)Battery|(% colspan="1" rowspan="1" style="width:69px" %)RSSI
262 |(% 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:154px" %)DS18B20 Temp|(% colspan="1" rowspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" rowspan="1" style="width:151px" %)adc0|(% colspan="1" rowspan="1" style="width:160px" %)Temperature |(% colspan="1" rowspan="1" style="width:152px" %)Humidity|(% colspan="1" rowspan="1" style="width:67px" %) |(% colspan="1" rowspan="1" style="width:69px" %)
263 |(% 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:154px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)adc0|(% colspan="1" style="width:160px" %)distance|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)
264 |(% 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:154px" %)adc0|(% colspan="1" style="width:153px" %)exit_state/input PA4|(% colspan="1" style="width:151px" %)adc1|(% colspan="1" style="width:160px" %)Temperature|(% colspan="1" style="width:152px" %)Humidity|(% colspan="1" style="width:67px" %)adc4|(% colspan="1" style="width:69px" %)
265 |(% 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:154px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)adc0|(% colspan="1" style="width:151px" %)exit_state/input PA4|(% colspan="1" style="width:160px" %)DS18B20 Temp2|(% colspan="1" style="width:152px" %)DS18B20 Temp3|(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)
266 |(% 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:154px" %)DS18B20 Temp|(% colspan="1" style="width:153px" %)adc0|(% colspan="1" style="width:151px" %)exit_state/input PA4|(% colspan="1" style="width:160px" %)Weight|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)
267 |(% 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:154px" %)count|(% colspan="1" style="width:153px" %) |(% colspan="1" style="width:151px" %) |(% colspan="1" style="width:160px" %) |(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:67px" %) |(% colspan="1" style="width:69px" %)
Xiaoling 53.2 268
Edwin Chen 100.1 269 == 3.4 [[Datacake>>https://datacake.co/]] ==
Xiaoling 99.3 270
Xiaoling 53.2 271
Edwin Chen 100.1 272 (% class="wikigeneratedid" %)
273 Dragino NB-IoT sensors has its template in **[[Datacake>>https://datacake.co/]]** Platform. There are two version for NB Sensor,
274
275
276 (% class="wikigeneratedid" %)
Xiaoling 100.5 277 As example for S31B-NB. there are two versions: **S31B-NB-1D and S31B-NB-GE.**
Edwin Chen 100.1 278
Xiaoling 100.2 279 * (% style="color:blue" %)**S31B-NB-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.
Edwin Chen 100.1 280
Xiaoling 100.2 281 * (% style="color:blue" %)**S31B-NB-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.
Edwin Chen 100.1 282
Edwin Chen 109.1 283 === 3.4.1 For device Already has template ===
Xiaoling 53.2 284
Edwin Chen 109.1 285 ==== 3.4.1.1 Create Device ====
Xiaoling 83.4 286
Xiaoling 180.1 287
Xiaoling 100.4 288 (% style="color:blue" %)**Add Device**(%%) in DataCake.
Edwin Chen 100.1 289
Xiaoling 105.2 290 [[image:image-20230808162301-1.png||height="453" width="952"]]
Xiaoling 53.11 291
292
Xiaoling 105.2 293 [[image:image-20230808162342-2.png||height="541" width="952"]]
David Huang 78.1 294
295
Xiaoling 100.3 296 (% style="color:blue" %)**Choose the correct model**(%%) from template.
Edwin Chen 100.1 297
David Huang 78.1 298 [[image:image-20230808162421-3.png]]
299
Xiaoling 83.4 300
Xiaoling 100.3 301 (% 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.
David Huang 78.1 302
Xiaoling 105.2 303 [[image:image-20230808163612-7.png||height="549" width="952"]]
David Huang 78.1 304
305 [[image:image-20230808163035-5.png]]
306
Xiaoling 105.2 307 [[image:image-20230808163049-6.png||height="544" width="926"]]
David Huang 78.1 308
Xiaoling 83.4 309
Edwin Chen 109.1 310 === 3.4.2 For Device already registered in DataCake before shipped ===
David Huang 81.1 311
Edwin Chen 126.1 312 ==== 3.4.2.1 Scan QR Code to get the device info ====
Xiaoling 83.4 313
Xiaoling 145.2 314
David Huang 81.1 315 Users can use their phones or computers to scan QR codes to obtain device data information.
316
Edwin Chen 100.1 317 [[image:image-20230808170051-8.png||height="255" width="259"]]
David Huang 81.1 318
319 [[image:image-20230808170548-9.png]]
320
Xiaoling 83.4 321
Edwin Chen 126.1 322 ==== 3.4.2.2 Claim Device to User Account ====
323
Xiaoling 145.2 324
Edwin Chen 126.1 325 By Default, the device is registered in Dragino's DataCake Account. User can Claim it to his account.
326
327
Edwin Chen 109.1 328 === 3.4.3 Manual Add Decoder in DataCake ( don't use the template in DataCake) ===
David Huang 81.1 329
330
Xiaoling 145.2 331 **Step1: Add a device**
332
Bei Jinggeng 123.1 333 [[image:image-20240129170024-1.png||height="330" width="900"]]
334
335
Xiaoling 145.2 336 **Step2: Choose your device type,please select dragino NB-IOT device**
337
Bei Jinggeng 123.1 338 [[image:image-20240129170216-2.png||height="534" width="643"]]
339
340
Xiaoling 145.2 341 **Step3: Choose to create a new device**
342
Bei Jinggeng 123.1 343 [[image:image-20240129170539-3.png||height="459" width="646"]]
344
345
Xiaoling 145.2 346 **Step4: Fill in the device ID of your NB device**
347
Bei Jinggeng 125.1 348 [[image:image-20240202111546-1.png||height="378" width="651"]]
Bei Jinggeng 123.1 349
350
Xiaoling 145.2 351 **Step5: Please select your device plan according to your needs and complete the creation of the device**
352
Bei Jinggeng 123.1 353 [[image:image-20240129171236-6.png||height="450" width="648"]]
354
355
Xiaoling 145.2 356 **Step6: Please add the decoder at the payload decoder of the device configuration.**
357
Xiaoling 180.1 358 **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]]
Bei Jinggeng 127.1 359
Xiaoling 180.1 360 **Due to version update, please use the following decoder for the new version firmware:**
Bei Jinggeng 179.1 361 [[dragino-end-node-decoder/Datacake-Dragino_NB_New_Version at main · dragino/dragino-end-node-decoder (github.com)>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/Datacake-Dragino_NB_New_Version]]
362
Bei Jinggeng 123.1 363 [[image:image-20240129172056-7.png||height="457" width="816"]]
364
365 [[image:image-20240129173116-9.png||height="499" width="814"]]
366
367
Xiaoling 145.2 368 **Step7: Add the output of the decoder as a field**
369
Bei Jinggeng 123.1 370 [[image:image-20240129173541-10.png||height="592" width="968"]]
371
372
Xiaoling 145.2 373 **Step8: Customize the dashboard and use fields as parameters of the dashboard**
374
Bei Jinggeng 123.1 375 [[image:image-20240129174518-11.png||height="147" width="1042"]]
376
377 [[image:image-20240129174657-12.png||height="538" width="916"]]
378
379 [[image:image-20240129174840-13.png||height="536" width="750"]]
380
381
Edwin Chen 109.1 382 === 3.4.4 For device have not configured to connect to DataCake ===
383
Xiaoling 145.2 384
Edwin Chen 109.1 385 (% class="lead" %)
386 Use AT command for connecting to DataCake
387
Xiaoling 83.4 388 (% style="color:blue" %)**AT+PRO=2,0**
David Huang 81.1 389
Xiaoling 83.4 390 (% style="color:blue" %)**AT+SERVADDR=67.207.76.90,4445**
David Huang 81.1 391
Xiaoling 83.4 392
Xiaoling 53.21 393 == 3.5 Node-Red (via MQTT) ==
Xiaoling 53.2 394
Xiaoling 53.48 395 === 3.5.1 Configure [[Node-Red>>http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/]] ===
Xiaoling 53.2 396
Xiaoling 53.32 397
David Huang 93.1 398 Take S31-NB UDP protocol as an example.
Xiaoling 53.2 399
David Huang 93.1 400 Dragino provides input flow examples for the sensors.
Xiaoling 53.32 401
David Huang 93.1 402 User can download the required JSON file through Dragino Node-RED input flow template.
Xiaoling 53.2 403
David Huang 93.1 404 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]]
Xiaoling 53.24 405
David Huang 93.1 406 We can directly import the template.
Xiaoling 53.2 407
David Huang 93.1 408 The templates for S31-NB and NB95S31B are the same.
Xiaoling 53.21 409
Xiaoling 53.2 410
David Huang 93.1 411 [[image:image-20230809173127-4.png]]
Xiaoling 53.2 412
Xiaoling 99.3 413
David Huang 93.1 414 Please select the NB95S31B template.
Xiaoling 53.2 415
Xiaoling 105.2 416 [[image:image-20230809173310-5.png||height="558" width="926"]]
Xiaoling 53.2 417
David Huang 93.1 418 [[image:image-20230809173438-6.png]]
Xiaoling 53.2 419
David Huang 93.1 420 [[image:image-20230809173800-7.png]]
Xiaoling 53.21 421
Xiaoling 99.3 422
David Huang 93.1 423 Successfully imported template.
Xiaoling 53.21 424
Xiaoling 105.2 425 [[image:image-20230809173835-8.png||height="515" width="860"]]
Xiaoling 53.21 426
427
David Huang 93.1 428 Users can set UDP port.
Xiaoling 53.21 429
David Huang 93.1 430 [[image:image-20230809174053-9.png]]
Xiaoling 83.8 431
Xiaoling 99.3 432
David Huang 93.1 433 === 3.5.2 Simulate Connection ===
Xiaoling 83.8 434
Xiaoling 99.3 435
David Huang 93.1 436 We have completed the configuration of UDP. We can try sending packets to node red.
437
David Huang 98.1 438 [[image:image-20230810083934-1.png]]
David Huang 93.1 439
Xiaoling 105.2 440 [[image:image-20230810084048-2.png||height="535" width="1052"]]
David Huang 93.1 441
Xiaoling 105.2 442
David Huang 93.1 443 === 3.5.3 Configure NB-IoT Sensors ===
444
445
Saxer Lin 106.1 446 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%) **~/~/ hex format or json format**
447 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>or User Defined**
448 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>or User Defined**
449 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
450 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
451 * (% style="color:#037691" %)**AT+PWD=“Your device token”**
David Huang 93.1 452
Xiaoling 53.21 453 == 3.6 ThingsBoard.Cloud (via MQTT) ==
454
455 === 3.6.1 Configure ThingsBoard ===
456
Xiaoling 53.22 457 ==== 3.6.1.1 Create Device ====
Xiaoling 53.2 458
Xiaoling 53.32 459
Edwin Chen 59.1 460 Create a New Device in [[ThingsBoard>>url:https://thingsboard.cloud/]]. Record Device Name which is used for MQTT connection.
Xiaoling 53.2 461
Xiaoling 105.2 462 [[image:image-20230802112413-32.png||height="583" width="1066"]]
Xiaoling 53.2 463
464
Xiaoling 53.23 465 ==== 3.6.1.2 Create Uplink & Downlink Converter ====
466
Xiaoling 53.32 467
Xiaoling 53.22 468 (% style="color:blue" %)**Uplink Converter**
Xiaoling 53.2 469
470 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.
471
Xiaoling 53.42 472 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.
Xiaoling 53.2 473
Xiaoling 105.2 474 [[image:image-20230802112413-33.png||height="597" width="1061"]]
Xiaoling 53.2 475
476
Xiaoling 53.22 477 (% style="color:blue" %)**Downlink Converter**
Xiaoling 53.2 478
479 The Downlink converter transforming outgoing RPC message and then the Integration sends it to external MQTT broke
480
Xiaoling 105.2 481 [[image:image-20230802112413-34.png||height="598" width="1063"]]
Xiaoling 53.2 482
Xiaoling 83.8 483 (% style="color:red" %)**Note: Our device payload is already human readable data. Therefore, users do not need to write decoders. Simply create by default.**
Xiaoling 53.2 484
Xiaoling 53.22 485
Xiaoling 53.23 486 ==== 3.6.1.3 MQTT Integration Setup ====
Xiaoling 53.2 487
488
Xiaoling 53.44 489 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**;
Xiaoling 53.24 490
Xiaoling 105.2 491 [[image:image-20230802112413-35.png||height="597" width="1062"]]
Xiaoling 53.2 492
Xiaoling 53.32 493
Xiaoling 53.2 494 * The next steps is to add the recently created uplink and downlink converters;
495
Xiaoling 105.2 496 [[image:image-20230802112413-36.png||height="598" width="1062"]]
Xiaoling 53.2 497
Xiaoling 105.2 498 [[image:image-20230802112413-37.png||height="598" width="1064"]]
Xiaoling 53.2 499
Xiaoling 53.33 500
Xiaoling 53.24 501 (% style="color:blue" %)**Add a topic filter:**
Xiaoling 53.2 502
Mengting Qiu 108.1 503 Consistent with the theme of the node setting.
Xiaoling 53.2 504
505 You can also select an MQTT QoS level. We use MQTT QoS level 0 (At most once) by default;
506
Xiaoling 105.2 507 [[image:image-20230802112413-38.png||height="598" width="1064"]]
Xiaoling 53.2 508
509
Xiaoling 53.23 510 === 3.6.2 Simulate with MQTT.fx ===
511
Xiaoling 53.32 512
Xiaoling 53.2 513 [[image:image-20230802112413-39.png]]
514
Xiaoling 105.2 515 [[image:image-20230802112413-40.png||height="525" width="980"]]
Xiaoling 53.2 516
517
Xiaoling 53.23 518 === 3.6.3 Configure NB-IoT Sensor ===
Xiaoling 53.2 519
Xiaoling 53.25 520
Xiaoling 53.23 521 (% style="color:blue" %)**AT Commands**
Xiaoling 53.2 522
Edwin Chen 59.1 523 * (% style="color:#037691" %)**AT+PRO=3,3  **(%%)** **~/~/ Use MQTT to connect to ThingsBoard. Payload Type set to 3.
Xiaoling 53.2 524
Xiaoling 83.4 525 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>**
526
Edwin Chen 59.1 527 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>**
Xiaoling 83.4 528
Edwin Chen 59.1 529 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
Xiaoling 83.4 530
Edwin Chen 59.1 531 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
Xiaoling 83.4 532
Edwin Chen 59.1 533 * (% style="color:#037691" %)**AT+PWD=<device name> or User Defined**
Xiaoling 53.2 534
535 Test Uplink by click the button for 1 second
536
Xiaoling 105.2 537 [[image:image-20230802112413-41.png||height="496" width="828"]]
Xiaoling 53.2 538
539 [[image:image-20230802112413-42.png]]
540
Xiaoling 105.2 541 [[image:image-20230802112413-43.png||height="407" width="825"]]
Xiaoling 53.2 542
543
kai 173.2 544 == 3.7 ThingsBoard.Cloud (via COAP) ==
Xiaoling 53.2 545
kai 173.2 546 === 3.7.1 Configure ThingsBoard ===
Xiaoling 53.23 547
kai 173.2 548 ==== 3.7.1.1 Create Uplink & Downlink Converter ====
549
550
551 (% style="color:blue" %)**Uplink Converter**
552
553 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.
554
555 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.
556
557 [[image:image-20240729141300-1.png||height="552" width="1115"]]
558
559
560 (% style="color:blue" %)**Downlink Converter**
561
562 The Downlink converter transforming outgoing RPC message and then the Integration sends it to external COAP broker.
563
564 [[image:image-20240729142505-3.png||height="507" width="1023"]]
565
566
567 ==== 3.7.1.2 COAP Integration Setup ====
568
569
Bei Jinggeng 179.1 570 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" %);
kai 173.2 571
572 [[image:image-20240729144058-4.png||height="506" width="1021"]]
573
574
575 The next steps is to add the recently created uplink converters;
576
577 [[image:image-20240729150142-5.png||height="507" width="1023"]]
578
579
580 ==== 3.7.1.3 Add COAP Integration ====
581
Xiaoling 180.1 582
Bei Jinggeng 179.1 583 ==== [[image:image-20240729161543-9.png||height="500" width="1009"]] ====
kai 173.2 584
585
586 === 3.7.2 Node Configuration(Example: Connecting to the Thingsboard platform) ===
587
588 ==== 3.7.2.1 Instruction Description ====
589
Xiaoling 180.1 590
kai 178.1 591 * AT+PRO=1,0(HEX format uplink)  &AT+PRO=1,5(JSON format uplink)
kai 173.2 592 * AT+SERVADDR=COAP Server Address,5683
593
594 Example: AT+SERVADDR=int.thingsboard.cloud,5683(The address is automatically generated when the COAP integration is created)
595
kai 178.1 596 [[image:image-20240729172305-12.png||height="361" width="624"]]
597
kai 173.2 598 Note:The port for the COAP protocol has been fixed to 5683
599
600
kai 178.1 601 * AT+URL1=11,(% style="color:red" %)**character length**(%%),"Needs to be consistent with the CoAP endpoint URL in the platform"
kai 173.2 602
kai 178.1 603 If the module used is (% style="color:red" %)**BC660K, only one **(%%)URL directive needs to be configured,
604
605 e.g.
606
607 * AT+URL1=11,38, "i/faaaa241f-af4a-b780-4468-c671bb574858"
608
609 [[image:image-20240729172415-13.png||height="401" width="694"]]
610
611 If you are using a (% style="color:red" %)**BG95-M2**(%%) module, you need to configure (% style="color:red" %)**TWO**(%%) URL commands,
612
613 e.g.
614
Bei Jinggeng 179.1 615 * AT+URL1=11, "i";  
kai 178.1 616 * AT+URL2=11,"/faaaa241f-af4a-b780-4468-c671bb574858"
617
618 [[image:image-20240729172500-14.png||height="403" width="700"]]
619
620
kai 173.2 621 == 3.8 [[Tago.io>>url:https://admin.tago.io/]] (via MQTT) ==
622
623 === 3.8.1 Create device & Get Credentials ===
624
625
Xiaoling 53.2 626 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.
627
628 [[image:image-20230802112413-44.png]]
629
630 [[image:image-20230802112413-45.png]]
631
632
633 Go to the Device section and create a device. Then, go to the section tokens and copy your device-token.
634
635 [[image:image-20230802112413-46.png]]
636
637
David Huang 70.1 638 The device needs to enable the TLS mode and set the (% style="color:blue" %)**AT+TLSMOD=1,0**(%%) command.
Xiaoling 53.2 639
Xiaoling 83.8 640 (% style="color:blue" %)**On the Connection Profile window, set the following information:**
David Huang 70.1 641
Xiaoling 83.8 642 * (% style="color:#037691" %)**Profile Name: “Any name”**
Xiaoling 53.2 643
Xiaoling 83.8 644 * (% style="color:#037691" %)**Broker Address: mqtt.tago.io**
Xiaoling 53.23 645
Xiaoling 83.8 646 * (% style="color:#037691" %)**Broker Port: 8883**
Xiaoling 53.23 647
Xiaoling 83.8 648 * (% style="color:#037691" %)**Client ID: “Any value”**
Xiaoling 53.23 649
Xiaoling 83.8 650 (% style="color:blue" %)**On the section User credentials, set the following information:**
Xiaoling 53.2 651
Xiaoling 83.8 652 * (% style="color:#037691" %)**User Name: “Any value”** (%%) **~/~/ Tago validates your user by the token only**
Xiaoling 53.2 653
Xiaoling 83.8 654 * (% style="color:#037691" %)**Password: “Your device token”**
Xiaoling 53.2 655
Xiaoling 83.8 656 * (% style="color:#037691" %)**PUBTOPIC: “Any value”**
Xiaoling 53.23 657
Xiaoling 83.8 658 * (% style="color:#037691" %)**SUBTOPIC: “Any value”**
Xiaoling 53.23 659
David Huang 70.1 660 (% style="color:blue" %)**AT command:**
661
Xiaoling 83.8 662 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%) **~/~/ hex format or json format**
David Huang 70.1 663
Xiaoling 83.5 664 * (% style="color:#037691" %)**AT+SUBTOPIC=<device name>or User Defined**
David Huang 70.1 665
Xiaoling 83.5 666 * (% style="color:#037691" %)**AT+PUBTOPIC=<device name>or User Defined**
667
668 * (% style="color:#037691" %)**AT+CLIENT=<device name> or User Defined**
669
670 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
671
672 * (% style="color:#037691" %)**AT+PWD=“Your device token”**
673
kai 173.2 674 === 3.8.2 Simulate with MQTT.fx ===
Xiaoling 53.23 675
Xiaoling 99.3 676
David Huang 70.1 677 [[image:image-20230802112413-52.png]]
Xiaoling 53.23 678
Xiaoling 53.2 679
Xiaoling 105.2 680 [[image:image-20230808105300-2.png||height="553" width="1026"]]
Xiaoling 53.2 681
Xiaoling 99.3 682
Xiaoling 53.38 683 Users can run the (% style="color:blue" %)**AT+PRO=3,5**(%%) command, and the payload will be converted to **JSON format**.
Xiaoling 53.2 684
Xiaoling 105.2 685 [[image:image-20230808105217-1.png||height="556" width="1031"]]
Xiaoling 53.44 686
David Huang 70.1 687 [[image:image-20230808105329-3.png]]
Xiaoling 53.2 688
689
kai 173.2 690 === 3.8.3 tago data ===
Xiaoling 53.2 691
Xiaoling 53.23 692
Xiaoling 105.2 693 [[image:image-20230802112413-50.png||height="242" width="1037"]]
Xiaoling 53.2 694
Edwin Chen 59.1 695 [[image:image-20230802112413-51.png||height="184" width="696"]]
Xiaoling 53.2 696
697
kai 173.2 698 == 3.9 TCP Connection ==
Edwin Chen 63.1 699
Xiaoling 83.6 700
Xiaoling 83.5 701 (% style="color:blue" %)**AT command:**
Edwin Chen 63.1 702
Xiaoling 83.5 703 * (% style="color:#037691" %)**AT+PRO=4,0   ** (%%) ~/~/ Set to use TCP protocol to uplink(HEX format)
Edwin Chen 63.1 704
Xiaoling 83.5 705 * (% style="color:#037691" %)**AT+PRO=4,1   ** (%%) ~/~/ Set to use TCP protocol to uplink(JSON format)
Edwin Chen 63.1 706
Xiaoling 83.8 707 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5600 ** (%%) ~/~/ to set TCP server address and port
Xiaoling 83.5 708
Xiaoling 83.6 709 (% style="color:blue" %)**Sensor Console Output when Uplink:**
Xiaoling 83.5 710
Edwin Chen 63.1 711 [[image:image-20230807233631-1.png]]
712
713
Xiaoling 83.6 714 (% style="color:blue" %)**See result in TCP Server:**
Edwin Chen 63.1 715
716 [[image:image-20230807233631-2.png]]
Edwin Chen 132.1 717
718
kai 173.2 719 == 3.10 AWS Connection ==
Edwin Chen 132.1 720
721
Mengting Qiu 164.1 722 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]]
723
724
Mengting Qiu 154.1 725 = 4. MQTT/UDP/TCP downlink =
Xiaoling 145.2 726
Mengting Qiu 154.1 727 == 4.1 MQTT (via MQTT.fx) ==
728
Xiaoling 180.1 729
Mengting Qiu 154.1 730 Configure MQTT connections properly and send downlink commands to configure nodes through the Publish function of MQTT.fx//.//
731
Mengting Qiu 160.1 732 **1.** Configure node MQTT connection (via MQTT.fx):
Mengting Qiu 154.1 733
734 (% style="color:blue" %)**AT command:**
735
Mengting Qiu 160.1 736 * (% style="color:#037691" %)**AT+PRO=3,0 or 3,5 ** (%%)~/~/ hex format or json format
Mengting Qiu 154.1 737
738 * (% style="color:#037691" %)**AT+SUBTOPIC=User Defined**
739
740 * (% style="color:#037691" %)**AT+PUBTOPIC=User Defined**
741
742 * (% style="color:#037691" %)**AT+UNAME=<device name> or User Defined**
743
744 * (% style="color:#037691" %)**AT+PWD=<device name> or User Defined**
745
Mengting Qiu 160.1 746 * (% style="color:#037691" %)**AT+SERVADDR=8.217.91.207,1883 ** (%%) ~/~/ to set MQTT server address and port
Mengting Qiu 154.1 747
748 (% 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.**
749
Mengting Qiu 160.1 750 [[image:image-20240417180145-2.png||height="434" width="587"]][[image:image-20240417180737-3.png||height="431" width="584"]]
Mengting Qiu 154.1 751
752
Mengting Qiu 160.1 753 **2. **When the node uplink packets, we can observe the data in MQTT.fx.
Mengting Qiu 154.1 754
Mengting Qiu 160.1 755 [[image:image-20240418144337-1.png||height="709" width="802"]]
Mengting Qiu 154.1 756
Mengting Qiu 160.1 757 **3. **The downlink command can be successfully sent only when the downlink port is open.
Mengting Qiu 154.1 758
Mengting Qiu 160.1 759 The downlink port is opened for about 3 seconds after uplink packets are sent.
Mengting Qiu 154.1 760
Mengting Qiu 160.1 761 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.
Mengting Qiu 154.1 762
Mengting Qiu 160.1 763 [[image:image-20240418150435-3.png||height="582" width="659"]]
764
765 [[image:image-20240418150932-4.png||height="492" width="1061"]]
766
767 (% 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.**
768
769
Mengting Qiu 154.1 770 = 5. FAQ =
771
772 == 5.1 What is the usage of Multi Sampling and One Uplink? ==
773
774
Edwin Chen 133.1 775 The NB series has the feature for Multi Sampling and one uplink. See one of them
776
777 [[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]]
778
779 User can use this feature for below purpose:
780
781 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.
782 1. Give more sampling data points.
783 1. Increase reliable in transmission. For example. If user set
784 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)
785 1*. **AT+NOUD=24** ~/~/  The device uploads 24 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
786 1*. **AT+TDC=7200**  ~/~/ Uplink every 2 hours.
Xiaoling 148.2 787 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.
Edwin Chen 133.1 788
Mengting Qiu 154.1 789 == 5.2 Why the uplink JSON format is not standard? ==
Edwin Chen 145.1 790
Xiaoling 148.2 791
Edwin Chen 145.1 792 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.
793
Edwin Chen 148.1 794 The firmware version released after 2024, Mar will use change back to use Json format. Detail please check changelog.
795
Edwin Chen 145.1 796 [[image:image-20240229233154-1.png]]
797
798
Mengting Qiu 154.1 799 = 6. Trouble Shooting: =
Edwin Chen 133.1 800
Mengting Qiu 154.1 801 == 6.1 Checklist for debuging Network Connection issue. Signal Strenght:99 issue. ==
Edwin Chen 133.1 802
Xiaoling 145.2 803
Edwin Chen 132.1 804 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.
805
806 If end device successfully attached NB-IoT Network, User can normally see the signal strengh as below (between 0~~31)
807
808 [[image:image-20240207002003-1.png]]
809
810
811 If fail to attach network, it will shows signal 99. as below:
812
813 [[image:image-20240207002129-2.png]]
814
815
816 (% class="lead" %)
817 When see this issue, below are the checklist:
818
819 * 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.
820 * 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]].
821 * 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]].
822 * Check if the device is attached to Carrier network but reject. (need to check with operator).
823 * Check if the antenna is connected firmly.
824
825 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.
826
Edwin Chen 135.1 827
Mengting Qiu 154.1 828 == 6.2 Issue: "NBIOT did not respond" ==
Edwin Chen 135.1 829
Xiaoling 145.2 830
Edwin Chen 135.1 831 (% class="box errormessage" %)
832 (((
833 11:24:22.397 [44596]NBIOT did not respond.
834 11:24:24.315 [46530]NBIOT did not respond.
835 11:24:26.256 [48464]NBIOT did not respond.
836 11:24:28.196 [50398]NBIOT did not respond.
837 11:24:30.115 [52332]NBIOT did not respond.
838 11:24:32.127 [54266]NBIOT did not respond.
839 11:24:32.127 [54299]Restart the module...
840 11:24:39.181 [61332]No response when shutting down
841 )))
842
843 This issue might due to initiate issue for NB-IoT module. In this case, please try:
844
845 1) Open Enclosure
846
847 2) Power off device by pull out the power on Jumper
848
849 3) Power on device by connect back the power jumper.
850
851 4) push reset button.
852
853 [[image:image-20240208001740-1.png]]
Edwin Chen 138.1 854
855
Mengting Qiu 154.1 856 == 6.3 Issue: "Failed to readI MSI number" ==
Edwin Chen 138.1 857
Xiaoling 145.2 858
Edwin Chen 138.1 859 (% class="box errormessage" %)
860 (((
861 [18170]Failed to read IMSI:1umber.
862 [20109]Failed to read IMSI numoer.
863 [22048]Failed to read IMSI number.
864 [29842lRestart the module...
865 )))
866
Edwin Chen 141.1 867 Make sure that the SIM card is insert in correct direction and device is power off/on during insert. Here is reference link: [[Insert SIM Card>>||anchor="H2.1GeneralConfiguretoattachnetwork"]].
868
869
Bei Jinggeng 161.2 870 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.4 Why sometime the AT Command is slow in reponse?(%%) ==
Edwin Chen 141.1 871
Xiaoling 145.2 872
Mengting Qiu 142.1 873 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.
Edwin Chen 141.1 874
875 [[image:image-20240226111928-1.png]]
Bei Jinggeng 161.2 876
877
878 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.5 What is the Downlink Command by the NB device?(%%) ==
879
Bei Jinggeng 163.1 880 (% data-sider-select-id="bb6e9353-0c3f-473c-938d-4b416c9a03e6" %)
881 === UDP: ===
Bei Jinggeng 161.2 882
Bei Jinggeng 163.1 883 (% data-sider-select-id="14a4790e-7faa-4508-a4dd-7605a53f1cb3" %)
Bei Jinggeng 161.2 884 Its downlink command is the same as the AT command, but brackets are required.
885 Example:
886
887 {AT+TDC=300}
888
Bei Jinggeng 163.1 889
890 (% data-sider-select-id="90b80f1a-e924-4c8a-afc5-4429e019a657" %)
891 === MQTT: ===
892
893 Json:
894
895 The Json format in MQTT mode needs to be configured with all commands.
896 If you have configurations that need to be changed, please change them in the template below.
897 Template:
898
899 {
900 "AT+SERVADDR":"119.91.62.30,1882",
901 "AT+CLIENT":"JwcXKjQBNhQ2JykDDAA5Ahs",
902 "AT+UNAME":"usenamedragino",
903 "AT+PWD":"passworddragino",
904 "AT+PUBTOPIC":"123",
905 "AT+SUBTOPIC":"321",
906 "AT+TDC":"7200",
907 "AT+INTMOD":"0",
908 "AT+APN":"NULL",
909 "AT+5VT":"0",
910 "AT+PRO":"3,5",
911 "AT+TR":"900",
912 "AT+NOUD":"0",
913 "AT+CSQTIME":"5",
914 "AT+DNSTIMER":"0",
915 "AT+TLSMOD":"0,0",
916 "AT+MQOS":"0",
917 "AT+TEMPALARM1":"0",
918 "AT+TEMPALARM2":"10",
919 "AT+TEMPALARM3":"0"
920 }
921
922 Hex:
923
924 MQTT's hex format. Since many commands need to support strings, only a few commands are supported.
925
926 The supported commands are consistent with LoRaWAN's hex commands.
927 Please refer to the following link to obtain the hex format:
928
929 [[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/]]
930
Bei Jinggeng 167.1 931
Xiaoling 180.1 932 == (% data-sider-select-id="765eceff-93b1-40ee-800b-b7b7d022ef8a" %)6.6 How to obtain device logs?(%%) ==
Bei Jinggeng 167.1 933
Xiaoling 180.1 934
Bei Jinggeng 167.1 935 * **AT Command: AT** **+GETLOG**
936
937 This command can be used to query upstream logs of data packets.
938
939 [[image:image-20240701114700-1.png]]
940
941
Mengting Qiu 181.1 942 == 6.7 How to find the AT Command Password if lost? ==
Bei Jinggeng 167.1 943
Mengting Qiu 181.1 944
945 == 6.7.1. Why can't the password access AT command after upgrade(-NB)? ==
946
947
948 Because the new version of -NB firmware has updated the factory reset function, users can choose to restore all parameters to factory Settings, or keep the password to restore the rest of the parameters to factory Settings.
949
950 This update changes the password address of the firmware, so the password will be invalid after the customer upgrades from the old version of firmware (without FDR1 function) to the new version of firmware (with FDR1 function).
951
952 Two different restore factory Settings configurations.
953
954 (% style="color:blue" %)**AT command:**
955
956 * (% style="color:#037691; font-weight:bold" %)**AT+FDR**(%%)**       **~/~/ Reset Parameters to Factory Default.
957 * (% style="color:#037691; font-weight:bold" %)**AT+FDR1**(%%)**     **~/~/ Reset parameters to factory default values except for passwords.(new)
958
959 == 6.7.2 Version Confirmation ==
960
961
962 We are now dividing the **old firmware**(without FDR1 function) with the **new firmware**(with FDR1 function) by whether it contains FDR1 functionality. Please refer to the table:
963
964 (% border="1" style="background-color:#f2f2f2; width:510px" %)
965 |(% style="background-color:#4f81bd; color:white; width:210px" %)**General Model**|(% style="background-color:#4f81bd; color:white; width:150px" %)(((
966 **Firmware version**
967
968 **(without FDR1 function)**
969 )))|(% style="background-color:#4f81bd; color:white; width:150px" %)(((
970 **Firmware version**
971
972 **(with FDR1 function)**
973 )))
974 |(% style="width:210px" %)(((
975 CPL03-NB, S31-NB, SN50V3-NB, TS01-NB, D20-NB, DS03A-NB, DDS04-NB, DDS45-NB, DDS20-NB, DDS75-NB, LDS12-NB, LDS40-NB, LMS01-NB, MDS120-NB,  MDS200-NB, SE01-NB, SPH01-NB;
976 )))|(% style="width:150px" %)Before V1.2.1|(% style="width:150px" %)After V1.2.1 (including V1.2.1)
977 |(% style="width:210px" %)(((
978 WL03A-NB, SDI-12-NB;
979 )))|(% style="width:150px" %)Before V1.0.2|(% style="width:150px" %)(((
980 After V1.0.8 (including V1.0.2)
981 )))
982 |(% style="width:210px" %)(((
983 SW3L-NB, PS-NB;
984 )))|(% style="width:150px" %)Before V1.0.5|(% style="width:150px" %)(((
985 After V1.0.5 (including V1.0.5)
986 )))
987 |(% style="width:210px" %)RS485-NB|(% style="width:150px" %)Before V1.0.8|(% style="width:150px" %)After V1.0.8 (including V1.0.8)
988
989
990 == 6.7.3 UART connection and firmware update methods ==
991
992
993 Users can query passwords only using the UART interface via the STM32CubeProgrammer.
994
995 See **[[UART Connection>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H2.3UARTConnectionforSN50v3basemotherboard]]**.
996
997 update firmware through UART TTL interface :** [[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART_Access_for_NB_ST_BC660K-GL/#H4.2UpdateFirmware28Assumethedevicealreadyhaveabootloader29]]**.
998
999
1000 == 6.7.4 query the password via STM32CubeProgrammer ==
1001
1002
1003 Users can use the password address to query the password through STM32CubeProgrammer.
1004
1005 * The password address for old firmware(without FDR1 function) : **0x08019000**
1006 * The password address for new firmware(with FDR1 function) : **0x08025D00**
1007
1008 (% style="color:red" %)**Notice: The password can only be queried after the firmware is run once.**
1009
1010
1011 **Procedure for querying the password(old firmware):**
1012
1013 * After the firmware upgrade is complete, switch back to the **FLASH** and reset the node to **run the firmware once**.
1014 * Then place the switch at the **ISP** and connect to the STM32CubeProgrammer (same as when burning the firmware).
1015 * Click "Device memory", enter **0x08019000** in "Address", and click "Read"
1016 * Find the 0x08019000 address field and then read the current password as shown in the screenshot below.
1017
1018 [[image:http://wiki.dragino.com/xwiki/bin/download/Why%20can%27t%20the%20password%20access%20AT%20command%20after%20upgrade%28-NB%29%3F/WebHome/image-20240827171901-3.png?width=912&height=528&rev=1.1||alt="image-20240827171901-3.png"]]
1019
1020
1021 **Procedure for querying the password(new firmware):**
1022
1023 Refer to [[the old and new firmware division>>http://wiki.dragino.com/xwiki/bin/view/Why%20can%27t%20the%20password%20access%20AT%20command%20after%20upgrade%28-NB%29%3F/#H3.A0VersionConfirmation]] above, and run the firmware first after updating the firmware.
1024
1025 * After the firmware upgrade is complete, switch back to the **FLASH** and reset the node to **run the new firmware once**.
1026 * Then place the switch at the **ISP** and connect to the STM32CubeProgrammer (same as when burning the firmware).
1027 * Click "Device memory", enter **0x08025D00** in "Address", and click "Read"
1028 * Find the 0x08025D00 address field and then read the current password as shown in the screenshot below.
1029
1030 [[image:http://wiki.dragino.com/xwiki/bin/download/Why%20can%27t%20the%20password%20access%20AT%20command%20after%20upgrade%28-NB%29%3F/WebHome/image-20240827180414-1.png?width=910&height=527&rev=1.1||alt="image-20240827180414-1.png"]]
1031
1032
1033
1034 == 6.7.5. Special case ==
1035
1036
1037 If the user has never changed the password manually, the user cannot find the valid password through the above two password addresses. In this case, the valid password is still the original password on the node box label (**AT+PIN**).
1038
1039 Invalid query screenshot example:
1040
1041
1042 [[image:http://wiki.dragino.com/xwiki/bin/download/Why%20can%27t%20the%20password%20access%20AT%20command%20after%20upgrade%28-NB%29%3F/WebHome/image-20240827181447-4.png?width=889&height=519&rev=1.1||alt="image-20240827181447-4.png"]]
1043
1044 [[image:http://wiki.dragino.com/xwiki/bin/download/Why%20can%27t%20the%20password%20access%20AT%20command%20after%20upgrade%28-NB%29%3F/WebHome/image-20240827181431-3.png?width=892&height=515&rev=1.1||alt="image-20240827181431-3.png"]]
1045
1046
1047
Bei Jinggeng 161.2 1048
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0