Changes for page LG01v2 -- LoRa Gateway User Manual
Last modified by Kilight Cao on 2024/10/12 08:58
Change comment:
Uploaded new attachment "image-20221112163119-4.png", version {1}
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 0 added, 1 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Edwin1 +XWiki.Kilight - Content
-
... ... @@ -11,30 +11,23 @@ 11 11 12 12 {{toc/}} 13 13 14 - 15 - 16 - 17 - 18 - 19 19 = **1. Introduction** = 20 20 21 -== **1.1 What is LG01v2** == 22 22 17 +== **1.1 What is LG01-V2** == 23 23 19 + 24 24 ((( 25 25 ((( 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 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. 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. 29 29 ))) 30 30 31 31 ((( 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. 26 +LG01-V2 supports (% style="color:green" %)**remote management**(%%). System Integrator can easy to remote monitor the gateway and maintain it. 35 35 ))) 36 36 37 37 30 + 38 38 == **1.2 Specifications** == 39 39 40 40 ... ... @@ -55,7 +55,6 @@ 55 55 * Storage Temperature: -20 ~~ 65°C 56 56 * Power Input: 5V, 2A, DC 57 57 58 - 59 59 == **1.3 Features** == 60 60 61 61 ... ... @@ -64,9 +64,9 @@ 64 64 * Remote Management 65 65 * Auto-provisioning for batch deployment and management 66 66 * LoRa Gateway 59 +* Built-in (% style="color:#037691" %)//**The Things Network**//(%%) local LoRaWAN server 67 67 * Built-in (% style="color:#037691" %)//**Node-Red**// (%%)local Application server 68 68 69 - 70 70 == **1.4 Block Diagram** == 71 71 72 72 ... ... @@ -92,6 +92,7 @@ 92 92 (% style="color:blue" %)//**➢ WIFI LED**//(%%)//: This LED shows the WIFI interface connection status.// 93 93 94 94 87 + 95 95 == **1.6 Button Intruction** == 96 96 97 97 ... ... @@ -108,6 +108,7 @@ 108 108 //**LED status: ** ETH LED will SOLID BULE Until the restore is finished.// 109 109 110 110 104 + 111 111 = **2. Quick Start** = 112 112 113 113 ... ... @@ -118,6 +118,7 @@ 118 118 119 119 == **2.1 Connects to the network and accesses the gateway Web UI** == 120 120 115 + 121 121 == **2.1.1 connect the network.** == 122 122 123 123 ... ... @@ -150,11 +150,11 @@ 150 150 [[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"]] 151 151 152 152 148 + 153 153 = **3. Web Configure Pages** = 154 154 155 155 == **3.1 Home** == 156 156 157 - 158 158 //Shows the system running status~:// 159 159 160 160 [[image:image-20221104155612-1.png||height="497" width="942"]] ... ... @@ -162,6 +162,7 @@ 162 162 163 163 == **3.2 Network Settings** == 164 164 160 + 165 165 === **3.2.1 Network ~-~-> WiFi** === 166 166 167 167 ... ... @@ -168,6 +168,7 @@ 168 168 [[image:image-20221104155654-2.png||height="319" width="813"]] 169 169 170 170 167 + 171 171 === **3.4.2 Network ~-~-> System Status** === 172 172 173 173 ... ... @@ -174,6 +174,7 @@ 174 174 [[image:image-20221104155724-3.png||height="679" width="861"]] 175 175 176 176 174 + 177 177 === **3.4.3 Network ~-~-> Firewall** === 178 178 179 179 ... ... @@ -180,8 +180,10 @@ 180 180 [[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"]] 181 181 182 182 181 + 183 183 == **3.5 System** == 184 184 184 + 185 185 === **3.5.1 System ~-~-> System Overview** === 186 186 187 187 ... ... @@ -190,6 +190,7 @@ 190 190 [[image:image-20221104155907-4.png]] 191 191 192 192 193 + 193 193 === **3.5.2 System ~-~-> Backup/Restore** === 194 194 195 195 ... ... @@ -210,13 +210,15 @@ 210 210 **Path**: System ~-~-> Built-in Server 211 211 212 212 213 - (% style="color:blue" %)**Troubleshooting:**214 +**Troubleshooting:** 214 214 216 + 215 215 **~ 1. URL does not jump properly** 216 216 217 217 For the Node-Red, you can use the local IP address and the port is 1880 to access it. 218 218 219 219 222 + 220 220 == **4.1 Application Server ~-~- Node-Red** == 221 221 222 222 ... ... @@ -231,9 +231,10 @@ 231 231 232 232 = **5. How to configure the Lora Gateway** = 233 233 234 -== **5.1 Configure and Debug LoRa wireless of LG01v2** == 235 235 238 +== **5.1 Access the Lora configuration page** == 236 236 240 + 237 237 Users can access the Lora configuration page by running the following command, then select the option **''serial port setup"**: 238 238 239 239 (% class="box infomessage" %) ... ... @@ -254,9 +254,7 @@ 254 254 ))) 255 255 256 256 257 -(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C** 258 - 259 - 261 +(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C**(%%) 260 260 (% style="color:red" %)[[image:image-20221029174703-3.png]] 261 261 262 262 ... ... @@ -265,45 +265,56 @@ 265 265 266 266 (% class="box infomessage" %) 267 267 ((( 268 - **AT+FRE=868.100,868.100 ~-~--> TX and RX frequency269 -AT+GROUPMOD=0,0 ~-~--> 270 -AT+BW=0,0 ~-~--> 271 -AT+SF=12,12 ~-~--> 272 -AT+POWER=14 ~-~--> 273 -AT+CRC=1,1 ~-~--> 274 -AT+HEADER=0,0 ~-~--> 275 -AT+CR=1,1 ~-~--> 276 -AT+IQ=0,0 ~-~--> 277 -AT+PREAMBLE=8,8 ~-~--> 278 -AT+SYNCWORD=0 ~-~--> Syncword(0: private,1: public) 279 -AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode 280 -AT+RXDAFORM=1 **270 +AT+FRE=868.100,868.100 ~-~--> TX and RX frequency 271 +AT+GROUPMOD=0,0 ~-~--> TX and RX group 272 +AT+BW=0,0 ~-~--> TX and RX Bandwidth 273 +AT+SF=12,12 ~-~--> TX and RX Spreading Factor 274 +AT+POWER=14 ~-~--> TX Power Range 275 +AT+CRC=1,1 ~-~--> TX and RX CRC Type 276 +AT+HEADER=0,0 ~-~--> TX and RX Header Type 277 +AT+CR=1,1 ~-~--> TX and RX Coding Rate 278 +AT+IQ=0,0 ~-~--> TX and RX InvertIQ 279 +AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length 280 +AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public)** 281 +AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode 282 +AT+RXDAFORM=1 281 281 ))) 282 282 283 283 284 -== **5.2 Example: LG01 v2** ==286 +== **5.2 Example: LG01**-**V2 Peer-to-Peer** == 285 285 286 -=== **5.2.1 Introduce for the example:** === 287 287 288 - 289 289 [[image:image-20221104102736-3.png||height="282" width="723"]] 290 290 291 291 292 - In this example,there are twodevices:292 +The user can run the AT command to set the LG01-V2 RX window always open as a Receiver, The LG01-V2 can display the received data in the built-in server Node-Red, Here are the specific steps: 293 293 294 -* **LA66 Shield + UNO + DHT11**: The UNO will get the temperature and humidity and broadcast the value via LoRa protocol. 295 -* **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. 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. 296 296 297 297 298 -=== ** 5.2.2SetUpLA66Shield+UNO** ===297 +=== **Log Temperature Sensor(DHT11) and send data to LG01-V2, show it in Node-RED.** === 299 299 300 300 301 -= ===**SetupLA66Module** ====300 +(% style="color:red; font-weight:bold" %)**LG01-V**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)** 302 302 302 +(% class="box infomessage" %) 303 +((( 304 +**LG01-V2 configuration:** 303 303 304 -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: 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 +))) 305 305 306 - (((319 + 307 307 (% style="color:red" %)**LA66 Shield as Sender: ** 308 308 309 309 (% class="box infomessage" %) ... ... @@ -325,11 +325,18 @@ 325 325 ))) 326 326 327 327 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).** 328 328 329 - ==== **Setup ArduinoUNO**====343 +When LG01-V2 replies with ACK when it receives a packet sent by LA66 sheild. 330 330 331 - (%id="cke_bm_1033249S" style="display:none" %)** **345 +[[image:image-20221108164413-2.png]] 332 332 347 + 348 +In the real-time log of LG01-V2: 349 + 350 +[[image:image-20221108170314-3.png]] 351 + 352 + 333 333 **Hardware Connection** 334 334 335 335 (% class="box infomessage" %) ... ... @@ -344,17 +344,14 @@ 344 344 [[image:image-20221108170731-5.png||height="588" width="441"]] 345 345 346 346 367 +==== **1. Open Arduino IDE** ==== 347 347 348 -===== **1. Open Arduino IDE** ===== 349 - 350 - 351 351 [[image:image-20221108172149-6.png||height="650" width="542"]] 352 352 353 353 372 +==== **2. Open project** ==== 354 354 355 -===== **2. Open project** ===== 356 356 357 - 358 358 Users can download Arduino files from this link: [[attach:Log-Temperature-Sensor-and-send-data-to-Node-red.ino||target="_blank"]] 359 359 360 360 Then click Compile and Upload to LA66 Shield, ... ... @@ -362,70 +362,21 @@ 362 362 [[image:image-20221108172432-7.png]] 363 363 364 364 382 +==== **3. Open the Serial Monitor to check the LA66 Shield data** ==== 365 365 366 -===== **3. Open the Serial Monitor to check the LA66 Shield data** ===== 367 367 385 +The LA66 Shield reads the temperature and humidity data from the sensor and sends it to LG01-V2, 368 368 369 -The UNO will now reads the temperature and humidity data from the sensor and broadcast it via LoRa wireless, 370 - 371 371 [[image:image-20221108174840-8.png||height="731" width="671"]] 372 372 373 - 374 - 375 -Sending out data as below. 376 - 377 377 [[image:image-20221108175113-9.png||height="556" width="998"]] 378 378 379 379 380 -=== ** 5.2.3SetUpLG01v2** ===392 +==== **4. Import the flow to the built-in server on LG01-V2** ==== 381 381 382 382 383 - ConfigureLG01v2LoRaannelparameterssoit cangetdatafrom LA66 Shield395 +Users can import this example in Node-Red: [[attach:Log-Temperature-Sensor-and-send-data-to-node-red.json||target="_blank"]] 384 384 385 -(% style="color:red; font-weight:bold" %)**LG01v**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)** 386 - 387 -(% class="box infomessage" %) 388 -((( 389 -**LG01-V2 configuration:** 390 - 391 -AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 392 -AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 393 -AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 394 -AT+POWER=14 ~-~--> TX Power Range set: 14dBm 395 -AT+CRC=1,1 ~-~--> TX and RX CRC Type 396 -AT+HEADER=0,0 ~-~--> TX and RX Header Type 397 -AT+CR=1,1 ~-~--> TX and RX Coding Rate 398 -AT+IQ=0,0 ~-~--> TX and RX InvertIQ 399 -AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 400 -AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public)** 401 -AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode, RX window always open 402 -))) 403 - 404 - 405 -=== **5.2.4 Test result** === 406 - 407 - 408 -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).** 409 -))) 410 - 411 -When LG01v2 replies with ACK when it receives a packet sent by LA66 sheild. 412 - 413 -[[image:image-20221108164413-2.png]] 414 - 415 - 416 - 417 -In the real-time log of LG01v2: 418 - 419 -[[image:image-20221108170314-3.png]] 420 - 421 - 422 -=== **5.2.5 Plot data chart in LG01v2** === 423 - 424 - 425 -User can plot the temperature and humidity chat via LG01v2 built-in IoT server. 426 - 427 -User can import this example in Node-Red: [[attach:Log-Temperature-Sensor-and-send-data-to-node-red.json||target="_blank"]] 428 - 429 429 [[image:image-20221108180334-10.png||height="651" width="1141"]] 430 430 431 431 ... ... @@ -436,7 +436,7 @@ 436 436 [[image:image-20221108180458-11.png||height="402" width="1137"]] 437 437 438 438 439 -= (% 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(%%)** =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(%%)** = 440 440 441 441 442 442 (% style="color:blue" %)**USB TTL to LG01-V2 Connection:** ... ... @@ -465,16 +465,16 @@ 465 465 466 466 [[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"]] 467 467 468 - 469 469 [[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"]] 470 470 471 471 472 472 = **7. FAQ** = 473 473 441 + 474 474 == **7.1 How does LG01-V2 communicate with Lora shield (LoRa.h)** == 475 475 476 476 477 -This example describes how to use LG01-V2, LoRa Shield to set up a LoRa network ,445 +This example describes how to use LG01-V2, LoRa Shield to set up a LoRa network 478 478 479 479 [[image:image-20221103152238-8.png||height="251" width="654"]] 480 480 ... ... @@ -499,8 +499,6 @@ 499 499 AT+RXDAFORM=1 500 500 ))) 501 501 502 - 503 - 504 504 **Lora shield configuration:** 505 505 506 506 Lora Shield example: [[attach:LoRa_Shield_Sketch_For_MQTT.ino||target="_blank"]] , [[attach:arduino-LoRa-master.zip||target="_blank"]] ... ... @@ -508,59 +508,16 @@ 508 508 [[image:image-20221101161318-2.png]] 509 509 510 510 511 - 512 512 **Test LG01-V2 to receive Lora Shield data:** 513 513 514 514 [[image:image-20221101161951-3.png]] 515 515 516 516 517 - 518 518 **Test the LG01-V2 to send data:** 519 519 520 520 [[image:image-20221101162527-4.png]] 521 521 522 522 523 -== **7.2 How does LG01-V2 communicate with Heltec LoRa Node** == 524 - 525 - 526 -This example describes how to use LG01-V2 and Heltec LoRa Node to set up a LoRa network, 527 - 528 -[[image:image-20221112161111-2.png||height="258" width="692"]] 529 - 530 -(% style="color:red" %)**Prerequisites: The configurations of LG01-V2 and Lora shield must match** 531 - 532 - 533 -**LG01-V2 configuration:** 534 - 535 -(% class="box infomessage" %) 536 -((( 537 -AT+FRE=868.100,868.100 ~-~--> TX and RX frequency set: 868100000 538 -AT+BW=0,0 ~-~--> TX and RX Bandwidth set: 125kHz 539 -AT+SF=12,12 ~-~--> TX and RX Spreading Factor set: SF12 540 -AT+POWER=14 ~-~--> TX Power Range 541 -AT+CRC=1,1 ~-~--> TX and RX CRC Type 542 -AT+HEADER=0,0 ~-~--> TX and RX Header Type 543 -AT+CR=1,1 ~-~--> TX and RX Coding Rate 544 -AT+IQ=0,0 ~-~--> TX and RX InvertIQ 545 -AT+PREAMBLE=8,8 ~-~--> TX and RX Preamble Length set: 8 546 -AT+SYNCWORD=0 ~-~--> Syncword**(0: private,1: public), **the corresponding Lora shield syncword is 0x12 547 -AT+RXMOD=65535,0 ~-~--> Rx Timeout and Reply mode,RX window always open 548 -AT+RXDAFORM=1 ~-~--> RX data format**(0: Hex ,1: String)** 549 -))) 550 - 551 - 552 -After we upload the sketch to Heltec LoRa Node, we can see below output from Arduino. 553 - 554 -Lora Shield example: [[attach:LoRa_send_trial.ino||target="_blank"]] 555 - 556 -[[image:image-20221112162733-3.png||height="524" width="927"]] 557 - 558 - 559 -And we can see the logread of gateway as below, means the packet arrive gateway: 560 - 561 -[[image:image-20221112163119-4.png||height="808" width="560"]] 562 - 563 - 564 564 = (% style="color:inherit; font-family:inherit; font-size:29px" %)**8. Supports**(%%) = 565 565 566 566 ... ... @@ -572,6 +572,7 @@ 572 572 **//With your question as detailed as possible. We will reply and help you in the shortest.//** 573 573 574 574 498 + 575 575 = **9. Reference** = 576 576 577 577 ... ... @@ -605,6 +605,7 @@ 605 605 More info about valid bands, please see [[EC25-E product page>>url:https://www.quectel.com/product/ec25.htm]]. 606 606 607 607 532 + 608 608 = **10. Manufacturer Info** = 609 609 610 610 ... ... @@ -615,6 +615,7 @@ 615 615 LongCheng Street, LongGang District ; Shenzhen 518116,China 616 616 617 617 543 + 618 618 = **11. FCC Warning** = 619 619 620 620 ... ... @@ -647,6 +647,7 @@ 647 647 ((( 648 648 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. 649 649 650 - 651 651 652 652 ))) 578 + 579 +~)~)~)
- LoRa_send_trial.ino
-
- Author
-
... ... @@ -1,1 +1,0 @@ 1 -XWiki.Kilight - Size
-
... ... @@ -1,1 +1,0 @@ 1 -3.4 KB - Content
-
... ... @@ -1,124 +1,0 @@ 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 -