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, 1 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -10,6 +10,7 @@ 10 10 11 11 **Table of Contents:** 12 12 13 +{{toc/}} 13 13 14 14 15 15 ... ... @@ -24,19 +24,19 @@ 24 24 ))) 25 25 26 26 ((( 27 -The Dragino RS485-BL is a **RS485 / UART to LoRaWAN Converter** for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-BL converter, and configure RS485-BL to periodically read sensor data and upload via LoRaWAN network to IoT server. 28 +The Dragino RS485-BL is a (% style="color:blue" %)**RS485 / UART to LoRaWAN Converter**(%%) for Internet of Things solutions. User can connect RS485 or UART sensor to RS485-BL converter, and configure RS485-BL to periodically read sensor data and upload via LoRaWAN network to IoT server. 28 28 ))) 29 29 30 30 ((( 31 -RS485-BL can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-BL provides **a 3.3v output** and** a 5v output** to power external sensors. Both output voltages are controllable to minimize the total system power consumption. 32 +RS485-BL can interface to RS485 sensor, 3.3v/5v UART sensor or interrupt sensor. RS485-BL provides (% style="color:blue" %)**a 3.3v output**(%%) and** (% style="color:blue" %)a 5v output(%%)** to power external sensors. Both output voltages are controllable to minimize the total system power consumption. 32 32 ))) 33 33 34 34 ((( 35 -RS485-BL is IP67 **waterproof** and powered by **8500mAh Li-SOCI2 battery**, it is designed for long term use for several years. 36 +RS485-BL is IP67 (% style="color:blue" %)**waterproof**(%%) and powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), it is designed for long term use for several years. 36 36 ))) 37 37 38 38 ((( 39 -RS485-BL runs standard **LoRaWAN 1.0.3 in Class A**. It can reach long transfer range and easy to integrate with LoRaWAN compatible gateway and IoT server. 40 +RS485-BL runs standard (% style="color:blue" %)**LoRaWAN 1.0.3 in Class A**(%%). It can reach long transfer range and easy to integrate with LoRaWAN compatible gateway and IoT server. 40 40 ))) 41 41 42 42 ((( ... ... @@ -53,8 +53,11 @@ 53 53 54 54 [[image:1652953304999-717.png||height="424" width="733"]] 55 55 57 + 58 + 56 56 == 1.2 Specifications == 57 57 61 + 58 58 **Hardware System:** 59 59 60 60 * STM32L072CZT6 MCU ... ... @@ -61,8 +61,6 @@ 61 61 * SX1276/78 Wireless Chip 62 62 * Power Consumption (exclude RS485 device): 63 63 ** Idle: 6uA@3.3v 64 - 65 -* 66 66 ** 20dB Transmit: 130mA@3.3v 67 67 68 68 **Interface for Model:** ... ... @@ -116,9 +116,12 @@ 116 116 117 117 [[RS485-BL Image files – Download link and Change log>>url:http://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/RS485-BL/Firmware/||style="background-color: rgb(255, 255, 255);"]] 118 118 121 + 119 119 == 1.6 Hardware Change log == 120 120 121 121 ((( 125 + 126 + 122 122 v1.4 123 123 ))) 124 124 ... ... @@ -142,6 +142,8 @@ 142 142 143 143 ((( 144 144 Release version 150 + 151 + 145 145 ))) 146 146 147 147 = 2. Pin mapping and Power ON Device = ... ... @@ -155,6 +155,7 @@ 155 155 156 156 The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper. 157 157 165 + 158 158 = 3. Operation Mode = 159 159 160 160 == 3.1 How it works? == ... ... @@ -161,6 +161,8 @@ 161 161 162 162 ((( 163 163 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. 172 + 173 + 164 164 ))) 165 165 166 166 == 3.2 Example to join LoRaWAN network == ... ... @@ -196,8 +196,6 @@ 196 196 ))) 197 197 198 198 199 - 200 - 201 201 [[image:image-20220519174512-1.png]] 202 202 203 203 [[image:image-20220519174512-2.png||height="328" width="731"]] ... ... @@ -221,10 +221,13 @@ 221 221 222 222 [[image:1652953568895-172.png||height="232" width="724"]] 223 223 232 + 224 224 == 3.3 Configure Commands to read data == 225 225 226 226 ((( 227 -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. 236 +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. 237 + 238 + 228 228 ))) 229 229 230 230 === 3.3.1 onfigure UART settings for RS485 or TTL communication === ... ... @@ -325,8 +325,9 @@ 325 325 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 326 326 )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 327 327 328 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>> path:#AT_CFGDEV]].339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 329 329 341 + 330 330 === 3.3.3 Configure read commands for each sampling === 331 331 332 332 ((( ... ... @@ -424,7 +424,7 @@ 424 424 425 425 **Examples:** 426 426 427 -1 .For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49439 +1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 428 428 429 429 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 430 430 ... ... @@ -432,7 +432,7 @@ 432 432 433 433 [[image:1653271044481-711.png]] 434 434 435 - 1.For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49447 +2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 436 436 437 437 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 438 438 ... ... @@ -451,16 +451,18 @@ 451 451 * **c: define the position for valid value. ** 452 452 ))) 453 453 454 -Examples: 466 +**Examples:** 455 455 456 456 * Grab bytes: 457 457 458 458 [[image:1653271581490-837.png||height="313" width="722"]] 459 459 472 + 460 460 * Grab a section. 461 461 462 462 [[image:1653271648378-342.png||height="326" width="720"]] 463 463 477 + 464 464 * Grab different sections. 465 465 466 466 [[image:1653271657255-576.png||height="305" width="730"]] ... ... @@ -503,6 +503,7 @@ 503 503 504 504 [[image:1653271763403-806.png]] 505 505 520 + 506 506 === 3.3.4 Compose the uplink payload === 507 507 508 508 ((( ... ... @@ -510,7 +510,7 @@ 510 510 ))) 511 511 512 512 ((( 513 -(% style="color:# 4f81bd" %)**Examples: AT+DATAUP=0**528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0** 514 514 ))) 515 515 516 516 ((( ... ... @@ -522,7 +522,7 @@ 522 522 ))) 523 523 524 524 ((( 525 -(% 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** 526 526 ))) 527 527 528 528 ((( ... ... @@ -531,8 +531,12 @@ 531 531 532 532 [[image:1653272787040-634.png||height="515" width="719"]] 533 533 549 + 550 + 534 534 ((( 535 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1** 552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1** 553 + 554 + 536 536 ))) 537 537 538 538 ((( ... ... @@ -544,7 +544,7 @@ 544 544 ))) 545 545 546 546 ((( 547 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA** 548 548 ))) 549 549 550 550 1. ((( ... ... @@ -567,6 +567,7 @@ 567 567 568 568 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 569 569 589 + 570 570 DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41 571 571 572 572 DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20 ... ... @@ -573,10 +573,12 @@ 573 573 574 574 DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30 575 575 596 + 576 576 Below are the uplink payloads: 577 577 578 578 [[image:1653272901032-107.png]] 579 579 601 + 580 580 (% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 581 581 582 582 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) ... ... @@ -587,6 +587,8 @@ 587 587 588 588 ~* For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 589 589 612 + 613 + 590 590 === 3.3.5 Uplink on demand === 591 591 592 592 ((( ... ... @@ -603,6 +603,8 @@ 603 603 604 604 ((( 605 605 **0xA8 command**: Send a command to RS485-BL and uplink the output from sensors. 630 + 631 + 606 606 ))) 607 607 608 608 === 3.3.6 Uplink on Interrupt === ... ... @@ -611,6 +611,7 @@ 611 611 612 612 [[image:1653273818896-432.png]] 613 613 640 + 614 614 ((( 615 615 AT+INTMOD=0 Disable Interrupt 616 616 ))) ... ... @@ -625,6 +625,8 @@ 625 625 626 626 ((( 627 627 AT+INTMOD=3 Interrupt trigger by rising edge. 655 + 656 + 628 628 ))) 629 629 630 630 == 3.4 Uplink Payload == ... ... @@ -652,47 +652,49 @@ 652 652 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 653 653 654 654 ((( 655 -function Decoder(bytes, port) { 684 +{{{function Decoder(bytes, port) {}}} 656 656 ))) 657 657 658 658 ((( 659 - ~/~/Payload Formats of RS485-BL Deceive688 +{{{//Payload Formats of RS485-BL Deceive}}} 660 660 ))) 661 661 662 662 ((( 663 -return { 692 +{{{return {}}} 664 664 ))) 665 665 666 666 ((( 667 - ~/~/Battery,units:V696 +{{{ //Battery,units:V}}} 668 668 ))) 669 669 670 670 ((( 671 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}} 672 672 ))) 673 673 674 674 ((( 675 - ~/~/GPIO_EXTI704 +{{{ //GPIO_EXTI }}} 676 676 ))) 677 677 678 678 ((( 679 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}} 680 680 ))) 681 681 682 682 ((( 683 - ~/~/payload of version712 +{{{ //payload of version}}} 684 684 ))) 685 685 686 686 ((( 687 - Pay_ver:bytes[2], 716 +{{{ Pay_ver:bytes[2],}}} 688 688 ))) 689 689 690 690 ((( 691 - }; 720 +{{{ }; }}} 692 692 ))) 693 693 694 694 ((( 695 - } 724 +} 725 + 726 + 696 696 ))) 697 697 698 698 ((( ... ... @@ -701,32 +701,33 @@ 701 701 702 702 [[image:1653274001211-372.png||height="192" width="732"]] 703 703 735 + 704 704 == 3.5 Configure RS485-BL via AT or Downlink == 705 705 706 -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 707 707 708 708 There are two kinds of Commands: 709 709 710 -* **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]] 711 711 712 -* **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: 713 713 714 -1. 715 -11. 716 -111. Common Commands: 717 717 718 -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]] 719 719 748 +=== 3.5.1 Common Commands: === 720 720 721 -1. 722 -11. 723 -111. Sensor related commands: 750 +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]] 724 724 725 -==== Choose Device Type (RS485 or TTL) ==== 726 726 753 +=== 3.5.2 Sensor related commands: === 754 + 755 +==== ==== 756 + 757 +==== **Choose Device Type (RS485 or TTL)** ==== 758 + 727 727 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 728 728 729 -* AT Command 761 +* **AT Command** 730 730 731 731 **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 732 732 ... ... @@ -733,17 +733,17 @@ 733 733 **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 734 734 735 735 736 -* Downlink Payload 768 +* **Downlink Payload** 737 737 738 -**0A aa** àsame as AT+MOD=aa770 +**0A aa** ~-~-> same as AT+MOD=aa 739 739 740 740 741 741 742 -==== [[RS485 Debug Command>>path:#downlink_A8]](AT+CFGDEV) ====774 +==== **RS485 Debug Command (AT+CFGDEV)** ==== 743 743 744 744 This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling. 745 745 746 -* AT Command 778 +* **AT Command** 747 747 748 748 AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 749 749 ... ... @@ -750,9 +750,8 @@ 750 750 m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command. 751 751 752 752 785 +* **Downlink Payload** 753 753 754 -* Downlink Payload 755 - 756 756 Format: A8 MM NN XX XX XX XX YY 757 757 758 758 Where: ... ... @@ -766,15 +766,15 @@ 766 766 767 767 To connect a Modbus Alarm with below commands. 768 768 769 -* 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. 800 +* 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. 770 770 771 -* 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. 802 +* 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. 772 772 773 773 So if user want to use downlink command to control to RS485 Alarm, he can use: 774 774 775 -**A8 01 06 0A 05 00 04 00 01 00**: to activate the RS485 Alarm 806 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 01 00**(%%): to activate the RS485 Alarm 776 776 777 -**A8 01 06 0A 05 00 04 00 00 00**: to deactivate the RS485 Alarm 808 +(% style="color:#037691" %)**A8 01 06 0A 05 00 04 00 00 00**(%%): to deactivate the RS485 Alarm 778 778 779 779 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. 780 780 ... ... @@ -783,7 +783,7 @@ 783 783 784 784 Check TTL Sensor return: 785 785 786 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]817 +[[image:1654132684752-193.png]] 787 787 788 788 789 789
- 1654132684752-193.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +22.8 KB - Content