Changes for page LG01v2 -- LoRa Gateway User Manual
Last modified by Kilight Cao on 2024/10/12 08:58
Change comment:
There is no comment for this version
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 1 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Kilight1 +XWiki.Edwin - Content
-
... ... @@ -11,23 +11,30 @@ 11 11 12 12 {{toc/}} 13 13 14 -= **1. Introduction** = 15 15 16 16 17 -== **1.1 What is LG01-V2** == 18 18 19 19 18 + 19 += **1. Introduction** = 20 + 21 +== **1.1 What is LG01v2** == 22 + 23 + 20 20 ((( 21 21 ((( 22 -The LG01-V2 is an (% style="color:green" %)**open-source single channel LoRa Gateway**(%%). It lets you bridge LoRa wireless network to an IP network via (% style="color:green" %)**WiFi , Ethernet or Cellular Network**(%%) (via Optional 4G module). The LoRa wireless allows users to send data and reach extremely long ranges at low data rates. 26 +The LG01v2 is an (% style="color:green" %)**open-source single channel LoRa Gateway**(%%). It lets you bridge LoRa wireless network to an IP network via (% style="color:green" %)**WiFi , Ethernet or Cellular Network**(%%) (via Optional 4G module). The LoRa wireless allows users to send data and reach extremely long ranges at low data rates. 27 + 28 +LG01v2 is specially design for (% style="color:green" %)**peer to peer LoRa**(%%) protocol instead of LoRaWAN protocol. The LG01v2 use single channel LoRa module to minimize the deployment cost for a private p2p LoRa wireless network.** 23 23 ))) 24 24 25 25 ((( 26 -LG01-V2 supports (% style="color:green" %)**remote management**(%%). System Integrator can easy to remote monitor the gateway and maintain it. 32 +LG01v2 uses Open Source Linux system. User can modify the Linux part and develop customize software base on it. It has (% style="color:green" %)**1.2Ghz Quad-Core CPU**(%%) , (% style="color:green" %)**4GB eMMC storage**(%%) and (% style="color:green" %)**512MB RAM**(%%) for most application. 33 + 34 +LG01v2 supports (% style="color:green" %)**remote management**(%%). System Integrator can easy to remote monitor the gateway and maintain it. 27 27 ))) 28 28 29 29 30 - 31 31 == **1.2 Specifications** == 32 32 33 33 ... ... @@ -56,7 +56,6 @@ 56 56 * Remote Management 57 57 * Auto-provisioning for batch deployment and management 58 58 * LoRa Gateway 59 -* Built-in (% style="color:#037691" %)//**The Things Network**//(%%) local LoRaWAN server 60 60 * Built-in (% style="color:#037691" %)//**Node-Red**// (%%)local Application server 61 61 62 62 == **1.4 Block Diagram** == ... ... @@ -84,7 +84,6 @@ 84 84 (% style="color:blue" %)//**➢ WIFI LED**//(%%)//: This LED shows the WIFI interface connection status.// 85 85 86 86 87 - 88 88 == **1.6 Button Intruction** == 89 89 90 90 ... ... @@ -101,7 +101,6 @@ 101 101 //**LED status: ** ETH LED will SOLID BULE Until the restore is finished.// 102 102 103 103 104 - 105 105 = **2. Quick Start** = 106 106 107 107 ... ... @@ -112,7 +112,6 @@ 112 112 113 113 == **2.1 Connects to the network and accesses the gateway Web UI** == 114 114 115 - 116 116 == **2.1.1 connect the network.** == 117 117 118 118 ... ... @@ -145,11 +145,11 @@ 145 145 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220622102847-7.png?rev=1.1||alt="image-20220622102847-7.png"]] 146 146 147 147 148 - 149 149 = **3. Web Configure Pages** = 150 150 151 151 == **3.1 Home** == 152 152 155 + 153 153 //Shows the system running status~:// 154 154 155 155 [[image:image-20221104155612-1.png||height="497" width="942"]] ... ... @@ -157,7 +157,6 @@ 157 157 158 158 == **3.2 Network Settings** == 159 159 160 - 161 161 === **3.2.1 Network ~-~-> WiFi** === 162 162 163 163 ... ... @@ -164,7 +164,6 @@ 164 164 [[image:image-20221104155654-2.png||height="319" width="813"]] 165 165 166 166 167 - 168 168 === **3.4.2 Network ~-~-> System Status** === 169 169 170 170 ... ... @@ -171,7 +171,6 @@ 171 171 [[image:image-20221104155724-3.png||height="679" width="861"]] 172 172 173 173 174 - 175 175 === **3.4.3 Network ~-~-> Firewall** === 176 176 177 177 ... ... @@ -178,10 +178,8 @@ 178 178 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220616115351-6.png?width=661&height=244&rev=1.1||alt="image-20220616115351-6.png"]] 179 179 180 180 181 - 182 182 == **3.5 System** == 183 183 184 - 185 185 === **3.5.1 System ~-~-> System Overview** === 186 186 187 187 ... ... @@ -190,7 +190,6 @@ 190 190 [[image:image-20221104155907-4.png]] 191 191 192 192 193 - 194 194 === **3.5.2 System ~-~-> Backup/Restore** === 195 195 196 196 ... ... @@ -211,15 +211,13 @@ 211 211 **Path**: System ~-~-> Built-in Server 212 212 213 213 214 -**Troubleshooting :**211 +(% style="color:blue" %)**Troubleshooting:** 215 215 216 - 217 217 **~ 1. URL does not jump properly** 218 218 219 219 For the Node-Red, you can use the local IP address and the port is 1880 to access it. 220 220 221 221 222 - 223 223 == **4.1 Application Server ~-~- Node-Red** == 224 224 225 225 ... ... @@ -234,10 +234,9 @@ 234 234 235 235 = **5. How to configure the Lora Gateway** = 236 236 232 +== **5.1 Configure and Debug LoRa wireless of LG01v2** == 237 237 238 -== **5.1 Access the Lora configuration page** == 239 239 240 - 241 241 Users can access the Lora configuration page by running the following command, then select the option **''serial port setup"**: 242 242 243 243 (% class="box infomessage" %) ... ... @@ -258,7 +258,9 @@ 258 258 ))) 259 259 260 260 261 -(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C**(%%) 255 +(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C** 256 + 257 + 262 262 (% style="color:red" %)[[image:image-20221029174703-3.png]] 263 263 264 264 ... ... @@ -267,56 +267,44 @@ 267 267 268 268 (% class="box infomessage" %) 269 269 ((( 270 -AT+FRE=868.100,868.100 271 -AT+GROUPMOD=0,0 272 -AT+BW=0,0 273 -AT+SF=12,12 274 -AT+POWER=14 275 -AT+CRC=1,1 276 -AT+HEADER=0,0 277 -AT+CR=1,1 278 -AT+IQ=0,0 279 -AT+PREAMBLE=8,8 280 -AT+SYNCWORD=0 **(0: private,1: public)**281 -AT+RXMOD=65535,0 282 -AT+RXDAFORM=1 266 +**AT+FRE=868.100,868.100 ~-~--> TX and RX frequency 267 +AT+GROUPMOD=0,0 ~-~--> TX and RX group 268 +AT+BW=0,0 ~-~--> TX and RX Bandwidth 269 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor 270 +AT+POWER=14 ~-~--> TX Power Range 271 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 272 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 273 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 274 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 275 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length 276 +AT+SYNCWORD=0 ~-~--> Syncword(0: private,1: public) 277 +AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode 278 +AT+RXDAFORM=1** 283 283 ))) 284 284 285 285 286 -== **5.2 Example: LG01 **-**V2Peer-to-Peer** ==282 +== **5.2 Example: LG01v2** == 287 287 284 +=== **5.2.1 Introduce for the example:** === 288 288 286 + 289 289 [[image:image-20221104102736-3.png||height="282" width="723"]] 290 290 291 291 292 - The user canrunthe AT command to set the LG01-V2 RX window alwaysopenas a Receiver, The LG01-V2 can display thereceived data in thebuilt-in serverNode-Red, Hereare thespecificsteps:290 +In this example, there are two devices: 293 293 294 -(% style="color:red" %)**Prerequisites: **(%%)The configuration of LG01-V2 and LA66 Shield must match and the LA66 Shield firmware is **[[LA66 Peer-to-Peer firmware>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LA66%20LoRaWAN%20Shield%20User%20Manual/Instruction%20for%20LA66%20Peer%20to%20Peer%20firmware/]]**, users can use **AT+CFG** to check all configurations. 292 +* **LA66 Shield + UNO + DHT11**: The UNO will get the temperature and humidity and broadcast the value via LoRa protocol. 293 +* **LG01v2** : LG01v2 is set to listening the LoRa Channel which LA66 is broadcasting. When LG01v2 get the data from LA66, LG01v2 will plot the data in built-in IoT server. 295 295 295 +=== **5.2.2 Set Up LA66 Shield + UNO** === 296 296 297 -=== **Log Temperature Sensor(DHT11) and send data to LG01-V2, show it in Node-RED.** === 298 298 298 +==== **Set up LA66 Module** ==== 299 299 300 -(% style="color:red; font-weight:bold" %)**LG01-V**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)** 301 301 302 -(% class="box infomessage" %) 303 -((( 304 -**LG01-V2 configuration:** 301 +LA66 Module is loaded with the firmware **[[LA66 Peer-to-Peer firmware>>http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LA66%20LoRaWAN%20Shield%20User%20Manual/Instruction%20for%20LA66%20Peer%20to%20Peer%20firmware/]] **and user can use AT Command to set up LA66 with below parameters: 305 305 306 -AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 307 -AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 308 -AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 309 -AT+POWER=14 ~-~--> TX Power Range set: 14dBm 310 -AT+CRC=1,1 ~-~--> TX and RX CRC Type 311 -AT+HEADER=0,0 ~-~--> TX and RX Header Type 312 -AT+CR=1,1 ~-~--> TX and RX Coding Rate 313 -AT+IQ=0,0 ~-~--> TX and RX InvertIQ 314 -AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 315 -AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public)** 316 -AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode, RX window always open 317 -))) 318 - 319 - 303 +((( 320 320 (% style="color:red" %)**LA66 Shield as Sender: ** 321 321 322 322 (% class="box infomessage" %) ... ... @@ -338,18 +338,11 @@ 338 338 ))) 339 339 340 340 341 -After the above configuration is complete, users can send test simulation data to check whether the configuration is correct, In LA66 sheild serial console send:(% style="color:red" %)**(AT+SEND=1,hello world,2,3).** 342 342 343 - WhenLG01-V2 replies withACKwhen itreceives a packet sentbyLA66 sheild.326 +==== **Set up Arduino UNO** ==== 344 344 345 - [[image:image-20221108164413-2.png]]328 +(% id="cke_bm_1033249S" style="display:none" %)** ** 346 346 347 - 348 -In the real-time log of LG01-V2: 349 - 350 -[[image:image-20221108170314-3.png]] 351 - 352 - 353 353 **Hardware Connection** 354 354 355 355 (% class="box infomessage" %) ... ... @@ -364,14 +364,17 @@ 364 364 [[image:image-20221108170731-5.png||height="588" width="441"]] 365 365 366 366 367 -==== **1. Open Arduino IDE** ==== 368 368 345 +===== **1. Open Arduino IDE** ===== 346 + 347 + 369 369 [[image:image-20221108172149-6.png||height="650" width="542"]] 370 370 371 371 372 -==== **2. Open project** ==== 373 373 352 +===== **2. Open project** ===== 374 374 354 + 375 375 Users can download Arduino files from this link: [[attach:Log-Temperature-Sensor-and-send-data-to-Node-red.ino||target="_blank"]] 376 376 377 377 Then click Compile and Upload to LA66 Shield, ... ... @@ -379,21 +379,70 @@ 379 379 [[image:image-20221108172432-7.png]] 380 380 381 381 382 -==== **3. Open the Serial Monitor to check the LA66 Shield data** ==== 383 383 363 +===== **3. Open the Serial Monitor to check the LA66 Shield data** ===== 384 384 385 -The LA66 Shield reads the temperature and humidity data from the sensor and sends it to LG01-V2, 386 386 366 +The UNO will now reads the temperature and humidity data from the sensor and broadcast it via LoRa wireless, 367 + 387 387 [[image:image-20221108174840-8.png||height="731" width="671"]] 388 388 370 + 371 + 372 +Sending out data as below. 373 + 389 389 [[image:image-20221108175113-9.png||height="556" width="998"]] 390 390 391 391 392 -=== =**4.Importtheflowtothebuilt-in server onLG01-V2** ====377 +=== **5.2.3 Set Up LG01v2** === 393 393 394 394 395 - Users canmport thisexampleinNode-Red: [[attach:Log-Temperature-Sensor-and-send-data-to-node-red.json||target="_blank"]]380 +Configure LG01v2 LoRa channel parameters so it can get data from LA66 Shield 396 396 382 +(% style="color:red; font-weight:bold" %)**LG01v**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)** 383 + 384 +(% class="box infomessage" %) 385 +((( 386 +**LG01-V2 configuration:** 387 + 388 +AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 389 +AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 390 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 391 +AT+POWER=14 ~-~--> TX Power Range set: 14dBm 392 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 393 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 394 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 395 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 396 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 397 +AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public)** 398 +AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode, RX window always open 399 +))) 400 + 401 + 402 +=== **5.2.4 Test result** === 403 + 404 + 405 +After the above configuration is complete, users can send test simulation data to check whether the configuration is correct, In LA66 sheild serial console send:(% style="color:red" %)**(AT+SEND=1,hello world,2,3).** 406 +))) 407 + 408 +When LG01v2 replies with ACK when it receives a packet sent by LA66 sheild. 409 + 410 +[[image:image-20221108164413-2.png]] 411 + 412 + 413 + 414 +In the real-time log of LG01v2: 415 + 416 +[[image:image-20221108170314-3.png]] 417 + 418 + 419 +=== **5.2.5 Plot data chart in LG01v2** === 420 + 421 + 422 +User can plot the temperature and humidity chat via LG01v2 built-in IoT server. 423 + 424 +User can import this example in Node-Red: [[attach:Log-Temperature-Sensor-and-send-data-to-node-red.json||target="_blank"]] 425 + 397 397 [[image:image-20221108180334-10.png||height="651" width="1141"]] 398 398 399 399 ... ... @@ -404,7 +404,7 @@ 404 404 [[image:image-20221108180458-11.png||height="402" width="1137"]] 405 405 406 406 407 -= (% style="color:inherit; font-family:inherit; font-size:29px" %)**6. How users can access LG01**(%%)** -V(% style="color:inherit; font-family:inherit; font-size:29px" %)2 using serial USB(%%)** =436 += (% style="color:inherit; font-family:inherit; font-size:29px" %)**6. How users can access LG01**(%%)**v(% style="color:inherit; font-family:inherit; font-size:29px" %)2 using serial USB(%%)** = 408 408 409 409 410 410 (% style="color:blue" %)**USB TTL to LG01-V2 Connection:** ... ... @@ -433,16 +433,16 @@ 433 433 434 434 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220804164928-3.png?width=332&height=320&rev=1.1||alt="image-20220804164928-3.png"]] 435 435 465 + 436 436 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20All%20Gateway%20models/HP0C/WebHome/image-20220804164747-2.png?width=594&height=622&rev=1.1||alt="image-20220804164747-2.png"]] 437 437 438 438 439 439 = **7. FAQ** = 440 440 441 - 442 442 == **7.1 How does LG01-V2 communicate with Lora shield (LoRa.h)** == 443 443 444 444 445 -This example describes how to use LG01-V2, LoRa Shield to set up a LoRa network 474 +This example describes how to use LG01-V2, LoRa Shield to set up a LoRa network, 446 446 447 447 [[image:image-20221103152238-8.png||height="251" width="654"]] 448 448 ... ... @@ -467,6 +467,8 @@ 467 467 AT+RXDAFORM=1 468 468 ))) 469 469 499 + 500 + 470 470 **Lora shield configuration:** 471 471 472 472 Lora Shield example: [[attach:LoRa_Shield_Sketch_For_MQTT.ino||target="_blank"]] , [[attach:arduino-LoRa-master.zip||target="_blank"]] ... ... @@ -474,16 +474,59 @@ 474 474 [[image:image-20221101161318-2.png]] 475 475 476 476 508 + 477 477 **Test LG01-V2 to receive Lora Shield data:** 478 478 479 479 [[image:image-20221101161951-3.png]] 480 480 481 481 514 + 482 482 **Test the LG01-V2 to send data:** 483 483 484 484 [[image:image-20221101162527-4.png]] 485 485 486 486 520 +== **7.2 How does LG01-V2 communicate with Heltec LoRa Node** == 521 + 522 + 523 +This example describes how to use LG01-V2 and Heltec LoRa Node to set up a LoRa network, 524 + 525 +[[image:image-20221112161111-2.png||height="258" width="692"]] 526 + 527 +(% style="color:red" %)**Prerequisites: The configurations of LG01-V2 and Lora shield must match** 528 + 529 + 530 +**LG01-V2 configuration:** 531 + 532 +(% class="box infomessage" %) 533 +((( 534 +AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 535 +AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 536 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 537 +AT+POWER=14 ~-~--> TX Power Range 538 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 539 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 540 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 541 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 542 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 543 +AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public), **the corresponding Lora shield syncword is 0x12 544 +AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode,RX window always open 545 +AT+RXDAFORM=1 ~-~--> RX data format**(0: Hex ,1: String)** 546 +))) 547 + 548 + 549 +After we upload the sketch to Heltec LoRa Node, we can see below output from Arduino. 550 + 551 +Lora Shield example: [[attach:LoRa_send_trial.ino||target="_blank"]] 552 + 553 +[[image:image-20221112162733-3.png||height="524" width="927"]] 554 + 555 + 556 +And we can see the logread of gateway as below, means the packet arrive gateway: 557 + 558 +[[image:image-20221112163119-4.png||height="808" width="560"]] 559 + 560 + 487 487 = (% style="color:inherit; font-family:inherit; font-size:29px" %)**8. Supports**(%%) = 488 488 489 489 ... ... @@ -495,7 +495,6 @@ 495 495 **//With your question as detailed as possible. We will reply and help you in the shortest.//** 496 496 497 497 498 - 499 499 = **9. Reference** = 500 500 501 501 ... ... @@ -529,7 +529,6 @@ 529 529 More info about valid bands, please see [[EC25-E product page>>url:https://www.quectel.com/product/ec25.htm]]. 530 530 531 531 532 - 533 533 = **10. Manufacturer Info** = 534 534 535 535 ... ... @@ -540,7 +540,6 @@ 540 540 LongCheng Street, LongGang District ; Shenzhen 518116,China 541 541 542 542 543 - 544 544 = **11. FCC Warning** = 545 545 546 546 ... ... @@ -573,7 +573,6 @@ 573 573 ((( 574 574 The antenna(s) used for this transmitter must be installed to provide a separation distance of at least 20 cm from all persons and must not be co-located or operating in conjunction with any other antenna or transmitter. 575 575 647 + 576 576 577 577 ))) 578 - 579 -~)~)~)
- LoRa_send_trial.ino
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Kilight - Size
-
... ... @@ -1,0 +1,1 @@ 1 +3.4 KB - Content
-
... ... @@ -1,0 +1,124 @@ 1 +#include "LoRaWan_APP.h" 2 +#include "Arduino.h" 3 + 4 + 5 +#define RF_FREQUENCY 868100000 // Hz 6 + 7 +#define TX_OUTPUT_POWER 5 // dBm 8 + 9 +#define LORA_BANDWIDTH 0 // [0: 125 kHz, 10 + // 1: 250 kHz, 11 + // 2: 500 kHz, 12 + // 3: Reserved] 13 +#define LORA_SPREADING_FACTOR 12 // [SF7..SF12] 14 +#define LORA_CODINGRATE 1 // [1: 4/5, 15 + // 2: 4/6, 16 + // 3: 4/7, 17 + // 4: 4/8] 18 +#define LORA_PREAMBLE_LENGTH 8 // Same for Tx and Rx 19 +#define LORA_SYMBOL_TIMEOUT 0 // Symbols 20 +#define LORA_FIX_LENGTH_PAYLOAD_ON false 21 +#define LORA_IQ_INVERSION_ON false 22 + 23 + 24 +#define RX_TIMEOUT_VALUE 1000 25 +#define BUFFER_SIZE 30 // Define the payload size here 26 + 27 +float tem,hum; 28 +char tem_1[8]={"\0"},hum_1[8]={"\0"}; 29 +char *node_id = "<GW01>"; //From LG01 via web Local Channel settings on MQTT.Please refer <> dataformat in here. 30 + 31 +char txpacket[BUFFER_SIZE]; 32 +char rxpacket[BUFFER_SIZE]; 33 + 34 +double txNumber; 35 + 36 +bool lora_idle=true; 37 + 38 +static RadioEvents_t RadioEvents; 39 +void OnTxDone( void ); 40 +void OnTxTimeout( void ); 41 + 42 +void dhtTem() 43 +{ 44 + tem = random(15,40); 45 + hum = random(40,80); 46 + Serial.println(F("The temperature and humidity:")); 47 + Serial.print("["); 48 + Serial.print(tem); 49 + Serial.print("℃"); 50 + Serial.print(","); 51 + Serial.print(hum); 52 + Serial.print("%"); 53 + Serial.print("]"); 54 + Serial.println(""); 55 +} 56 + 57 +void dhtWrite() 58 +{ 59 + char data[50] = "\0"; 60 + for(int i = 0; i < 50; i++) 61 + { 62 + data[i] = node_id[i]; 63 + } 64 + 65 + dtostrf(tem,0,1,tem_1); 66 + dtostrf(hum,0,1,hum_1); 67 + 68 + strcat(data,"tem_a="); 69 + strcat(data,tem_1); 70 + strcat(data,"&hum_a="); 71 + strcat(data,hum_1); 72 + strcpy((char *)txpacket,data); 73 + 74 + Serial.println((char *)txpacket); 75 +} 76 + 77 +void setup() { 78 + Serial.begin(115200); 79 + Mcu.begin(); 80 + 81 + txNumber=0; 82 + 83 + RadioEvents.TxDone = OnTxDone; 84 + RadioEvents.TxTimeout = OnTxTimeout; 85 + 86 + Radio.Init( &RadioEvents ); 87 + Radio.SetChannel( RF_FREQUENCY ); 88 + Radio.SetTxConfig( MODEM_LORA, TX_OUTPUT_POWER, 0, LORA_BANDWIDTH, 89 + LORA_SPREADING_FACTOR, LORA_CODINGRATE, 90 + LORA_PREAMBLE_LENGTH, LORA_FIX_LENGTH_PAYLOAD_ON, 91 + true, 0, 0, LORA_IQ_INVERSION_ON, 3000 ); 92 + } 93 + 94 + 95 + 96 +void loop() 97 +{ 98 + if(lora_idle == true) 99 + { 100 + delay(5000); 101 + txNumber += 0.01; 102 + Serial.println(txNumber); 103 + 104 + dhtTem(); 105 + dhtWrite(); 106 + Radio.Send( (uint8_t *)txpacket, strlen(txpacket) ); //send the package out 107 + lora_idle = false; 108 + } 109 + Radio.IrqProcess( ); 110 +} 111 + 112 +void OnTxDone( void ) 113 +{ 114 + Serial.println("TX done......"); 115 + lora_idle = true; 116 +} 117 + 118 +void OnTxTimeout( void ) 119 +{ 120 + Radio.Sleep( ); 121 + Serial.println("TX Timeout......"); 122 + lora_idle = true; 123 +} 124 +