Last modified by Mengting Qiu on 2025/07/03 18:55
From version 58.1
edited by Edwin Chen
on 2023/08/07 09:28
on 2023/08/07 09:28
Change comment:
There is no comment for this version
To version 55.1
edited by Edwin Chen
on 2023/08/06 08:25
on 2023/08/06 08:25
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -17,7 +17,7 @@ 17 17 18 18 1. Get a NB-IoT SIM card from Service Provider. (Not the same as the SIM card we use in mobile phone) 19 19 1. Insert the SIM card to Sensor 20 -1. [[Configure APN>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20configure%20APN%20in%20the%20node/]] in the sensor (% class="mark" %)(补充 APN 指令(%%))20 +1. [[Configure APN>>http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20configure%20APN%20in%20the%20node/]] in the sensor 21 21 22 22 After doing above, the NB-IoT Sensors should be able to attach to NB-IoT network . 23 23 ... ... @@ -24,15 +24,16 @@ 24 24 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. 25 25 26 26 (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:878px" %) 27 -|(% style="background-color:#4f81bd; color:white; width:11 7px" %)**SIM Provider**|(% style="background-color:#4f81bd; color:white; width:151px" %)**APN**|(% style="background-color:#4f81bd; color:white; width:474px" %)**NB-IoT Coverage**|(% style="background-color:#4f81bd; color:white; width:135px" %)**Comments**28 -|(% style="width:11 7px" %)**[[1NCE>>https://1nce.com]]**|(% style="width:151px" %)iot.1nce.net|(% style="width:474px" %)(((27 +|(% style="background-color:#4f81bd; color:white; width:114px" %)**SIM Provider**|(% style="background-color:#4f81bd; color:white; width:154px" %)**APN**|(% style="background-color:#4f81bd; color:white; width:474px" %)**NB-IoT Coverage**|(% style="background-color:#4f81bd; color:white; width:135px" %)**Comments** 28 +|(% style="width:114px" %)**[[1NCE>>https://1nce.com]]**|(% style="width:154px" %)iot.1nce.net|(% style="width:474px" %)((( 29 29 **[[Coverage Reference Link>>https://1nce.com/en-ap/1nce-connect]]** 30 30 31 31 Austria, Belgium, Bulgaria, Croatia, Czech Republic, Denmark, Finland, Germany, Great Britain, Greece, Hungary, Ireland, Italy, Latvia, Malta, Netherlands, Norway, Puerto Rico, Russia, Slovak , Republic, Slovenia, Spain, Sweden, Switzerland, Taiwan, USA, US Virgin Islands 32 32 )))|(% style="width:135px" %) 33 -|(% style="width:11 7px" %)China Mobile|(% style="width:151px" %)Noneed configure|(% style="width:474px" %)China Mainland, HongKong|(% style="width:135px" %)34 -|(% style="width:11 7px" %)China Telecom|(% style="width:151px" %) |(% style="width:474px" %)China Mainland|(% style="width:135px" %)33 +|(% style="width:114px" %)China Mobile|(% style="width:154px" %) |(% style="width:474px" %)China Mainland, HongKong|(% style="width:135px" %) 34 +|(% style="width:114px" %)China Telecom|(% style="width:154px" %) |(% style="width:474px" %)China Mainland|(% style="width:135px" %) 35 35 36 + 36 36 = 3. Configure to connect to different servers = 37 37 38 38 == 3.1 General UDP Connection == ... ... @@ -227,18 +227,134 @@ 227 227 |(% style="background-color:#4f81bd; color:white; width:124px" %)NMDS200-NB|(% style="width:91px" %)distance1|(% style="width:102px" %)distance2|(% style="width:159px" %)Battery|(% style="width:153px" %)RSSI|(% style="width:152px" %) |(% style="width:148px" %) |(% style="width:164px" %) |(% style="width:152px" %) |(% style="width:66px" %) |(% style="width:66px" %) 228 228 |(% style="background-color:#4f81bd; color:white; width:124px" %)CPN01-NB|(% style="width:91px" %)alarm|(% style="width:102px" %)count|(% style="width:159px" %)door open duration|(% style="width:153px" %)calc flag|(% style="width:152px" %)Battery|(% style="width:148px" %)RSSI|(% style="width:164px" %) |(% style="width:152px" %) |(% style="width:66px" %) |(% style="width:66px" %) 229 229 |(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:124px" %)DS03A-NB|(% colspan="1" rowspan="1" style="width:91px" %)level|(% colspan="1" rowspan="1" style="width:102px" %)alarm|(% colspan="1" rowspan="1" style="width:159px" %)pb14door open num|(% colspan="1" rowspan="1" style="width:153px" %)pb14 last open time|(% colspan="1" rowspan="1" style="width:152px" %)pb15 level status|(% colspan="1" rowspan="1" style="width:148px" %)pb15 alarm status|(% colspan="1" rowspan="1" style="width:164px" %)pb15 door open num|(% colspan="1" rowspan="1" style="width:152px" %)pb15 last open time|(% colspan="1" rowspan="1" style="width:66px" %)Battery|(% colspan="1" rowspan="1" style="width:66px" %)RSSI 230 -|(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:124px" %)SN50V3-NB mod1|(% colspan="1" rowspan="1" style="width:91px" %)mod|(% colspan="1" rowspan="1" style="width:102px" %)Battery|(% colspan="1" rowspan="1" style="width:159px" %)RSSI|(% colspan="1" rowspan="1" style="width:153px" %)DS18B20 Temp|(% colspan="1" rowspan="1" style="width:152px" %)exit_state/input PA4|(% colspan="1" rowspan="1" style="width:148px" %)adc0|(% colspan="1" rowspan="1" style="width:164px" %)Temperature |(% colspan="1" rowspan="1" style="width:152px" %)Humidity|(% colspan="1" rowspan="1" style="width:66px" %) |(% colspan="1" rowspan="1" style="width:66px" %) 231 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)SN50V3-NB mod2|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)DS18B20 Temp|(% colspan="1" style="width:152px" %)exit_state/input PA4|(% colspan="1" style="width:148px" %)adc0|(% colspan="1" style="width:164px" %)distance|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:66px" %) |(% colspan="1" style="width:66px" %) 232 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)SN50V3-NB mod3|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)adc0|(% colspan="1" style="width:152px" %)exit_state/input PA4|(% colspan="1" style="width:148px" %)adc1|(% colspan="1" style="width:164px" %)Temperature|(% colspan="1" style="width:152px" %)Humidity|(% colspan="1" style="width:66px" %)adc4|(% colspan="1" style="width:66px" %) 233 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)SN50V3-NB mod4|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)DS18B20 Temp|(% colspan="1" style="width:152px" %)adc0|(% colspan="1" style="width:148px" %)exit_state/input PA4|(% colspan="1" style="width:164px" %)DS18B20 Temp2|(% colspan="1" style="width:152px" %)DS18B20 Temp3|(% colspan="1" style="width:66px" %) |(% colspan="1" style="width:66px" %) 234 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)SN50V3-NB mod5|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)DS18B20 Temp|(% colspan="1" style="width:152px" %)adc0|(% colspan="1" style="width:148px" %)exit_state/input PA4|(% colspan="1" style="width:164px" %)Weight|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:66px" %) |(% colspan="1" style="width:66px" %) 235 -|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)SN50V3-NB mod6|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)count|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:148px" %) |(% colspan="1" style="width:164px" %) |(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:66px" %) |(% colspan="1" style="width:66px" %) 231 +|(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:124px" %)SN50V3-NB|(% colspan="1" rowspan="1" style="width:91px" %) |(% colspan="1" rowspan="1" style="width:102px" %) |(% colspan="1" rowspan="1" style="width:159px" %) |(% colspan="1" rowspan="1" style="width:153px" %) |(% colspan="1" rowspan="1" style="width:152px" %) |(% colspan="1" rowspan="1" style="width:148px" %) |(% colspan="1" rowspan="1" style="width:164px" %) |(% colspan="1" rowspan="1" style="width:152px" %) |(% colspan="1" rowspan="1" style="width:66px" %) |(% colspan="1" rowspan="1" style="width:66px" %) 232 +|(% colspan="1" rowspan="1" style="background-color:#4f81bd; color:white; width:124px" %)mod1|(% colspan="1" rowspan="1" style="width:91px" %)mod|(% colspan="1" rowspan="1" style="width:102px" %)Battery|(% colspan="1" rowspan="1" style="width:159px" %)RSSI|(% colspan="1" rowspan="1" style="width:153px" %)DS18B20 Temp|(% colspan="1" rowspan="1" style="width:152px" %)exit_state/input PA4|(% colspan="1" rowspan="1" style="width:148px" %)adc0|(% colspan="1" rowspan="1" style="width:164px" %)Temperature |(% colspan="1" rowspan="1" style="width:152px" %)Humidity|(% colspan="1" rowspan="1" style="width:66px" %) |(% colspan="1" rowspan="1" style="width:66px" %) 233 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)mod2|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)DS18B20 Temp|(% colspan="1" style="width:152px" %)exit_state/input PA4|(% colspan="1" style="width:148px" %)adc0|(% colspan="1" style="width:164px" %)distance|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:66px" %) |(% colspan="1" style="width:66px" %) 234 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)mod3|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)adc0|(% colspan="1" style="width:152px" %)exit_state/input PA4|(% colspan="1" style="width:148px" %)adc1|(% colspan="1" style="width:164px" %)Temperature|(% colspan="1" style="width:152px" %)Humidity|(% colspan="1" style="width:66px" %)adc4|(% colspan="1" style="width:66px" %) 235 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)mod4|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)DS18B20 Temp|(% colspan="1" style="width:152px" %)adc0|(% colspan="1" style="width:148px" %)exit_state/input PA4|(% colspan="1" style="width:164px" %)DS18B20 Temp2|(% colspan="1" style="width:152px" %)DS18B20 Temp3|(% colspan="1" style="width:66px" %) |(% colspan="1" style="width:66px" %) 236 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)mod5|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)DS18B20 Temp|(% colspan="1" style="width:152px" %)adc0|(% colspan="1" style="width:148px" %)exit_state/input PA4|(% colspan="1" style="width:164px" %)Weight|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:66px" %) |(% colspan="1" style="width:66px" %) 237 +|(% colspan="1" style="background-color:#4f81bd; color:white; width:124px" %)mod6|(% colspan="1" style="width:91px" %)mod|(% colspan="1" style="width:102px" %)Battery|(% colspan="1" style="width:159px" %)RSSI|(% colspan="1" style="width:153px" %)count|(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:148px" %) |(% colspan="1" style="width:164px" %) |(% colspan="1" style="width:152px" %) |(% colspan="1" style="width:66px" %) |(% colspan="1" style="width:66px" %) 236 236 237 237 == 3.4 Datacake == 238 238 241 +=== 3.4.1 Define Product === 239 239 240 240 244 +Firstly, we need to set the MQTT mode to datacake, and we need to run(% style="color:blue" %)** AT+PRO=3,2**(%%). This command is set to datacake. After running the command, the device automatically sets the server address, port. 241 241 246 +By chosing to add the device under a (% style="color:blue" %)**"New Product"**(%%) you are required to give a name for this product. You can name it something like (% style="color:blue" %)**"My First MQTT Product"**. 247 + 248 +[[image:image-20230802112413-14.png||height="1095" width="1302"]] 249 + 250 + 251 +=== 3.4.2 Create Device === 252 + 253 + 254 +In the second step you have to define the device which should be added to the product. 255 + 256 +[[image:image-20230802112413-15.png||height="859" width="1290"]] 257 + 258 +Enter a name here (such as "My First MQTT Device") and complete the creation of the device by clicking on the (% style="color:blue" %)**"Next"**(%%) button. 259 + 260 + 261 +=== 3.4.3 Create Database Fields === 262 + 263 + 264 +After creating the device, it is listed in the table of the fleet view. Now open the device by clicking on the entry in the list. 265 + 266 +You will then see a device view with an empty dashboard. Now, the first thing we want to do is navigate to the Device configuration. To do this, use the tab bar and click on (% style="color:blue" %)**"Configuration"**. 267 + 268 +[[image:image-20230802112413-16.png||height="495" width="1310"]] 269 + 270 +[[image:image-20230802112413-17.png||height="741" width="1303"]] 271 + 272 +To create a first database field, please click on the (% style="color:blue" %)**"Add Field"**(%%) button as marked in the screenshot above. 273 + 274 +This will open another modal asking for some required input for your first field. 275 + 276 +[[image:image-20230802112413-18.png||height="878" width="1305"]] 277 + 278 +[[image:image-20230802112413-19.png]] 279 + 280 + 281 +=== 3.4.4 Set up Broker === 282 + 283 + 284 +The broker is running on mqtt.datacake.co on ports (% style="color:blue" %)**1883 and 8883**(%%). Port 1883 is unsecured and should not be used in production environments. Port 8883 uses a CA signed server certificate. 285 + 286 +You will need an access token to log into the Datacake MQTT Broker. You can use your own personal token or create a token explicitly for individual devices or groups of devices. 287 + 288 +View your Personal Access Token 289 + 290 +You can view your own token via the User-Settings-Menu. You can reach this menu by clicking on (% style="color:blue" %)**"Edit Profile"**(%%) at the end of the list using the Workspace Selector: 291 + 292 +[[image:image-20230802112413-20.png]] 293 + 294 + 295 +(% style="color:blue" %)**MQTT Client-ID** 296 + 297 +The Datacake Broker manages the client IDs internally. You do not need to worry about a client ID. If your client optionally supports the specification of a client ID, please leave this 298 +specification blank. Your client then creates a randomly generated ID. 299 + 300 +* (% style="color:blue" %)**AT+CLIENT=“Any value”** 301 + 302 +* (% style="color:blue" %)**AT+UNAME=Token** 303 + 304 +* (% style="color:blue" %)**AT+PWD=Token** 305 + 306 +[[image:image-20230802112413-21.png]] 307 + 308 + 309 +=== 3.4.5 Create your first Subscription === 310 + 311 + 312 +(% style="color:blue" %)**Subscribe** 313 + 314 +Data is published according to the following structure: (% style="color:blue" %)**dtck~/~//**(%%)** ** 315 + 316 +Subscribe to topics using this structure to receive messages via MQTT when readings (via API or MQTT) arrive in the Datacake Cloud. Messages are published whenever there is a change to a corresponding database field. 317 + 318 + 319 +[[image:image-20230802112413-22.png]] 320 + 321 + 322 +[[image:image-20230802112413-23.png]] 323 + 324 + 325 +[[image:image-20230802112413-24.png]] 326 + 327 + 328 +(% style="color:blue" %)**example:** 329 + 330 +AT+PUBTOPIC=dtck-pub/nbmattest/936c0db6-e9a5-4353-9fdb-3f63c8bfce7e/Temperature 331 + 332 +[[image:image-20230802112413-25.png]] 333 + 334 + 335 +=== 3.4.6 Define Publish Topic === 336 + 337 + 338 +(% style="color:blue" %)**Publish** 339 + 340 +To upload data into the Datacake Cloud and into a specific device, you publish the data to the respective topic structure. 341 + 342 +Due to the nature of MQTT, the topic prefix differs as follows: (% style="color:blue" %)**dtck-pub~/~//** 343 + 344 +(% style="color:blue" %)**example:** 345 + 346 +AT+SUBTOPIC=dtck/nbmattest/936c0db6-e9a5-4353-9fdb-3f63c8bfce7e/Temperature 347 + 348 + 349 +=== 3.4.7 upload data === 350 + 351 + 352 +[[image:image-20230802112413-26.png]] 353 + 354 +[[image:image-20230802112413-27.png]] 355 + 356 +[[image:image-20230802112413-28.png]] 357 + 358 + 242 242 == 3.5 Node-Red (via MQTT) == 243 243 244 244 === 3.5.1 Configure [[Node-Red>>http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/]] ===