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)
Details
- Page properties
-
- Content
-
... ... @@ -25,19 +25,19 @@ 25 25 ))) 26 26 27 27 ((( 28 -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. 29 29 ))) 30 30 31 31 ((( 32 -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. 33 33 ))) 34 34 35 35 ((( 36 -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. 37 37 ))) 38 38 39 39 ((( 40 -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. 41 41 ))) 42 42 43 43 ((( ... ... @@ -54,8 +54,11 @@ 54 54 55 55 [[image:1652953304999-717.png||height="424" width="733"]] 56 56 57 + 58 + 57 57 == 1.2 Specifications == 58 58 61 + 59 59 **Hardware System:** 60 60 61 61 * STM32L072CZT6 MCU ... ... @@ -62,8 +62,6 @@ 62 62 * SX1276/78 Wireless Chip 63 63 * Power Consumption (exclude RS485 device): 64 64 ** Idle: 6uA@3.3v 65 - 66 -* 67 67 ** 20dB Transmit: 130mA@3.3v 68 68 69 69 **Interface for Model:** ... ... @@ -117,9 +117,12 @@ 117 117 118 118 [[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);"]] 119 119 121 + 120 120 == 1.6 Hardware Change log == 121 121 122 122 ((( 125 + 126 + 123 123 v1.4 124 124 ))) 125 125 ... ... @@ -143,6 +143,8 @@ 143 143 144 144 ((( 145 145 Release version 150 + 151 + 146 146 ))) 147 147 148 148 = 2. Pin mapping and Power ON Device = ... ... @@ -156,6 +156,7 @@ 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 165 + 159 159 = 3. Operation Mode = 160 160 161 161 == 3.1 How it works? == ... ... @@ -162,6 +162,8 @@ 162 162 163 163 ((( 164 164 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 + 165 165 ))) 166 166 167 167 == 3.2 Example to join LoRaWAN network == ... ... @@ -197,8 +197,6 @@ 197 197 ))) 198 198 199 199 200 - 201 - 202 202 [[image:image-20220519174512-1.png]] 203 203 204 204 [[image:image-20220519174512-2.png||height="328" width="731"]] ... ... @@ -222,10 +222,13 @@ 222 222 223 223 [[image:1652953568895-172.png||height="232" width="724"]] 224 224 232 + 225 225 == 3.3 Configure Commands to read data == 226 226 227 227 ((( 228 -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 + 229 229 ))) 230 230 231 231 === 3.3.1 onfigure UART settings for RS485 or TTL communication === ... ... @@ -326,8 +326,9 @@ 326 326 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 327 327 )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 328 328 329 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>> path:#AT_CFGDEV]].339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 330 330 341 + 331 331 === 3.3.3 Configure read commands for each sampling === 332 332 333 333 ((( ... ... @@ -425,7 +425,7 @@ 425 425 426 426 **Examples:** 427 427 428 -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 429 429 430 430 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 431 431 ... ... @@ -433,7 +433,7 @@ 433 433 434 434 [[image:1653271044481-711.png]] 435 435 436 - 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 437 437 438 438 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 439 439 ... ... @@ -452,16 +452,18 @@ 452 452 * **c: define the position for valid value. ** 453 453 ))) 454 454 455 -Examples: 466 +**Examples:** 456 456 457 457 * Grab bytes: 458 458 459 459 [[image:1653271581490-837.png||height="313" width="722"]] 460 460 472 + 461 461 * Grab a section. 462 462 463 463 [[image:1653271648378-342.png||height="326" width="720"]] 464 464 477 + 465 465 * Grab different sections. 466 466 467 467 [[image:1653271657255-576.png||height="305" width="730"]] ... ... @@ -504,6 +504,7 @@ 504 504 505 505 [[image:1653271763403-806.png]] 506 506 520 + 507 507 === 3.3.4 Compose the uplink payload === 508 508 509 509 ((( ... ... @@ -511,7 +511,7 @@ 511 511 ))) 512 512 513 513 ((( 514 -(% style="color:# 4f81bd" %)**Examples: AT+DATAUP=0**528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0** 515 515 ))) 516 516 517 517 ((( ... ... @@ -523,7 +523,7 @@ 523 523 ))) 524 524 525 525 ((( 526 -(% 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** 527 527 ))) 528 528 529 529 ((( ... ... @@ -532,8 +532,12 @@ 532 532 533 533 [[image:1653272787040-634.png||height="515" width="719"]] 534 534 549 + 550 + 535 535 ((( 536 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1** 552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1** 553 + 554 + 537 537 ))) 538 538 539 539 ((( ... ... @@ -545,7 +545,7 @@ 545 545 ))) 546 546 547 547 ((( 548 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA** 549 549 ))) 550 550 551 551 1. ((( ... ... @@ -568,6 +568,7 @@ 568 568 569 569 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 570 570 589 + 571 571 DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41 572 572 573 573 DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20 ... ... @@ -574,10 +574,12 @@ 574 574 575 575 DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30 576 576 596 + 577 577 Below are the uplink payloads: 578 578 579 579 [[image:1653272901032-107.png]] 580 580 601 + 581 581 (% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 582 582 583 583 ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) ... ... @@ -588,6 +588,8 @@ 588 588 589 589 ~* For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). 590 590 612 + 613 + 591 591 === 3.3.5 Uplink on demand === 592 592 593 593 ((( ... ... @@ -604,6 +604,8 @@ 604 604 605 605 ((( 606 606 **0xA8 command**: Send a command to RS485-BL and uplink the output from sensors. 630 + 631 + 607 607 ))) 608 608 609 609 === 3.3.6 Uplink on Interrupt === ... ... @@ -612,6 +612,7 @@ 612 612 613 613 [[image:1653273818896-432.png]] 614 614 640 + 615 615 ((( 616 616 AT+INTMOD=0 Disable Interrupt 617 617 ))) ... ... @@ -626,6 +626,8 @@ 626 626 627 627 ((( 628 628 AT+INTMOD=3 Interrupt trigger by rising edge. 655 + 656 + 629 629 ))) 630 630 631 631 == 3.4 Uplink Payload == ... ... @@ -653,47 +653,49 @@ 653 653 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 654 654 655 655 ((( 656 -function Decoder(bytes, port) { 684 +{{{function Decoder(bytes, port) {}}} 657 657 ))) 658 658 659 659 ((( 660 - ~/~/Payload Formats of RS485-BL Deceive688 +{{{//Payload Formats of RS485-BL Deceive}}} 661 661 ))) 662 662 663 663 ((( 664 -return { 692 +{{{return {}}} 665 665 ))) 666 666 667 667 ((( 668 - ~/~/Battery,units:V696 +{{{ //Battery,units:V}}} 669 669 ))) 670 670 671 671 ((( 672 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}} 673 673 ))) 674 674 675 675 ((( 676 - ~/~/GPIO_EXTI704 +{{{ //GPIO_EXTI }}} 677 677 ))) 678 678 679 679 ((( 680 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}} 681 681 ))) 682 682 683 683 ((( 684 - ~/~/payload of version712 +{{{ //payload of version}}} 685 685 ))) 686 686 687 687 ((( 688 - Pay_ver:bytes[2], 716 +{{{ Pay_ver:bytes[2],}}} 689 689 ))) 690 690 691 691 ((( 692 - }; 720 +{{{ }; }}} 693 693 ))) 694 694 695 695 ((( 696 - } 724 +} 725 + 726 + 697 697 ))) 698 698 699 699 ((( ... ... @@ -702,32 +702,33 @@ 702 702 703 703 [[image:1653274001211-372.png||height="192" width="732"]] 704 704 735 + 705 705 == 3.5 Configure RS485-BL via AT or Downlink == 706 706 707 -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 708 708 709 709 There are two kinds of Commands: 710 710 711 -* **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]] 712 712 713 -* **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: 714 714 715 -1. 716 -11. 717 -111. Common Commands: 718 718 719 - Theyshould be available for each of Dragino Sensors, such as: change uplink interval, reset device.For firmware v1.3,user can find what commoncommandsit 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]]747 +=== 3.5.1 Common Commands: === 720 720 749 +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]] 721 721 722 -1. 723 -11. 724 -111. Sensor related commands: 725 725 726 -=== =ChooseDeviceType (RS485orTTL)====752 +=== 3.5.2 Sensor related commands: === 727 727 754 +(% class="wikigeneratedid" %) 755 +==== ==== 756 + 757 +==== **Choose Device Type (RS485 or TTL)** ==== 758 + 728 728 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 729 729 730 -* AT Command 761 +* **AT Command** 731 731 732 732 **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 733 733 ... ... @@ -734,9 +734,9 @@ 734 734 **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 735 735 736 736 737 -* Downlink Payload 768 +* **Downlink Payload** 738 738 739 -**0A aa** àsame as AT+MOD=aa770 +**0A aa** ~-~-> same as AT+MOD=aa 740 740 741 741 742 742