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
-
... ... @@ -7,12 +7,15 @@ 7 7 **RS485-BL – Waterproof RS485 to LoRaWAN Converter User Manual** 8 8 9 9 10 + 10 10 **Table of Contents:** 11 11 13 +{{toc/}} 12 12 13 13 14 14 15 15 18 + 16 16 = 1.Introduction = 17 17 18 18 == 1.1 What is RS485-BL RS485 to LoRaWAN Converter == ... ... @@ -22,19 +22,19 @@ 22 22 ))) 23 23 24 24 ((( 25 -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. 26 26 ))) 27 27 28 28 ((( 29 -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. 30 30 ))) 31 31 32 32 ((( 33 -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. 34 34 ))) 35 35 36 36 ((( 37 -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. 38 38 ))) 39 39 40 40 ((( ... ... @@ -51,8 +51,11 @@ 51 51 52 52 [[image:1652953304999-717.png||height="424" width="733"]] 53 53 57 + 58 + 54 54 == 1.2 Specifications == 55 55 61 + 56 56 **Hardware System:** 57 57 58 58 * STM32L072CZT6 MCU ... ... @@ -59,8 +59,6 @@ 59 59 * SX1276/78 Wireless Chip 60 60 * Power Consumption (exclude RS485 device): 61 61 ** Idle: 6uA@3.3v 62 - 63 -* 64 64 ** 20dB Transmit: 130mA@3.3v 65 65 66 66 **Interface for Model:** ... ... @@ -114,9 +114,12 @@ 114 114 115 115 [[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);"]] 116 116 121 + 117 117 == 1.6 Hardware Change log == 118 118 119 119 ((( 125 + 126 + 120 120 v1.4 121 121 ))) 122 122 ... ... @@ -140,6 +140,8 @@ 140 140 141 141 ((( 142 142 Release version 150 + 151 + 143 143 ))) 144 144 145 145 = 2. Pin mapping and Power ON Device = ... ... @@ -153,6 +153,7 @@ 153 153 154 154 The Left TXD and RXD are TTL interface for external sensor. TTL level is controlled by 3.3/5v Jumper. 155 155 165 + 156 156 = 3. Operation Mode = 157 157 158 158 == 3.1 How it works? == ... ... @@ -159,6 +159,8 @@ 159 159 160 160 ((( 161 161 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 + 162 162 ))) 163 163 164 164 == 3.2 Example to join LoRaWAN network == ... ... @@ -194,8 +194,6 @@ 194 194 ))) 195 195 196 196 197 - 198 - 199 199 [[image:image-20220519174512-1.png]] 200 200 201 201 [[image:image-20220519174512-2.png||height="328" width="731"]] ... ... @@ -219,10 +219,13 @@ 219 219 220 220 [[image:1652953568895-172.png||height="232" width="724"]] 221 221 232 + 222 222 == 3.3 Configure Commands to read data == 223 223 224 224 ((( 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. 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 + 226 226 ))) 227 227 228 228 === 3.3.1 onfigure UART settings for RS485 or TTL communication === ... ... @@ -323,8 +323,9 @@ 323 323 mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command 324 324 )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 325 325 326 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>> path:#AT_CFGDEV]].339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]]. 327 327 341 + 328 328 === 3.3.3 Configure read commands for each sampling === 329 329 330 330 ((( ... ... @@ -422,7 +422,7 @@ 422 422 423 423 **Examples:** 424 424 425 -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 426 426 427 427 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 428 428 ... ... @@ -430,7 +430,7 @@ 430 430 431 431 [[image:1653271044481-711.png]] 432 432 433 - 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 434 434 435 435 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 436 436 ... ... @@ -449,16 +449,18 @@ 449 449 * **c: define the position for valid value. ** 450 450 ))) 451 451 452 -Examples: 466 +**Examples:** 453 453 454 454 * Grab bytes: 455 455 456 456 [[image:1653271581490-837.png||height="313" width="722"]] 457 457 472 + 458 458 * Grab a section. 459 459 460 460 [[image:1653271648378-342.png||height="326" width="720"]] 461 461 477 + 462 462 * Grab different sections. 463 463 464 464 [[image:1653271657255-576.png||height="305" width="730"]] ... ... @@ -501,6 +501,7 @@ 501 501 502 502 [[image:1653271763403-806.png]] 503 503 520 + 504 504 === 3.3.4 Compose the uplink payload === 505 505 506 506 ((( ... ... @@ -508,7 +508,7 @@ 508 508 ))) 509 509 510 510 ((( 511 -(% style="color:# 4f81bd" %)**Examples: AT+DATAUP=0**528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0** 512 512 ))) 513 513 514 514 ((( ... ... @@ -520,7 +520,7 @@ 520 520 ))) 521 521 522 522 ((( 523 -(% 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** 524 524 ))) 525 525 526 526 ((( ... ... @@ -529,8 +529,12 @@ 529 529 530 530 [[image:1653272787040-634.png||height="515" width="719"]] 531 531 549 + 550 + 532 532 ((( 533 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1** 552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1** 553 + 554 + 534 534 ))) 535 535 536 536 ((( ... ... @@ -542,7 +542,7 @@ 542 542 ))) 543 543 544 544 ((( 545 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA 566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA** 546 546 ))) 547 547 548 548 1. ((( ... ... @@ -565,20 +565,20 @@ 565 565 566 566 So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA 567 567 568 -DATA1=RETURN1 Valid Value = ~(% style="background-color:#4f81bd;color:white" %)(% style="display:none" %) (%%)20 20 0a 33 90 41 569 569 570 -DATA 2=1^^st^^~~ 6^^th^^ byte ofValidvalueof RETURN10=~(% style="background-color:#4f81bd;color:white" %)(%style="display:none" %) (%%)02aa05810a20590 +DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41 571 571 572 -DATA 3=7^^th^^ ~~11^^th^^ bytesof Valid value of RETURN10~(% style="background-color:#4f81bd;color:white" %)(%style="display:none"%) (%%) 202020 2d 30592 +DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20 573 573 594 +DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30 574 574 575 575 576 576 Below are the uplink payloads: 577 577 578 -[[image: file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image021.png]]599 +[[image:1653272901032-107.png]] 579 579 580 580 581 -Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below: 602 +(% 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) 584 584 ... ... @@ -590,113 +590,154 @@ 590 590 591 591 592 592 593 -1. 594 -11. 595 -111. Uplink on demand 614 +=== 3.3.5 Uplink on demand === 596 596 616 +((( 597 597 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. 618 +))) 598 598 620 +((( 599 599 Downlink control command: 622 +))) 600 600 601 -[[0x08 command>>path:#downlink_08]]: Poll an uplink with current command set in RS485-BL. 624 +((( 625 +**0x08 command**: Poll an uplink with current command set in RS485-BL. 626 +))) 602 602 603 -[[0xA8 command>>path:#downlink_A8]]: Send a command to RS485-BL and uplink the output from sensors. 628 +((( 629 +**0xA8 command**: Send a command to RS485-BL and uplink the output from sensors. 604 604 631 + 632 +))) 605 605 634 +=== 3.3.6 Uplink on Interrupt === 606 606 607 -1. 608 -11. 609 -111. Uplink on Interrupt 636 +Put the interrupt sensor between 3.3v_out and GPIO ext. 610 610 611 - Put the interrupt sensor between 3.3v_out and GPIO ext.[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image022.png]]638 +[[image:1653273818896-432.png]] 612 612 640 + 641 +((( 613 613 AT+INTMOD=0 Disable Interrupt 643 +))) 614 614 645 +((( 615 615 AT+INTMOD=1 Interrupt trigger by rising or falling edge. 647 +))) 616 616 649 +((( 617 617 AT+INTMOD=2 Interrupt trigger by falling edge. ( Default Value) 651 +))) 618 618 653 +((( 619 619 AT+INTMOD=3 Interrupt trigger by rising edge. 620 620 656 + 657 +))) 621 621 622 -1. 623 -11. Uplink Payload 659 +== 3.4 Uplink Payload == 624 624 625 -|**Size(bytes)**|**2**|**1**|**Length depends on the return from the commands** 626 -|Value|((( 661 +(% border="1" style="background-color:#4f81bd; color:white; width:850px" %) 662 +|**Size(bytes)**|(% style="width:130px" %)**2**|(% style="width:93px" %)**1**|(% style="width:509px" %)**Length depends on the return from the commands** 663 +|Value|(% style="width:130px" %)((( 664 +((( 627 627 Battery(mV) 666 +))) 628 628 668 +((( 629 629 & 670 +))) 630 630 672 +((( 631 631 Interrupt _Flag 632 -)))|((( 674 +))) 675 +)))|(% style="width:93px" %)((( 633 633 PAYLOAD_VER 634 634 635 635 636 -)))|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. 679 +)))|(% 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. 637 637 638 638 Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors. 639 639 683 +((( 684 +{{{function Decoder(bytes, port) {}}} 685 +))) 640 640 641 -function Decoder(bytes, port) { 687 +((( 688 +{{{//Payload Formats of RS485-BL Deceive}}} 689 +))) 642 642 643 -~/~/Payload Formats of RS485-BL Deceive 691 +((( 692 +{{{return {}}} 693 +))) 644 644 645 -return { 695 +((( 696 +{{{ //Battery,units:V}}} 697 +))) 646 646 647 - ~/~/Battery,units:V 699 +((( 700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}} 701 +))) 648 648 649 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000, 703 +((( 704 +{{{ //GPIO_EXTI }}} 705 +))) 650 650 651 - ~/~/GPIO_EXTI 707 +((( 708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}} 709 +))) 652 652 653 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE", 711 +((( 712 +{{{ //payload of version}}} 713 +))) 654 654 655 - ~/~/payload of version 715 +((( 716 +{{{ Pay_ver:bytes[2],}}} 717 +))) 656 656 657 - Pay_ver:bytes[2], 719 +((( 720 +{{{ }; }}} 721 +))) 658 658 659 - }; 723 +((( 724 +} 660 660 661 - } 726 + 727 +))) 662 662 729 +((( 730 +TTN V3 uplink screen shot. 731 +))) 663 663 733 +[[image:1653274001211-372.png||height="192" width="732"]] 664 664 665 665 736 +== 3.5 Configure RS485-BL via AT or Downlink == 666 666 738 +User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands 667 667 740 +There are two kinds of Commands: 668 668 669 -T TNV3uplink screenshot.742 +* (% 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]] 670 670 671 - [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image023.png]]744 +* (% style="color:#4f81bd" %)**Sensor Related Commands**(%%): These commands are special designed for RS485-BL. User can see these commands below: 672 672 673 -1. 674 -11. Configure RS485-BL via AT or Downlink 675 675 676 - Usercan configure RS485-BLvia [[ATCommands >>path:#_Using_the_AT]]or LoRaWAN DownlinkCommands747 +=== 3.5.1 Common Commands: === 677 677 678 -There are t wokinds ofCommands: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]] 679 679 680 -* **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_Commands 681 681 682 - ***SensorRelatedCommands**: Thesecommandsare special designed for RS485-BL. User can see these commands below:752 +=== 3.5.2 Sensor related commands: === 683 683 684 -1. 685 -11. 686 -111. Common Commands: 754 +(% class="wikigeneratedid" %) 755 +==== ==== 687 687 688 - Theyshould be available foreachofDragino Sensors, such as: change uplink interval, reset device.For firmwarev1.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]]757 +==== **Choose Device Type (RS485 or TTL)** ==== 689 689 690 - 691 -1. 692 -11. 693 -111. Sensor related commands: 694 - 695 -==== Choose Device Type (RS485 or TTL) ==== 696 - 697 697 RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 698 698 699 -* AT Command 761 +* **AT Command** 700 700 701 701 **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins. 702 702 ... ... @@ -703,9 +703,9 @@ 703 703 **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins. 704 704 705 705 706 -* Downlink Payload 768 +* **Downlink Payload** 707 707 708 -**0A aa** àsame as AT+MOD=aa770 +**0A aa** ~-~-> same as AT+MOD=aa 709 709 710 710 711 711
- 1653274001211-372.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +91.4 KB - Content