Wiki source code of TCP Connection Instruction

Version 31.1 by Kilight Cao on 2024/01/22 09:54

Show last authors
1 **Table of Contents:**
2
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 )))
7
8 {{toc/}}
9
10
11
12 = 1. Introduction =
13
14
15 In the TCP IP Client mode, LoRa Gateway can accept LoRa or LoRaWAN packets and send it to the TCP/IP server.
16
17
18
19 = 2. LoRaWAN Mode TCP Connection =
20
21 == 2.1 Support Hardware ==
22
23
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]]
26
27
28 == 2.2 Typology & Instruction ==
29
30
31 (% aria-label="image-20220527144058-1.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527144058-1.png||data-widget="image"]]
32
33 (% 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" %)​
34
35 Network Structure
36
37
38 = 3. Raw LoRa Mode TCP Connection =
39
40 == 3.1 Support Hardware ==
41
42
43 * [[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]]
44 * [[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]]
45
46
47 == 3.2 Typology ==
48
49
50 The working topology is as below. In this mode, The Uplink LoRa packets should use a customized format.
51
52
53 (% 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" %)​
54
55 TCP/IP Forward working topology
56
57
58 == 3.3 Instruction Before Firmware lgw~-~-build-v5.4.1606631585-20201129-1434 ==
59
60 === 3.3.1 Select TCP-IP Client mode ===
61
62
63 (% 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" %)​
64
65 Select TCP-IP Client mode
66
67
68 === 3.3.2 Configure the Radio channel ===
69
70
71 (% 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" %)​
72
73 Configure the Radio channel with the match radio settings frequency as the LoRa End Node
74
75
76 === 3.3.3 Configure TCP Server Info ===
77
78
79 (% 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.**
80
81 (% 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" %)​
82
83 Configure TCP Server Info
84
85
86 === 3.3.4 About uplink data format from End Node ===
87
88
89 The LoRa end node should upload the data with below format:
90
91 (% class="box" %)
92 (((
93 Uplink Format:** (% style="color:#4f81bd" %)<Channel_ID>data(%%)**
94 For example, if we have configured 2 channels 12345 and 34567.
95 And there is are three LoRa End nodes sending: 12345,34567,78
96 The LG02 will accept the data from 12345 and 34567, it will ignore the data from Node 78
97
98
99 (% style="color:blue" %)**Case 1**:(%%)
100 Node 12345 send <12345>field1=0.0&field2=1102.0
101 Node 34567 doesn’t send anyting
102 The TCP/IP server will get {"12345":"field1=0.0&field2=1102.0"}
103
104
105 (% style="color:blue" %)**Case 2**:(%%)
106 Node 12345 send <12345>field1=0.0&field2=1102.0
107 Node 34567 send <34567>temp=34
108 The TCP/IP server will get {"34567":"temp=34","12345":"field1=0.0&field2=1102.0"}
109 )))
110
111 (% 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" %)​
112
113 Configure TCP Server Info
114
115
116 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]].
117
118
119 == 3.4 Instruction After Firmware lgw~-~-build~-~-v5.4.1612428704~-~-20210204-1653 ==
120
121 === 3.4.1 Configure the Radio channel ===
122
123
124 (% aria-label="image-20220527145111-7.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145111-7.png||data-widget="image"]]
125
126 (% title="Click and drag to resize" %)​
127
128 Configure the Radio channel with the match radio settings frequency as the LoRa End Node
129
130
131 === 3.4.2 Configure TCP Server Info ===
132
133
134 (% style="color:red" %)**Note: Gateway will transfer the packet if they arrive in the right format .**
135
136 (% aria-label="image-20220527145151-8.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145151-8.png||data-widget="image"]]
137
138 (% title="Click and drag to resize" %)​
139
140 Configure TCP Server Info
141
142
143 === 3.4.3 About uplink data format from End Node ===
144
145
146 The LoRa end node should upload the data with below format:
147
148 (% class="box" %)
149 (((
150 Uplink Format: (% style="color:#4f81bd" %)**<Channel_ID>data**(%%)
151 And there is a LoRa End node sending below packets:
152 *<12345>Hello From Sensor1
153 )))
154
155
156 (% class="box" %)
157 (((
158 LG01/LG02 will uplink 12345:Hello From Sensor1 and usr can use logread -f to check the log.
159 Thu Feb  4 08:21:49 2021 user.notice iot_keep_alive: use WAN or WiFi for internet access now
160 Thu Feb  4 08:21:53 2021 daemon.info tcp_process.sh[18564]: /var/iot/channels/ CREATE 12345
161 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]: Check for sensor update
162 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]: Found Data at Local Channels: 12345
163 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:
164 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~--
165 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:server: 10.130.2.149
166 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:port: 60000
167 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:decoder: LG01/LG02 Raw Data
168 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:tcp_data: 12345:Hello From Sensor1;
169 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-~-~-
170 )))
171
172
173 and TCP server get:
174
175 (% 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" %)​
176
177 TCP Server
178
179
180 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]].
181
182
183 == 3.5 Instruction After Firmware lgw~-~-build-v5.4.1668567157-20221116-1054 ==
184
185 === 3.5.1 Configure the Frequency Plan ===
186
187
188 [[image:image-20230105114141-1.png||height="539" width="1128"]]
189
190 Configure the Frequency Plan with the match radio settings frequency as the LoRa End Node
191
192
193 === 3.5.2 Configure TCP Server Info ===
194
195
196 (% style="color:red" %)**Note: Gateway will transfer the packet if they arrive in the right format.**
197
198 (% aria-label="image-20220527145151-8.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220527145151-8.png||data-widget="image"]]
199
200
201 === 3.5.3 Configure ABP Decryption ===
202
203
204 (% style="color:red" %)**Note: The End Node devices must use ABP join network mode.**
205
206 [[image:image-20230105170545-2.png||height="577" width="1087"]]
207
208
209 === 3.5.3 About uplink data format from End Node ===
210
211
212 [[image:image-20230105171605-5.png||height="513" width="1084"]]
213
214
215 [[image:image-20230105171235-4.png||height="480" width="523"]]
216
217
218 (% class="wikigeneratedid" %)
219 == 3.6 Example: Use TCP in LPS8v2 ==
220
221 LPS8v2 includes a local ChirpStack Server and Node-Red. This example shows how to configure LHT65N to use with the local Node-Red server. This example assumes users already have:
222
223 * LHT65N register on LPS8v2 Built-In ChirpStack server already
224 * The user is able to see the data on the built-in ChirpStack server device page.
225
226 Below are steps for LPS8v2 to transfer data from a node to the TCP server.
227
228 === 3.6.1 Link Node-Red to Local ChirpStack ===
229
230 Users can download the Node-Red decoder from this link and import it into the Node-Red platform: 
231
232 For more information on importing Input Flow, check out this link: **[[Import Input Flow for Dragino Sensors>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Node-RED/#H3.A0ImportInputFlowforDraginoSensors]]**
233
234 After importing the Input Flow is complete, the user needs to edit the MQTT in the node
235
236
237 **~1. Change the Topic**
238
239 Topic modifies it to the following format:
240
241 **application/Application ID/device/End device ID/event/up**
242
243 Reference link: [[**Node-RED integration** >>url:https://www.chirpstack.io/docs/guides/node-red-integration.html]]
244
245 [[image:image-20240122094847-1.png||height="756" width="1232"]]
246
247
248 **2. Enter the MQTT configuration information**
249
250
251 [[image:image-20240122094930-2.png||height="767" width="1251"]]
252
253
254 **3.** **Click "Update" and Deploy**
255
256 "Connected" indicates that the Link Node-red to Local Chirpstack is normal.
257
258 [[image:image-20240122095122-3.png||height="765" width="1247"]]
259
260
261 **4. Connect to the TCP server**
262
263 [[image:image-20240122095313-4.png||height="767" width="1250"]]
264
265
266 **5. Finally, check the data**
267
268 [[image:image-20240122095424-5.png||height="779" width="1269"]]
269
270
271 = 4. Reference =
272
273
274 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]]