<
From version < 44.6 >
edited by Xiaoling
on 2022/07/14 15:57
To version < 38.1 >
edited by Kilight Cao
on 2022/06/13 19:02
>
Change comment: Uploaded new attachment "image-20220613190254-1.png", version {1}

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Xiaoling
1 +XWiki.Kilight
Content
... ... @@ -1,17 +1,15 @@
1 -**~ Table of Contents:**
1 +**~ Contents:**
2 2  
3 3  {{toc/}}
4 4  
5 5  
6 -= 1.  Introduction =
6 += 1. Introduction =
7 7  
8 -
9 9  Dragino LoRa/LoRaWAN gateway support MQTT forwarding. It can forward the sensor data from LoRa network to MQTT server , and vice verse.
10 10  
11 11  
12 -== 1.1  Support Devices ==
11 +== 1.1 Support Devices ==
13 13  
14 -
15 15  This MQTT forward instruction is for below devices:
16 16  
17 17  * Firmware Version > LG02_LG08-5.3.1580178039 [[Firmware Download>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]]
... ... @@ -24,9 +24,8 @@
24 24  
25 25  
26 26  
27 -= 2.  Firmware Change Log for MQTT feature =
25 += 2. Firmware Change Log for MQTT feature =
28 28  
29 -
30 30  (((
31 31  This instruction is wrote start from LG02_LG08-5.3.1580178039. Below is related change log since this version of firmware.
32 32  )))
... ... @@ -36,16 +36,14 @@
36 36  
37 37  
38 38  
39 -= 3.  MQTT forward operating principle =
36 += 3. MQTT forward operating principle =
40 40  
38 +== 3.1 Network Structure ==
41 41  
42 -== 3.1  Network Structure ==
43 -
44 -
45 45  Below shows the network structure for MQTT forwarding.
46 46  
47 -* **For Uplink:**  The sensor sends data to LoRa Gateway via LoRa wireless, The gateway will process these data and forward to remote MQTT Broker via Internet.
48 -* **For Downlink:** The gateway subscribe a topic in the MQTT broker, when there is update on the topic, the gateway will know and broadcast the data to Local LoRa network,
42 +* For Uplink: The sensor sends data to LoRa Gateway via LoRa wireless, The gateway will process these data and forward to remote MQTT Broker via Internet.
43 +* For Downlink: The gateway subscribe a topic in the MQTT broker, when there is update on the topic, the gateway will know and broadcast the data to Local LoRa network,
49 49  
50 50  [[image:image-20220527133547-1.png]]
51 51  
... ... @@ -52,13 +52,12 @@
52 52  General MQTT structure
53 53  
54 54  
55 -== 3.2  How sensor data is forwarded ==
50 +== 3.2 How sensor data is forwarded ==
56 56  
57 -
58 58  In this MQTT forward feature, the key point is how the gateway process the sensor data.
59 59  
60 60  
61 -=== 3.2.1  Upstream ===
55 +=== 3.2.1 Upstream ===
62 62  
63 63  Assume there are two sensor nodes, their ID are Node1 ID: 6734 , Node2 ID: 7456. In the remote MQTT broker there are two topics: Topic1: /channel/765800, Topic2: /channel/367860. We can set up in the gateway to map Node1 to Topic1 and Node2 to Topic2. So when there is a sensor data from Node1, the gateway will forward the data to Topic1, when there is sensor data from Node2, the gateway will forward to Topic2.
64 64  
... ... @@ -70,12 +70,10 @@
70 70  
71 71  (((
72 72  Upstream path
73 -
74 -
75 75  )))
76 76  
77 77  (((
78 -(% style="color:red" %)**Note: The sensor data can base or LoRa or other method, as long as there are data on the file /var/iot/channels. /span>**
70 +Note: The sensor data can base or LoRa or other method, as long as there are data on the file /var/iot/channels. /span>
79 79  )))
80 80  
81 81  (((
... ... @@ -82,9 +82,8 @@
82 82  
83 83  )))
84 84  
85 -=== 3.2.2  Downstream ===
77 +=== 3.2.2 Downstream ===
86 86  
87 -
88 88  The gateway subscribes to a topic of the remote MQTT broker topic. When there is some one publish a value on this topic. The gateway will get it and broadcast to local LoRa Network.
89 89  
90 90  (((
... ... @@ -96,9 +96,8 @@
96 96  Downstream path
97 97  
98 98  
99 -== 3.3  Macro Definition ==
90 +== 3.3 Macro Definition ==
100 100  
101 -
102 102  The MQTT publish command use Macro settings to generate flexible upstream payload for MQTT publish.
103 103  
104 104  (((
... ... @@ -107,9 +107,8 @@
107 107  
108 108  )))
109 109  
110 -=== 3.3.1  -t topic macro ===
100 +=== 3.3.1 -t topic macro ===
111 111  
112 -
113 113  * CHANNEL: Remote Channel ID
114 114  * CLIENTID: Client ID , Same as -i
115 115  * WRITE_API: Remote Channel Write API
... ... @@ -118,10 +118,8 @@
118 118  
119 119  
120 120  
110 +=== 3.3.2 -m message macro ===
121 121  
122 -=== 3.3.2  -m message macro ===
123 -
124 -
125 125  * HOSTNAME: Device Hostname
126 126  * CHANNEL: Remote Channel ID
127 127  * DATA: Sensor Data without time stamp and rssi
... ... @@ -130,16 +130,14 @@
130 130  
131 131  
132 132  
120 +=== 3.3.3 Example for Macro ===
133 133  
134 -=== 3.3.3  Example for Macro ===
135 -
136 -
137 137  [[image:image-20220527134251-4.png]]
138 138  
139 139  MQTT Publish configure
140 140  
141 141  
142 -**Above screen shots shows below format:**
127 +Above screen shots shows below format:
143 143  
144 144  * -t: CLIENTID/CHANNEL/data
145 145  * -m: DATA
... ... @@ -156,10 +156,8 @@
156 156  )))
157 157  
158 158  
144 +== 3.4 Modify the MQTT to support more options ==
159 159  
160 -== 3.4  Modify the MQTT to support more options ==
161 -
162 -
163 163  The MQTT Client Utility used in Dragino is **mosquitto_pub** and **mosquitto_sub**. User can add more options to the mqtt commands. User can check the valid options by command mosquitto_pub ~-~-help. as below:
164 164  
165 165  (% class="box" %)
... ... @@ -177,9 +177,9 @@
177 177   [-u username [-P password]]
178 178   [~-~-will-topic [~-~-will-payload payload] [~-~-will-qos qos] [~-~-will-retain]]
179 179   [{~-~-cafile file | ~-~-capath dir} [~-~-cert file] [~-~-key file]
180 - [~-~-ciphers ciphers] [~-~-insecure]
181 - [~-~-tls-alpn protocol]
182 - [~-~-tls-engine engine] [~-~-keyform keyform] [~-~-tls-engine-kpass-sha1]]
163 + [~-~-ciphers ciphers] [~-~-insecure]
164 + [~-~-tls-alpn protocol]
165 + [~-~-tls-engine engine] [~-~-keyform keyform] [~-~-tls-engine-kpass-sha1]]
183 183   [~-~-psk hex-key ~-~-psk-identity identity [~-~-ciphers ciphers]]
184 184   [~-~-proxy socks-url]
185 185   [~-~-property command identifier value]
... ... @@ -284,19 +284,15 @@
284 284  )))
285 285  
286 286  
270 += 4. Example to communicate to a simple MQTT server =
287 287  
288 -= 4.  Example to communicate to a simple MQTT server =
272 +== 4.1 Overview ==
289 289  
290 -
291 -== 4.1  Overview ==
292 -
293 -
294 294  This section is an example to show how to set up LG01-N to communicate with a MQTT server. The MQTT server is a simple utility set up in a local PC. Note: User can set up same server via [[this instruction>>url:http://www.steves-internet-guide.com/install-mosquitto-broker/]].
295 295  
296 296  
297 -== 4.2  Simulate via MQTT.fx utility ==
277 +== 4.2 Simulate via MQTT.fx utility ==
298 298  
299 -
300 300  The [[MQTT.fx>>url:http://mqttfx.jensd.de/index.php/download]] is a MQTT client tool. We can use this to simulate a MQTT connection to our MQTT broker first to make sure the MQTT broker works. This will also help us understand how it works.
301 301  
302 302  (((
... ... @@ -322,15 +322,14 @@
322 322  Downstream: Subscribe a topic to get downstream
323 323  
324 324  
304 +== 4.3 Simulate via Dragino Command Line ==
325 325  
326 -== 4.3  Simulate via Dragino Command Line ==
327 -
328 328  For first try of MQTT connection, simulate via command line is recommend, there are many servers / connection type for MQTT. They are using different connection parameters. Simulating the connection via command line will help us rapidly connect to server and debug.
329 329  
330 330  In the Dragino Gateway, we use [[mosquitto client>>url:https://mosquitto.org/]] for MQTT connection.
331 331  
332 332  
333 -(% style="color:blue" %)**For Upstream**
311 +(% style="color:#4f81bd" %)**For Upstream**
334 334  
335 335  command is [[mosquitto_pub>>url:https://mosquitto.org/man/mosquitto_pub-1.html]]
336 336  
... ... @@ -343,9 +343,8 @@
343 343  mosquitto_pub
344 344  
345 345  
324 +(% style="color:#4f81bd" %)**For Downstream**
346 346  
347 -(% style="color:blue" %)**For Downstream**
348 -
349 349  Use [[mosquitto_sub>>url:https://mosquitto.org/man/mosquitto_sub-1.html]] to subscribe the change on the topic.
350 350  
351 351  [[image:image-20220527135440-10.png]]
... ... @@ -523,18 +523,20 @@
523 523  
524 524  (((
525 525  (((
526 -(% style="color:#4f81bd" %)**Step 3**(%%): Set up publish format and MQTT channel. The LG308 will store the Data from End node in (% style="color:#4f81bd" %)**HEX format**(%%) in the file.
503 +(% style="color:#4f81bd" %)**Step 3**(%%): Set up publish format and MQTT channel. The LG308 will store the Data from End node in (% style="color:#4f81bd" %)**HEX format**(%%) in the file. And we need to config the format to (% style="color:#4f81bd" %)**META**
527 527  )))
528 528  )))
529 529  
530 -[[image:image-20220613191345-4.png]]
507 +[[image:image-20220527141450-22.png]]
531 531  
509 +Publish mush use META as data format for LG308
532 532  
533 533  
534 534  (% style="color:#4f81bd" %)**Step 4**(%%): Map the Device Address to Remote ID in MQTT server.
535 535  
536 -[[image:image-20220613190635-2.png]]
514 +[[image:image-20220527141727-23.png]]
537 537  
516 +Map Dev Addr to remote ID
538 538  
539 539  
540 540  (% style="color:#4f81bd" %)**Step 5: Upstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server
... ... @@ -541,6 +541,7 @@
541 541  
542 542  [[image:image-20220527141843-24.png]]
543 543  
523 +Upstream Process
544 544  
545 545  
546 546  
... ... @@ -558,40 +558,20 @@
558 558  
559 559  (% style="color:#4f81bd" %)**Step 6: Set up subscribe**(%%)**:** Subscribe a topci for downstream.
560 560  
561 -[[image:image-20220613191426-5.png]]
541 +[[image:image-20220527142115-27.png]]
562 562  
543 +Subscribe to a topic
563 563  
564 564  
546 +
565 565  (% style="color:#4f81bd" %)**Step 7: Downstream**(%%): Save the change, we can see the log info via "sytem log", End Node and MQTT Server.
566 566  
567 567  [[image:image-20220527142239-28.png]]
568 568  
551 +Downstream Flow
569 569  
570 -
571 -=== MQTT Downstream format ===
572 -
573 -
574 -mosquitto_pub -h $server_address -p $server_port -t $Client_ID -m "**dev_addr,imme/time,txt/hex,payload**"
575 -
576 -(% class="box infomessage" %)
577 -(((
578 -mosquitto_pub -h 10.130.2.192 -p 1883 -t dragino-1d25dc/ -m "260211D,time,txt,hello"
579 -)))
580 -
581 -mosquitto_pub -h $server_address -p $server_port -t $Client_ID -m "**dev_addr,imme/time,txt/hex,payload,txpw,txbw,SF,frequency,rxwindow**"
582 -
583 -(% class="box infomessage" %)
584 -(((
585 -mosquitto_pub -h 10.130.2.192 -p 1883 -t dragino-1d25dc/ -m "260211D,time,txt,hello,20,1,SF12,923300000,2 > /var/iot/push/test"
586 -)))
587 -
588 -Or use [[MQTT.fx>>https://mqttfx.jensd.de/index.php/download]]
589 -
590 -[[image:image-20220613192816-6.png||height="440" width="1056"]]
591 -
592 592  (% style="color:red" %)**Notice: The text use for Downstream must meet the requirement from [[LG308 Downstream Payload>>Communicate with ABP End Node without LoRaWAN Network Server --- LG308||anchor="H2.2Downstream"]]**
593 593  
594 -Check out this link for more mosquito-related directives [[https:~~/~~/mosquitto.org/man/mosquitto_pub-1.html>>https://mosquitto.org/man/mosquitto_pub-1.html]]
595 595  
596 596  = 5. How to Debug =
597 597  
image-20220613190635-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -44.1 KB
Content
image-20220613191154-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -56.1 KB
Content
image-20220613191345-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -55.4 KB
Content
image-20220613191426-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -55.8 KB
Content
image-20220613192816-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -22.1 KB
Content
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0