Last modified by Xiaoling on 2022/09/02 18:11

From version 44.6
edited by Xiaoling
on 2022/05/31 14:33
Change comment: There is no comment for this version
To version 50.2
edited by Xiaoling
on 2022/09/02 18:10
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,4 +1,4 @@
1 -**Contents: **
1 +**Table of Contents: **
2 2  
3 3  {{toc/}}
4 4  
... ... @@ -7,11 +7,14 @@
7 7  
8 8  = 1. What is MQTT API? =
9 9  
10 -{{{MQTT is a publish/subscribe model that runs over TCP/IP sockets or WebSockets. MQTT over WebSockets can be secured with SSL.}}}
11 11  
11 +MQTT is a publish/subscribe model that runs over TCP/IP sockets or WebSockets. MQTT over WebSockets can be secured with SSL.
12 12  
13 +
14 +
13 13  = 2. MQTT Features =
14 14  
17 +
15 15  The MQTT protocol runs on TCP / IP or other network protocols and provides an ordered, lossless, bidirectional connection. Features include:
16 16  
17 17  * The publish / subscribe messaging pattern used, which provides one-to-many messaging for decoupling from the application.
... ... @@ -24,10 +24,15 @@
24 24  
25 25  
26 26  
30 +
31 +
27 27  = 3. What does this example shows? How it works? =
28 28  
34 +
29 29  (((
30 30  The server we use here is ThingSpeak which has an intuitive chart to show the test result for our test.The ThingSpeak IoT service now supports MQTT subscriptions to receive instant updates when [[ThingSpeak>>url:https://thingspeak.com/]] channel gets updated. The method here is general and can be used with other IoT servers for MQTT connection as well.
37 +
38 +
31 31  )))
32 32  
33 33  [[image:image-20220531135402-1.png]]
... ... @@ -40,6 +40,7 @@
40 40  working principle
41 41  
42 42  
51 +
43 43  [[image:image-20220531135521-3.png]]
44 44  
45 45  (((
... ... @@ -50,6 +50,7 @@
50 50  
51 51  [[image:image-20220531135607-4.png]]
52 52  
62 +
53 53  (((
54 54  Schematic diagram:downlink.In this section, we will try to program LG01 to fetch download data from ThingSpeak, then broadcast this data to local LoRa network. The end node will get this message and check if they need to do something. Similar with Uplink Example, we will first try to do it in PC, then do it in Linux side, and finally integrate it with LoRa.
55 55  )))
... ... @@ -66,9 +66,13 @@
66 66  
67 67  = 4. Preparation =
68 68  
79 +
69 69  == 4.1 Hardware ==
70 70  
82 +
71 71  1. [[image:image-20220531135650-5.png]](((
84 +
85 +
72 72  Listening on the LoRa wireless channel, while there is new LoRa packet arrives, parse it and send out to IoT Server.
73 73  
74 74  
... ... @@ -75,11 +75,17 @@
75 75  
76 76  )))
77 77  1. [[image:image-20220531135750-6.png]](((
92 +
93 +
78 78  The LoRa End node keeps getting temperature and humidity from the sensor and sends out via LoRa periodically.
95 +
96 +
97 +
79 79  )))
80 80  
81 81  == 4.2 Software ==
82 82  
102 +
83 83  1. [[4.3.4 version>>url:http://www.dragino.com/downloads/index.php?dir=motherboards/ms14/Firmware/IoT/]]
84 84  1. [[MQTT_Client>>url:https://github.com/dragino/Arduino-Profile-Examples/tree/master/libraries/Dragino/examples/IoTServer/ThingSpeak/MQTT_Client]]
85 85  1. [[MQTT_Simple_Server MQTT_Simeple_Server>>url:https://github.com/dragino/Arduino-Profile-Examples/tree/master/libraries/Dragino/examples/LoRa/MQTT_Simple_Server]]
... ... @@ -87,14 +87,20 @@
87 87  
88 88  
89 89  
110 +
111 +
90 90  == 4.3 Server(For example) ==
91 91  
114 +
92 92  * [[ThingSpeak>>url:https://thingspeak.com/]]
93 93  
94 94  
95 95  
119 +
120 +
96 96  == 4.4 Configure IoT Server ==
97 97  
123 +
98 98  * Need this keys:
99 99  
100 100  1. [[image:image-20220531140054-8.png]](((
... ... @@ -104,6 +104,8 @@
104 104  
105 105  )))
106 106  1. [[image:image-20220531140326-13.png]](((
133 +
134 +
107 107  Account->My Profile,MQTT API Key
108 108  
109 109  
... ... @@ -118,8 +118,10 @@
118 118  
119 119  == 4.5 Configure LG01 settings ==
120 120  
121 -Tips:Please confirm that your LG01 version is 4.3.3.
122 122  
150 +Tips:  Please confirm that your LG01 version is 4.3.3.
151 +
152 +
123 123  [[image:image-20220531140248-11.png]]
124 124  
125 125  **Overview**
... ... @@ -131,6 +131,7 @@
131 131  **Senosor->IOT Server**
132 132  
133 133  
164 +
134 134  [[image:image-20220531140458-15.png]]
135 135  
136 136  **MQTT->Configure MQTT Server**
... ... @@ -151,29 +151,44 @@
151 151  
152 152  [[image:image-20220531140651-18.png]]
153 153  
185 +
154 154  Configure network access.**Network->Internet Access**
155 155  
156 156  
189 +
157 157  == 4.6 Try MQTT API call with LG01 Linux command ==
158 158  
192 +
159 159  === 4.6.1 Input the command at the console ===
160 160  
195 +
161 161  1. [[image:image-20220531140811-19.png]](((
197 +
198 +
162 162  Open this Application.
163 163  
201 +
164 164  
165 165  )))
166 166  1. [[image:image-20220531140842-20.png]](((
205 +
206 +
167 167  Input passward(dragino).After into the console.
168 168  
209 +
169 169  
170 170  )))
171 171  1. [[image:image-20220531140915-21.png]](((
213 +
214 +
172 172  First, we need to make sure the LG01 has internet access. We can log in the SSH and ping an Internet address and see if it get through. As below
173 173  
217 +
174 174  
175 175  )))
176 176  1. [[image:image-20220531140955-22.png]](((
221 +
222 +
177 177  LG01 has built-in Linux tool mosquitto. It is a very powerful tool for http communication. We can use this tool to handle MQTT API call in LG01. Input this command and replace your keys.
178 178  
179 179  
... ... @@ -180,7 +180,11 @@
180 180  
181 181  )))
182 182  1. [[image:image-20220531141026-23.png]](((
229 +
230 +
183 183  Go to Server check out result.We success to use LG01 to uplink data to ThingSpeak,the mosquitto_pub command is executed in the Linux side, finally, we will have to call mosquitto_pub command with sensor data variable in Arduino side. This is through the process class in Arduino and we will show it in the final sketch.
232 +
233 +
184 184  )))
185 185  
186 186  * This command:
... ... @@ -200,9 +200,13 @@
200 200  )))
201 201  
202 202  
253 +
203 203  === 4.6.2 Input the command at the console(LG01 new version:4.3.4) ===
204 204  
256 +
205 205  1. [[image:image-20220531141150-24.png]](((
258 +
259 +
206 206  Open this Application.
207 207  
208 208  
... ... @@ -211,6 +211,7 @@
211 211  1. (((
212 212  [[image:image-20220531141400-27.png]]
213 213  
268 +
214 214  Check the settings.
215 215  
216 216  
... ... @@ -219,6 +219,7 @@
219 219  1. (((
220 220  [[image:image-20220531141601-30.png]]
221 221  
277 +
222 222  input this command.
223 223  
224 224  
... ... @@ -225,6 +225,8 @@
225 225  
226 226  )))
227 227  1. [[image:image-20220531141515-29.png]](((
284 +
285 +
228 228  Check the result.
229 229  
230 230  
... ... @@ -233,6 +233,7 @@
233 233  
234 234  == 4.7 Updata data to Server(Through MQTT) ==
235 235  
294 +
236 236  * This version of Sketch implements these features:
237 237  
238 238  1. Read the LG01 configuration information from Linux.
... ... @@ -240,7 +240,11 @@
240 240  1. Send reply after then receive LoRa node data.
241 241  1. Sketch will write active content to /tmp/iot/status periodically (every 5 minutes).(Watchdog feature)
242 242  
243 -1. [[image:image-20220531141656-31.png]](((
302 +
303 +
304 +1. [[image:image-20220531143822-49.png]](((
305 +
306 +
244 244  Open the sketch [[MQTT_Simple_Server>>url:https://github.com/dragino/Arduino-Profile-Examples/tree/master/libraries/Dragino/examples/LoRa/MQTT_Simple_Server]].(Board:Dragino Yun + UNO or LG01/OLG01,Port:Network ports.)and upload.
245 245  
246 246  
... ... @@ -247,12 +247,16 @@
247 247  
248 248  )))
249 249  1. [[image:image-20220531141800-32.png]](((
313 +
314 +
250 250  Open Serial monitor.
251 251  
252 252  
253 253  
254 254  )))
255 -1. [[image:image-20220531141842-33.png]](((
320 +1. [[image:image-20220531143748-48.png]](((
321 +
322 +
256 256  Open the Sketch [[MQTT_Client>>url:https://github.com/dragino/Arduino-Profile-Examples/tree/master/libraries/Dragino/examples/IoTServer/ThingSpeak/MQTT_Client]]. (Board:Arduino/Genuino Uno.Port:Serial ports.)and upload.
257 257  
258 258  
... ... @@ -259,6 +259,8 @@
259 259  
260 260  )))
261 261  1. [[image:image-20220531141927-34.png]](((
329 +
330 +
262 262  Open Serial monitor.
263 263  
264 264  
... ... @@ -266,13 +266,13 @@
266 266  )))
267 267  1. Go to IoT Server to check the result.
268 268  1. (((
269 -[[image:image-20220531142023-35.png]]
338 +[[image:image-20220531143707-47.png]]
270 270  
271 271  
272 272  
273 273  )))
274 274  1. (((
275 -[[image:image-20220531142155-36.png]]
344 +[[image:image-20220531143632-46.png]]
276 276  
277 277  
278 278  
... ... @@ -280,8 +280,10 @@
280 280  
281 281  = 5. FAQ =
282 282  
352 +
283 283  == 5.1 Configure to support general mqtt server ==
284 284  
355 +
285 285  First, try to run **mosquitto_pub** in Linux console to send a data to MQTT server.
286 286  
287 287  For example: for ThingSpeak, a MQTT publish command is:
... ... @@ -296,6 +296,8 @@
296 296  1. LG01 web console -> Sensor -> MQTT
297 297  1. Choose general Server
298 298  1. [[image:image-20220531142342-37.png]](((
370 +
371 +
299 299  Refer to your server to fill in.
300 300  
301 301  
... ... @@ -302,6 +302,8 @@
302 302  
303 303  )))
304 304  1. [[image:image-20220531142447-38.png]](((
378 +
379 +
305 305  Ex:ThingSpeak Server
306 306  
307 307  
... ... @@ -325,13 +325,17 @@
325 325  
326 326  [[image:image-20220531142525-39.png]]
327 327  
403 +
328 328  MQTT Logread example
329 329  
330 330  
407 +
331 331  == 5.2 What is Watchdog feature? ==
332 332  
410 +
333 333  LG01 for 4.3.3 version,we have added watchdog feature. In order to avoid the gateway running process will get stuck. So add writing action on every times.
334 334  
413 +
335 335  * [[image:image-20220531142558-40.png]](((
336 336  Enable Sensor->Micro-Controller settings
337 337  
... ... @@ -339,6 +339,8 @@
339 339  
340 340  )))
341 341  * [[image:image-20220531142629-41.png]](((
421 +
422 +
342 342  Open the sketch [[MQTT_Simple_Server>>url:https://github.com/dragino/Arduino-Profile-Examples/tree/master/libraries/Dragino/examples/LoRa/MQTT_Simple_Server]].(Board:Dragino Yun + UNO or LG01/OLG01,Port:Network ports.)and upload.
343 343  
344 344  
... ... @@ -345,6 +345,8 @@
345 345  
346 346  )))
347 347  * [[image:image-20220531142659-42.png]](((
429 +
430 +
348 348  Each time the function loops, it uses the watchdog function once.
349 349  
350 350  
... ... @@ -351,6 +351,8 @@
351 351  
352 352  )))
353 353  * [[image:image-20220531142720-43.png]](((
437 +
438 +
354 354  Open SSH and check watchdog result.If the result change constantly,the feature enable successfully.
355 355  
356 356  
... ... @@ -357,6 +357,8 @@
357 357  
358 358  )))
359 359  * [[image:image-20220531142748-44.png]](((
445 +
446 +
360 360  If the time doesnt's change,you can refer it to calculate for checking status.
361 361  )))
362 362  
image-20220531143604-45.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +42.6 KB
Content
image-20220531143632-46.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +42.4 KB
Content
image-20220531143707-47.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +34.2 KB
Content
image-20220531143748-48.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +38.8 KB
Content
image-20220531143822-49.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +38.1 KB
Content