Last modified by Mengting Qiu on 2025/07/03 18:55

From version 53.5
edited by Xiaoling
on 2023/08/02 11:45
Change comment: There is no comment for this version
To version 53.21
edited by Xiaoling
on 2023/08/02 14:23
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -21,7 +21,6 @@
21 21  |1NCE| | |
22 22  |China Mobile| | |
23 23  
24 -
25 25  == 2.1 1NCE SIM Card. ==
26 26  
27 27  
... ... @@ -50,7 +50,9 @@
50 50  (% style="color:blue" %)**AT Commands:**
51 51  
52 52  * (% style="color:#037691" %)**AT+PRO=2,0**  (%%) ~/~/  Set to use UDP protocol to uplink ,Payload Type select Hex payload
52 +
53 53  * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5601**  (%%) ~/~/  Set UDP server address and port
54 +
54 54  * (% style="color:#037691" %)**AT+CFM=1**    (%%) ~/~/  If the server does not respond, this command is unnecessary
55 55  
56 56  [[image:image-20230802112413-2.png]]
... ... @@ -62,33 +62,40 @@
62 62  [[image:image-20230802112413-3.png]]
63 63  
64 64  
65 -= 2. General MQTT Connection =
66 +== 3.2 General MQTT Connection ==
66 66  
68 +
67 67  The NB-IoT Sensor can send packet to server use MQTT protocol.
68 68  
69 -Below are the commands
71 +Below are the commands.
70 70  
71 -AT Commands:
73 +(% style="color:blue" %)**AT Commands:**
72 72  
73 -* AT+PRO=3,0 ~/~/  Set to use MQTT protocol to uplink, Payload Type select Hex payload.
74 -* AT+SERVADDR=120.24.4.116,1883    ~/~/  Set MQTT server address and port
75 -* AT+CLIENT=CLIENT        ~/~/  Set up the CLIENT of MQTT
76 -* AT+UNAME=UNAME                      ~/~/  Set the username of MQTT
77 -* AT+PWD=PWD                          ~/~/  Set the password of MQTT
78 -* AT+PUBTOPIC=NSE01_PUB               ~/~/  Set the sending topic of MQTT
79 -* AT+SUBTOPIC=NSE01_SUB           ~/~/  Set the subscription topic of MQTT
75 +* (% style="color:#037691" %)**AT+PRO=3,0**   (%%) ~/~/  Set to use MQTT protocol to uplink, Payload Type select Hex payload.
80 80  
77 +* (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883**  (%%) ~/~/  Set MQTT server address and port
78 +
79 +* (% style="color:#037691" %)**AT+CLIENT=CLIENT**     (%%) ~/~/  Set up the CLIENT of MQTT
80 +
81 +* (% style="color:#037691" %)**AT+UNAME=UNAME**        (%%) ~/~/  Set the username of MQTT
82 +
83 +* (% style="color:#037691" %)**AT+PWD=PWD**             (%%) ~/~/  Set the password of MQTT
84 +
85 +* (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB**  (%%) ~/~/  Set the sending topic of MQTT
86 +
87 +* (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB**  (%%) ~/~/  Set the subscription topic of MQTT
88 +
81 81  [[image:image-20230802112413-4.png]]
82 82  
83 83  [[image:image-20230802112413-5.png]]
84 84  
85 -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.
93 +(% 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.**
86 86  
87 87  
96 +== 3.3 [[ThingSpeak>>url:https://thingspeak.com/]] (via MQTT) ==
88 88  
89 -= 3. [[ThingSpeak>>url:https://thingspeak.com/]] (via MQTT) =
98 +=== 3.3.1 Get MQTT Credentials ===
90 90  
91 -== 1.1 Get MQTT Credentials ==
92 92  
93 93  [[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.
94 94  
... ... @@ -97,54 +97,69 @@
97 97  [[image:image-20230802112413-7.png]]
98 98  
99 99  
100 -== 1.2. Simulate with MQTT.fx ==
108 +== 3.3.2 Simulate with MQTT.fx ==
101 101  
102 -=== 1.2.1 Establish MQTT Connection ===
110 +=== 3.3.2.1 Establish MQTT Connection ===
103 103  
112 +
104 104  After we got MQTT Credentials, we can first simulate with PC tool MQTT.fx tool to see if the Credentials and settings are fine.
105 105  
106 106  [[image:image-20230802112413-8.png]]
107 107  
108 -* Broker Address: mqtt3.thingspeak.com
109 -* Broker Port: 1883
110 -* Client ID: <Your ThingSpeak MQTT ClientID>
111 -* User Name: <Your ThingSpeak MQTT User Name>
112 -* Password: <Your ThingSpeak MQTT Password>
117 +* (% style="color:#037691" %)**Broker Address:**(%%) mqtt3.thingspeak.com
113 113  
114 -=== 1.2.2 Publish Data to ThingSpeak Channel ===
119 +* (% style="color:#037691" %)**Broker Port:**(%%) 1883
115 115  
121 +* (% style="color:#037691" %)**Client ID:**(%%) <Your ThingSpeak MQTT ClientID>
122 +
123 +* (% style="color:#037691" %)**User Name:**(%%) <Your ThingSpeak MQTT User Name>
124 +
125 +* (% style="color:#037691" %)**Password:**(%%) <Your ThingSpeak MQTT Password>
126 +
127 +
128 +=== 3.3.2.2 Publish Data to ThingSpeak Channel ===
129 +
116 116  [[image:image-20230802112413-9.png]]
117 117  
118 118  [[image:image-20230802112413-10.png]]
119 119  
120 -In MQTT.fx, we can publish below info:
134 +(% style="color:blue" %)**In MQTT.fx, we can publish below info:**
121 121  
122 -* Topic: channels/YOUR_CHANNEL_ID/publish
123 -* Payload: field1=63&field2=67&status=MQTTPUBLISH
136 +* (% style="color:#037691" %)**Topic:**(%%) channels/YOUR_CHANNEL_ID/publish
124 124  
138 +* (% style="color:#037691" %)**Payload:**(%%) field1=63&field2=67&status=MQTTPUBLISH
139 +
125 125  Where 63 and 67 are the value to be published to field1 & field2.
126 126  
127 127  
128 -Result:
143 +(% style="color:blue" %)**Result: **
129 129  
130 130  [[image:image-20230802112413-11.png]]
131 131  
132 132  
133 -== 1.3 Configure NB-IoT Sensor for connection ==
148 +== 3.3 Configure NB-IoT Sensor for connection ==
134 134  
135 -=== 1.3.1 AT Commands: ===
150 +=== 3.3.1 AT Commands: ===
136 136  
152 +
137 137  In the NB-IoT, we can run below commands so to publish the channels like MQTT.fx
138 138  
139 -* AT+PRO=3,1   ~/~/Set to use ThingSpeak Server and Related Payload
140 -* AT+CLIENT=<Your ThingSpeak MQTT ClientID>
141 -* AT+UNAME=<Your ThingSpeak MQTT User Name>
142 -* AT+PWD=<Your ThingSpeak MQTT Password>
143 -* AT+PUBTOPIC=<YOUR_CHANNEL_ID>
144 -* AT+SUBTOPIC=<YOUR_CHANNEL_ID>
155 +* **AT+PRO=3,1**   ~/~/ Set to use ThingSpeak Server and Related Payload
145 145  
146 -=== 1.3.2 Uplink Examples ===
157 +* **AT+CLIENT=<Your ThingSpeaMQTT ClientID>**
147 147  
159 +* **AT+UNAME=<Your ThingSpeak MQTT User Name>**
160 +
161 +* **AT+PWD=<Your ThingSpeak MQTT Password>**
162 +
163 +* **AT+PUBTOPIC=<YOUR_CHANNEL_ID>**
164 +
165 +* **AT+SUBTOPIC=<YOUR_CHANNEL_ID>**
166 +
167 +
168 +=== 3.3.2 Uplink Examples ===
169 +
170 +
148 148  For S31-NB
149 149  
150 150  For SE01-NB
... ... @@ -170,8 +170,9 @@
170 170  For SN50V3-NB
171 171  
172 172  
173 -=== 1.3.2 Map fields to sensor value ===
196 +=== 3.3.3 Map fields to sensor value ===
174 174  
198 +
175 175  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.
176 176  
177 177  
... ... @@ -182,115 +182,45 @@
182 182  
183 183  Below is the NB-IoT Product Table show the mapping.
184 184  
185 -|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)Field1|(% colspan="1" rowspan="1" %)Field2|(% colspan="1" rowspan="1" %)Field3|(% colspan="1" rowspan="1" %)Field4|(% colspan="1" rowspan="1" %)Field5|(% colspan="1" rowspan="1" %)Field6|(% colspan="1" rowspan="1" %)Field7|(% colspan="1" rowspan="1" %)Field8|(% colspan="1" rowspan="1" %)(((
186 -Field9
209 +(% border="1" cellspacing="4" style="width:1386px;background-color:#F2F2F2" %)
210 +|(% style="width:124px;background-color:#4F81BD" %) |(% style="width:91px;background-color:#4F81BD;color:white" %)Field1|(% style="width:102px;background-color:#4F81BD;color:white" %)Field2|(% style="width:159px;background-color:#4F81BD;color:white" %)Field3|(% style="width:153px;background-color:#4F81BD;color:white" %)Field4|(% style="width:152px;background-color:#4F81BD;color:white" %)Field5|(% style="width:148px;background-color:#4F81BD;color:white" %)Field6|(% style="width:164px;background-color:#4F81BD;color:white" %)Field7|(% style="width:152px;background-color:#4F81BD;color:white" %)Field8|(% style="width:66px;background-color:#4F81BD;color:white" %)Field9|(% style="width:66px;background-color:#4F81BD;color:white" %)Field10
211 +|(% style="width:124px;background-color:#4F81BD;color:white" %)S31x-NB|(% style="width:91px" %)Temperature |(% style="width:102px" %)Humidity|(% 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" %)
212 +|(% style="width:124px;background-color:#4F81BD;color:white" %)SE01-NB|(% style="width:91px" %)Temperature |(% style="width:102px" %)Humidity|(% style="width:159px" %)conduct|(% style="width:153px" %)dielectric_constant|(% style="width:152px" %)Battery|(% style="width:148px" %)RSSI|(% style="width:164px" %) |(% style="width:152px" %) |(% style="width:66px" %) |(% style="width:66px" %)
213 +|(% style="width:124px;background-color:#4F81BD;color:white" %)DDS20-NB|(% style="width:91px" %)distance|(% style="width:102px" %)Battery|(% style="width:159px" %)RSSI|(% style="width:153px" %) |(% style="width:152px" %) |(% style="width:148px" %) |(% style="width:164px" %) |(% style="width:152px" %) |(% style="width:66px" %) |(% style="width:66px" %)
214 +|(% style="width:124px;background-color:#4F81BD;color:white" %)DDS45-NB|(% style="width:91px" %)distance|(% style="width:102px" %)Battery|(% style="width:159px" %)RSSI|(% style="width:153px" %) |(% style="width:152px" %) |(% style="width:148px" %) |(% style="width:164px" %) |(% style="width:152px" %) |(% style="width:66px" %) |(% style="width:66px" %)
215 +|(% style="width:124px;background-color:#4F81BD;color:white" %)DDS75-NB|(% style="width:91px" %)distance|(% style="width:102px" %)Battery|(% style="width:159px" %)RSSI|(% style="width:153px" %) |(% style="width:152px" %) |(% style="width:148px" %) |(% style="width:164px" %) |(% style="width:152px" %) |(% style="width:66px" %) |(% style="width:66px" %)
216 +|(% style="width:124px;background-color:#4F81BD;color:white" %)NMDS120-NB|(% style="width:91px" %)distance|(% style="width:102px" %)Battery|(% style="width:159px" %)RSSI|(% style="width:153px" %) |(% style="width:152px" %) |(% style="width:148px" %) |(% style="width:164px" %) |(% style="width:152px" %) |(% style="width:66px" %) |(% style="width:66px" %)
217 +|(% rowspan="1" style="width:124px;background-color:#4F81BD;color:white" %)SPH01-NB|(% style="width:91px" %)ph|(% style="width:102px" %)Temperature|(% style="width:159px" %)Battery|(% style="width:153px" %)RSSI|(% style="width:152px" %) |(% style="width:148px" %) |(% style="width:164px" %) |(% style="width:152px" %) |(% style="width:66px" %) |(% colspan="1" rowspan="1" style="width:66px" %)
218 +|(% style="width:124px;background-color:#4F81BD;color:white" %)NLM01-NB|(% style="width:91px" %)Humidity|(% style="width:102px" %)Temperature|(% 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" %)
219 +|(% style="width:124px;background-color:#4F81BD;color:white" %)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" %)
220 +|(% style="width:124px;background-color:#4F81BD;color:white" %)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" %)
221 +|(% colspan="1" rowspan="1" style="width:124px;background-color:#4F81BD;color:white" %)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
222 +|(% colspan="1" rowspan="1" style="width:124px;background-color:#4F81BD;color:white" %)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" %)
223 +|(% colspan="1" rowspan="1" style="width:124px;background-color:#4F81BD;color:white" %)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" %)
224 +|(% colspan="1" style="width:124px;background-color:#4F81BD;color:white" %)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" %)
225 +|(% colspan="1" style="width:124px;background-color:#4F81BD;color:white" %)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" %)
226 +|(% colspan="1" style="width:124px;background-color:#4F81BD;color:white" %)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" %)
227 +|(% colspan="1" style="width:124px;background-color:#4F81BD;color:white" %)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" %)
228 +|(% colspan="1" style="width:124px;background-color:#4F81BD;color:white" %)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" %)
187 187  
188 -
189 -)))|(% colspan="1" rowspan="1" %)(((
190 -Field10
191 191  
192 -
193 -)))
194 -|(% colspan="1" rowspan="1" %)S31x-NB|(% colspan="1" rowspan="1" %)Temperature |(% colspan="1" rowspan="1" %)Humidity|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
195 -|(% colspan="1" rowspan="1" %)SE01-NB|(% colspan="1" rowspan="1" %)Temperature |(% colspan="1" rowspan="1" %)Humidity|(% colspan="1" rowspan="1" %)conduct|(% colspan="1" rowspan="1" %)dielectric_constant|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
196 -|(% colspan="1" rowspan="1" %)DDS20-NB|(% colspan="1" rowspan="1" %)distance|(% colspan="1" rowspan="1" %)(((
197 -Battery
198 198  
199 -
200 -)))|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
201 -|(% colspan="1" rowspan="1" %)DDS45-NB|(% colspan="1" rowspan="1" %)distance|(% colspan="1" rowspan="1" %)(((
202 -Battery
232 +== 3.4 Datacake ==
203 203  
204 -
205 -)))|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
206 -|(% colspan="1" rowspan="1" %)DDS75-NB|(% colspan="1" rowspan="1" %)distance|(% colspan="1" rowspan="1" %)(((
207 -Battery
234 +== 3.4.1 Define Product ==
208 208  
209 -
210 -)))|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
211 -|(% colspan="1" rowspan="1" %)NMDS120-NB|(% colspan="1" rowspan="1" %)distance|(% colspan="1" rowspan="1" %)(((
212 -Battery
213 213  
214 -
215 -)))|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
216 -|(% colspan="1" rowspan="1" %)SPH01-NB|(% colspan="1" rowspan="1" %)ph|(% colspan="1" rowspan="1" %)Temperature|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
217 -|(% colspan="1" rowspan="1" %)NLM01-NB|(% colspan="1" rowspan="1" %)Humidity|(% colspan="1" rowspan="1" %)Temperature|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
218 -|(% colspan="1" rowspan="1" %)NMDS200-NB|(% colspan="1" rowspan="1" %)distance1|(% colspan="1" rowspan="1" %)distance2|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
219 -|(% colspan="1" rowspan="1" %)CPN01-NB|(% colspan="1" rowspan="1" %)alarm|(% colspan="1" rowspan="1" %)count|(% colspan="1" rowspan="1" %)door open duration|(% colspan="1" rowspan="1" %)calc flag|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
220 -|(% colspan="1" rowspan="1" %)DS03A-NB|(% colspan="1" rowspan="1" %)level|(% colspan="1" rowspan="1" %)alarm|(% colspan="1" rowspan="1" %)pb14door open num|(% colspan="1" rowspan="1" %)pb14 last open time|(% colspan="1" rowspan="1" %)pb15 level status|(% colspan="1" rowspan="1" %)pb15 alarm status|(% colspan="1" rowspan="1" %)pb15 door open num|(% colspan="1" rowspan="1" %)pb15 last open time|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI
221 -|(% colspan="1" rowspan="1" %)SN50V3-NB|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
222 -|(% colspan="1" rowspan="1" %)mod1|(% colspan="1" rowspan="1" %)mod|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %)DS18B20 Temp|(% colspan="1" rowspan="1" %)exit_state/input PA4|(% colspan="1" rowspan="1" %)adc0|(% colspan="1" rowspan="1" %)Temperature |(% colspan="1" rowspan="1" %)Humidity|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
223 -|(% colspan="1" rowspan="1" %)mod2|(% colspan="1" rowspan="1" %)mod|(% colspan="1" rowspan="1" %)Battery|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %)(((
224 -DS18B20 Temp
237 +Firstly, we need to set the MQTT mode to datacake, and we need to run** AT+PRO=3,2**. This command is set to datacake. After running the command, the device automatically sets the server address, port.
225 225  
226 -
227 -)))|(% colspan="1" rowspan="1" %)(((
228 -exit_state/input PA4
229 229  
230 -
231 -)))|(% colspan="1" rowspan="1" %)adc0|(% colspan="1" rowspan="1" %)distance|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
232 -|(% colspan="1" rowspan="1" %)mod3|(% colspan="1" rowspan="1" %)mod|(% colspan="1" rowspan="1" %)(((
233 -Battery
240 +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 "My First MQTT Product".
234 234  
235 -
236 -)))|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %)adc0|(% colspan="1" rowspan="1" %)(((
237 -exit_state/input PA4
242 +[[image:image-20230802112413-14.png]]
238 238  
239 -
240 -)))|(% colspan="1" rowspan="1" %)adc1|(% colspan="1" rowspan="1" %)Temperature|(% colspan="1" rowspan="1" %)Humidity|(% colspan="1" rowspan="1" %)adc4|(% colspan="1" rowspan="1" %)
241 -|(% colspan="1" rowspan="1" %)mod4|(% colspan="1" rowspan="1" %)mod|(% colspan="1" rowspan="1" %)(((
242 -Battery
243 243  
244 -
245 -)))|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %)(((
246 -DS18B20 Temp
245 +=== 3.4.2 Create Device ===
247 247  
248 -
249 -)))|(% colspan="1" rowspan="1" %)adc0|(% colspan="1" rowspan="1" %)(((
250 -exit_state/input PA4
251 251  
252 -
253 -)))|(% colspan="1" rowspan="1" %)(((
254 -DS18B20 Temp2
255 -
256 -
257 -)))|(% colspan="1" rowspan="1" %)(((
258 -DS18B20 Temp3
259 -
260 -
261 -)))|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
262 -|(% colspan="1" rowspan="1" %)mod5|(% colspan="1" rowspan="1" %)mod|(% colspan="1" rowspan="1" %)(((
263 -Battery
264 -
265 -
266 -)))|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %)(((
267 -DS18B20 Temp
268 -
269 -
270 -)))|(% colspan="1" rowspan="1" %)adc0|(% colspan="1" rowspan="1" %)(((
271 -exit_state/input PA4
272 -
273 -
274 -)))|(% colspan="1" rowspan="1" %)Weight|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
275 -|(% colspan="1" rowspan="1" %)mod6|(% colspan="1" rowspan="1" %)mod|(% colspan="1" rowspan="1" %)(((
276 -Battery
277 -
278 -
279 -)))|(% colspan="1" rowspan="1" %)RSSI|(% colspan="1" rowspan="1" %)count|(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %) |(% colspan="1" rowspan="1" %)
280 -
281 -= 4. Datacake =
282 -
283 -== 1.1 Define Product ==
284 -
285 -Firstly, we need to set the MQTT mode to datacake, and we need to run AT+PRO=3,2. This command is set to datacake. After running the command, the device automatically sets the server address, port.
286 -
287 -
288 -By chosing to add the device under a "New Product" you are required to give a name for this product. You can name it something like "My First MQTT Product".
289 -
290 -[[image:image-20230802112413-14.png]]
291 -
292 -== 1.2 Create Device ==
293 -
294 294  In the second step you have to define the device which should be added to the product.
295 295  
296 296  [[image:image-20230802112413-15.png]]
... ... @@ -298,8 +298,9 @@
298 298  Enter a name here (such as "My First MQTT Device") and complete the creation of the device by clicking on the "Next" button.
299 299  
300 300  
301 -== 1.3 Create Database Fields ==
255 +=== 3.4.3 Create Database Fields ===
302 302  
257 +
303 303  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.
304 304  
305 305  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 "Configuration".
... ... @@ -316,8 +316,10 @@
316 316  
317 317  [[image:image-20230802112413-19.png]]
318 318  
319 -== 1.4 Set up Broker ==
320 320  
275 +=== 3.4.4 Set up Broker ===
276 +
277 +
321 321  The broker is running on mqtt.datacake.co on ports 1883 and 8883. Port 1883 is unsecured and should not be used in production environments. Port 8883 uses a CA signed server certificate.
322 322  
323 323  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.
... ... @@ -328,23 +328,24 @@
328 328  
329 329  [[image:image-20230802112413-20.png]]
330 330  
331 -MQTT Client-ID
288 +(% style="color:blue" %)**MQTT Client-ID**
332 332  
333 333  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 specification blank. Your client then creates a randomly generated ID.
334 334  
335 -AT+CLIENT=“Any value”
292 +(% style="color:blue" %)**AT+CLIENT=“Any value”**
336 336  
337 -AT+UNAME=Token
294 +(% style="color:blue" %)**AT+UNAME=Token**
338 338  
339 -AT+PWD=Token
296 +(% style="color:blue" %)**AT+PWD=Token**
340 340  
341 341  [[image:image-20230802112413-21.png]]
342 342  
343 343  
344 -== 1.6 Create your first Subscription ==
301 +=== 3.4.5 Create your first Subscription ===
345 345  
346 -Subscribe
347 347  
304 +(% style="color:blue" %)**Subscribe**
305 +
348 348  Data is published according to the following structure:
349 349  
350 350  dtck~/~//
... ... @@ -361,16 +361,18 @@
361 361  [[image:image-20230802112413-24.png]]
362 362  
363 363  
364 -example:
322 +(% style="color:blue" %)**example:**
365 365  
366 366  AT+PUBTOPIC=dtck-pub/nbmattest/936c0db6-e9a5-4353-9fdb-3f63c8bfce7e/Temperature
367 367  
368 368  [[image:image-20230802112413-25.png]]
369 369  
370 -== 1.7 Define Publish Topic ==
371 371  
372 -Publish
329 +=== 3.4.6 Define Publish Topic ===
373 373  
331 +
332 +(% style="color:blue" %)**Publish**
333 +
374 374  To upload data into the Datacake Cloud and into a specific device, you publish the data to the respective topic structure.
375 375  
376 376  Due to the nature of MQTT, the topic prefix differs as follows:
... ... @@ -377,12 +377,14 @@
377 377  
378 378  dtck-pub~/~//
379 379  
380 -example:
340 +(% style="color:blue" %)**example:**
381 381  
382 382  AT+SUBTOPIC=dtck/nbmattest/936c0db6-e9a5-4353-9fdb-3f63c8bfce7e/Temperature
383 383  
384 -== 1.8 upload data ==
385 385  
345 +=== 3.4.7 upload data ===
346 +
347 +
386 386  [[image:image-20230802112413-26.png]]
387 387  
388 388  [[image:image-20230802112413-27.png]]
... ... @@ -389,34 +389,41 @@
389 389  
390 390  [[image:image-20230802112413-28.png]]
391 391  
392 -= =
393 393  
394 -= 5. Node-Red (via MQTT) =
355 +== 3.5 Node-Red (via MQTT) ==
395 395  
357 +=== 3.5.1 Configure Node-Red ===
396 396  
397 -== 1.1 Configure Node-Red ==
398 -
399 399  [[image:image-20230802112413-29.png]]
400 400  
401 401  [[image:image-20230802112413-30.png]]
402 402  
403 -== 1.2 Simulate Connection ==
363 +=== 3.5.2 Simulate Connection ===
404 404  
365 +
405 405  [[image:image-20230802112413-31.png]]
406 406  
407 -== 1.3 Configure NB-IoT Sensors ==
408 408  
409 -* AT+PRO=3,0(hex format) or 3,5(json format)    ~/~/Set to mqtt Server and  Payload
410 -* AT+CLIENT=any value
411 -* AT+UNAME=any value
412 -* AT+PWD=any value
413 -* AT+PUBTOPIC=any value
414 -* AT+SUBTOPIC=any value
369 +=== 3.5.3 Configure NB-IoT Sensors ===
415 415  
416 -= 6. ThingsBoard.Cloud (via MQTT) =
417 417  
418 -== 1.1 Configure ThingsBoard ==
372 +* (% style="color:blue" %)**AT+PRO=3,0(hex format) or 3,5(json format)**(%%)    ~/~/Set to mqtt Server and  Payload
419 419  
374 +* (% style="color:blue" %)**AT+CLIENT=any value**(%%)
375 +
376 +* (% style="color:blue" %)**AT+UNAME=any value**(%%)
377 +
378 +* (% style="color:blue" %)**AT+PWD=any value**(%%)
379 +
380 +* (% style="color:blue" %)**AT+PUBTOPIC=any value**(%%)
381 +
382 +* (% style="color:blue" %)**AT+SUBTOPIC=any value**(%%)
383 +
384 +
385 +== 3.6 ThingsBoard.Cloud (via MQTT) ==
386 +
387 +=== 3.6.1 Configure ThingsBoard ===
388 +
420 420  === 1.1.1 Create Device ===
421 421  
422 422  Create a New Device in [[ThingsBoard>>url:https://thingsboard.cloud/]].