Changes for page RS485-BL – Waterproof RS485 to LoRaWAN Converter
Last modified by Xiaoling on 2025/04/23 15:57
Summary
-
Page properties (1 modified, 0 added, 0 removed)
-
Attachments (0 modified, 3 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -316,8 +316,6 @@ 316 316 ))) 317 317 ))) 318 318 319 - 320 - 321 321 === 3.3.2 Configure sensors === 322 322 323 323 ((( ... ... @@ -465,7 +465,6 @@ 465 465 * **c: define the position for valid value. ** 466 466 ))) 467 467 468 - 469 469 **Examples:** 470 470 471 471 * Grab bytes: ... ... @@ -528,7 +528,7 @@ 528 528 ))) 529 529 530 530 ((( 531 -(% style="color:# 4f81bd" %)**Examples: AT+DATAUP=0**528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0** 532 532 ))) 533 533 534 534 ((( ... ... @@ -540,7 +540,7 @@ 540 540 ))) 541 541 542 542 ((( 543 -(% style="color:#4f81bd" %)Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx 540 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx** 544 544 ))) 545 545 546 546 ((( ... ... @@ -549,8 +549,12 @@ 549 549 550 550 [[image:1653272787040-634.png||height="515" width="719"]] 551 551 549 + 550 + 552 552 ((( 553 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1** 552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1** 553 + 554 + 554 554 ))) 555 555 556 556 ((( ... ... @@ -562,7 +562,7 @@ 562 562 ))) 563 563 564 564 ((( 565 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA** 566 566 ))) 567 567 568 568 1. ((( ... ... @@ -585,6 +585,7 @@ 585 585 586 586 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 587 587 589 + 588 588 DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41 589 589 590 590 DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20 ... ... @@ -591,10 +591,12 @@ 591 591 592 592 DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30 593 593 596 + 594 594 Below are the uplink payloads: 595 595 596 596 [[image:1653272901032-107.png]] 597 597 601 + 598 598 (% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 599 599 600 600 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) ... ... @@ -605,6 +605,8 @@ 605 605 606 606 ~* For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 607 607 612 + 613 + 608 608 === 3.3.5 Uplink on demand === 609 609 610 610 ((( ... ... @@ -621,6 +621,8 @@ 621 621 622 622 ((( 623 623 **0xA8 command**: Send a command to RS485-BL and uplink the output from sensors. 630 + 631 + 624 624 ))) 625 625 626 626 === 3.3.6 Uplink on Interrupt === ... ... @@ -629,6 +629,7 @@ 629 629 630 630 [[image:1653273818896-432.png]] 631 631 640 + 632 632 ((( 633 633 AT+INTMOD=0 Disable Interrupt 634 634 ))) ... ... @@ -643,6 +643,8 @@ 643 643 644 644 ((( 645 645 AT+INTMOD=3 Interrupt trigger by rising edge. 655 + 656 + 646 646 ))) 647 647 648 648 == 3.4 Uplink Payload == ... ... @@ -670,47 +670,49 @@ 670 670 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 671 671 672 672 ((( 673 -function Decoder(bytes, port) { 684 +{{{function Decoder(bytes, port) {}}} 674 674 ))) 675 675 676 676 ((( 677 - ~/~/Payload Formats of RS485-BL Deceive688 +{{{//Payload Formats of RS485-BL Deceive}}} 678 678 ))) 679 679 680 680 ((( 681 -return { 692 +{{{return {}}} 682 682 ))) 683 683 684 684 ((( 685 - ~/~/Battery,units:V696 +{{{ //Battery,units:V}}} 686 686 ))) 687 687 688 688 ((( 689 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}} 690 690 ))) 691 691 692 692 ((( 693 - ~/~/GPIO_EXTI704 +{{{ //GPIO_EXTI }}} 694 694 ))) 695 695 696 696 ((( 697 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}} 698 698 ))) 699 699 700 700 ((( 701 - ~/~/payload of version712 +{{{ //payload of version}}} 702 702 ))) 703 703 704 704 ((( 705 - Pay_ver:bytes[2], 716 +{{{ Pay_ver:bytes[2],}}} 706 706 ))) 707 707 708 708 ((( 709 - }; 720 +{{{ }; }}} 710 710 ))) 711 711 712 712 ((( 713 - } 724 +} 725 + 726 + 714 714 ))) 715 715 716 716 ((( ... ... @@ -719,58 +719,65 @@ 719 719 720 720 [[image:1653274001211-372.png||height="192" width="732"]] 721 721 735 + 722 722 == 3.5 Configure RS485-BL via AT or Downlink == 723 723 724 -User can configure RS485-BL via [[AT Commands>>path:#_Using_the_AT]]or LoRaWAN Downlink Commands738 +User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 725 725 726 726 There are two kinds of Commands: 727 727 728 -* **Common Commands**: They should be available for each sensor, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: http:~/~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands742 +* (% style="color:#4f81bd" %)**Common Commands**(%%): They should be available for each sensor, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] 729 729 730 -* **Sensor Related Commands**: These commands are special designed for RS485-BL. User can see these commands below: 744 +* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 731 731 732 -1. 733 -11. 734 -111. Common Commands: 746 +=== 3.5.1 Common Commands: === 735 735 736 -They should be available for each of Dragino Sensors, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[ http:~~/~~/wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands>>url:http://wiki.dragino.com/index.php?title=End_Device_AT_Commands_and_Downlink_Commands]]748 +They should be available for each of Dragino Sensors, such as: change uplink interval, reset device. For firmware v1.3, user can find what common commands it supports: [[End Device AT Commands and Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]] 737 737 738 738 739 -1. 740 -11. 741 -111. Sensor related commands: 751 +=== 3.5.2 Sensor related commands: === 742 742 743 -==== ChooseDeviceType (RS485 or TTL)====753 +==== ==== 744 744 755 +==== **Choose Device Type (RS485 or TTL)** ==== 756 + 745 745 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 746 746 747 -* AT Command 759 +* **AT Command** 748 748 761 +(% class="box infomessage" %) 762 +((( 749 749 **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 764 +))) 750 750 766 +(% class="box infomessage" %) 767 +((( 751 751 **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 769 +))) 752 752 753 753 754 -* Downlink Payload 772 +* **Downlink Payload** 755 755 756 -**0A aa** àsame as AT+MOD=aa774 +**0A aa** ~-~-> same as AT+MOD=aa 757 757 758 758 759 759 760 -==== [[RS485 Debug Command>>path:#downlink_A8]](AT+CFGDEV) ====778 +==== **RS485 Debug Command (AT+CFGDEV)** ==== 761 761 762 762 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 763 763 764 -* AT Command 782 +* **AT Command** 765 765 766 -AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 784 +(% class="box infomessage" %) 785 +((( 786 +**AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m** 787 +))) 767 767 768 768 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 769 769 770 770 792 +* **Downlink Payload** 771 771 772 -* Downlink Payload 773 - 774 774 Format: A8 MM NN XX XX XX XX YY 775 775 776 776 Where: ... ... @@ -784,15 +784,15 @@ 784 784 785 785 To connect a Modbus Alarm with below commands. 786 786 787 -* The command to active alarm is: 0A 05 00 04 00 01 4C B0. Where 0A 05 00 04 00 01 is the Modbus command to read the register 00 40 where stored the DI status. The 4C B0 is the CRC-16/MODBUS which calculate manually. 807 +* The command to active alarm is: 0A 05 00 04 00 01 **4C B0**. Where 0A 05 00 04 00 01 is the Modbus command to read the register 00 40 where stored the DI status. The 4C B0 is the CRC-16/MODBUS which calculate manually. 788 788 789 -* The command to deactivate alarm is: 0A 05 00 04 00 00 8D 70. Where 0A 05 00 04 00 00 is the Modbus command to read the register 00 40 where stored the DI status. The 8D 70 is the CRC-16/MODBUS which calculate manually. 809 +* The command to deactivate alarm is: 0A 05 00 04 00 00 **8D 70**. Where 0A 05 00 04 00 00 is the Modbus command to read the register 00 40 where stored the DI status. The 8D 70 is the CRC-16/MODBUS which calculate manually. 790 790 791 791 So if user want to use downlink command to control to RS485 Alarm, he can use: 792 792 793 -**A8 01 06 0A 05 00 04 00 01 00**: to activate the RS485 Alarm 813 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm 794 794 795 -**A8 01 06 0A 05 00 04 00 00 00**: to deactivate the RS485 Alarm 815 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm 796 796 797 797 A8 is type code and 01 means add CRC-16/MODBUS at the end, the 3^^rd^^ byte is 06, means the next 6 bytes are the command to be sent to the RS485 network, the final byte 00 means this command don’t need to acquire output. 798 798 ... ... @@ -801,48 +801,60 @@ 801 801 802 802 Check TTL Sensor return: 803 803 804 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]824 +[[image:1654132684752-193.png]] 805 805 806 806 807 807 828 +==== **Set Payload version** ==== 808 808 809 -==== Set Payload version ==== 810 - 811 811 This is the first byte of the uplink payload. RS485-BL can connect to different sensors. User can set the PAYVER field to tell server how to decode the current payload. 812 812 813 -* AT Command: 832 +* **AT Command:** 814 814 815 -AT+PAYVER: Set PAYVER field = 1 834 +(% class="box infomessage" %) 835 +((( 836 +**AT+PAYVER: Set PAYVER field = 1** 837 +))) 816 816 817 817 818 -* Downlink Payload: 840 +* **Downlink Payload:** 819 819 820 -0xAE 01 àSet PAYVER field = 0x01842 +**0xAE 01** ~-~-> Set PAYVER field = 0x01 821 821 822 -0xAE 0F àSet PAYVER field = 0x0F844 +**0xAE 0F** ~-~-> Set PAYVER field = 0x0F 823 823 824 824 825 -==== Set RS485 Sampling Commands ==== 826 826 848 +==== **Set RS485 Sampling Commands** ==== 849 + 827 827 AT+COMMANDx, AT+DATACUTx and AT+SEARCHx 828 828 829 -These three commands are used to configure how the RS485-BL polling data from Modbus device. Detail of usage please see : [[polling RS485 device>> path:#polling_485]].852 +These three commands are used to configure how the RS485-BL polling data from Modbus device. Detail of usage please see : [[polling RS485 device>>||anchor="H3.3.3Configurereadcommandsforeachsampling"]]. 830 830 831 831 832 -* AT Command: 855 +* **AT Command:** 833 833 834 -AT+COMMANDx: Configure RS485 read command to sensor. 857 +(% class="box infomessage" %) 858 +((( 859 +**AT+COMMANDx: Configure RS485 read command to sensor.** 860 +))) 835 835 836 -AT+DATACUTx: Configure how to handle return from RS485 devices. 862 +(% class="box infomessage" %) 863 +((( 864 +**AT+DATACUTx: Configure how to handle return from RS485 devices.** 865 +))) 837 837 838 -AT+SEARCHx: Configure search command 867 +(% class="box infomessage" %) 868 +((( 869 +**AT+SEARCHx: Configure search command** 870 +))) 839 839 840 840 841 -* Downlink Payload: 873 +* **Downlink Payload:** 842 842 843 -0xAF downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 875 +**0xAF** downlink command can be used to set AT+COMMANDx or AT+DATACUTx. 844 844 845 -Note: if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 877 +(% style="color:red" %)**Note**(%%): if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink. 846 846 847 847 Format: AF MM NN LL XX XX XX XX YY 848 848 ... ... @@ -849,23 +849,23 @@ 849 849 Where: 850 850 851 851 * MM: the ATCOMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, 852 -* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 853 -* LL: The length of AT+COMMAND or AT+DATACUT command 884 +* NN: 0: no CRC; 1: add CRC-16/MODBUS ; 2: set the AT+DATACUT value. 885 +* LL: The length of AT+COMMAND or AT+DATACUT command 854 854 * XX XX XX XX: AT+COMMAND or AT+DATACUT command 855 -* YY: If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-BL will execute an uplink after got this command. 887 +* YY: If YY=0, RS485-BL will execute the downlink command without uplink; if YY=1, RS485-BL will execute an uplink after got this command. 856 856 857 -Example: 889 +**Example:** 858 858 859 -**AF 03 01 06 0A 05 00 04 00 01 00**: Same as AT+COMMAND3=0A 05 00 04 00 01,1 891 +(% style="color:#037691" %)**AF 03 01 06 0A 05 00 04 00 01 00**(%%): Same as AT+COMMAND3=0A 05 00 04 00 01,1 860 860 861 -**AF 03 02 06 10 01 05 06 09 0A 00**: Same as AT+DATACUT3=**16**,**1**,**5+6+9+10** 893 +(% style="color:#037691" %)**AF 03 02 06**(% style="color:orange" %)** 10 **(% style="color:red" %)**01 **(% style="color:green" %)**05 06 09 0A**(% style="color:#037691" %)** 00**(%%): Same as AT+DATACUT3=(% style="color:orange" %)**16**(%%),(% style="color:red" %)**1**(%%),(% style="color:green" %)**5+6+9+10** 862 862 863 -**AF 03 02 06 0B 02 05 07 08 0A 00**: Same as AT+DATACUT3=**11**,**2**,**5~~7+8~~10** 895 +(% style="color:#037691" %)**AF 03 02 06 **(% style="color:orange" %)**0B**(% style="color:red" %)** 02 **(% style="color:green" %)**05 07 08 0A **(% style="color:#037691" %)**00**(%%): Same as AT+DATACUT3=(% style="color:orange" %)**11**(%%),(% style="color:red" %)**2**(%%),(% style="color:green" %)**5~~7+8~~10** 864 864 865 865 866 -0xAB downlink command can be used for set AT+SEARCHx 898 +**0xAB** downlink command can be used for set AT+SEARCHx 867 867 868 -Example: **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 900 +**Example:** **AB aa 01 03 xx xx xx** (03 here means there are total 3 bytes after 03) So 869 869 870 870 * AB aa 01 03 xx xx xx same as AT+SEARCHaa=1,xx xx xx 871 871 * AB aa 02 03 xx xx xx 02 yy yy(03 means there are 3 bytes after 03, they are xx xx xx;02 means there are 2 bytes after 02, they are yy yy) so the commands ... ... @@ -873,83 +873,95 @@ 873 873 **AB aa 02 03 xx xx xx 02 yy yy** same as **AT+SEARCHaa=2,xx xx xx+yy yy** 874 874 875 875 876 -==== Fast command to handle MODBUS device ==== 877 877 909 +==== **Fast command to handle MODBUS device** ==== 910 + 878 878 AT+MBFUN is valid since v1.3 firmware version. The command is for fast configure to read Modbus devices. It is only valid for the devices which follow the [[MODBUS-RTU protocol>>url:https://www.modbustools.com/modbus.html]]. 879 879 880 880 This command is valid since v1.3 firmware version 881 881 882 882 883 -AT+MBFUN has only two value: 916 +**AT+MBFUN has only two value:** 884 884 885 -* AT+MBFUN=1: Enable Modbus reading. And get response base on the MODBUS return 918 +* **AT+MBFUN=1**: Enable Modbus reading. And get response base on the MODBUS return 886 886 887 887 AT+MBFUN=1, device can auto read the Modbus function code: 01, 02, 03 or 04. AT+MBFUN has lower priority vs AT+DATACUT command. If AT+DATACUT command is configured, AT+MBFUN will be ignore. 888 888 889 -* AT+MBFUN=0: Disable Modbus fast reading. 922 +* **AT+MBFUN=0**: Disable Modbus fast reading. 890 890 891 -Example: 924 +**Example:** 892 892 893 893 * AT+MBFUN=1 and AT+DATACUT1/AT+DATACUT2 are not configure (0,0,0). 894 894 * AT+COMMAND1= 01 03 00 10 00 08,1 ~-~-> read slave address 01 , function code 03, start address 00 01, quantity of registers 00 08. 895 895 * AT+COMMAND2= 01 02 00 40 00 10,1 ~-~-> read slave address 01 , function code 02, start address 00 40, quantity of inputs 00 10. 896 896 897 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image025.png]]930 +[[image:1654133913295-597.png]] 898 898 899 899 900 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image026.png]]933 +[[image:1654133954153-643.png]] 901 901 902 902 903 -* Downlink Commands: 936 +* **Downlink Commands:** 904 904 905 -A9 aa - àSame as AT+MBFUN=aa938 +**A9 aa** ~-~-> Same as AT+MBFUN=aa 906 906 907 907 908 -==== RS485 command timeout ==== 909 909 942 +==== **RS485 command timeout** ==== 943 + 910 910 Some Modbus device has slow action to send replies. This command is used to configure the RS485-BL to use longer time to wait for their action. 911 911 912 912 Default value: 0, range: 0 ~~ 5 seconds 913 913 914 914 915 -* AT Command: 949 +* **AT Command:** 916 916 917 -AT+CMDDLaa=hex(bb cc) 951 +(% class="box infomessage" %) 952 +((( 953 +**AT+CMDDLaa=hex(bb cc)** 954 +))) 918 918 919 -Example: 956 +**Example:** 920 920 921 921 **AT+CMDDL1=1000** to send the open time to 1000ms 922 922 923 923 924 -* Downlink Payload: 961 +* **Downlink Payload:** 925 925 926 926 0x AA aa bb cc 927 927 928 928 Same as: AT+CMDDLaa=hex(bb cc) 929 929 930 - Example: 967 + **Example:** 931 931 932 - 0xAA 01 03 E8 àSame as **AT+CMDDL1=1000 ms**969 + **0xAA 01 03 E8** ~-~-> Same as **AT+CMDDL1=1000 ms** 933 933 934 934 935 -==== [[Uplink>>path:#downlink_A8]] payload mode ==== 936 936 973 +==== **Uplink payload mode** ==== 974 + 937 937 Define to use one uplink or multiple uplinks for the sampling. 938 938 939 -The use of this command please see: [[Compose Uplink payload>> path:#DataUP]]977 +The use of this command please see: [[Compose Uplink payload>>||anchor="H3.3.4Composetheuplinkpayload"]] 940 940 941 -* AT Command: 979 +* **AT Command:** 942 942 943 -AT+DATAUP=0 981 +(% class="box infomessage" %) 982 +((( 983 +**AT+DATAUP=0** 984 +))) 944 944 945 -AT+DATAUP=1 986 +(% class="box infomessage" %) 987 +((( 988 +**AT+DATAUP=1** 989 +))) 946 946 947 947 948 -* Downlink Payload: 992 +* **Downlink Payload:** 949 949 950 -0xAD 00 àSame as AT+DATAUP=0994 +0xAD 00 **~-~->** Same as AT+DATAUP=0 951 951 952 -0xAD 01 àSame as AT+DATAUP=1996 +0xAD 01 **~-~->** Same as AT+DATAUP=1 953 953 954 954 955 955 ==== Manually trigger an Uplink ====
- 1654132684752-193.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +22.8 KB - Content
- 1654133913295-597.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +116.2 KB - Content
- 1654133954153-643.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.2 KB - Content