Wiki source code of TCP Connection Instruction

Version 16.11 by Xiaoling on 2022/07/21 17:21

Hide last authors
Xiaoling 16.9 1 **Table of Contents:**
Xiaoling 1.1 2
Xiaoling 1.11 3 {{toc/}}
Xiaoling 1.1 4
Xiaoling 1.11 5
Xiaoling 16.2 6
7
Xiaoling 1.2 8 = 1. Introduction =
Xiaoling 1.1 9
Xiaoling 1.2 10 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 11
12
Xiaoling 16.11 13
Xiaoling 1.2 14 = 2. LoRaWAN Mode TCP Connection =
Xiaoling 1.1 15
Xiaoling 1.2 16 == 2.1 Support Hardware ==
Xiaoling 1.1 17
Xiaoling 1.2 18 * [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]]
19 * [[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 20
Xiaoling 16.7 21
Xiaoling 1.2 22 == 2.2 Typology & Instruction ==
Xiaoling 1.1 23
Xiaoling 3.2 24 [[image:image-20220527144058-1.png]]
Xiaoling 1.1 25
Xiaoling 1.2 26 Network Structure
Xiaoling 1.1 27
Xiaoling 16.5 28 [[Intrudctions>>Communicate with ABP End Node without LoRaWAN Network Server --- LG308||anchor="H4.Example2:CommunicatetoTCPServer"]]
Xiaoling 1.1 29
30
Xiaoling 16.10 31
Xiaoling 1.2 32 = 3. Raw LoRa Mode TCP Connection =
Xiaoling 1.1 33
Xiaoling 1.3 34 == 3.1 Support Hardware ==
Xiaoling 1.2 35
Xiaoling 1.10 36 * [[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]]
37 * [[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 38
Xiaoling 16.3 39
Xiaoling 16.11 40 == 3.2 Typology ==
Xiaoling 16.10 41
42
Xiaoling 1.2 43 The working topology is as below. In this mode, The Uplink LoRa packets should use a customized format.
44
Xiaoling 3.2 45 [[image:image-20220527144300-2.png]]
Xiaoling 1.2 46
47 TCP/IP Forward working topology
48
49
Xiaoling 16.11 50
Xiaoling 1.3 51 == 3.3 Instruction Before Firmware lgw~-~-build-v5.4.1606631585-20201129-1434 ==
Xiaoling 1.2 52
Xiaoling 1.3 53 === 3.3.1 Select TCP-IP Client mode ===
Xiaoling 1.2 54
Xiaoling 4.2 55 [[image:image-20220527144723-3.png]]
Xiaoling 1.2 56
57 Select TCP-IP Client mode
58
59
Xiaoling 16.11 60
Xiaoling 1.3 61 === 3.3.2 Configure the Radio channel ===
Xiaoling 1.2 62
Xiaoling 5.2 63 [[image:image-20220527144755-4.png]]
Xiaoling 1.2 64
65 Configure the Radio channel with the match radio settings frequency as the LoRa End Node
66
67
Xiaoling 16.11 68
Xiaoling 1.3 69 === 3.3.3 Configure TCP Server Info ===
Xiaoling 1.2 70
71
Xiaoling 16.11 72 (% 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.
73
Xiaoling 6.2 74 [[image:image-20220527144837-5.png]]
Xiaoling 1.2 75
76 Configure TCP Server Info
77
78
Xiaoling 16.11 79
Xiaoling 1.6 80 === 3.3.4 About uplink data format from End Node ===
Xiaoling 1.2 81
Xiaoling 16.11 82
Xiaoling 1.2 83 The LoRa end node should upload the data with below format:
84
Xiaoling 1.5 85 (% class="box" %)
86 (((
Xiaoling 6.3 87 Uplink Format:** (% style="color:#4f81bd" %)<Channel_ID>data(%%)**
Xiaoling 1.5 88 For example, if we have configured 2 channels 12345 and 34567.
Xiaoling 1.2 89 And there is are three LoRa End nodes sending: 12345,34567,78
90 The LG02 will accept the data from 12345 and 34567, it will ignore the data from Node 78
Xiaoling 16.11 91 (% style="color:blue" %)**Case 1**:(%%)
Xiaoling 1.2 92 Node 12345 send <12345>field1=0.0&field2=1102.0
93 Node 34567 doesn’t send anyting
Xiaoling 1.5 94 The TCP/IP server will get {"12345":"field1=0.0&field2=1102.0"}
Xiaoling 16.11 95 (% style="color:blue" %)**Case 2**:(%%)
Xiaoling 1.2 96 Node 12345 send <12345>field1=0.0&field2=1102.0
97 Node 34567 send <34567>temp=34
Xiaoling 1.5 98 The TCP/IP server will get {"34567":"temp=34","12345":"field1=0.0&field2=1102.0"}
99 )))
Xiaoling 1.2 100
Xiaoling 7.2 101 [[image:image-20220527144959-6.png]]
Xiaoling 1.2 102
103 Configure TCP Server Info
104
Xiaoling 1.7 105 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 106
107
Xiaoling 1.3 108 == 3.4 Instruction After Firmware lgw~-~-build~-~-v5.4.1612428704~-~-20210204-1653 ==
Xiaoling 1.2 109
Xiaoling 1.3 110 === 3.4.1 Configure the Radio channel ===
Xiaoling 1.2 111
Xiaoling 8.2 112 [[image:image-20220527145111-7.png]]
Xiaoling 1.2 113
114 Configure the Radio channel with the match radio settings frequency as the LoRa End Node
115
116
Xiaoling 1.4 117 === 3.4.2 Configure TCP Server Info ===
Xiaoling 1.2 118
119 Note: Gateway will transfer the packet if they arrive in the right format .
120
Xiaoling 9.2 121 [[image:image-20220527145151-8.png]]
Xiaoling 1.2 122
123 Configure TCP Server Info
124
125
Xiaoling 1.4 126 === 3.4.3 About uplink data format from End Node ===
Xiaoling 1.2 127
128 The LoRa end node should upload the data with below format:
129
Xiaoling 1.8 130 (% class="box" %)
131 (((
Xiaoling 9.3 132 Uplink Format: (% style="color:#4f81bd" %)**<Channel_ID>data**(%%)
Xiaoling 1.2 133 And there is a LoRa End node sending below packets:
134 *<12345>Hello From Sensor1
Xiaoling 1.8 135 )))
Xiaoling 1.2 136
137
Xiaoling 1.8 138 (% class="box" %)
139 (((
140 LG01/LG02 will uplink 12345:Hello From Sensor1 and usr can use logread -f to check the log.
141 Thu Feb  4 08:21:49 2021 user.notice iot_keep_alive: use WAN or WiFi for internet access now
142 Thu Feb  4 08:21:53 2021 daemon.info tcp_process.sh[18564]: /var/iot/channels/ CREATE 12345
143 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]: Check for sensor update
144 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]: Found Data at Local Channels: 12345
145 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:
146 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~--
147 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:server: 10.130.2.149
148 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:port: 60000
149 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:decoder: LG01/LG02 Raw Data
150 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:tcp_data: 12345:Hello From Sensor1;
151 Thu Feb  4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-~-~-
152 )))
Xiaoling 1.2 153
154
155 and TCP server get:
156
Xiaoling 10.2 157 [[image:image-20220527145304-9.png]]
Xiaoling 1.2 158
159 TCP Server
160
Xiaoling 1.8 161 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 162
Xiaoling 1.8 163
Xiaoling 1.4 164 = 4. Reference =
Xiaoling 1.2 165
166 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]]