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

From version 29.6
edited by Xiaoling
on 2022/06/01 18:01
Change comment: There is no comment for this version
To version 30.2
edited by Xiaoling
on 2022/06/02 09:18
Change comment: There is no comment for this version

Summary

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,6 +222,7 @@
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  (((
... ... @@ -328,8 +328,9 @@
328 328  mm: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command
329 329  )))|(% style="width:256px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
330 330  
331 -Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>path:#AT_CFGDEV]].
339 +Detail of AT+CFGDEV command see [[AT+CFGDEV detail>>||anchor="HRS485DebugCommand28AT2BCFGDEV29"]].
332 332  
341 +
333 333  === 3.3.3 Configure read commands for each sampling ===
334 334  
335 335  (((
... ... @@ -427,7 +427,7 @@
427 427  
428 428  **Examples:**
429 429  
430 -1. For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
439 +1For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
431 431  
432 432  If we set AT+SEARCH1=1,1E 56 34.      (max 5 bytes for prefix)
433 433  
... ... @@ -435,7 +435,7 @@
435 435  
436 436  [[image:1653271044481-711.png]]
437 437  
438 -1. For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
447 +2)For a return string from AT+COMMAND1:  16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49
439 439  
440 440  If we set AT+SEARCH1=2, 1E 56 34+31 00 49
441 441  
... ... @@ -454,16 +454,18 @@
454 454  * **c: define the position for valid value.  **
455 455  )))
456 456  
457 -Examples:
466 +**Examples:**
458 458  
459 459  * Grab bytes:
460 460  
461 461  [[image:1653271581490-837.png||height="313" width="722"]]
462 462  
472 +
463 463  * Grab a section.
464 464  
465 465  [[image:1653271648378-342.png||height="326" width="720"]]
466 466  
477 +
467 467  * Grab different sections.
468 468  
469 469  [[image:1653271657255-576.png||height="305" width="730"]]
... ... @@ -506,6 +506,7 @@
506 506  
507 507  [[image:1653271763403-806.png]]
508 508  
520 +
509 509  === 3.3.4 Compose the uplink payload ===
510 510  
511 511  (((
... ... @@ -513,7 +513,7 @@
513 513  )))
514 514  
515 515  (((
516 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=0**
528 +(% style="color:#037691" %)**Examples: AT+DATAUP=0**
517 517  )))
518 518  
519 519  (((
... ... @@ -525,7 +525,7 @@
525 525  )))
526 526  
527 527  (((
528 -(% 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**
529 529  )))
530 530  
531 531  (((
... ... @@ -534,8 +534,12 @@
534 534  
535 535  [[image:1653272787040-634.png||height="515" width="719"]]
536 536  
549 +
550 +
537 537  (((
538 -(% style="color:#4f81bd" %)**Examples: AT+DATAUP=1**
552 +(% style="color:#037691" %)**Examples: AT+DATAUP=1**
553 +
554 +
539 539  )))
540 540  
541 541  (((
... ... @@ -547,7 +547,7 @@
547 547  )))
548 548  
549 549  (((
550 -(% style="color:#4f81bd" %)Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA
566 +(% style="color:#4f81bd" %)**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**
551 551  )))
552 552  
553 553  1. (((
... ... @@ -570,6 +570,7 @@
570 570  
571 571  So totally there will be 3 uplinks for this sampling, each uplink includes 6 bytes DATA
572 572  
589 +
573 573  DATA1=RETURN1 Valid Value = (% style="background-color:#4f81bd; color:white" %) 20 20 0a 33 90 41
574 574  
575 575  DATA2=1^^st^^ ~~ 6^^th^^ byte of Valid value of RETURN10= (% style="background-color:#4f81bd; color:white" %)02 aa 05 81 0a 20
... ... @@ -576,10 +576,12 @@
576 576  
577 577  DATA3=7^^th^^ ~~ 11^^th^^ bytes of Valid value of RETURN10 =(% style="background-color:#4f81bd; color:white" %) 20 20 20 2d 30
578 578  
596 +
579 579  Below are the uplink payloads:
580 580  
581 581  [[image:1653272901032-107.png]]
582 582  
601 +
583 583  (% style="color:red" %)Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:
584 584  
585 585   ~* For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date)
... ... @@ -590,6 +590,8 @@
590 590  
591 591   ~* For all other bands: max 51 bytes for each uplink  ( so 51 -5 = 46 max valid date).
592 592  
612 +
613 +
593 593  === 3.3.5 Uplink on demand ===
594 594  
595 595  (((
... ... @@ -606,6 +606,8 @@
606 606  
607 607  (((
608 608  **0xA8 command**: Send a command to RS485-BL and uplink the output from sensors.
630 +
631 +
609 609  )))
610 610  
611 611  === 3.3.6 Uplink on Interrupt ===
... ... @@ -614,6 +614,7 @@
614 614  
615 615  [[image:1653273818896-432.png]]
616 616  
640 +
617 617  (((
618 618  AT+INTMOD=0  Disable Interrupt
619 619  )))
... ... @@ -628,6 +628,8 @@
628 628  
629 629  (((
630 630  AT+INTMOD=3  Interrupt trigger by rising edge.
655 +
656 +
631 631  )))
632 632  
633 633  == 3.4 Uplink Payload ==
... ... @@ -655,47 +655,49 @@
655 655  Below is the decoder for the first 3 bytes. The rest bytes are dynamic depends on different RS485 sensors.
656 656  
657 657  (((
658 -function Decoder(bytes, port) {
684 +{{{function Decoder(bytes, port) {}}}
659 659  )))
660 660  
661 661  (((
662 -~/~/Payload Formats of RS485-BL Deceive
688 +{{{//Payload Formats of RS485-BL Deceive}}}
663 663  )))
664 664  
665 665  (((
666 -return {
692 +{{{return {}}}
667 667  )))
668 668  
669 669  (((
670 - ~/~/Battery,units:V
696 +{{{ //Battery,units:V}}}
671 671  )))
672 672  
673 673  (((
674 - BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,
700 +{{{ BatV:((bytes[0]<<8 | bytes[1])&0x7fff)/1000,}}}
675 675  )))
676 676  
677 677  (((
678 - ~/~/GPIO_EXTI 
704 +{{{ //GPIO_EXTI }}}
679 679  )))
680 680  
681 681  (((
682 - EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",
708 +{{{ EXTI_Trigger:(bytes[0] & 0x80)? "TRUE":"FALSE",}}}
683 683  )))
684 684  
685 685  (((
686 - ~/~/payload of version
712 +{{{ //payload of version}}}
687 687  )))
688 688  
689 689  (((
690 - Pay_ver:bytes[2],
716 +{{{ Pay_ver:bytes[2],}}}
691 691  )))
692 692  
693 693  (((
694 - };
720 +{{{ }; }}}
695 695  )))
696 696  
697 697  (((
698 - }
724 +}
725 +
726 +
699 699  )))
700 700  
701 701  (((
... ... @@ -704,32 +704,33 @@
704 704  
705 705  [[image:1653274001211-372.png||height="192" width="732"]]
706 706  
735 +
707 707  == 3.5 Configure RS485-BL via AT or Downlink ==
708 708  
709 -User can configure RS485-BL via [[AT Commands >>path:#_​Using_the_AT]]or LoRaWAN Downlink Commands
738 +User can configure RS485-BL via AT Commands or LoRaWAN Downlink Commands
710 710  
711 711  There are two kinds of Commands:
712 712  
713 -* **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
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]]
714 714  
715 -* **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:
716 716  
717 -1.
718 -11.
719 -111. Common Commands:
720 720  
721 -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]]
722 722  
748 +=== 3.5.1 Common Commands: ===
723 723  
724 -1.
725 -11.
726 -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]]
727 727  
728 -==== Choose Device Type (RS485 or TTL) ====
729 729  
753 +=== 3.5.2 Sensor related commands: ===
754 +
755 +==== ====
756 +
757 +==== **Choose Device Type (RS485 or TTL)** ====
758 +
730 730  RS485-BL can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect.
731 731  
732 -* AT Command
761 +* **AT Command**
733 733  
734 734  **AT+MOD=1** ~/~/ Set to support RS485-MODBUS type sensors. User can connect multiply RS485 , Modbus sensors to the A / B pins.
735 735  
... ... @@ -736,17 +736,17 @@
736 736  **AT+MOD=2** ~/~/ Set to support TTL Level sensors, User can connect one TTL Sensor to the TXD/RXD/GND pins.
737 737  
738 738  
739 -* Downlink Payload
768 +* **Downlink Payload**
740 740  
741 -**0A aa**     à same as AT+MOD=aa
770 +**0A aa**  ~-~->  same as AT+MOD=aa
742 742  
743 743  
744 744  
745 -==== [[RS485 Debug Command>>path:#downlink_A8]] (AT+CFGDEV) ====
774 +==== **RS485 Debug Command (AT+CFGDEV)** ====
746 746  
747 747  This command is used to configure the RS485 or TTL sensors; they won’t be used during sampling.
748 748  
749 -* AT Command
778 +* **AT Command**
750 750  
751 751  AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m
752 752  
... ... @@ -753,9 +753,8 @@
753 753  m: 0: no CRC; 1: add CRC-16/MODBUS in the end of this command.
754 754  
755 755  
785 +* **Downlink Payload**
756 756  
757 -* Downlink Payload
758 -
759 759  Format: A8 MM NN XX XX XX XX YY
760 760  
761 761  Where:
... ... @@ -769,15 +769,15 @@
769 769  
770 770  To connect a Modbus Alarm with below commands.
771 771  
772 -* 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.
773 773  
774 -* 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.
775 775  
776 776  So if user want to use downlink command to control to RS485 Alarm, he can use:
777 777  
778 -**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
779 779  
780 -**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
781 781  
782 782  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.
783 783  
... ... @@ -786,7 +786,7 @@
786 786  
787 787  Check TTL Sensor return:
788 788  
789 -[[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image024.png]]
817 +[[image:1654132684752-193.png]]
790 790  
791 791  
792 792  
1654132684752-193.png
Author
... ... @@ -1,0 +1,1 @@
1 +XWiki.Xiaoling
Size
... ... @@ -1,0 +1,1 @@
1 +22.8 KB
Content