Changes for page MQTT Forward Instruction
Last modified by Kilight Cao on 2024/08/31 16:26
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,6 +1,8 @@ 1 - 1 +**~ Contents:** 2 2 3 +{{toc/}} 3 3 5 + 4 4 = 1. Introduction = 5 5 6 6 Dragino LoRa/LoRaWAN gateway support MQTT forwarding. It can forward the sensor data from LoRa network to MQTT server , and vice verse. ... ... @@ -10,7 +10,7 @@ 10 10 This MQTT forward instruction is for below devices: 11 11 12 12 * Firmware Version > LG02_LG08-5.3.1580178039 [[Firmware Download>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LPS8/Firmware/Release/]] 13 -* LG01N, OLG01N (Warning: LG01-P LG01-S use another instruction: [[MQTT for LG01-P/LG01S>>url:https://wiki.dragino.com/index.php/Through_MQTT_to_upload_data]]) 15 +* LG01N, OLG01N ((% class="mark" %)**Warning**(%%): LG01-P LG01-S use another instruction: [[MQTT for LG01-P/LG01S>>url:https://wiki.dragino.com/index.php/Through_MQTT_to_upload_data]]) 14 14 * LG02, OLG02 15 15 * LG308, DLOS8 16 16 * LPS8 ... ... @@ -20,7 +20,9 @@ 20 20 21 21 = 2. Firmware Change Log for MQTT feature = 22 22 25 +((( 23 23 This instruction is wrote start from LG02_LG08-5.3.1580178039. Below is related change log since this version of firmware. 27 +))) 24 24 25 25 * LG02_LG08-5.3.1580178039 26 26 ** Initiate version ... ... @@ -35,33 +35,47 @@ 35 35 * 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. 36 36 * 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, 37 37 38 -[[ ~[~[image:https://wiki.dragino.com/images/thumb/4/45/MQTT_Forward_1.png/600px-MQTT_Forward_1.png~|~|height="348" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Forward_1.png]]42 +[[image:https://wiki.dragino.com/images/thumb/4/45/MQTT_Forward_1.png/600px-MQTT_Forward_1.png||height="348" width="600"]] 39 39 40 40 General MQTT structure 41 41 46 + 42 42 == 3.2 How sensor data is forwarded == 43 43 44 44 In this MQTT forward feature, the key point is how the gateway process the sensor data. 45 45 51 + 46 46 === 3.2.1 Upstream === 47 47 48 48 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. 49 49 56 +((( 50 50 The data flow works as below diagram. 58 +))) 51 51 52 52 [[~[~[image:https://wiki.dragino.com/images/thumb/2/2a/MQTT_Forward_2.png/600px-MQTT_Forward_2.png~|~|height="355" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Forward_2.png]] 53 53 62 +((( 54 54 Upstream path 64 +))) 55 55 66 +((( 56 56 Note: The sensor data can base or LoRa or other method, as long as there are data on the file /var/iot/channels. /span> 68 +))) 57 57 70 +((( 71 + 72 +))) 73 + 58 58 === 3.2.2 Downstream === 59 59 60 60 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. 61 61 78 +((( 62 62 Below are the data flow for downstream. 80 +))) 63 63 64 -[[ ~[~[image:https://wiki.dragino.com/images/thumb/3/3a/MQTT_Forward_3.png/600px-MQTT_Forward_3.png~|~|height="368" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Forward_3.png]]82 +[[image:https://wiki.dragino.com/images/thumb/3/3a/MQTT_Forward_3.png/600px-MQTT_Forward_3.png||height="368" width="600"]] 65 65 66 66 Downstream path 67 67 ... ... @@ -70,7 +70,9 @@ 70 70 71 71 The MQTT publish command use Macro settings to generate flexible upstream payload for MQTT publish. 72 72 73 -Currently the -t (topic) and -m (message) support Macros. 91 +((( 92 +Currently the (% class="mark" %)**-t (topic)**(%%) and (% class="mark" %)**-m (message)**(%%) support Macros. 93 +))) 74 74 75 75 === 3.3.1 -t topic macro === 76 76 ... ... @@ -90,7 +90,7 @@ 90 90 91 91 === 3.3.3 Example for Macro === 92 92 93 -[[ ~[~[image:https://wiki.dragino.com/images/thumb/c/c7/MQTT_Command_9.png/600px-MQTT_Command_9.png~|~|height="385" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Command_9.png]]113 +[[image:https://wiki.dragino.com/images/thumb/c/c7/MQTT_Command_9.png/600px-MQTT_Command_9.png||height="385" width="600"]] 94 94 95 95 MQTT Publish configure 96 96 ... ... @@ -101,11 +101,13 @@ 101 101 102 102 When there is a LoRa sensor arrive. it will be store at the /var/iot/channels as below: 103 103 104 -[[ ~[~[image:https://wiki.dragino.com/images/thumb/c/c4/MQTT_Command_20.png/600px-MQTT_Command_20.png~|~|height="325" width="600"~]~]>>url:https://wiki.dragino.com/index.php/File:MQTT_Command_20.png]]124 +[[image:https://wiki.dragino.com/images/thumb/c/c4/MQTT_Command_20.png/600px-MQTT_Command_20.png||height="325" width="600"]] 105 105 106 106 Sensor Data 107 107 108 -According to above macro. Gateway will publish field1=22.0&field2=49.0 to topic: dragino-1b7060/78901/data, where 78901 is the remote channel for this node ID. 128 +((( 129 +According to above macro. Gateway will publish (% class="mark" %)**field1=22.0&field2=49.0**(%%) to topic: (% class="mark" %)**dragino-1b7060/78901/data**(%%), where 78901 is the remote channel for this node ID. 130 +))) 109 109 110 110 111 111 == 3.4 Modify the MQTT to support more options == ... ... @@ -369,7 +369,6 @@ 369 369 downstream simulation 370 370 371 371 372 -\\ 373 373 374 374 == 4.5 Add LoRa support to communicate with remote sensor == 375 375 ... ... @@ -412,7 +412,8 @@ 412 412 When use test this feature, please use the version higher then : LG02_LG08~-~-build-v5.4.1593400722-20200629-1120, in this version, the upload format is changed and readable, which is easier for integration. 413 413 414 414 415 -\\Video Instruction:[[https:~~/~~/youtu.be/qJTY441-t90>>url:https://youtu.be/qJTY441-t90]] 436 + 437 +Video Instruction:[[https:~~/~~/youtu.be/qJTY441-t90>>url:https://youtu.be/qJTY441-t90]] 416 416 417 417 418 418 Step 1: Refer [[Communicate with ABP End Node>>url:https://wiki.dragino.com/index.php/Communication_with_ABP_End_Node]] to know how to set up LG308 to work with LoRaWAN End node. ... ... @@ -493,7 +493,6 @@ 493 493 [[AWS Examples>>url:https://wiki.dragino.com/index.php/MQTT_Forward_to_Amazon_AWS-IOT]] 494 494 ))) 495 495 496 - 497 497 = 6. How to Debug = 498 498 499 499 User can login the gateway's console and run **logread -f**. It will shows the output when there is packet arrive.User can see if it is correct.