Last modified by Xiaoling on 2025/04/23 15:57

From version 29.8
edited by Xiaoling
on 2022/06/01 18:01
Change comment: There is no comment for this version
To version 26.1
edited by Xiaoling
on 2022/05/23 10:26
Change comment: Uploaded new attachment "1653272817147-600.png", version {1}

Summary

Details

Page properties
Content
... ... @@ -7,15 +7,12 @@
7 7  **RS485-BL – Waterproof RS485 to LoRaWAN Converter User Manual**
8 8  
9 9  
10 -
11 11  **Table of Contents:**
12 12  
13 -{{toc/}}
14 14  
15 15  
16 16  
17 17  
18 -
19 19  = 1.Introduction =
20 20  
21 21  == 1.1 What is RS485-BL RS485 to LoRaWAN Converter ==
... ... @@ -156,7 +156,6 @@
156 156  
157 157  The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper.
158 158  
159 -
160 160  = 3. Operation Mode =
161 161  
162 162  == 3.1 How it works? ==
... ... @@ -163,8 +163,6 @@
163 163  
164 164  (((
165 165  The RS485-BL is configured as LoRaWAN OTAA Class A mode by default. It has OTAA keys to join network. To connect a local LoRaWAN network, user just need to input the OTAA keys in the network server and power on the RS485-BL. It will auto join the network via OTAA.
166 -
167 -
168 168  )))
169 169  
170 170  == 3.2 Example to join LoRaWAN network ==
... ... @@ -228,9 +228,7 @@
228 228  == 3.3 Configure Commands to read data ==
229 229  
230 230  (((
231 -There are plenty of RS485 and TTL level devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-BL supports flexible command set. User can use [[AT Commands or LoRaWAN Downlink>>||anchor="H3.5ConfigureRS485-BLviaATorDownlink"]] Command to configure how RS485-BL should read the sensor and how to handle the return from RS485 or TTL sensors.
232 -
233 -
225 +There are plenty of RS485 and TTL level devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-BL supports flexible command set. User can use [[AT Commands or LoRaWAN Downlink>>path:#AT_COMMAND]] Command to configure how RS485-BL should read the sensor and how to handle the return from RS485 or TTL sensors.
234 234  )))
235 235  
236 236  === 3.3.1 onfigure UART settings for RS485 or TTL communication ===
... ... @@ -509,82 +509,64 @@
509 509  
510 510  [[image:1653271763403-806.png]]
511 511  
512 -=== 3.3.4 Compose the uplink payload ===
513 513  
514 -(((
505 +
506 +
507 +1.
508 +11.
509 +111. Compose the uplink payload
510 +
515 515  Through AT+COMMANDx and AT+DATACUTx we got valid value from each RS485 commands, Assume these valid value are RETURN1, RETURN2, .., to RETURNx. The next step is how to compose the LoRa Uplink Payload by these RETURNs. The command is **AT+DATAUP.**
516 -)))
517 517  
518 -(((
519 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=0**
520 -)))
521 521  
522 -(((
523 -Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**A SIGNLE UPLINK**.
524 -)))
514 +**Examples: AT+DATAUP=0**
525 525  
526 -(((
516 +Compose the uplink payload with value returns in sequence and send with **A SIGNLE UPLINK**.
517 +
527 527  Final Payload is
528 -)))
529 529  
530 -(((
531 -(% style="color:#4f81bd" %)Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
532 -)))
520 +Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx
533 533  
534 -(((
535 535  Where PAYVER is defined by AT+PAYVER, below is an example screen shot.
536 -)))
537 537  
538 -[[image:1653272787040-634.png||height="515" width="719"]]
524 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image019.png]]
539 539  
540 -(((
541 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1**
542 -)))
543 543  
544 -(((
545 -Compose the uplink payload with value returns in sequence and send with (% style="color:red" %)**Multiply UPLINKs**.
546 -)))
547 547  
548 -(((
528 +**Examples: AT+DATAUP=1**
529 +
530 +Compose the uplink payload with value returns in sequence and send with **Multiply UPLINKs**.
531 +
549 549  Final Payload is
550 -)))
551 551  
552 -(((
553 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
554 -)))
534 +Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
555 555  
556 -1. (((
557 -Battery Info (2 bytes): Battery voltage
558 -)))
559 -1. (((
560 -PAYVER (1 byte): Defined by AT+PAYVER
561 -)))
562 -1. (((
563 -PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
564 -)))
565 -1. (((
566 -PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
567 -)))
568 -1. (((
569 -DATA: Valid value: max 6 bytes(US915 version here, Notice*!) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes
570 -)))
536 +1. Battery Info (2 bytes): Battery voltage
537 +1. PAYVER (1 byte): Defined by AT+PAYVER
538 +1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling.
539 +1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT)
540 +1. DATA: Valid value: max 6 bytes(US915 version here, [[Notice*!>>path:#max_byte]]) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes
571 571  
572 -[[image:1653272817147-600.png||height="437" width="717"]]
542 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image020.png]]
573 573  
544 +
574 574  So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA
575 575  
576 -DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41
547 +DATA1=RETURN1 Valid Value = 20 20 0a 33 90 41
577 577  
578 -DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20
549 +DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= 02 aa 05 81 0a 20
579 579  
580 -DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30
551 +DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 = 20 20 20 2d 30
581 581  
553 +
554 +
582 582  Below are the uplink payloads:
583 583  
584 -[[image:1653272901032-107.png]]
557 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]]
585 585  
586 -(% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
587 587  
560 +Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
561 +
588 588   ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
589 589  
590 590   * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date).
... ... @@ -593,121 +593,90 @@
593 593  
594 594   ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
595 595  
596 -=== 3.3.5 Uplink on demand ===
597 597  
598 -(((
571 +
572 +1.
573 +11.
574 +111. Uplink on demand
575 +
599 599  Except uplink periodically, RS485-BL is able to uplink on demand. The server sends downlink command to RS485-BL and RS485 will uplink data base on the command.
600 -)))
601 601  
602 -(((
603 603  Downlink control command:
604 -)))
605 605  
606 -(((
607 -**0x08 command**: Poll an uplink with current command set in RS485-BL.
608 -)))
580 +[[0x08 command>>path:#downlink_08]]: Poll an uplink with current command set in RS485-BL.
609 609  
610 -(((
611 -**0xA8 command**: Send a command to RS485-BL and uplink the output from sensors.
612 -)))
582 +[[0xA8 command>>path:#downlink_A8]]: Send a command to RS485-BL and uplink the output from sensors.
613 613  
614 -=== 3.3.6 Uplink on Interrupt ===
615 615  
616 -Put the interrupt sensor between 3.3v_out and GPIO ext.
617 617  
618 -[[image:1653273818896-432.png]]
586 +1.
587 +11.
588 +111. Uplink on Interrupt
619 619  
620 -(((
590 +Put the interrupt sensor between 3.3v_out and GPIO ext.[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png]]
591 +
621 621  AT+INTMOD=0  Disable Interrupt
622 -)))
623 623  
624 -(((
625 625  AT+INTMOD=1  Interrupt trigger by rising or falling edge.
626 -)))
627 627  
628 -(((
629 629  AT+INTMOD=2  Interrupt trigger by falling edge. ( Default Value)
630 -)))
631 631  
632 -(((
633 633  AT+INTMOD=3  Interrupt trigger by rising edge.
634 -)))
635 635  
636 -== 3.4 Uplink Payload ==
637 637  
638 -(% border="1" style="background-color:#4f81bd; color:white; width:850px" %)
639 -|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands**
640 -|Value|(% style="width:130px" %)(((
641 -(((
601 +1.
602 +11. Uplink Payload
603 +
604 +|**Size(bytes)**|**2**|**1**|**Length depends on the return from the commands**
605 +|Value|(((
642 642  Battery(mV)
643 -)))
644 644  
645 -(((
646 646  &
647 -)))
648 648  
649 -(((
650 650  Interrupt _Flag
651 -)))
652 -)))|(% style="width:93px" %)(((
611 +)))|(((
653 653  PAYLOAD_VER
654 654  
655 655  
656 -)))|(% style="width:509px" %)If the valid payload is too long and exceed the maximum support payload length in server, server will show payload not provided in the LoRaWAN server.
615 +)))|If the valid payload is too long and exceed the maximum support payload length in server, server will show payload not provided in the LoRaWAN server.
657 657  
658 658  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
659 659  
660 -(((
619 +
661 661  function Decoder(bytes, port) {
662 -)))
663 663  
664 -(((
665 665  ~/~/Payload Formats of RS485-BL Deceive
666 -)))
667 667  
668 -(((
669 669  return {
670 -)))
671 671  
672 -(((
673 673   ~/~/Battery,units:V
674 -)))
675 675  
676 -(((
677 677   BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,
678 -)))
679 679  
680 -(((
681 681   ~/~/GPIO_EXTI 
682 -)))
683 683  
684 -(((
685 685   EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",
686 -)))
687 687  
688 -(((
689 689   ~/~/payload of version
690 -)))
691 691  
692 -(((
693 693   Pay_ver:bytes[2],
694 -)))
695 695  
696 -(((
697 697   };
698 -)))
699 699  
700 -(((
701 701   }
702 -)))
703 703  
704 -(((
642 +
643 +
644 +
645 +
646 +
647 +
705 705  TTN V3 uplink screen shot.
706 -)))
707 707  
708 -[[image:1653274001211-372.png||height="192" width="732"]]
650 +[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]
709 709  
710 -== 3.5 Configure RS485-BL via AT or Downlink ==
652 +1.
653 +11. Configure RS485-BL via AT or Downlink
711 711  
712 712  User can configure RS485-BL via [[AT Commands >>path:#_​Using_the_AT]]or LoRaWAN Downlink Commands
713 713  
1653272901032-107.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -197.8 KB
Content
1653273818896-432.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -31.6 KB
Content
1653274001211-372.png
Author
... ... @@ -1,1 +1,0 @@
1 -XWiki.Xiaoling
Size
... ... @@ -1,1 +1,0 @@
1 -91.4 KB
Content