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
-
... ... @@ -382,6 +382,8 @@ 382 382 ))) 383 383 ))) 384 384 385 + 386 + 385 385 === 3.3.2 Configure sensors === 386 386 387 387 ((( ... ... @@ -472,117 +472,209 @@ 472 472 After we got the valid value from each RS485 commands, we need to combine them together with the command **AT+DATAUP**. 473 473 ))) 474 474 477 +((( 475 475 **Examples:** 479 +))) 476 476 481 +((( 477 477 Below are examples for the how above AT Commands works. 483 +))) 478 478 485 +((( 479 479 **AT+COMMANDx : **This command will be sent to RS485/TTL devices during each sampling, Max command length is 14 bytes. The grammar is: 487 +))) 480 480 481 481 (% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %) 482 482 |(% style="width:498px" %)((( 491 +((( 483 483 **AT+COMMANDx=xx xx xx xx xx xx xx xx xx xx xx xx,m** 493 +))) 484 484 495 +((( 485 485 **xx xx xx xx xx xx xx xx xx xx xx xx: The RS485 command to be sent** 497 +))) 486 486 499 +((( 487 487 **m: 0: no CRC, 1: add CRC-16/MODBUS in the end of this command** 488 488 ))) 502 +))) 489 489 504 +((( 490 490 For example, if we have a RS485 sensor. The command to get sensor value is: 01 03 0B B8 00 02 46 0A. Where 01 03 0B B8 00 02 is the Modbus command to read the register 0B B8 where stored the sensor value. The 46 0A is the CRC-16/MODBUS which calculate manually. 506 +))) 491 491 508 +((( 492 492 In the RS485-BL, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same. 510 +))) 493 493 512 +((( 494 494 **AT+SEARCHx**: This command defines how to handle the return from AT+COMMANDx. 514 +))) 495 495 496 496 (% border="1" class="table-bordered" style="background-color:#4f81bd; color:white; width:500px" %) 497 497 |(% style="width:577px" %)((( 518 +((( 498 498 **AT+SEARCHx=aa,xx xx xx xx xx** 520 +))) 499 499 500 -* **aa: 1: prefix match mode; 2: prefix and suffix match mode**501 -* *xxxxxxxx xx:matchstring. Max 5 bytesforprefix and5 bytesfor suffix**522 +* ((( 523 +**aa: 1: prefix match mode; 2: prefix and suffix match mode** 502 502 ))) 525 +* ((( 526 +**xx xx xx xx xx: match string. Max 5 bytes for prefix and 5 bytes for suffix** 527 +))) 528 +))) 503 503 530 +((( 504 504 **Examples:** 532 +))) 505 505 534 +((( 506 506 1)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 536 +))) 507 507 538 +((( 508 508 If we set AT+SEARCH1=1,1E 56 34. (max 5 bytes for prefix) 540 +))) 509 509 542 +((( 510 510 The valid data will be all bytes after 1E 56 34 , so it is (% style="background-color:yellow" %)**2e 30 58 5f 36 41 30 31 00 49** 544 +))) 511 511 546 +((( 512 512 [[image:1653271044481-711.png]] 548 +))) 513 513 550 +((( 514 514 2)For a return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 552 +))) 515 515 554 +((( 516 516 If we set AT+SEARCH1=2, 1E 56 34+31 00 49 556 +))) 517 517 558 +((( 518 518 Device will search the bytes between 1E 56 34 and 31 00 49. So it is(% style="background-color:yellow" %) **2e 30 58 5f 36 41 30** 560 +))) 519 519 562 +((( 520 520 [[image:1653271276735-972.png]] 564 +))) 521 521 566 +((( 522 522 **AT+DATACUTx : **This command defines how to handle the return from AT+COMMANDx, max return length is 45 bytes. 568 +))) 523 523 524 524 (% style="background-color:#4f81bd; color:white; width:510px" %) 525 525 |(% style="width:726px" %)((( 572 +((( 526 526 **AT+DATACUTx=a,b,c** 574 +))) 527 527 528 -* **a: length for the return of AT+COMMAND** 529 -* **b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.** 530 -* **c: define the position for valid value. ** 576 +* ((( 577 +**a: length for the return of AT+COMMAND** 531 531 ))) 579 +* ((( 580 +**b:1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections.** 581 +))) 582 +* ((( 583 +**c: define the position for valid value. ** 584 +))) 585 +))) 532 532 587 +((( 533 533 **Examples:** 589 +))) 534 534 535 -* Grab bytes: 591 +* ((( 592 +Grab bytes: 593 +))) 536 536 595 +((( 537 537 [[image:1653271581490-837.png||height="313" width="722"]] 597 +))) 538 538 599 +((( 600 + 601 +))) 539 539 540 -* Grab a section. 603 +* ((( 604 +Grab a section. 605 +))) 541 541 607 +((( 542 542 [[image:1653271648378-342.png||height="326" width="720"]] 609 +))) 543 543 611 +((( 612 + 613 +))) 544 544 545 -* Grab different sections. 615 +* ((( 616 +Grab different sections. 617 +))) 546 546 619 +((( 547 547 [[image:1653271657255-576.png||height="305" width="730"]] 621 +))) 548 548 549 549 ((( 624 +((( 550 550 (% style="color:red" %)**Note:** 551 551 ))) 627 +))) 552 552 553 553 ((( 630 +((( 554 554 AT+SEARCHx and AT+DATACUTx can be used together, if both commands are set, RS485-BL will first process AT+SEARCHx on the return string and get a temporary string, and then process AT+DATACUTx on this temporary string to get the final payload. In this case, AT+DATACUTx need to set to format AT+DATACUTx=0,xx,xx where the return bytes set to 0. 555 555 ))) 633 +))) 556 556 557 557 ((( 636 +((( 558 558 **Example:** 559 559 ))) 639 +))) 560 560 561 561 ((( 642 +((( 562 562 (% style="color:red" %)AT+COMMAND1=11 01 1E D0,0 563 563 ))) 645 +))) 564 564 565 565 ((( 648 +((( 566 566 (% style="color:red" %)AT+SEARCH1=1,1E 56 34 567 567 ))) 651 +))) 568 568 569 569 ((( 654 +((( 570 570 (% style="color:red" %)AT+DATACUT1=0,2,1~~5 571 571 ))) 657 +))) 572 572 573 573 ((( 660 +((( 574 574 (% style="color:red" %)Return string from AT+COMMAND1: 16 0c 1e 56 34 2e 30 58 5f 36 41 30 31 00 49 575 575 ))) 663 +))) 576 576 577 577 ((( 666 +((( 578 578 (% style="color:red" %)String after SEARCH command: 2e 30 58 5f 36 41 30 31 00 49 579 579 ))) 669 +))) 580 580 581 581 ((( 672 +((( 582 582 (% style="color:red" %)Valid payload after DataCUT command: 2e 30 58 5f 36 583 583 ))) 675 +))) 584 584 677 +((( 585 585 [[image:1653271763403-806.png]] 679 +))) 586 586 587 587 588 588 === 3.3.4 Compose the uplink payload ===