Wiki source code of TCP Connection Instruction

Version 16.12 by Xiaoling on 2022/07/21 17:24

Hide last authors
Xiaoling 16.9 1 **Table of Contents:**
Xiaoling 1.1 2
Xiaoling 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 )))
Xiaoling 1.1 11
Xiaoling 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 )))
Xiaoling 1.11 30
Xiaoling 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 )))
Xiaoling 16.2 33
34
Xiaoling 16.12 35
36
Xiaoling 1.2 37 = 1. Introduction =
Xiaoling 1.1 38
Xiaoling 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.
Xiaoling 1.1 40
41
Xiaoling 16.11 42
Xiaoling 1.2 43 = 2. LoRaWAN Mode TCP Connection =
Xiaoling 1.1 44
Xiaoling 1.2 45 == 2.1 Support Hardware ==
Xiaoling 1.1 46
Xiaoling 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]]
Xiaoling 1.1 49
Xiaoling 16.7 50
Xiaoling 1.2 51 == 2.2 Typology & Instruction ==
Xiaoling 1.1 52
Xiaoling 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" %)​
Xiaoling 1.1 54
Xiaoling 1.2 55 Network Structure
Xiaoling 1.1 56
Xiaoling 16.5 57 [[Intrudctions>>Communicate with ABP End Node without LoRaWAN Network Server --- LG308||anchor="H4.Example2:CommunicatetoTCPServer"]]
Xiaoling 1.1 58
59
Xiaoling 16.10 60
Xiaoling 1.2 61 = 3. Raw LoRa Mode TCP Connection =
Xiaoling 1.1 62
Xiaoling 1.3 63 == 3.1 Support Hardware ==
Xiaoling 1.2 64
Xiaoling 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]]
Xiaoling 1.2 67
Xiaoling 16.3 68
Xiaoling 16.11 69 == 3.2 Typology ==
Xiaoling 16.10 70
71
Xiaoling 1.2 72 The working topology is as below. In this mode, The Uplink LoRa packets should use a customized format.
73
Xiaoling 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" %)​
Xiaoling 1.2 75
76 TCP/IP Forward working topology
77
78
Xiaoling 16.11 79
Xiaoling 1.3 80 == 3.3 Instruction Before Firmware lgw~-~-build-v5.4.1606631585-20201129-1434 ==
Xiaoling 1.2 81
Xiaoling 1.3 82 === 3.3.1 Select TCP-IP Client mode ===
Xiaoling 1.2 83
Xiaoling 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" %)​
Xiaoling 1.2 85
86 Select TCP-IP Client mode
87
88
Xiaoling 16.11 89
Xiaoling 1.3 90 === 3.3.2 Configure the Radio channel ===
Xiaoling 1.2 91
Xiaoling 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" %)​
Xiaoling 1.2 93
94 Configure the Radio channel with the match radio settings frequency as the LoRa End Node
95
96
Xiaoling 16.11 97
Xiaoling 1.3 98 === 3.3.3 Configure TCP Server Info ===
Xiaoling 1.2 99
100
Xiaoling 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
Xiaoling 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" %)​
Xiaoling 1.2 104
105 Configure TCP Server Info
106
107
Xiaoling 16.11 108
Xiaoling 1.6 109 === 3.3.4 About uplink data format from End Node ===
Xiaoling 1.2 110
Xiaoling 16.11 111
Xiaoling 1.2 112 The LoRa end node should upload the data with below format:
113
Xiaoling 1.5 114 (% class="box" %)
115 (((
Xiaoling 6.3 116 Uplink Format:** (% style="color:#4f81bd" %)<Channel_ID>data(%%)**
Xiaoling 1.5 117 For example, if we have configured 2 channels 12345 and 34567.
Xiaoling 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
Xiaoling 16.11 120 (% style="color:blue" %)**Case 1**:(%%)
Xiaoling 1.2 121 Node 12345 send <12345>field1=0.0&field2=1102.0
122 Node 34567 doesn’t send anyting
Xiaoling 1.5 123 The TCP/IP server will get {"12345":"field1=0.0&field2=1102.0"}
Xiaoling 16.11 124 (% style="color:blue" %)**Case 2**:(%%)
Xiaoling 1.2 125 Node 12345 send <12345>field1=0.0&field2=1102.0
126 Node 34567 send <34567>temp=34
Xiaoling 1.5 127 The TCP/IP server will get {"34567":"temp=34","12345":"field1=0.0&field2=1102.0"}
128 )))
Xiaoling 1.2 129
Xiaoling 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" %)​
Xiaoling 1.2 131
132 Configure TCP Server Info
133
Xiaoling 16.12 134
Xiaoling 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]].
Xiaoling 1.2 136
137
Xiaoling 16.12 138
Xiaoling 1.3 139 == 3.4 Instruction After Firmware lgw~-~-build~-~-v5.4.1612428704~-~-20210204-1653 ==
Xiaoling 1.2 140
Xiaoling 1.3 141 === 3.4.1 Configure the Radio channel ===
Xiaoling 1.2 142
Xiaoling 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" %)​
Xiaoling 1.2 144
145 Configure the Radio channel with the match radio settings frequency as the LoRa End Node
146
147
Xiaoling 16.12 148
Xiaoling 1.4 149 === 3.4.2 Configure TCP Server Info ===
Xiaoling 1.2 150
Xiaoling 16.12 151
Xiaoling 1.2 152 Note: Gateway will transfer the packet if they arrive in the right format .
153
Xiaoling 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" %)​
Xiaoling 1.2 155
156 Configure TCP Server Info
157
158
Xiaoling 1.4 159 === 3.4.3 About uplink data format from End Node ===
Xiaoling 1.2 160
161 The LoRa end node should upload the data with below format:
162
Xiaoling 1.8 163 (% class="box" %)
164 (((
Xiaoling 9.3 165 Uplink Format: (% style="color:#4f81bd" %)**<Channel_ID>data**(%%)
Xiaoling 1.2 166 And there is a LoRa End node sending below packets:
167 *<12345>Hello From Sensor1
Xiaoling 1.8 168 )))
Xiaoling 1.2 169
170
Xiaoling 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 )))
Xiaoling 1.2 186
187
188 and TCP server get:
189
Xiaoling 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" %)​
Xiaoling 1.2 191
192 TCP Server
193
Xiaoling 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]].
Xiaoling 1.2 195
Xiaoling 1.8 196
Xiaoling 1.4 197 = 4. Reference =
Xiaoling 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]]