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