<
From version < 91.1 >
edited by Kilight Cao
on 2022/11/09 14:35
To version < 103.1 >
edited by Edwin Chen
on 2022/11/29 14:07
>
Change comment: There is no comment for this version

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Kilight
1 +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 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  
... ... @@ -48,6 +48,7 @@
48 48  * Storage Temperature: -20 ~~ 65°C
49 49  * Power Input: 5V, 2A, DC
50 50  
58 +
51 51  == **1.3 Features** ==
52 52  
53 53  
... ... @@ -56,9 +56,9 @@
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  
69 +
62 62  == **1.4 Block Diagram** ==
63 63  
64 64  
... ... @@ -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  
157 +
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:**
213 +(% 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  
234 +== **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**(%%)
257 +(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C**
258 +
259 +
262 262  (% style="color:red" %)[[image:image-20221029174703-3.png]]
263 263  
264 264  
... ... @@ -267,56 +267,45 @@
267 267  
268 268  (% class="box infomessage" %)
269 269  (((
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                              
268 +**AT+FRE=868.100,868.100  ~-~--> TX and RX frequency
269 +AT+GROUPMOD=0,0  ~-~-->  TX and RX group
270 +AT+BW=0,0  ~-~-->  TX and RX Bandwidth
271 +AT+SF=12,12  ~-~-->  TX and RX Spreading Factor
272 +AT+POWER=14  ~-~-->  TX Power Range
273 +AT+CRC=1,1  ~-~-->  TX and RX CRC Type
274 +AT+HEADER=0,0  ~-~-->  TX and RX Header Type
275 +AT+CR=1,1  ~-~-->  TX and RX Coding Rate
276 +AT+IQ=0,0  ~-~-->  TX and RX InvertIQ
277 +AT+PREAMBLE=8,8  ~-~-->  TX and RX Preamble Length
278 +AT+SYNCWORD=0  ~-~-->  Syncword(0: private,1: public)
279 +AT+RXMOD=65535,0  ~-~-->  Rx Timeout and Reply mode
280 +AT+RXDAFORM=1**                              
283 283  )))
284 284  
285 285  
286 -== **5.2 Example: LG01**-**V2 Peer-to-Peer** ==
284 +== **5.2 Example: LG01v2** ==
287 287  
286 +=== **5.2.1 Introduce for the example:** ===
288 288  
288 +
289 289  [[image:image-20221104102736-3.png||height="282" width="723"]]
290 290  
291 291  
292 -The user can run the AT command to set the LG01-V2 RX window always opeas a Receiver, The LG01-V2 can display the received data in the built-in server Node-Red, Here are the specific steps:
292 +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.
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.
295 295  
296 296  
297 -=== **Log Temperature Sensor(DHT11) and send data to LG01v2, show it in Node-RED.** ===
298 +=== **5.2.2 Set Up LA66 Shield + UNO** ===
298 298  
299 299  
300 -(% style="color:red; font-weight:bold" %)**LG01-V**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)**
301 +==== **Set up LA66 Module** ====
301 301  
302 -(% class="box infomessage" %)
303 -(((
304 -**LG01-V2 configuration:**
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 -)))
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:
318 318  
319 -
306 +(((
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 -When LG01-V2 replies with ACK when it receives a packet sent by LA66 sheild.
329 +==== **Set up Arduino UNO** ====
344 344  
345 -[[image:image-20221108164413-2.png]]
331 +(% 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  
348 +===== **1. Open Arduino IDE** =====
349 +
350 +
369 369  [[image:image-20221108172149-6.png||height="650" width="542"]]
370 370  
371 371  
372 -==== **2. Open project** ====
373 373  
355 +===== **2. Open project** =====
374 374  
357 +
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  
366 +===== **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 LG01V2,
386 386  
369 +The UNO will now reads the temperature and humidity data from the sensor and broadcast it via LoRa wireless,
370 +
387 387  [[image:image-20221108174840-8.png||height="731" width="671"]]
388 388  
373 +
374 +
375 +Sending out data as below.
376 +
389 389  [[image:image-20221108175113-9.png||height="556" width="998"]]
390 390  
391 391  
392 -==== **4. Import the flow to the built-in server on LG01v2** ====
380 +=== **5.2.3 Set Up LG01v2** ===
393 393  
394 394  
395 -Users can import this example in Node-Red: [[attach:Log-Temperature-Sensor-and-send-data-to-node-red.json||target="_blank"]]
383 +Configure LG01v2 LoRa channel parameters so it can get data from LA66 Shield
396 396  
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 +
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(%%)** =
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(%%)** =
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  
468 +
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
477 +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  
502 +
503 +
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  
511 +
477 477  **Test LG01-V2 to receive Lora Shield data:**
478 478  
479 479  [[image:image-20221101161951-3.png]]
480 480  
481 481  
517 +
482 482  **Test the LG01-V2 to send data:**
483 483  
484 484  [[image:image-20221101162527-4.png]]
485 485  
486 486  
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 +
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  
650 +
576 576  
577 577  )))
578 -
579 -~)~)~)
Log-Temperature-Sensor-and-send-data-to-node-red.json
Size
... ... @@ -1,1 +1,1 @@
1 -806 bytes
1 +10.1 KB
Content
... ... @@ -1,5 +1,13 @@
1 1  [
2 2   {
3 + "id": "5f10779accc05655",
4 + "type": "tab",
5 + "label": "serial USB",
6 + "disabled": false,
7 + "info": "",
8 + "env": []
9 + },
10 + {
3 3   "id": "4ea60ce4df40717c",
4 4   "type": "serial in",
5 5   "z": "5f10779accc05655",
... ... @@ -15,6 +15,364 @@
15 15   ]
16 16   },
17 17   {
26 + "id": "fe5a93a52b6adcf1",
27 + "type": "inject",
28 + "z": "5f10779accc05655",
29 + "name": "AT+SEND=1,hello world,0,3",
30 + "props": [
31 + {
32 + "p": "payload"
33 + }
34 + ],
35 + "repeat": "",
36 + "crontab": "",
37 + "once": false,
38 + "onceDelay": 0.1,
39 + "topic": "",
40 + "payload": "AT+SEND=1,hello world,0,3",
41 + "payloadType": "str",
42 + "x": 220,
43 + "y": 260,
44 + "wires": [
45 + [
46 + "3f8add7e2e1d1d17"
47 + ]
48 + ]
49 + },
50 + {
51 + "id": "3f8add7e2e1d1d17",
52 + "type": "serial out",
53 + "z": "5f10779accc05655",
54 + "name": "",
55 + "serial": "bb1c0e81fd51fa9e",
56 + "x": 540,
57 + "y": 260,
58 + "wires": []
59 + },
60 + {
61 + "id": "16e7d3d83d9e9415",
62 + "type": "inject",
63 + "z": "5f10779accc05655",
64 + "name": "",
65 + "props": [
66 + {
67 + "p": "payload"
68 + }
69 + ],
70 + "repeat": "",
71 + "crontab": "",
72 + "once": false,
73 + "onceDelay": 0.1,
74 + "topic": "",
75 + "payload": "ATZ",
76 + "payloadType": "str",
77 + "x": 290,
78 + "y": 320,
79 + "wires": [
80 + [
81 + "3f8add7e2e1d1d17"
82 + ]
83 + ]
84 + },
85 + {
86 + "id": "09ea381519629dae",
87 + "type": "inject",
88 + "z": "5f10779accc05655",
89 + "name": "AT+FRE",
90 + "props": [
91 + {
92 + "p": "payload"
93 + }
94 + ],
95 + "repeat": "",
96 + "crontab": "",
97 + "once": false,
98 + "onceDelay": 0.1,
99 + "topic": "",
100 + "payload": "AT+FRE=868.100,868.100",
101 + "payloadType": "str",
102 + "x": 280,
103 + "y": 380,
104 + "wires": [
105 + [
106 + "3f8add7e2e1d1d17"
107 + ]
108 + ]
109 + },
110 + {
111 + "id": "5167a7f904013ffd",
112 + "type": "inject",
113 + "z": "5f10779accc05655",
114 + "name": "AT+BW",
115 + "props": [
116 + {
117 + "p": "payload"
118 + }
119 + ],
120 + "repeat": "",
121 + "crontab": "",
122 + "once": false,
123 + "onceDelay": 0.1,
124 + "topic": "",
125 + "payload": "AT+BW=0,0",
126 + "payloadType": "str",
127 + "x": 290,
128 + "y": 440,
129 + "wires": [
130 + [
131 + "3f8add7e2e1d1d17"
132 + ]
133 + ]
134 + },
135 + {
136 + "id": "dbe4abbc730c76e6",
137 + "type": "inject",
138 + "z": "5f10779accc05655",
139 + "name": "AT+SF",
140 + "props": [
141 + {
142 + "p": "payload"
143 + }
144 + ],
145 + "repeat": "",
146 + "crontab": "",
147 + "once": false,
148 + "onceDelay": 0.1,
149 + "topic": "",
150 + "payload": "AT+SF=12,12",
151 + "payloadType": "str",
152 + "x": 290,
153 + "y": 500,
154 + "wires": [
155 + [
156 + "3f8add7e2e1d1d17"
157 + ]
158 + ]
159 + },
160 + {
161 + "id": "3be3ab296a75d512",
162 + "type": "inject",
163 + "z": "5f10779accc05655",
164 + "name": "AT+RXMOD",
165 + "props": [
166 + {
167 + "p": "payload"
168 + }
169 + ],
170 + "repeat": "",
171 + "crontab": "",
172 + "once": false,
173 + "onceDelay": 0.1,
174 + "topic": "",
175 + "payload": "AT+RXMOD=65535,2",
176 + "payloadType": "str",
177 + "x": 270,
178 + "y": 560,
179 + "wires": [
180 + [
181 + "3f8add7e2e1d1d17"
182 + ]
183 + ]
184 + },
185 + {
186 + "id": "7a03d1413c60ea1c",
187 + "type": "inject",
188 + "z": "5f10779accc05655",
189 + "name": "AT+SYNCWORD",
190 + "props": [
191 + {
192 + "p": "payload"
193 + }
194 + ],
195 + "repeat": "",
196 + "crontab": "",
197 + "once": false,
198 + "onceDelay": 0.1,
199 + "topic": "",
200 + "payload": "AT+SYNCWORD=0",
201 + "payloadType": "str",
202 + "x": 260,
203 + "y": 620,
204 + "wires": [
205 + [
206 + "3f8add7e2e1d1d17"
207 + ]
208 + ]
209 + },
210 + {
211 + "id": "40eac96a52733f7a",
212 + "type": "function",
213 + "z": "5f10779accc05655",
214 + "name": "function 1",
215 + "func": "var data = msg.payload\nif (data.substring(0, 4) == \"Data\")\n{\n if (data.substring(6, 12) == \"(HEX:)\")\n {\n var temp = data.substring(13, 15) + data.substring(16, 18)\n var hum = data.substring(19, 21) + data.substring(22, 24)\n var temp1 = parseInt(temp, 16)/100\n var hum1 = parseInt(hum, 16)/10\n var a1 = { payload: temp1 }, a2 = { payload: hum1 }\n }\n}\nif (data.substring(0, 4) == \"Rssi\")\n{\n var rssi = data.substring(6)\n var a3 = { payload: rssi }\n}\nreturn [a1,a2,a3];\n \n\n",
216 + "outputs": 3,
217 + "noerr": 0,
218 + "initialize": "",
219 + "finalize": "",
220 + "libs": [],
221 + "x": 420,
222 + "y": 60,
223 + "wires": [
224 + [
225 + "81edb003937f1a92"
226 + ],
227 + [
228 + "c63593404a60d9dc"
229 + ],
230 + [
231 + "61ca71032888887b"
232 + ]
233 + ]
234 + },
235 + {
236 + "id": "61ca71032888887b",
237 + "type": "ui_chart",
238 + "z": "5f10779accc05655",
239 + "name": "",
240 + "group": "ef41b39771110fa5",
241 + "order": 1,
242 + "width": 0,
243 + "height": 0,
244 + "label": "RSSI",
245 + "chartType": "line",
246 + "legend": "false",
247 + "xformat": "dd HH:mm",
248 + "interpolate": "linear",
249 + "nodata": "",
250 + "dot": true,
251 + "ymin": "",
252 + "ymax": "",
253 + "removeOlder": 1,
254 + "removeOlderPoints": "",
255 + "removeOlderUnit": "3600",
256 + "cutout": 0,
257 + "useOneColor": false,
258 + "useUTC": false,
259 + "colors": [
260 + "#1f77b4",
261 + "#aec7e8",
262 + "#ff7f0e",
263 + "#2ca02c",
264 + "#98df8a",
265 + "#d62728",
266 + "#ff9896",
267 + "#9467bd",
268 + "#c5b0d5"
269 + ],
270 + "outputs": 1,
271 + "useDifferentColor": false,
272 + "className": "",
273 + "x": 670,
274 + "y": 180,
275 + "wires": [
276 + []
277 + ]
278 + },
279 + {
280 + "id": "81edb003937f1a92",
281 + "type": "ui_chart",
282 + "z": "5f10779accc05655",
283 + "name": "",
284 + "group": "7e1d1c102cf74e6b",
285 + "order": 1,
286 + "width": 0,
287 + "height": 0,
288 + "label": "Temperature",
289 + "chartType": "line",
290 + "legend": "false",
291 + "xformat": "HH:mm:ss",
292 + "interpolate": "linear",
293 + "nodata": "",
294 + "dot": true,
295 + "ymin": "",
296 + "ymax": "",
297 + "removeOlder": 1,
298 + "removeOlderPoints": "",
299 + "removeOlderUnit": "3600",
300 + "cutout": 0,
301 + "useOneColor": false,
302 + "useUTC": false,
303 + "colors": [
304 + "#1f77b4",
305 + "#aec7e8",
306 + "#ff7f0e",
307 + "#2ca02c",
308 + "#98df8a",
309 + "#d62728",
310 + "#ff9896",
311 + "#9467bd",
312 + "#c5b0d5"
313 + ],
314 + "outputs": 1,
315 + "useDifferentColor": false,
316 + "className": "",
317 + "x": 690,
318 + "y": 100,
319 + "wires": [
320 + []
321 + ]
322 + },
323 + {
324 + "id": "c63593404a60d9dc",
325 + "type": "ui_chart",
326 + "z": "5f10779accc05655",
327 + "name": "",
328 + "group": "3f5d139f158d7c1c",
329 + "order": 2,
330 + "width": 0,
331 + "height": 0,
332 + "label": "Humidity",
333 + "chartType": "line",
334 + "legend": "false",
335 + "xformat": "HH:mm:ss",
336 + "interpolate": "linear",
337 + "nodata": "",
338 + "dot": true,
339 + "ymin": "",
340 + "ymax": "",
341 + "removeOlder": 1,
342 + "removeOlderPoints": "",
343 + "removeOlderUnit": "3600",
344 + "cutout": 0,
345 + "useOneColor": false,
346 + "useUTC": false,
347 + "colors": [
348 + "#1f77b4",
349 + "#aec7e8",
350 + "#ff7f0e",
351 + "#2ca02c",
352 + "#98df8a",
353 + "#d62728",
354 + "#ff9896",
355 + "#9467bd",
356 + "#c5b0d5"
357 + ],
358 + "outputs": 1,
359 + "useDifferentColor": false,
360 + "className": "",
361 + "x": 680,
362 + "y": 140,
363 + "wires": [
364 + []
365 + ]
366 + },
367 + {
368 + "id": "79722a224bb22c96",
369 + "type": "debug",
370 + "z": "5f10779accc05655",
371 + "name": "debug 1",
372 + "active": true,
373 + "tosidebar": true,
374 + "console": false,
375 + "tostatus": false,
376 + "complete": "false",
377 + "statusVal": "",
378 + "statusType": "auto",
379 + "x": 420,
380 + "y": 180,
381 + "wires": []
382 + },
383 + {
18 18   "id": "bb1c0e81fd51fa9e",
19 19   "type": "serial-port",
20 20   "serialport": "/dev/ttyUSB0",
... ... @@ -32,5 +32,46 @@
32 32   "out": "char",
33 33   "addchar": "\\r\\n",
34 34   "responsetimeout": "10000"
401 + },
402 + {
403 + "id": "ef41b39771110fa5",
404 + "type": "ui_group",
405 + "name": "rssi",
406 + "tab": "abb98f80600a5448",
407 + "order": 3,
408 + "disp": true,
409 + "width": "6",
410 + "collapse": false,
411 + "className": ""
412 + },
413 + {
414 + "id": "7e1d1c102cf74e6b",
415 + "type": "ui_group",
416 + "name": "TEM",
417 + "tab": "abb98f80600a5448",
418 + "order": 4,
419 + "disp": true,
420 + "width": "6",
421 + "collapse": false,
422 + "className": ""
423 + },
424 + {
425 + "id": "3f5d139f158d7c1c",
426 + "type": "ui_group",
427 + "name": "HUM",
428 + "tab": "abb98f80600a5448",
429 + "order": 2,
430 + "disp": true,
431 + "width": "6",
432 + "collapse": false,
433 + "className": ""
434 + },
435 + {
436 + "id": "abb98f80600a5448",
437 + "type": "ui_tab",
438 + "name": "LG01v2",
439 + "icon": "LG01v2",
440 + "disabled": false,
441 + "hidden": false
35 35   }
36 36  ]
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 +
image-20221112161031-1.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +35.1 KB
Content
image-20221112161111-2.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +34.8 KB
Content
image-20221112162733-3.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +78.7 KB
Content
image-20221112163119-4.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Kilight
Size
... ... @@ -1,0 +1,1 @@
1 +32.6 KB
Content
Copyright ©2010-2022 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0