Wiki source code of TCP Connection Instruction

Version 16.14 by Xiaoling on 2022/07/21 17:26

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 In the TCP IP Client mode, LoRa Gateway can accept LoRa or LoRaWAN packets and send it to the TCP/IP server.
15
16
17
18 = 2. LoRaWAN Mode TCP Connection =
19
20 == 2.1 Support Hardware ==
21
22 * [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]]
23 * [[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]]
24
25
26
27 == 2.2 Typology & Instruction ==
28
29 (% 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" %)​
30
31 Network Structure
32
33 [[Intrudctions>>Communicate with ABP End Node without LoRaWAN Network Server --- LG308||anchor="H4.Example2:CommunicatetoTCPServer"]]
34
35
36
37 = 3. Raw LoRa Mode TCP Connection =
38
39 == 3.1 Support Hardware ==
40
41 * [[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]]
42 * [[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]]
43
44
45
46 == 3.2 Typology ==
47
48
49 The working topology is as below. In this mode, The Uplink LoRa packets should use a customized format.
50
51 (% 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" %)​
52
53 TCP/IP Forward working topology
54
55
56
57 == 3.3 Instruction Before Firmware lgw~-~-build-v5.4.1606631585-20201129-1434 ==
58
59 === 3.3.1 Select TCP-IP Client mode ===
60
61 (% 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" %)​
62
63 Select TCP-IP Client mode
64
65
66
67 === 3.3.2 Configure the Radio channel ===
68
69 (% 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" %)​
70
71 Configure the Radio channel with the match radio settings frequency as the LoRa End Node
72
73
74
75 === 3.3.3 Configure TCP Server Info ===
76
77
78 (% 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.
79
80 (% 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" %)​
81
82 Configure TCP Server Info
83
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 (% style="color:blue" %)**Case 1**:(%%)
98 Node 12345 send <12345>field1=0.0&field2=1102.0
99 Node 34567 doesn’t send anyting
100 The TCP/IP server will get {"12345":"field1=0.0&field2=1102.0"}
101 (% style="color:blue" %)**Case 2**:(%%)
102 Node 12345 send <12345>field1=0.0&field2=1102.0
103 Node 34567 send <34567>temp=34
104 The TCP/IP server will get {"34567":"temp=34","12345":"field1=0.0&field2=1102.0"}
105 )))
106
107 (% 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" %)​
108
109 Configure TCP Server Info
110
111
112 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]].
113
114
115
116 == 3.4 Instruction After Firmware lgw~-~-build~-~-v5.4.1612428704~-~-20210204-1653 ==
117
118 === 3.4.1 Configure the Radio channel ===
119
120 (% 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" %)​
121
122 Configure the Radio channel with the match radio settings frequency as the LoRa End Node
123
124
125
126 === 3.4.2 Configure TCP Server Info ===
127
128
129 (% style="color:red" %)Note: Gateway will transfer the packet if they arrive in the right format .
130
131 (% 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" %)​
132
133 Configure TCP Server Info
134
135
136
137 === 3.4.3 About uplink data format from End Node ===
138
139 The LoRa end node should upload the data with below format:
140
141 (% class="box" %)
142 (((
143 Uplink Format: (% style="color:#4f81bd" %)**<Channel_ID>data**(%%)
144 And there is a LoRa End node sending below packets:
145 *<12345>Hello From Sensor1
146 )))
147
148
149 (% class="box" %)
150 (((
151 LG01/LG02 will uplink 12345:Hello From Sensor1 and usr can use logread -f to check the log.
152 Thu Feb  4 08:21:49 2021 user.notice iot_keep_alive: use WAN or WiFi for internet access now
153 Thu Feb  4 08:21:53 2021 daemon.info tcp_process.sh[18564]: /var/iot/channels/ CREATE 12345
154 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]: Check for sensor update
155 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]: Found Data at Local Channels: 12345
156 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:
157 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~--
158 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:server: 10.130.2.149
159 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:port: 60000
160 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:decoder: LG01/LG02 Raw Data
161 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:tcp_data: 12345:Hello From Sensor1;
162 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-~-~-
163 )))
164
165
166 and TCP server get:
167
168 (% 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" %)​
169
170 TCP Server
171
172 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]].
173
174
175
176 = 4. Reference =
177
178 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]]