<
From version < 106.1 >
edited by Edwin Chen
on 2022/11/29 14:12
To version < 78.1 >
edited by Kilight Cao
on 2022/11/08 17:06
>
Change comment: Uploaded new attachment "image-20221108170621-4.jpeg", version {1}

Summary

Details

Page properties
Author
... ... @@ -1,1 +1,1 @@
1 -XWiki.Edwin
1 +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 (% 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.
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  
... ... @@ -63,6 +63,7 @@
63 63  * Remote Management
64 64  * Auto-provisioning for batch deployment and management
65 65  * LoRa Gateway
59 +* Built-in (% style="color:#037691" %)//**The Things Network**//(%%) local LoRaWAN server
66 66  * Built-in  (% style="color:#037691" %)//**Node-Red**// (%%)local Application server
67 67  
68 68  == **1.4 Block Diagram** ==
... ... @@ -90,6 +90,7 @@
90 90  (% style="color:blue" %)//**➢ WIFI LED**//(%%)//: This LED shows the WIFI interface connection status.//
91 91  
92 92  
87 +
93 93  == **1.6 Button Intruction** ==
94 94  
95 95  
... ... @@ -106,6 +106,7 @@
106 106   //**LED status: ** ETH LED will SOLID BULE Until the restore is finished.//
107 107  
108 108  
104 +
109 109  = **2. Quick Start** =
110 110  
111 111  
... ... @@ -116,6 +116,7 @@
116 116  
117 117  == **2.1 Connects to the network and accesses the gateway Web UI** ==
118 118  
115 +
119 119  == **2.1.1 connect the network.** ==
120 120  
121 121  
... ... @@ -148,11 +148,11 @@
148 148  [[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"]]
149 149  
150 150  
148 +
151 151  = **3. Web Configure Pages** =
152 152  
153 153  == **3.1 Home** ==
154 154  
155 -
156 156  //Shows the system running status~://
157 157  
158 158  [[image:image-20221104155612-1.png||height="497" width="942"]]
... ... @@ -160,6 +160,7 @@
160 160  
161 161  == **3.2 Network Settings** ==
162 162  
160 +
163 163  === **3.2.1 Network ~-~-> WiFi** ===
164 164  
165 165  
... ... @@ -166,6 +166,7 @@
166 166  [[image:image-20221104155654-2.png||height="319" width="813"]]
167 167  
168 168  
167 +
169 169  === **3.4.2 Network ~-~-> System Status** ===
170 170  
171 171  
... ... @@ -172,6 +172,7 @@
172 172  [[image:image-20221104155724-3.png||height="679" width="861"]]
173 173  
174 174  
174 +
175 175  === **3.4.3 Network ~-~-> Firewall** ===
176 176  
177 177  
... ... @@ -178,8 +178,10 @@
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 +
181 181  == **3.5 System** ==
182 182  
184 +
183 183  === **3.5.1  System ~-~-> System Overview** ===
184 184  
185 185  
... ... @@ -188,6 +188,7 @@
188 188  [[image:image-20221104155907-4.png]]
189 189  
190 190  
193 +
191 191  === **3.5.2 System ~-~-> Backup/Restore** ===
192 192  
193 193  
... ... @@ -208,13 +208,15 @@
208 208   **Path**: System ~-~-> Built-in Server
209 209  
210 210  
211 -(% style="color:blue" %)**Troubleshooting**
214 +**Troubleshooting:**
212 212  
216 +
213 213  **~ 1. URL does not jump properly**
214 214  
215 215   For the Node-Red, you can use the local IP address and the port is 1880 to access it.
216 216  
217 217  
222 +
218 218  == **4.1 Application Server ~-~- Node-Red** ==
219 219  
220 220  
... ... @@ -229,9 +229,10 @@
229 229  
230 230  = **5. How to configure the Lora Gateway** =
231 231  
232 -== **5.1 Configure and Debug LoRa wireless of LG01v2** ==
233 233  
238 +== **5.1 Access the Lora configuration page** ==
234 234  
240 +
235 235  Users can access the Lora configuration page by running the following command, then select the option **''serial port setup"**:
236 236  
237 237  (% class="box infomessage" %)
... ... @@ -252,9 +252,7 @@
252 252  )))
253 253  
254 254  
255 -(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C**
256 -
257 -
261 +(% style="color:red" %)**Note: Enter the corresponding letter to change the configuration, like A,B,C**(%%)
258 258  (% style="color:red" %)[[image:image-20221029174703-3.png]]
259 259  
260 260  
... ... @@ -263,128 +263,40 @@
263 263  
264 264  (% class="box infomessage" %)
265 265  (((
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**                              
279 -)))
280 -
281 -
282 -== **5.2 Example: LG01v2** ==
283 -
284 -=== **5.2.1 Introduce for the example:** ===
285 -
286 -
287 -[[image:image-20221104102736-3.png||height="282" width="723"]]
288 -
289 -
290 -In this example, there are two devices:
291 -
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.
294 -
295 -=== **5.2.2 Set Up LA66 Shield + UNO** ===
296 -
297 -
298 -==== **Set up LA66 Module** ====
299 -
300 -
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:
302 -
303 -(((
304 -(% style="color:red" %)**LA66 Shield as Sender: **
305 -
306 -(% class="box infomessage" %)
307 -(((
308 -**LA66 Shield configuration:**
309 -
310 -AT+FRE=868.100,868.100  ~-~--> TX and RX frequency set: 868100000
311 -AT+BW=0,0  ~-~--> TX and RX Bandwidth set: 125kHz
312 -AT+SF=12,12  ~-~--> TX and RX Spreading Factor set: SF12
313 -AT+POWER=14  ~-~--> TX Power Range set: 14dBm
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
314 314  AT+CRC=1,1  ~-~--> TX and RX CRC Type
315 315  AT+HEADER=0,0  ~-~--> TX and RX Header Type
316 316  AT+CR=1,1  ~-~--> TX and RX Coding Rate
317 317  AT+IQ=0,0  ~-~--> TX and RX InvertIQ
318 -AT+PREAMBLE=8,8  ~-~--> TX and RX Preamble Length set: 8
279 +AT+PREAMBLE=8,8  ~-~--> TX and RX Preamble Length
319 319  AT+SYNCWORD=0  ~-~-->  Syncword**(0: private,1: public)**
320 -AT+RXMOD=6,0  ~-~-->  Rx Timeout and Reply mode
281 +AT+RXMOD=65535,0  ~-~-->  Rx Timeout and Reply mode
282 +AT+RXDAFORM=1                              
321 321  )))
322 -)))
323 323  
324 324  
286 +== **5.2 Example: LG01**-**V2 Peer-to-Peer** ==
325 325  
326 -==== **Set up Arduino UNO** ====
327 327  
328 -(% id="cke_bm_1033249S" style="display:none" %)** **
289 +[[image:image-20221104102736-3.png||height="282" width="723"]]
329 329  
330 -**Hardware Connection**
331 331  
332 -(% class="box infomessage" %)
333 -(((
334 -**The DHT11 sensor connects to the LA66 Shield:**
292 +The user can run the AT command to set the LG01-V2 RX window always open as a Receiver, the LA66 Shield uses **AT+SEND=1,hello world,2,3** to simulate sending data,
335 335  
336 -**VCC  <~-~--> 3.3V (Red line)**
337 -**DATA <~-~--> PIN8 (Purple line)**
338 -**GND  <~-~--> GND (White line)**
339 -)))
294 +**Prerequisites: **The configuration of LG01-V2 and  LA66 Shield must match, users can use **AT+CFG** to check all configurations.
340 340  
341 -[[image:image-20221108170731-5.png||height="588" width="441"]]
342 342  
297 +(% style="color:red; font-weight:bold" %)**LG01-V**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)**
343 343  
344 344  
345 -===== **1. Open Arduino IDE** =====
300 +**LG01-V2 configuration:**
346 346  
347 -
348 -[[image:image-20221108172149-6.png||height="650" width="542"]]
349 -
350 -
351 -
352 -===== **2. Open project** =====
353 -
354 -
355 -Users can download Arduino files from this link: [[attach:Log-Temperature-Sensor-and-send-data-to-Node-red.ino||target="_blank"]]
356 -
357 -Then click Compile and Upload to LA66 Shield,
358 -
359 -[[image:image-20221108172432-7.png]]
360 -
361 -
362 -
363 -===== **3. Open the Serial Monitor to check the LA66 Shield data** =====
364 -
365 -
366 -The UNO will now reads the temperature and humidity data from the sensor and broadcast it via LoRa wireless,
367 -
368 -[[image:image-20221108174840-8.png||height="731" width="671"]]
369 -
370 -
371 -
372 -Sending out data as below.
373 -
374 -[[image:image-20221108175113-9.png||height="556" width="998"]]
375 -
376 -
377 -=== **5.2.3 Set Up LG01v2** ===
378 -
379 -
380 -Configure LG01v2 LoRa channel parameters so it can get data from LA66 Shield
381 -
382 -(% style="color:red; font-weight:bold" %)**LG01v**(% style="color:red" %)**2 as Receiver: (configured as AT+RXMOD=65535,2)**
383 -
384 384  (% class="box infomessage" %)
385 385  (((
386 -**LG01-V2 configuration:**
387 -
388 388  AT+FRE=868.100,868.100  ~-~--> TX and RX frequency set: 868100000
389 389  AT+BW=0,0  ~-~--> TX and RX Bandwidth set: 125kHz
390 390  AT+SF=12,12  ~-~--> TX and RX Spreading Factor set: SF12
... ... @@ -394,51 +394,34 @@
394 394  AT+CR=1,1  ~-~--> TX and RX Coding Rate
395 395  AT+IQ=0,0  ~-~--> TX and RX InvertIQ
396 396  AT+PREAMBLE=8,8  ~-~--> TX and RX Preamble Length set: 8
397 -AT+SYNCWORD=0  ~-~-->  Syncword**(0: private,1: public)**
313 +AT+SYNCWORD=0  ~-~-->  Syncword**(0: private,1: public), **the corresponding Lora shield syncword is 0x12
398 398  AT+RXMOD=65535,0  ~-~-->  Rx Timeout and Reply mode, RX window always open
315 +AT+RXDAFORM=1    
399 399  )))
400 400  
318 +[[image:image-20221102140053-4.png]]
401 401  
402 -=== **5.2.4 Test result** ===
403 403  
321 +(% style="color:red" %)**LA66 Shield as Sender: (AT+SEND=1,hello world,2,3)**
404 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 -)))
323 +[[image:1667456058832-484.png||height="291" width="353"]]
407 407  
408 -When LG01v2 replies with ACK when it receives a packet sent by LA66 sheild.
409 409  
410 -[[image:image-20221108164413-2.png]]
326 +Instruction for Peer-to-Peer firmware:[[ **Instruction **>>url: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/]]
327 +)))
411 411  
412 412  
330 +Users can import this example in node-red: **[[attach:serial USB.json||target="_blank"]]**
413 413  
414 -In the real-time log of LG01v2
332 +[[image:image-20221104100520-2.png||height="605" width="1150"]]
415 415  
416 -[[image:image-20221108170314-3.png]]
417 417  
335 += (% 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(%%)** =
418 418  
419 -=== **5.2.5 Plot data chart in LG01v2** ===
420 420  
338 +(% style="color:blue" %)**USB TTL to LG01-V2  Connection:**
421 421  
422 -User can plot the temperature and humidity chat via LG01v2 built-in IoT server.
423 423  
424 -User can import this example in Node-Red: [[attach:Log-Temperature-Sensor-and-send-data-to-node-red.json||target="_blank"]]
425 -
426 -[[image:image-20221108180334-10.png||height="651" width="1141"]]
427 -
428 -
429 -The temperature and humidity chart is displayed in the built-in node-red UI
430 -
431 -**Browser input: (% style="background-color:yellow" %)__//http:~/~/<local-IPV4-address>//__(%%)**
432 -
433 -[[image:image-20221108180458-11.png||height="402" width="1137"]]
434 -
435 -
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(%%)** =
437 -
438 -
439 -(% style="color:blue" %)**USB TTL to LG01v2  Connection:**
440 -
441 -
442 442  Port 1 of the UART on the LG01-V2 is GND
443 443  
444 444  (% class="box infomessage" %)
... ... @@ -462,16 +462,16 @@
462 462  
463 463  [[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"]]
464 464  
465 -
466 466  [[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"]]
467 467  
468 468  
469 469  = **7. FAQ** =
470 470  
369 +
471 471  == **7.1 How does LG01-V2 communicate with Lora shield (LoRa.h)** ==
472 472  
473 473  
474 -This example describes how to use LG01-V2, LoRa Shield to set up a LoRa network,
373 +This example describes how to use LG01-V2, LoRa Shield to set up a LoRa network
475 475  
476 476  [[image:image-20221103152238-8.png||height="251" width="654"]]
477 477  
... ... @@ -496,8 +496,6 @@
496 496  AT+RXDAFORM=1    
497 497  )))
498 498  
499 -
500 -
501 501  **Lora shield configuration:**
502 502  
503 503  Lora Shield example: [[attach:LoRa_Shield_Sketch_For_MQTT.ino||target="_blank"]] , [[attach:arduino-LoRa-master.zip||target="_blank"]]
... ... @@ -505,59 +505,16 @@
505 505  [[image:image-20221101161318-2.png]]
506 506  
507 507  
508 -
509 509  **Test LG01-V2 to receive Lora Shield data:**
510 510  
511 511  [[image:image-20221101161951-3.png]]
512 512  
513 513  
410 +**Test the LG01-V​​​​​​​2 to send data:**
514 514  
515 -**Test the LG01-V2 to send data:**
516 -
517 517  [[image:image-20221101162527-4.png]]
518 518  
519 519  
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 -
561 561  = (% style="color:inherit; font-family:inherit; font-size:29px" %)**8. Supports**(%%) =
562 562  
563 563  
... ... @@ -569,11 +569,12 @@
569 569  **//With your question as detailed as possible. We will reply and help you in the shortest.//**
570 570  
571 571  
426 +
572 572  = **9. Reference** =
573 573  
574 574  
575 -* Install Tago Core: Refer **Install Tago Core in LG01v2** in[[ Instruction>>doc:Main.Tago\.IO.WebHome]].
576 -* [[Advance OS Reference Guide for L>>doc:Main.Armbian OS instruction.WebHome]]G01v2.
430 +* Install Tago Core: Refer **Install Tago Core in LPS8v2** in[[ Instruction>>doc:Main.Tago\.IO.WebHome]].
431 +* [[Advance OS Reference Guide for LPS8v2>>doc:Main.Armbian OS instruction.WebHome]].
577 577  
578 578  
579 579  )))
... ... @@ -581,14 +581,17 @@
581 581  = **10. Order Info** =
582 582  
583 583  
584 -(% style="color:#0000ff" %)**LG01v2-XXX-YYY**
439 +(% style="color:#0000ff" %)**LPS8v2-XXX-YYY**
585 585  
586 586  (% style="color:#0000ff" %)**XXX**(% style="color:black" %): Frequency Band
587 587  
588 -* (% style="color:red" %)**868**(%%): For frequency : 863 ~~ 870Mhz
589 -* (% style="color:red" %)**915**(%%): For frequency : 902 ~~ 928Mhz
443 +* (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
444 +* (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
445 +* (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
446 +* (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
447 +* (% style="color:red" %)**US915**(%%): LoRaWAN US915 band
448 +* (% style="color:red" %)**IN865**(%%):  LoRaWAN IN865 band
590 590  
591 -
592 592  (% style="color:#0000ff" %)**YYY**(% style="color:black" %): 4G Cellular Option
593 593  
594 594  * (% style="color:red" %)**E**(%%):  EMEA, Korea, Thailand, India.
... ... @@ -599,6 +599,7 @@
599 599  More info about valid bands, please see [[EC25-E product page>>url:https://www.quectel.com/product/ec25.htm]].
600 600  
601 601  
460 +
602 602  = **10. Manufacturer Info** =
603 603  
604 604  
... ... @@ -609,6 +609,7 @@
609 609  LongCheng Street, LongGang District ; Shenzhen 518116,China
610 610  
611 611  
471 +
612 612  = **11. FCC Warning** =
613 613  
614 614  
... ... @@ -641,6 +641,7 @@
641 641  (((
642 642  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.
643 643  
644 -
645 645  
646 646  )))
506 +
507 +~)~)~)
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 -
Log-Temperature-Sensor-and-send-data-to-Node-red.ino
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -3.6 KB
Content
... ... @@ -1,150 +1,0 @@
1 -#include <SoftwareSerial.h>
2 -#include <Adafruit_Sensor.h>
3 -#include <DHT.h>
4 -#include <DHT_U.h>
5 -/*
6 -
7 -*/
8 -#define DHTPIN 8 // Digital pin connected to the DHT sensor
9 -#define DHTTYPE DHT11 // DHT 11
10 -DHT_Unified dht(DHTPIN, DHTTYPE);
11 -
12 -String inputString = ""; // a String to hold incoming data
13 -bool stringComplete = false; // whether the string is complete
14 -
15 -long old_time=millis();
16 -long new_time;
17 -
18 -long uplink_interval=30000; //ms
19 -
20 -float DHT11_temp;
21 -float DHT11_hum;
22 -
23 -SoftwareSerial ss(10, 11); // Arduino RX, TX ,
24 -
25 -char rxbuff[128];
26 -uint8_t rxbuff_index=0;
27 -
28 -void setup() {
29 - // initialize serial
30 - Serial.begin(9600);
31 -
32 - ss.begin(9600);
33 - ss.listen();
34 -
35 - // reserve 200 bytes for the inputString:
36 - inputString.reserve(200);
37 -
38 - dht.begin();
39 - sensor_t sensor;
40 - dht.temperature().getSensor(&sensor);
41 - dht.humidity().getSensor(&sensor);
42 -
43 - ss.println("ATZ");//reset LA66
44 -}
45 -
46 -void loop() {
47 -
48 - while ( ss.available()) {
49 - // get the new byte:
50 - char inChar = (char) ss.read();
51 - // add it to the inputString:
52 - inputString += inChar;
53 -
54 - rxbuff[rxbuff_index++]=inChar;
55 -
56 - if(rxbuff_index>128)
57 - {
58 - rxbuff[rxbuff_index]='\0';
59 - rxbuff_index=0;
60 - break;
61 - }
62 -
63 - // if the incoming character is a newline, set a flag so the main loop can
64 - // do something about it:
65 - if (inChar == '\n' || inChar == '\r') {
66 - stringComplete = true;
67 - rxbuff[rxbuff_index]='\0';
68 - rxbuff_index=0;
69 - }
70 - }
71 -
72 - while ( Serial.available()) {
73 - // get the new byte:
74 - char inChar = (char) Serial.read();
75 - // add it to the inputString:
76 - inputString += inChar;
77 - // if the incoming character is a newline, set a flag so the main loop can
78 - // do something about it:
79 - if (inChar == '\n' || inChar == '\r') {
80 - ss.print(inputString);
81 - inputString = "\0";
82 - }
83 - }
84 -
85 - // print the string when a newline arrives:
86 - if (stringComplete) {
87 - Serial.print(inputString);
88 -
89 - // clear the string:
90 - inputString = "\0";
91 - stringComplete = false;
92 - }
93 -
94 - new_time = millis();
95 -
96 - if(new_time-old_time>=uplink_interval){
97 - old_time = new_time;
98 -
99 - Serial.print(F("\r\n"));
100 - // Get temperature event and print its value.
101 - sensors_event_t event;
102 - dht.temperature().getEvent(&event);
103 - if (isnan(event.temperature)) {
104 - Serial.println(F("Error reading temperature!"));
105 - DHT11_temp=327.67;
106 - }
107 - else {
108 - DHT11_temp=event.temperature;
109 -
110 - if(DHT11_temp>60){
111 - DHT11_temp=60;
112 - }
113 - else if(DHT11_temp<-20){
114 - DHT11_temp=-20;
115 - }
116 - }
117 - // Get humidity event and print its value.
118 - dht.humidity().getEvent(&event);
119 - if (isnan(event.relative_humidity)) {
120 - DHT11_hum=327.67;
121 - Serial.println(F("Error reading humidity!"));
122 - }
123 - else {
124 - DHT11_hum=event.relative_humidity;
125 -
126 - if(DHT11_hum>100){
127 - DHT11_hum=100;
128 - }
129 - else if(DHT11_hum<0){
130 - DHT11_hum=0;
131 - }
132 - }
133 -
134 - Serial.print(F("Temperature: "));
135 - Serial.print(DHT11_temp);
136 - Serial.println(F("°C"));
137 - Serial.print(F("Humidity: "));
138 - Serial.print(DHT11_hum);
139 - Serial.println(F("%"));
140 - Serial.print(F("\r\n"));
141 -
142 - char sensor_data_buff[128]="\0";
143 -
144 - //confirm status,Fport,payload length,payload(HEX)
145 - snprintf(sensor_data_buff,128,"AT+SEND=0,%02X%02X%02X%02X,0,0",(short)(DHT11_temp*100)>>8 & 0xFF,(short)(DHT11_temp*100) & 0xFF,(short)(DHT11_hum*10)>>8 & 0xFF,(short)(DHT11_hum*10) & 0xFF);
146 - ss.print(sensor_data_buff);
147 - ss.print('\r');
148 - }
149 -}
150 -
Log-Temperature-Sensor-and-send-data-to-node-red.json
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -10.1 KB
Content
... ... @@ -1,443 +1,0 @@
1 -[
2 - {
3 - "id": "5f10779accc05655",
4 - "type": "tab",
5 - "label": "serial USB",
6 - "disabled": false,
7 - "info": "",
8 - "env": []
9 - },
10 - {
11 - "id": "4ea60ce4df40717c",
12 - "type": "serial in",
13 - "z": "5f10779accc05655",
14 - "name": "",
15 - "serial": "bb1c0e81fd51fa9e",
16 - "x": 210,
17 - "y": 60,
18 - "wires": [
19 - [
20 - "40eac96a52733f7a",
21 - "79722a224bb22c96"
22 - ]
23 - ]
24 - },
25 - {
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 - {
384 - "id": "bb1c0e81fd51fa9e",
385 - "type": "serial-port",
386 - "serialport": "/dev/ttyUSB0",
387 - "serialbaud": "9600",
388 - "databits": "8",
389 - "parity": "none",
390 - "stopbits": "1",
391 - "waitfor": "",
392 - "dtr": "none",
393 - "rts": "none",
394 - "cts": "none",
395 - "dsr": "none",
396 - "newline": "\\n",
397 - "bin": "false",
398 - "out": "char",
399 - "addchar": "\\r\\n",
400 - "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
442 - }
443 -]
image-20221108170731-5.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -2.5 MB
Content
image-20221108172149-6.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -17.5 KB
Content
image-20221108172432-7.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -45.9 KB
Content
image-20221108174840-8.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -52.1 KB
Content
image-20221108175113-9.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -72.6 KB
Content
image-20221108180334-10.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -159.3 KB
Content
image-20221108180458-11.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -52.4 KB
Content
image-20221112161031-1.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -35.1 KB
Content
image-20221112161111-2.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -34.8 KB
Content
image-20221112162733-3.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -78.7 KB
Content
image-20221112163119-4.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Kilight
Size
... ... @@ -1,1 +1,0 @@
1 -32.6 KB
Content
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0