Changes for page RS485-LN – RS485 to LoRaWAN Converter User Manual
Last modified by Bei Jinggeng on 2025/01/10 15:06
Summary
-
Page properties (2 modified, 0 added, 0 removed)
-
Attachments (0 modified, 2 added, 0 removed)
Details
- Page properties
-
- Author
-
... ... @@ -1,1 +1,1 @@ 1 -XWiki. Xiaoling1 +XWiki.Saxer - Content
-
... ... @@ -38,7 +38,7 @@ 38 38 ))) 39 39 40 40 ((( 41 -RS485-LN allows user to (% style="color:blue" %)**monitor / control RS485 devices**(%%) and reach extremely long ranges. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. It targets professional wireless sensor network applications such as irrigation systems, smart metering, smart cities, smartphone detection,building automation, and so on.41 +RS485-LN allows user to (% style="color:blue" %)**monitor / control RS485 devices**(%%) and reach extremely long ranges. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. It targets professional wireless sensor network applications such as irrigation systems, smart metering, smart cities, building automation, and so on. 42 42 ))) 43 43 44 44 ((( ... ... @@ -208,7 +208,7 @@ 208 208 ))) 209 209 ))) 210 210 211 -(% aria-label="1652953462722-299.png image widget" contenteditable="false" role="region"tabindex="-1" %)[[image:1652953462722-299.png||data-widget="image"]](% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %)211 +(% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]][[image:image-20230425175410-2.png]](% title="Click and drag to resize" %) 212 212 213 213 214 214 ((( ... ... @@ -255,79 +255,89 @@ 255 255 (% aria-label="1652953568895-172.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:1652953568895-172.png||data-widget="image" height="232" width="724"]](% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) 256 256 257 257 258 -== 3.3 Configure Commandstoreaddata==258 +== 3.3 Configure Device to Read RS485 Sensors == 259 259 260 260 261 -((( 262 -((( 263 -((( 264 -There are plenty of RS485 devices in the market and each device has different command to read the valid data. To support these devices in flexible, RS485-LN supports flexible command set. User can use [[AT Commands>>||anchor="H3.5ConfigureRS485-LNviaATorDownlink"]] or LoRaWAN Downlink Command to configure what commands RS485-LN should send for each sampling and how to handle the return from RS485 devices. 261 +There are plenty of RS485 and TTL level devices in the market and each device has different commands to read the valid data. To support these devices in most flexible, RS485-LN supports flexible command set. User can use [[Dragino RS485 Tool>>url:https://www.dropbox.com/sh/us9qecn39fwt8n1/AABREdqUCzEmJMRrfuWuXasoa?dl=0]], [[AT Commands or LoRaWAN Downlink>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LB_Waterproof_RS485UART_to_LoRaWAN_Converter/#H3.5ConfigureRS485-LBviaATorDownlink]] Command to configure how RS485-LN should read the sensor and how to handle the return from RS485 or TTL sensors. 265 265 266 - 267 -))) 268 -))) 269 269 270 270 ((( 271 271 ((( 266 +((( 272 272 (% style="color:red" %)**Note: below description and commands are for firmware version >v1.1, if you have firmware version v1.0. Please check the [[user manual v1.0>>url:http://www.dragino.com/downloads/index.php?dir=RS485-LN/&file=RS485-LN_UserManual_v1.0.1.pdf]] or upgrade the firmware to v1.1** 273 273 ))) 274 274 275 - 270 +=== === 271 + 272 +=== 3.3.1 Method 1 ~-~- via RS485 Configure Tool === 273 + 274 +Use the RS485 Configure tool is the recommand method. Please see the instruction of how to use the tool: 275 + 276 +* **[[RS485 Configure Tool Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/RS485_Configure_Tool/]]** 277 + 278 +[[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LB_Waterproof_RS485UART_to_LoRaWAN_Converter/WebHome/image-20231127144411-1.png?width=494&height=368&rev=1.1||alt="image-20231127144411-1.png" height="368" width="494"]] 279 + 280 +=== === 281 + 282 +=== 3.3.2 Method 2 ~-~- via AT Commands === 276 276 ))) 277 277 ))) 278 278 279 -=== 3.3.1 Configure UART settings for RS485 or TTL communication === 286 +==== 3.3.2.1 Configure UART settings for RS485 or TTL communication ==== 280 280 288 +RS485-LN can connect to either RS485 sensors or TTL sensor. User need to specify what type of sensor need to connect. 281 281 282 282 To use RS485-LN to read data from RS485 sensors, connect the RS485-LN A/B traces to the sensors. And user need to make sure RS485-LN use the match UART setting to access the sensors. The related commands for UART settings are: 283 283 284 - 285 285 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %) 286 -|=(% style="width: 1 19px; background-color:rgb(217, 226, 243);rgb(0, 112, 192);" %)(((293 +|=(% style="width: 126px; background-color:#D9E2F3;color:#0070C0" %)((( 287 287 **AT Commands** 288 -)))|=(% style="width: 1 16px; background-color:rgb(217, 226, 243);rgb(0, 112, 192);" %)(((295 +)))|=(% style="width: 187px; background-color:#D9E2F3;color:#0070C0" %)((( 289 289 **Description** 290 -)))|=(% style="width: 19 0px;background-color:#D9E2F3;color:#0070C0" %)(((297 +)))|=(% style="width: 197px;background-color:#D9E2F3;color:#0070C0" %)((( 291 291 **Example** 292 292 ))) 293 -|(% style="width:119px" %)((( 300 +|(% style="width:126px" %)((( 301 + 302 + 303 +((( 294 294 AT+BAUDR 295 -)))|(% style="width:116px" %)((( 305 +))) 306 +)))|(% style="width:177px" %)((( 296 296 Set the baud rate (for RS485 connection). Default Value is: 9600. 297 -)))|(% style="width:19 0px" %)(((308 +)))|(% style="width:193px" %)((( 298 298 ((( 299 299 AT+BAUDR=9600 300 300 ))) 301 301 302 302 ((( 303 -Options: (1200,2400,4800,14400,19200,115200) 314 +Options: (1200,2400,4800, 315 +14400,19200,115200) 304 304 ))) 305 305 ))) 306 -|(% style="width:1 19px" %)(((318 +|(% style="width:126px" %)((( 307 307 AT+PARITY 308 -)))|(% style="width:1 16px" %)(((320 +)))|(% style="width:177px" %)((( 309 309 Set UART parity (for RS485 connection) 310 -)))|(% style="width:19 0px" %)(((322 +)))|(% style="width:193px" %)((( 311 311 ((( 312 312 AT+PARITY=0 313 313 ))) 314 314 315 315 ((( 316 -Option: 0: no parity, 1: odd parity, 2: even parity 328 +Option: 0: no parity, 329 +1: odd parity, 330 +2: even parity 317 317 ))) 318 318 ))) 319 -|(% style="width:1 19px" %)(((333 +|(% style="width:126px" %)((( 320 320 AT+STOPBIT 321 -)))|(% style="width:1 16px" %)(((335 +)))|(% style="width:177px" %)((( 322 322 ((( 323 323 Set serial stopbit (for RS485 connection) 324 324 ))) 325 - 339 +)))|(% style="width:193px" %)((( 326 326 ((( 327 - 328 -))) 329 -)))|(% style="width:190px" %)((( 330 -((( 331 331 AT+STOPBIT=0 for 1bit 332 332 ))) 333 333 ... ... @@ -340,16 +340,12 @@ 340 340 ))) 341 341 ))) 342 342 343 -=== 3.3. 2Configure sensors ===353 +=== 3.3.3 Configure sensors === 344 344 345 345 346 346 ((( 347 -((( 348 348 Some sensors might need to configure before normal operation. User can configure such sensor via PC and RS485 adapter or through RS485-LN AT Commands (% style="color:#4f81bd" %)**AT+CFGDEV**(%%). Each (% style="color:#4f81bd" %)**AT+CFGDEV **(%%)equals to send a RS485 command to sensors. This command will only run when user input it and won't run during each sampling. 349 - 350 - 351 351 ))) 352 -))) 353 353 354 354 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %) 355 355 |=(% style="width: 122px; background-color:#D9E2F3;color:#0070C0" %)**AT Commands**|=(% style="width: 198px; background-color:#D9E2F3;color:#0070C0" %)**Description**|=(% style="width: 190px;background-color:#D9E2F3;color:#0070C0" %)**Example** ... ... @@ -367,7 +367,7 @@ 367 367 ))) 368 368 )))|(% style="width:190px" %)AT+CFGDEV=xx xx xx xx xx xx xx xx xx xx xx xx,m 369 369 370 -=== 3.3. 3Configure read commands for each sampling ===376 +=== 3.3.4 Configure read commands for each sampling === 371 371 372 372 373 373 ((( ... ... @@ -411,6 +411,20 @@ 411 411 In the RS485-LN, we should use this command AT+COMMAND1=01 03 0B B8 00 02,1 for the same. 412 412 413 413 420 +If a single command exceeds 14 bytes, you can use the command splicing function. 421 + 422 +When AT+CMDDLx=1, the commands of AT+COMMANDx and AT+COMMAND(x+1) will be merged. 423 + 424 + 425 +**Examples:** To send 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F data it should be configured: 426 + 427 + AT+COMMAND1=00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D,0 428 + 429 + AT+COMMAND1=1 430 + 431 + AT+COMMAND2=0E 0F,0 432 + 433 + 414 414 (% style="color:#037691" %)**AT+DATACUTx **(%%)**: **This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes. 415 415 416 416 (% border="1" style="background-color:#f2f2f2; width:510px" %) ... ... @@ -444,7 +444,7 @@ 444 444 445 445 ))) 446 446 447 -=== 3.3. 4Compose the uplink payload ===467 +=== 3.3.5 Compose the uplink payload === 448 448 449 449 450 450 ((( ... ... @@ -529,7 +529,7 @@ 529 529 (% aria-label="1654157178836-407.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:1654157178836-407.png||data-widget="image"]](% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) 530 530 531 531 532 -=== 3.3. 5Uplink on demand ===552 +=== 3.3.6 Uplink on demand === 533 533 534 534 535 535 Except uplink periodically, RS485-LN is able to uplink on demand. The server send downlink command to RS485-LN and RS485 will uplink data base on the command. ... ... @@ -541,7 +541,7 @@ 541 541 (% style="color:#4472c4" %)** 0xA8 command**(%%): Send a command to RS485-LN and uplink the output from sensors. 542 542 543 543 544 -=== 3.3. 6Uplink on Interrupt ===564 +=== 3.3.7 Uplink on Interrupt === 545 545 546 546 547 547 RS485-LN support external Interrupt uplink since hardware v1.2 release. ... ... @@ -556,7 +556,7 @@ 556 556 557 557 558 558 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:510px" %) 559 -|=(% scope="row" style="width: 60px;background-color:#D9E2F3;color:#0070C0" %)(((579 +|=(% scope="row" style="width: 70px;background-color:#D9E2F3;color:#0070C0" %)((( 560 560 Size(bytes) 561 561 )))|(% style="background-color:#d9e2f3; color:#0070c0; width:80px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:360px" %)((( 562 562 **Length depends on the return from the commands** ... ... @@ -916,8 +916,13 @@ 916 916 917 917 (% aria-label="image-20220602165351-7.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220602165351-7.png||data-widget="image"]](% title="Click and drag to resize" %) 918 918 939 +* ((( 940 +(% style="color:#037691" %)**Downlink Command:** 941 +))) 919 919 943 +**~ (% style="color:#4472c4" %)A9 aa(%%)** ~-~-> Same as AT+MBFUN=aa 920 920 945 + 921 921 ==== (% style="color:blue" %)**RS485 command timeout**(%%) ==== 922 922 923 923 ... ... @@ -1006,6 +1006,8 @@ 1006 1006 (% style="color:#4472c4" %)** 0xAD 01** (%%) **~-~->** Same as AT+DATAUP=1 ~/~/Each uplink is sent to the server one after the other as it is segmented. 1007 1007 1008 1008 1034 +(Since firmware v1.4.0) 1035 + 1009 1009 * ((( 1010 1010 (% style="color:#037691" %)** AT Command:** 1011 1011 ))) ... ... @@ -1022,7 +1022,44 @@ 1022 1022 Each uplink is sent to the server at 20-second intervals when segmented. 1023 1023 1024 1024 1052 +==== (% style="color:blue" %)**Cut data separation processing(Since Version 1.4.2)**(%%) ==== 1025 1025 1054 + 1055 +AT+NEWLINE command, which only takes effect when AT+DATAUP=1 or AT+DATAUP=1, timeout. 1056 + 1057 +When not set, each part of AT+DATAUP is sent according to the maximum number of bytes of DR. 1058 + 1059 +When setting, each part of AT+DATAUP is sent according to the value set by AT+NEWLINE. 1060 + 1061 + 1062 +* ((( 1063 +(% style="color:#037691" %)** AT Command:** 1064 +))) 1065 + 1066 +(% style="color:#4472c4" %)//**AT+NEWLINE=ALL**//(%%)// //The data cut out by each AT+COMMANDx command is sent separately as an uplink. 1067 + 1068 +(% style="color:#4472c4" %)//**AT+NEWLINE=ALL**//(%%)// equal: (% style="color:#4472c4" %)**AT+NEWLINE=1+2+3+4+5+6+7+8+9+10+11+12+13+14+15**// 1069 + 1070 + 1071 +(% style="color:#4472c4" %)//**AT+NEWLINE=a+b+c**//(%%)// //The data returned by all commands is divided into three parts, COMMAND(1~~a) is the first part, COMMAND(a+1~~b) is the second part,COMMAND(b+1~~c) is the third part. 1072 + 1073 + 1074 +(% style="color:#4472c4" %)//**AT+NEWLINE=NULL**//(%%)// //Turn off the functionality of this AT command. 1075 + 1076 + 1077 +* ((( 1078 +(% style="color:#037691" %)** Downlink Payload:** 1079 +))) 1080 + 1081 +//AT+NEWLINE=ALL ~-~--> (% style="color:#4472c4" %)**0xAC 01**// 1082 + 1083 +// AT+NEWLINE= NULL ~-~--> (% style="color:#4472c4" %)**0xAC 00**// 1084 + 1085 +//AT+NEWLINE= a+b+c ~-~--> (% style="color:#4472c4" %)**0xAC number of bytes a b c**// 1086 + 1087 +//AT+NEWLINE= 1+5+15 ~-~--> (% style="color:#4472c4" %)**0xAC 03 01 05 0F**// 1088 + 1089 + 1026 1026 ==== (% style="color:blue" %)**Manually trigger an Uplink**(%%) ==== 1027 1027 1028 1028 ... ... @@ -1585,6 +1585,13 @@ 1585 1585 (% aria-label="image-20220602175912-14.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220602175912-14.png||data-widget="image"]](% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) 1586 1586 1587 1587 1652 + 1653 +(% style="color:red" %)**Users can select the new burning software STM32Cubeprogramer for firmware upgrade and follow the same connection steps to enter burning mode (until SYS LED is RED ON):** 1654 + 1655 +[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H4.2.FirmwareupgradeusingSTM32Cubeprogramer>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H4.2.FirmwareupgradeusingSTM32Cubeprogramer]] 1656 + 1657 + 1658 + 1588 1588 (% style="color:red" %)**Notice**: **In case user has lost the program cable. User can hand made one from a 3.5mm cable. The pin mapping is:** 1589 1589 1590 1590 (% aria-label="image-20220602175638-10.png image widget" contenteditable="false" role="region" tabindex="-1" %)[[image:image-20220602175638-10.png||data-widget="image"]](% style="background-image:url(http://wiki.dragino.com/xwiki/webjars/wiki%3Axwiki/application-ckeditor-webjar/1.61/plugins/widget/images/handle.png); background:rgba(220,220,220,0.5); display:none" %)[[image:data:image/gif;base64,R0lGODlhAQABAPABAP///wAAACH5BAEKAAAALAAAAAABAAEAAAICRAEAOw==||draggable="true" height="15" role="presentation" title="Click and drag to move" width="15"]](% title="Click and drag to resize" %) ... ... @@ -1737,6 +1737,18 @@ 1737 1737 The decoder for RS485-LN needs to be written by yourself. Because the sensor to which the user is connected is custom, the read device data bytes also need custom parsing, so there is no universal decoder. We can only provide [[templates>>https://github.com/dragino/dragino-end-node-decoder/tree/main/RS485-LN]] for decoders (no intermediate data parsing part involved) 1738 1738 1739 1739 1811 +== 6.9 How to configure RS485 commands more conveniently? == 1812 + 1813 + 1814 +Dragino has developed an application for the RS485 series of products. 1815 + 1816 +It can help you configure RS485 sensors more conveniently 1817 +Please refer to the link below for specific usage: 1818 + 1819 +[[RS485 Configure Tool - DRAGINO>>url:http://wiki.dragino.com/xwiki/bin/view/Main/RS485_Configure_Tool/#HTableofContentsFF1A]] 1820 + 1821 + 1822 + 1740 1740 = 7. Trouble Shooting = 1741 1741 1742 1742 == 7.1 Downlink doesn't work, how to solve it? ==
- image-20230425175403-1.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +150.1 KB - Content
- image-20230425175410-2.png
-
- Author
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.Xiaoling - Size
-
... ... @@ -1,0 +1,1 @@ 1 +150.1 KB - Content