Wiki source code of TCP Connection Instruction
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
16.9 | 1 | **Table of Contents:** |
![]() |
1.1 | 2 | |
![]() |
16.12 | 3 | (% aria-label="macro:toc widget" contenteditable="false" role="region" tabindex="-1" %) |
4 | ((( | ||
5 | (% class="macro" data-macro="startmacro:toc|-|" data-widget="xwiki-macro" %) | ||
6 | ((( | ||
7 | (% class="macro-placeholder hidden" %) | ||
8 | ((( | ||
9 | macro:toc | ||
10 | ))) | ||
![]() |
1.1 | 11 | |
![]() |
16.12 | 12 | * [[1. Introduction>>doc:null||anchor="H1.Introduction"]] |
13 | * [[2. LoRaWAN Mode TCP Connection>>doc:null||anchor="H2.LoRaWANModeTCPConnection"]] | ||
14 | ** [[2.1 Support Hardware>>doc:null||anchor="H2.1SupportHardware"]] | ||
15 | ** [[2.2 Typology & Instruction>>doc:null||anchor="H2.2Typology26Instruction"]] | ||
16 | * [[3. Raw LoRa Mode TCP Connection>>doc:null||anchor="H3.RawLoRaModeTCPConnection"]] | ||
17 | ** [[3.1 Support Hardware>>doc:null||anchor="H3.1SupportHardware"]] | ||
18 | ** [[3.2 Typology>>doc:null||anchor="H3.2Typology"]] | ||
19 | ** [[3.3 Instruction Before Firmware lgw~~-~~-build-v5.4.1606631585-20201129-1434>>doc:null||anchor="H3.3InstructionBeforeFirmwarelgw--build-v5.4.1606631585-20201129-1434"]] | ||
20 | *** [[3.3.1 Select TCP-IP Client mode>>doc:null||anchor="H3.3.1SelectTCP-IPClientmode"]] | ||
21 | *** [[3.3.2 Configure the Radio channel>>doc:null||anchor="H3.3.2ConfiguretheRadiochannel"]] | ||
22 | *** [[3.3.3 Configure TCP Server Info>>doc:null||anchor="H3.3.3ConfigureTCPServerInfo"]] | ||
23 | *** [[3.3.4 About uplink data format from End Node>>doc:null||anchor="H3.3.4AboutuplinkdataformatfromEndNode"]] | ||
24 | ** [[3.4 Instruction After Firmware lgw~~-~~-build~~-~~-v5.4.1612428704~~-~~-20210204-1653>>doc:null||anchor="H3.4InstructionAfterFirmwarelgw--build--v5.4.1612428704--20210204-1653"]] | ||
25 | *** [[3.4.1 Configure the Radio channel>>doc:null||anchor="H3.4.1ConfiguretheRadiochannel"]] | ||
26 | *** [[3.4.2 Configure TCP Server Info>>doc:null||anchor="H3.4.2ConfigureTCPServerInfo"]] | ||
27 | *** [[3.4.3 About uplink data format from End Node>>doc:null||anchor="H3.4.3AboutuplinkdataformatfromEndNode"]] | ||
28 | * [[4. Reference>>doc:null||anchor="H4.Reference"]] | ||
29 | ))) | ||
![]() |
1.11 | 30 | |
![]() |
16.12 | 31 | (% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||height="15" role="presentation" title="Click and drag to move" width="15"]] |
32 | ))) | ||
![]() |
16.2 | 33 | |
34 | |||
![]() |
16.12 | 35 | |
36 | |||
![]() |
1.2 | 37 | = 1. Introduction = |
![]() |
1.1 | 38 | |
![]() |
1.2 | 39 | In the TCP IP Client mode, LoRa Gateway can accept LoRa or LoRaWAN packets and send it to the TCP/IP server. |
![]() |
1.1 | 40 | |
41 | |||
![]() |
16.11 | 42 | |
![]() |
1.2 | 43 | = 2. LoRaWAN Mode TCP Connection = |
![]() |
1.1 | 44 | |
![]() |
1.2 | 45 | == 2.1 Support Hardware == |
![]() |
1.1 | 46 | |
![]() |
1.2 | 47 | * [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]] |
48 | * [[LG308>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/140-lg308.html]], [[DLOS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/160-dlos8.html]] | ||
![]() |
1.1 | 49 | |
![]() |
16.7 | 50 | |
![]() |
1.2 | 51 | == 2.2 Typology & Instruction == |
![]() |
1.1 | 52 | |
![]() |
16.12 | 53 | (% aria-label="image-20220527144058-1.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144058-1.png||data-widget="image"]](% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.1 | 54 | |
![]() |
1.2 | 55 | Network Structure |
![]() |
1.1 | 56 | |
![]() |
16.5 | 57 | [[Intrudctions>>Communicate with ABP End Node without LoRaWAN Network Server --- LG308||anchor="H4.Example2:CommunicatetoTCPServer"]] |
![]() |
1.1 | 58 | |
59 | |||
![]() |
16.10 | 60 | |
![]() |
1.2 | 61 | = 3. Raw LoRa Mode TCP Connection = |
![]() |
1.1 | 62 | |
![]() |
1.3 | 63 | == 3.1 Support Hardware == |
![]() |
1.2 | 64 | |
![]() |
1.10 | 65 | * [[LG01-N>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/143-lg01n.html]], [[OLG01-N>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/144-olg01n.html]] |
66 | * [[LG02>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/135-lg02.html]], [[OLG02>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/136-olg02.html]] | ||
![]() |
1.2 | 67 | |
![]() |
16.3 | 68 | |
![]() |
16.11 | 69 | == 3.2 Typology == |
![]() |
16.10 | 70 | |
71 | |||
![]() |
1.2 | 72 | The working topology is as below. In this mode, The Uplink LoRa packets should use a customized format. |
73 | |||
![]() |
16.12 | 74 | (% aria-label="image-20220527144300-2.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144300-2.png||data-widget="image"]](% style="background:url(~"http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.2 | 75 | |
76 | TCP/IP Forward working topology | ||
77 | |||
78 | |||
![]() |
16.11 | 79 | |
![]() |
1.3 | 80 | == 3.3 Instruction Before Firmware lgw~-~-build-v5.4.1606631585-20201129-1434 == |
![]() |
1.2 | 81 | |
![]() |
1.3 | 82 | === 3.3.1 Select TCP-IP Client mode === |
![]() |
1.2 | 83 | |
![]() |
16.12 | 84 | (% aria-label="image-20220527144723-3.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144723-3.png||data-widget="image"]](% style="background:url(~"http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.2 | 85 | |
86 | Select TCP-IP Client mode | ||
87 | |||
88 | |||
![]() |
16.11 | 89 | |
![]() |
1.3 | 90 | === 3.3.2 Configure the Radio channel === |
![]() |
1.2 | 91 | |
![]() |
16.12 | 92 | (% aria-label="image-20220527144755-4.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144755-4.png||data-widget="image"]](% style="background:url(~"http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.2 | 93 | |
94 | Configure the Radio channel with the match radio settings frequency as the LoRa End Node | ||
95 | |||
96 | |||
![]() |
16.11 | 97 | |
![]() |
1.3 | 98 | === 3.3.3 Configure TCP Server Info === |
![]() |
1.2 | 99 | |
100 | |||
![]() |
16.11 | 101 | (% style="color:red" %)Note: Gateway may receive many LoRa packets, it will only transfer the packet with the same ID as specify in the channel. |
102 | |||
![]() |
16.12 | 103 | (% aria-label="image-20220527144837-5.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144837-5.png||data-widget="image"]](% style="background:url(~"http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.2 | 104 | |
105 | Configure TCP Server Info | ||
106 | |||
107 | |||
![]() |
16.11 | 108 | |
![]() |
1.6 | 109 | === 3.3.4 About uplink data format from End Node === |
![]() |
1.2 | 110 | |
![]() |
16.11 | 111 | |
![]() |
1.2 | 112 | The LoRa end node should upload the data with below format: |
113 | |||
![]() |
1.5 | 114 | (% class="box" %) |
115 | ((( | ||
![]() |
6.3 | 116 | Uplink Format:** (% style="color:#4f81bd" %)<Channel_ID>data(%%)** |
![]() |
1.5 | 117 | For example, if we have configured 2 channels 12345 and 34567. |
![]() |
1.2 | 118 | And there is are three LoRa End nodes sending: 12345,34567,78 |
119 | The LG02 will accept the data from 12345 and 34567, it will ignore the data from Node 78 | ||
![]() |
16.11 | 120 | (% style="color:blue" %)**Case 1**:(%%) |
![]() |
1.2 | 121 | Node 12345 send <12345>field1=0.0&field2=1102.0 |
122 | Node 34567 doesn’t send anyting | ||
![]() |
1.5 | 123 | The TCP/IP server will get {"12345":"field1=0.0&field2=1102.0"} |
![]() |
16.11 | 124 | (% style="color:blue" %)**Case 2**:(%%) |
![]() |
1.2 | 125 | Node 12345 send <12345>field1=0.0&field2=1102.0 |
126 | Node 34567 send <34567>temp=34 | ||
![]() |
1.5 | 127 | The TCP/IP server will get {"34567":"temp=34","12345":"field1=0.0&field2=1102.0"} |
128 | ))) | ||
![]() |
1.2 | 129 | |
![]() |
16.12 | 130 | (% aria-label="image-20220527144959-6.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144959-6.png||data-widget="image"]](% style="background:url(~"http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.2 | 131 | |
132 | Configure TCP Server Info | ||
133 | |||
![]() |
16.12 | 134 | |
![]() |
1.7 | 135 | LoRa End Device reference source code: [[check this link>>url:https://github.com/dragino/Arduino-Profile-Examples/blob/master/libraries/Dragino/examples/IoTServer/ThingSpeak/MQTT_Client/MQTT_DHT11_Client_updata_to_ThingSpeak_/MQTT_DHT11_Client_updata_to_ThingSpeak_.ino]]. |
![]() |
1.2 | 136 | |
137 | |||
![]() |
16.12 | 138 | |
![]() |
1.3 | 139 | == 3.4 Instruction After Firmware lgw~-~-build~-~-v5.4.1612428704~-~-20210204-1653 == |
![]() |
1.2 | 140 | |
![]() |
1.3 | 141 | === 3.4.1 Configure the Radio channel === |
![]() |
1.2 | 142 | |
![]() |
16.12 | 143 | (% aria-label="image-20220527145111-7.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145111-7.png||data-widget="image"]](% style="background:url(~"http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.2 | 144 | |
145 | Configure the Radio channel with the match radio settings frequency as the LoRa End Node | ||
146 | |||
147 | |||
![]() |
16.12 | 148 | |
![]() |
1.4 | 149 | === 3.4.2 Configure TCP Server Info === |
![]() |
1.2 | 150 | |
![]() |
16.12 | 151 | |
![]() |
1.2 | 152 | Note: Gateway will transfer the packet if they arrive in the right format . |
153 | |||
![]() |
16.12 | 154 | (% aria-label="image-20220527145151-8.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145151-8.png||data-widget="image"]](% style="background:url(~"http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png~") rgba(220, 220, 220, 0.5); left:0px; top:-15px" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.2 | 155 | |
156 | Configure TCP Server Info | ||
157 | |||
158 | |||
![]() |
1.4 | 159 | === 3.4.3 About uplink data format from End Node === |
![]() |
1.2 | 160 | |
161 | The LoRa end node should upload the data with below format: | ||
162 | |||
![]() |
1.8 | 163 | (% class="box" %) |
164 | ((( | ||
![]() |
9.3 | 165 | Uplink Format: (% style="color:#4f81bd" %)**<Channel_ID>data**(%%) |
![]() |
1.2 | 166 | And there is a LoRa End node sending below packets: |
167 | *<12345>Hello From Sensor1 | ||
![]() |
1.8 | 168 | ))) |
![]() |
1.2 | 169 | |
170 | |||
![]() |
1.8 | 171 | (% class="box" %) |
172 | ((( | ||
173 | LG01/LG02 will uplink 12345:Hello From Sensor1 and usr can use logread -f to check the log. | ||
174 | Thu Feb 4 08:21:49 2021 user.notice iot_keep_alive: use WAN or WiFi for internet access now | ||
175 | Thu Feb 4 08:21:53 2021 daemon.info tcp_process.sh[18564]: /var/iot/channels/ CREATE 12345 | ||
176 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: Check for sensor update | ||
177 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: Found Data at Local Channels: 12345 | ||
178 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: | ||
179 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-- | ||
180 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:server: 10.130.2.149 | ||
181 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:port: 60000 | ||
182 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:decoder: LG01/LG02 Raw Data | ||
183 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:tcp_data: 12345:Hello From Sensor1; | ||
184 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-~-~- | ||
185 | ))) | ||
![]() |
1.2 | 186 | |
187 | |||
188 | and TCP server get: | ||
189 | |||
![]() |
16.12 | 190 | (% aria-label="image-20220527145304-9.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145304-9.png||data-widget="image"]](% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) |
![]() |
1.2 | 191 | |
192 | TCP Server | ||
193 | |||
![]() |
1.8 | 194 | LoRa End Device reference source code: [[check this link>>url:https://github.com/dragino/Arduino-Profile-Examples/blob/master/libraries/Dragino/examples/IoTServer/ThingSpeak/MQTT_Client/MQTT_DHT11_Client_updata_to_ThingSpeak_/MQTT_DHT11_Client_updata_to_ThingSpeak_.ino]]. |
![]() |
1.2 | 195 | |
![]() |
1.8 | 196 | |
![]() |
1.4 | 197 | = 4. Reference = |
![]() |
1.2 | 198 | |
199 | Set up a TCP/IP server use node.js: [[Reference Link>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_Gateway/LG02-OLG02/Firmware/customized_script/&file=node_tcp_server.txt]] |