Wiki source code of TCP Connection Instruction
Version 28.1 by Kilight Cao on 2024/01/22 09:51
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 | (% 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"]] | ||
6 | ))) | ||
16.2 | 7 | ||
16.13 | 8 | {{toc/}} | |
16.2 | 9 | ||
16.12 | 10 | ||
11 | |||
1.2 | 12 | = 1. Introduction = | |
1.1 | 13 | ||
16.16 | 14 | ||
1.2 | 15 | In the TCP IP Client mode, LoRa Gateway can accept LoRa or LoRaWAN packets and send it to the TCP/IP server. | |
1.1 | 16 | ||
17 | |||
16.11 | 18 | ||
1.2 | 19 | = 2. LoRaWAN Mode TCP Connection = | |
1.1 | 20 | ||
1.2 | 21 | == 2.1 Support Hardware == | |
1.1 | 22 | ||
16.16 | 23 | ||
1.2 | 24 | * [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]] | |
25 | * [[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 | 26 | ||
16.7 | 27 | ||
25.4 | 28 | ||
1.2 | 29 | == 2.2 Typology & Instruction == | |
1.1 | 30 | ||
16.16 | 31 | ||
25.3 | 32 | (% aria-label="image-20220527144058-1.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144058-1.png||data-widget="image"]] | |
1.1 | 33 | ||
25.3 | 34 | (% 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" %) | |
35 | |||
1.2 | 36 | Network Structure | |
1.1 | 37 | ||
38 | |||
1.2 | 39 | = 3. Raw LoRa Mode TCP Connection = | |
1.1 | 40 | ||
1.3 | 41 | == 3.1 Support Hardware == | |
1.2 | 42 | ||
16.16 | 43 | ||
1.10 | 44 | * [[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]] | |
45 | * [[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 | 46 | ||
16.3 | 47 | ||
25.2 | 48 | ||
16.11 | 49 | == 3.2 Typology == | |
16.10 | 50 | ||
51 | |||
1.2 | 52 | The working topology is as below. In this mode, The Uplink LoRa packets should use a customized format. | |
53 | |||
54 | |||
16.16 | 55 | (% aria-label="image-20220527144300-2.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144300-2.png||data-widget="image"]](% title="Click and drag to resize" %) | |
56 | |||
1.2 | 57 | TCP/IP Forward working topology | |
58 | |||
59 | |||
1.3 | 60 | == 3.3 Instruction Before Firmware lgw~-~-build-v5.4.1606631585-20201129-1434 == | |
1.2 | 61 | ||
1.3 | 62 | === 3.3.1 Select TCP-IP Client mode === | |
1.2 | 63 | ||
64 | |||
16.16 | 65 | (% aria-label="image-20220527144723-3.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144723-3.png||data-widget="image"]](% title="Click and drag to resize" %) | |
66 | |||
1.2 | 67 | Select TCP-IP Client mode | |
68 | |||
69 | |||
1.3 | 70 | === 3.3.2 Configure the Radio channel === | |
1.2 | 71 | ||
72 | |||
16.16 | 73 | (% aria-label="image-20220527144755-4.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144755-4.png||data-widget="image"]](% title="Click and drag to resize" %) | |
74 | |||
1.2 | 75 | Configure the Radio channel with the match radio settings frequency as the LoRa End Node | |
76 | |||
77 | |||
1.3 | 78 | === 3.3.3 Configure TCP Server Info === | |
1.2 | 79 | ||
80 | |||
16.16 | 81 | (% 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.** | |
16.11 | 82 | ||
16.16 | 83 | (% aria-label="image-20220527144837-5.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144837-5.png||data-widget="image"]](% title="Click and drag to resize" %) | |
1.2 | 84 | ||
85 | Configure TCP Server Info | ||
86 | |||
87 | |||
1.6 | 88 | === 3.3.4 About uplink data format from End Node === | |
1.2 | 89 | ||
16.11 | 90 | ||
1.2 | 91 | The LoRa end node should upload the data with below format: | |
92 | |||
1.5 | 93 | (% class="box" %) | |
94 | ((( | ||
6.3 | 95 | Uplink Format:** (% style="color:#4f81bd" %)<Channel_ID>data(%%)** | |
1.5 | 96 | For example, if we have configured 2 channels 12345 and 34567. | |
1.2 | 97 | And there is are three LoRa End nodes sending: 12345,34567,78 | |
98 | The LG02 will accept the data from 12345 and 34567, it will ignore the data from Node 78 | ||
25.3 | 99 | ||
100 | |||
16.11 | 101 | (% style="color:blue" %)**Case 1**:(%%) | |
1.2 | 102 | Node 12345 send <12345>field1=0.0&field2=1102.0 | |
103 | Node 34567 doesn’t send anyting | ||
1.5 | 104 | The TCP/IP server will get {"12345":"field1=0.0&field2=1102.0"} | |
25.3 | 105 | ||
106 | |||
16.11 | 107 | (% style="color:blue" %)**Case 2**:(%%) | |
1.2 | 108 | Node 12345 send <12345>field1=0.0&field2=1102.0 | |
109 | Node 34567 send <34567>temp=34 | ||
1.5 | 110 | The TCP/IP server will get {"34567":"temp=34","12345":"field1=0.0&field2=1102.0"} | |
111 | ))) | ||
1.2 | 112 | ||
16.16 | 113 | (% aria-label="image-20220527144959-6.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144959-6.png||data-widget="image"]](% title="Click and drag to resize" %) | |
1.2 | 114 | ||
115 | Configure TCP Server Info | ||
116 | |||
16.12 | 117 | ||
1.7 | 118 | 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 | 119 | ||
120 | |||
1.3 | 121 | == 3.4 Instruction After Firmware lgw~-~-build~-~-v5.4.1612428704~-~-20210204-1653 == | |
1.2 | 122 | ||
1.3 | 123 | === 3.4.1 Configure the Radio channel === | |
1.2 | 124 | ||
16.16 | 125 | ||
25.3 | 126 | (% aria-label="image-20220527145111-7.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145111-7.png||data-widget="image"]] | |
1.2 | 127 | ||
25.3 | 128 | (% title="Click and drag to resize" %) | |
129 | |||
1.2 | 130 | Configure the Radio channel with the match radio settings frequency as the LoRa End Node | |
131 | |||
132 | |||
1.4 | 133 | === 3.4.2 Configure TCP Server Info === | |
1.2 | 134 | ||
16.12 | 135 | ||
16.16 | 136 | (% style="color:red" %)**Note: Gateway will transfer the packet if they arrive in the right format .** | |
1.2 | 137 | ||
25.3 | 138 | (% aria-label="image-20220527145151-8.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145151-8.png||data-widget="image"]] | |
1.2 | 139 | ||
25.3 | 140 | (% title="Click and drag to resize" %) | |
141 | |||
1.2 | 142 | Configure TCP Server Info | |
143 | |||
144 | |||
1.4 | 145 | === 3.4.3 About uplink data format from End Node === | |
1.2 | 146 | ||
16.16 | 147 | ||
1.2 | 148 | The LoRa end node should upload the data with below format: | |
149 | |||
1.8 | 150 | (% class="box" %) | |
151 | ((( | ||
9.3 | 152 | Uplink Format: (% style="color:#4f81bd" %)**<Channel_ID>data**(%%) | |
1.2 | 153 | And there is a LoRa End node sending below packets: | |
154 | *<12345>Hello From Sensor1 | ||
1.8 | 155 | ))) | |
1.2 | 156 | ||
157 | |||
1.8 | 158 | (% class="box" %) | |
159 | ((( | ||
160 | LG01/LG02 will uplink 12345:Hello From Sensor1 and usr can use logread -f to check the log. | ||
161 | Thu Feb 4 08:21:49 2021 user.notice iot_keep_alive: use WAN or WiFi for internet access now | ||
162 | Thu Feb 4 08:21:53 2021 daemon.info tcp_process.sh[18564]: /var/iot/channels/ CREATE 12345 | ||
163 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: Check for sensor update | ||
164 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: Found Data at Local Channels: 12345 | ||
165 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: | ||
166 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-- | ||
167 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:server: 10.130.2.149 | ||
168 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:port: 60000 | ||
169 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:decoder: LG01/LG02 Raw Data | ||
170 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:tcp_data: 12345:Hello From Sensor1; | ||
171 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-~-~- | ||
172 | ))) | ||
1.2 | 173 | ||
174 | |||
175 | and TCP server get: | ||
176 | |||
16.12 | 177 | (% 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 | 178 | ||
179 | TCP Server | ||
180 | |||
16.15 | 181 | ||
1.8 | 182 | 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 | 183 | ||
1.8 | 184 | ||
22.1 | 185 | == 3.5 Instruction After Firmware lgw~-~-build-v5.4.1668567157-20221116-1054 == | |
16.14 | 186 | ||
22.1 | 187 | === 3.5.1 Configure the Frequency Plan === | |
188 | |||
25.2 | 189 | ||
22.1 | 190 | [[image:image-20230105114141-1.png||height="539" width="1128"]] | |
191 | |||
192 | Configure the Frequency Plan with the match radio settings frequency as the LoRa End Node | ||
193 | |||
194 | |||
195 | === 3.5.2 Configure TCP Server Info === | ||
196 | |||
197 | |||
198 | (% style="color:red" %)**Note: Gateway will transfer the packet if they arrive in the right format.** | ||
199 | |||
200 | (% aria-label="image-20220527145151-8.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145151-8.png||data-widget="image"]] | ||
201 | |||
202 | |||
203 | === 3.5.3 Configure ABP Decryption === | ||
204 | |||
205 | |||
206 | (% style="color:red" %)**Note: The End Node devices must use ABP join network mode.** | ||
207 | |||
208 | [[image:image-20230105170545-2.png||height="577" width="1087"]] | ||
209 | |||
210 | |||
211 | === 3.5.3 About uplink data format from End Node === | ||
212 | |||
213 | |||
25.1 | 214 | [[image:image-20230105171605-5.png||height="513" width="1084"]] | |
22.1 | 215 | ||
25.2 | 216 | ||
25.1 | 217 | [[image:image-20230105171235-4.png||height="480" width="523"]] | |
22.1 | 218 | ||
25.2 | 219 | ||
1.4 | 220 | = 4. Reference = | |
1.2 | 221 | ||
16.16 | 222 | ||
1.2 | 223 | 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]] | |
25.2 | 224 | ||
225 | |||
226 | |||
227 |