Wiki source code of TCP Connection Instruction
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | **Contents:** | ||
2 | |||
3 | {{toc/}} | ||
4 | |||
5 | |||
6 | = 1. Introduction = | ||
7 | |||
8 | In the TCP IP Client mode, LoRa Gateway can accept LoRa or LoRaWAN packets and send it to the TCP/IP server. | ||
9 | |||
10 | |||
11 | = 2. LoRaWAN Mode TCP Connection = | ||
12 | |||
13 | == 2.1 Support Hardware == | ||
14 | |||
15 | * [[LPS8>>url:http://www.dragino.com/products/lora-lorawan-gateway/item/148-lps8.html]] | ||
16 | * [[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]] | ||
17 | |||
18 | |||
19 | == 2.2 Typology & Instruction == | ||
20 | |||
21 | [[image:image-20220527144058-1.png]] | ||
22 | |||
23 | Network Structure | ||
24 | |||
25 | [[Intrudctions>>url:https://wiki.dragino.com/index.php/Communication_with_ABP_End_Node#Example_2:_Communicate_to_TCP_Server]] | ||
26 | |||
27 | |||
28 | = 3. Raw LoRa Mode TCP Connection = | ||
29 | |||
30 | == 3.1 Support Hardware == | ||
31 | |||
32 | * [[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]] | ||
33 | * [[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]] | ||
34 | |||
35 | |||
36 | == 3.2 Typology == | ||
37 | |||
38 | The working topology is as below. In this mode, The Uplink LoRa packets should use a customized format. | ||
39 | |||
40 | [[image:image-20220527144300-2.png]] | ||
41 | |||
42 | TCP/IP Forward working topology | ||
43 | |||
44 | |||
45 | == 3.3 Instruction Before Firmware lgw~-~-build-v5.4.1606631585-20201129-1434 == | ||
46 | |||
47 | === 3.3.1 Select TCP-IP Client mode === | ||
48 | |||
49 | [[image:https://wiki.dragino.com/images/thumb/b/ba/TCP_FORWARD_2.png/600px-TCP_FORWARD_2.png||height="159" width="600"]] | ||
50 | |||
51 | Select TCP-IP Client mode | ||
52 | |||
53 | |||
54 | === 3.3.2 Configure the Radio channel === | ||
55 | |||
56 | [[image:https://wiki.dragino.com/images/thumb/0/0e/TCP_FORWARD_3.png/600px-TCP_FORWARD_3.png||height="406" width="600"]] | ||
57 | |||
58 | Configure the Radio channel with the match radio settings frequency as the LoRa End Node | ||
59 | |||
60 | |||
61 | === 3.3.3 Configure TCP Server Info === | ||
62 | |||
63 | Note: Gateway may receive many LoRa packets, it will only transfer the packet with the same ID as specify in the channel. | ||
64 | |||
65 | [[image:https://wiki.dragino.com/images/thumb/f/fb/TCP_FORWARD_4.png/600px-TCP_FORWARD_4.png||height="330" width="600"]] | ||
66 | |||
67 | Configure TCP Server Info | ||
68 | |||
69 | |||
70 | === 3.3.4 About uplink data format from End Node === | ||
71 | |||
72 | The LoRa end node should upload the data with below format: | ||
73 | |||
74 | (% class="box" %) | ||
75 | ((( | ||
76 | Uplink Format: <Channel_ID>data | ||
77 | For example, if we have configured 2 channels 12345 and 34567. | ||
78 | And there is are three LoRa End nodes sending: 12345,34567,78 | ||
79 | The LG02 will accept the data from 12345 and 34567, it will ignore the data from Node 78 | ||
80 | **Case 1**: | ||
81 | Node 12345 send <12345>field1=0.0&field2=1102.0 | ||
82 | Node 34567 doesn’t send anyting | ||
83 | The TCP/IP server will get {"12345":"field1=0.0&field2=1102.0"} | ||
84 | **Case 2**: | ||
85 | Node 12345 send <12345>field1=0.0&field2=1102.0 | ||
86 | Node 34567 send <34567>temp=34 | ||
87 | The TCP/IP server will get {"34567":"temp=34","12345":"field1=0.0&field2=1102.0"} | ||
88 | ))) | ||
89 | |||
90 | [[image:https://wiki.dragino.com/images/thumb/2/22/TCP_FORWARD_5.png/600px-TCP_FORWARD_5.png||height="152" width="600"]] | ||
91 | |||
92 | Configure TCP Server Info | ||
93 | |||
94 | 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]]. | ||
95 | |||
96 | |||
97 | == 3.4 Instruction After Firmware lgw~-~-build~-~-v5.4.1612428704~-~-20210204-1653 == | ||
98 | |||
99 | === 3.4.1 Configure the Radio channel === | ||
100 | |||
101 | [[image:https://wiki.dragino.com/images/thumb/4/40/TCP_FORWARD_7.png/600px-TCP_FORWARD_7.png||height="280" width="600"]] | ||
102 | |||
103 | Configure the Radio channel with the match radio settings frequency as the LoRa End Node | ||
104 | |||
105 | |||
106 | === 3.4.2 Configure TCP Server Info === | ||
107 | |||
108 | Note: Gateway will transfer the packet if they arrive in the right format . | ||
109 | |||
110 | [[image:https://wiki.dragino.com/images/thumb/3/36/TCP_FORWARD_6.png/600px-TCP_FORWARD_6.png||height="149" width="600"]] | ||
111 | |||
112 | Configure TCP Server Info | ||
113 | |||
114 | |||
115 | === 3.4.3 About uplink data format from End Node === | ||
116 | |||
117 | The LoRa end node should upload the data with below format: | ||
118 | |||
119 | (% class="box" %) | ||
120 | ((( | ||
121 | Uplink Format: **<Channel_ID>data** | ||
122 | And there is a LoRa End node sending below packets: | ||
123 | *<12345>Hello From Sensor1 | ||
124 | ))) | ||
125 | |||
126 | |||
127 | (% class="box" %) | ||
128 | ((( | ||
129 | LG01/LG02 will uplink 12345:Hello From Sensor1 and usr can use logread -f to check the log. | ||
130 | Thu Feb 4 08:21:49 2021 user.notice iot_keep_alive: use WAN or WiFi for internet access now | ||
131 | Thu Feb 4 08:21:53 2021 daemon.info tcp_process.sh[18564]: /var/iot/channels/ CREATE 12345 | ||
132 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: Check for sensor update | ||
133 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: Found Data at Local Channels: 12345 | ||
134 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]: | ||
135 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-- | ||
136 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:server: 10.130.2.149 | ||
137 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:port: 60000 | ||
138 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:decoder: LG01/LG02 Raw Data | ||
139 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:tcp_data: 12345:Hello From Sensor1; | ||
140 | Thu Feb 4 08:21:53 2021 user.notice root: [IoT.TCP]:~-~-~-~-~-~- | ||
141 | ))) | ||
142 | |||
143 | |||
144 | and TCP server get: | ||
145 | |||
146 | [[image:https://wiki.dragino.com/images/thumb/a/a5/TCP_FORWARD_8.png/600px-TCP_FORWARD_8.png||height="307" width="600"]] | ||
147 | |||
148 | TCP Server | ||
149 | |||
150 | 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]]. | ||
151 | |||
152 | |||
153 | = 4. Reference = | ||
154 | |||
155 | 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]] |