Changes for page How to Uplink -NB and -CB series devices data by MQTT with Thingseye
Last modified by Alec Chen on 2025/04/02 18:03
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Title
-
... ... @@ -1,1 +1,1 @@ 1 -How to communice Dragino-NB and -CB series devices data by MQTT with Thingseye1 +How to Uplink -NB and -CB series devices data by MQTT with Thingseye - Content
-
... ... @@ -15,132 +15,10 @@ 15 15 [[image:https://wiki.dragino.com/xwiki/bin/download/Main/ThingsBoard/ins1.png?width=500&height=310&rev=1.1||alt="ins1.png" height="310" width="500"]] 16 16 17 17 18 -= 3.General MQTTConnection =18 += (% style="color:#333333; font-family:inherit; font-size:max(23px, min(29px, 12.3333px + 1.38889vw))" %)3. Configure Thingseye's Integration(%%) = 19 19 20 - The NB-IoT Sensorcan send packetto server useMQTTprotocol.20 +== 3.1 Creat new MQTT integration == 21 21 22 -Below are the commands. 23 - 24 -**AT Commands:** 25 - 26 -{{code language="none"}} 27 -AT+PRO=3,0 // Set to use MQTT protocol to uplink, Payload Type select Hex payload. 28 -AT+SERVADDR=120.24.4.116,1883 // Set MQTT server address and port 29 -AT+CLIENT=CLIENT // Set up the CLIENT of MQTT 30 -AT+UNAME=UNAME // Set the username of MQTT 31 -AT+PWD=PWD // Set the password of MQTT 32 -AT+PUBTOPIC=NSE01_PUB // Set the sending topic of MQTT 33 -AT+SUBTOPIC=NSE01_SUB // Set the subscription topic of MQTT 34 -{{/code}} 35 - 36 -[[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-20230802112413-4.png?rev=1.1||alt="image-20230802112413-4.png"]] 37 - 38 -[[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-20230802112413-5.png?width=987&height=530&rev=1.1||alt="image-20230802112413-5.png" height="530" width="987"]] 39 - 40 -(% class="text-uppercase small mark" %)##**Notice: MQTT protocol has a much higher power consumption compare with UDP/CoAP protocol. Please check the power analyze document and adjust the uplink**## 41 - 42 -(% class="text-uppercase small mark" %)##**period to a suitable interval.**## 43 - 44 -= 4. Data Converters = 45 - 46 -In **Thingseye**, **Data Converters** are components used to transform incoming or outgoing data between different formats, typically to convert raw telemetry data from devices into a structured format that Thingseye can understand, or vice versa. 47 - 48 -== 4.1 Uplink == 49 - 50 -In the left navigation, click **Integrations center**, and then click **Data converters**. 51 - 52 -On the **Data converters** page, click on the ‘**+**’ button, and then click on the **Create new converter** from the dropdown menu. 53 - 54 -[[image:1743578461281-635.png]] 55 - 56 - 57 - 58 - 59 -The **Add data converter** window will appear. 60 - 61 -Let's create an uplink data converter for the device named '**Device A**'. Name it ‘**MQTT Uplink Converter - Device A**’ and select the Type as **Uplink**. 62 - 63 -Click on the **TBEL** button if it has not been selected by default. 64 - 65 -Modify the default TBEL function to match with your device as described below: 66 - 67 -* Uncomment** line 11**: 68 - 69 -//var data = decodeToJson(payload)// 70 - 71 -* **Line 13**: Assign your device name to the **deviceName** field. - We used **Device A** as it is to match with our device, **Device A **in the Devices section. 72 -* From **line 38**: Modify the telemetry section to allow parsed data to be assigned to the fields. 73 - 74 -//telemetry: { 75 - temperature: data.temperature, 76 - humidity: data.humidity, 77 - rawData: payloadStr 78 - }// 79 - 80 -The modified uplink decoder function to match with **Device A** is shown below. 81 - 82 -{{code language="nono"}} 83 -// Decode an uplink message from a buffer 84 -// payload - array of bytes 85 -// metadata - key/value object 86 - 87 -/** Decoder **/ 88 - 89 -// decode payload to string 90 -var payloadStr = decodeToString(payload); 91 - 92 -// decode payload to JSON 93 -var data = decodeToJson(payload); 94 - 95 -var deviceName = 'Device A'; 96 -var deviceType = 'thermostat'; 97 -var customerName = 'Customer C'; 98 -var groupName = 'thermostat devices'; 99 -var manufacturer = 'Example corporation'; 100 -// use assetName and assetType instead of deviceName and deviceType 101 -// to automatically create assets instead of devices. 102 -// var assetName = 'Asset A'; 103 -// var assetType = 'building'; 104 - 105 -// Result object with device/asset attributes/telemetry data 106 -var result = { 107 -// Use deviceName and deviceType or assetName and assetType, but not both. 108 - deviceName: deviceName, 109 - deviceType: deviceType, 110 -// assetName: assetName, 111 -// assetType: assetType, 112 -// customerName: customerName, 113 - groupName: groupName, 114 - attributes: { 115 - model: 'Model A', 116 - serialNumber: 'SN111', 117 - integrationName: metadata['integrationName'], 118 - manufacturer: manufacturer 119 - }, 120 - telemetry: { 121 - temperature: data.temperature, 122 - humidity: data.humidity, 123 - rawData: payloadStr 124 - } 125 -}; 126 - 127 -/** Helper functions 'decodeToString' and 'decodeToJson' are already built-in **/ 128 - 129 -return result; 130 -{{/code}} 131 - 132 -Once you modify the decoder function, click on the **Add** button. 133 - 134 -[[image:https://wiki.dragino.com/xwiki/bin/download/Main/ThingsBoard/ul-data-converter-device-a.png?width=500&height=524&rev=1.1||alt="ul-data-converter-device-a.png"]] 135 - 136 -You should see that the newly added **MQTT Uplink converter **NB/CB is listed on the **Data Converters** page. 137 - 138 -[[image:https://wiki.dragino.com/xwiki/bin/download/Main/ThingsBoard/ul-data-converter-added.png?height=257&rev=1.1||alt="ul-data-converter-added.png"]] 139 - 140 -= 5. Add Integration = 141 - 142 -== 5.1. Creat new MQTT integration == 143 - 144 144 In the left navigation, click **Integrations center**, and then click **Integrations**. 145 145 146 146 On the **Integrations** page, click on the '**+**' button. ... ... @@ -200,7 +200,7 @@ 200 200 201 201 [[image:1743579352961-586.png||height="507" width="502"]] 202 202 203 -[[image:1743580 606618-281.png||height="495" width="504"]]81 +[[image:1743584347047-327.png]] 204 204 205 205 206 206 Click on the **Add** button. ... ... @@ -209,13 +209,16 @@ 209 209 210 210 Since we haven't received data from a device yet, the integration **Status** is shown as **Pending, Active instead if it have.** 211 211 90 +[[image:1743580606618-281.png||height="495" width="504"]] 212 212 213 213 93 += 4. Configure Thingseye's Data Converters = 214 214 95 +First, you need to download the [[**MQTT uplink/downlink JS** **code**>>url:https://www.dropbox.com/scl/fo/d5s1wf36f4syv30a8laup/AK8FjVpNXYXCWodRnnQ1Hig?rlkey=jrz1ip0f0xwwq5z2m2gu1tuij&e=1&st=kl4caub0&dl=0]]. 215 215 216 - ==5.2.Setupuplinkanddownlinkconverters==97 +In **Thingseye**, **Data Converters** are components used to transform incoming or outgoing data between different formats, typically to convert raw telemetry data from devices into a structured format that Thingseye can understand, or vice versa. 217 217 218 - First,youneed to download the [[**MQTT uplink/downlinkJS** **code**>>url:https://www.dropbox.com/scl/fo/d5s1wf36f4syv30a8laup/AK8FjVpNXYXCWodRnnQ1Hig?rlkey=jrz1ip0f0xwwq5z2m2gu1tuij&e=1&st=kl4caub0&dl=0]].99 +== 4.1 Uplink == 219 219 220 220 * **Uplink Converter** 221 221 ... ... @@ -231,8 +231,12 @@ 231 231 [[image:1743581965585-763.png]] 232 232 233 233 234 - ***DownlinkConverter**115 +== 4.2 Downlink == 235 235 117 +* ((( 118 +**Downlink Converter** 119 +))) 120 + 236 236 Go to the **Integrations center** -> **Data converters** page, and find that MQTT downlink converter that was newly created when the integration was created. 237 237 238 238 ... ... @@ -241,27 +241,37 @@ 241 241 [[image:1743582084494-111.png]] 242 242 243 243 129 +== 4.3 Simulate with MQTT.fx == 244 244 131 +[[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-20241126191118-18.png?width=835&height=605&rev=1.1||alt="image-20241126191118-18.png"]] 245 245 246 - = 8.PhysicalNB-IoTSensor133 +[[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-20241126193252-25.png?width=803&height=663&rev=1.1||alt="image-20241126193252-25.png"]] 247 247 248 -Now, let's experiment with sending data to Thingseye using a real NB-IoT device. For example, we will use the **TS01-NB**. 249 249 250 - First,configurethe NB-IoTdevice with the necessary MQTT settingsusing ATcommands. Below is a listof AT commands you can use.136 += 5. Test connect = 251 251 252 252 **AT Commands** 253 253 254 -* **AT+PRO=3,3 **~/~/ Use MQTT to connect to Thingseye. Payload Type set to 3. 255 -* **AT+SUBTOPIC=<MQTT subscribe topic> Eg: TS01-NB** 256 -* **AT+PUBTOPIC=<MQTT publish topic> Eg: TS01-NB** 257 -* **AT+CLIENT=null** 258 -* **AT+UNAME=<MQTT Username>** 259 -* **AT+PWD=<MQTT Password>** 260 -* **AT+SERVADDR=<Broker address, Port>** 140 +* **AT+PRO=3,5 **~/~/ Use MQTT Connection & Json Payload 141 +* **AT+SERVADDR=lns1.thingseye.io,8883** 142 +* **AT+SUBTOPIC=8899 **~/~/ Consistent with the Topic of MQTT integration created by ThingsEye 143 +* **AT+PUBTOPIC=8899 **~/~/ Consistent with the Topic of MQTT integration created by ThingsEye 144 +* **AT+CLIENT=NULL** 145 +* **AT+UNAME=NULL** 146 +* **AT+PWD=NULL** 147 +* **AT+TLSMOD=1,2** 261 261 262 -Test your uplink by pressing the ACT button for 1 second. 263 - 149 +(% class="box warningmessage" %) 150 +((( 151 +Be careful, “ Topic” should be same of device & serve. If your device not belongs Dragino, address should be same of the broker which using. 152 +))) 264 264 265 -T hefollowing imageshowsthe uplinkpayload of a real Dragino device. Thepublishtopicis'**TS01-NB'thatcontainsfields inthepayload,IMEI, IMSI, Model, temperature,etc**. Note that wehave createdadevice named **TS01-NB** inthe**Devices** section in advance.154 +Test Uplink by click the button for 1~~3 seconds, the MQTT integration in ThingsEye allows you to view the data upstream from the device: 266 266 267 -[[image:https://wiki.dragino.com/xwiki/bin/download/Main/ThingsBoard/image-4.png?rev=1.2||alt="image-4.png"]] 156 + 157 + 158 +Go to **"Device" ** -> ** "Search Device"**, enter the ** IMEI** of the device to find the device. 159 + 160 + 161 + 162 +
- 1743584347047-327.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Alec - Size
-
... ... @@ -1,0 +1,1 @@ 1 +126.3 KB - Content