Wiki source code of SDI-12-LB/LS -- SDI-12 to LoRaWAN Converter User Manual
Hide last authors
author | version | line-number | content |
---|---|---|---|
![]() |
90.2 | 1 | |
2 | |||
![]() |
40.7 | 3 | (% style="text-align:center" %) |
![]() |
90.16 | 4 | [[image:image-20240103165259-3.png||height="433" width="591"]] |
![]() |
2.2 | 5 | |
![]() |
90.2 | 6 | |
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
![]() |
87.8 | 12 | **Table of Contents:** |
![]() |
2.2 | 13 | |
![]() |
40.7 | 14 | {{toc/}} |
![]() |
2.2 | 15 | |
16 | |||
17 | |||
18 | |||
19 | |||
20 | |||
21 | |||
22 | |||
23 | |||
24 | |||
25 | |||
26 | |||
27 | |||
![]() |
9.2 | 28 | = 1. Introduction = |
![]() |
2.2 | 29 | |
![]() |
9.2 | 30 | == 1.1 What is SDI-12 to LoRaWAN Converter == |
![]() |
2.2 | 31 | |
32 | |||
![]() |
41.13 | 33 | ((( |
![]() |
90.3 | 34 | The Dragino (% style="color:blue" %)**SDI-12-LB/LS**(%%) is a (% style="color:blue" %)**SDI-12 to LoRaWAN Converter **(%%)designed for Smart Agriculture solution. |
![]() |
41.13 | 35 | ))) |
![]() |
9.2 | 36 | |
![]() |
41.13 | 37 | ((( |
![]() |
2.2 | 38 | SDI-12 (Serial Digital Interface at 1200 baud) is an asynchronous [[serial communications>>url:https://en.wikipedia.org/wiki/Serial_communication]] protocol for intelligent sensors that monitor environment data. SDI-12 protocol is widely used in Agriculture sensor and Weather Station sensors. |
![]() |
41.13 | 39 | ))) |
![]() |
2.2 | 40 | |
![]() |
41.13 | 41 | ((( |
![]() |
90.3 | 42 | SDI-12-LB/LS has SDI-12 interface and support 12v output to power external SDI-12 sensor. It can get the environment data from SDI-12 sensor and sends out the data via LoRaWAN wireless protocol. |
![]() |
41.13 | 43 | ))) |
![]() |
2.2 | 44 | |
![]() |
41.13 | 45 | ((( |
![]() |
90.3 | 46 | The LoRa wireless technology used in SDI-12-LB/LS allows device to send data and reach extremely long ranges at low data-rates. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. |
![]() |
41.13 | 47 | ))) |
![]() |
2.2 | 48 | |
![]() |
41.13 | 49 | ((( |
![]() |
123.1 | 50 | SDI-12-LB/LS is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%) or (% style="color:blue" %)**solar powered + Li-ion battery,**(%%) it is designed for long term use up to 5 years. |
![]() |
41.13 | 51 | ))) |
![]() |
2.2 | 52 | |
![]() |
41.13 | 53 | ((( |
![]() |
90.3 | 54 | Each SDI-12-LB/LS is pre-load with a set of unique keys for LoRaWAN registrations, register these keys to local LoRaWAN server and it will auto connect after power on. |
![]() |
41.13 | 55 | ))) |
![]() |
2.2 | 56 | |
57 | |||
![]() |
9.2 | 58 | == 1.2 Features == |
59 | |||
60 | |||
![]() |
2.2 | 61 | * LoRaWAN 1.0.3 Class A |
62 | * Ultra-low power consumption | ||
![]() |
43.1 | 63 | * Controllable 3.3v, 5v and 12v output to power external sensor |
![]() |
2.2 | 64 | * SDI-12 Protocol to connect to SDI-12 Sensor |
65 | * Monitor Battery Level | ||
66 | * Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915/IN865 | ||
67 | * Support Bluetooth v5.1 and LoRaWAN remote configure. | ||
68 | * Support wireless OTA update firmware | ||
69 | * Uplink on periodically | ||
70 | * Downlink to change configure | ||
![]() |
90.5 | 71 | * 8500mAh Li/SOCl2 Battery (SDI-12-LB) |
![]() |
122.1 | 72 | * Solar panel + 3000mAh Li-ion battery (SDI-12-LS) |
![]() |
2.2 | 73 | |
![]() |
9.2 | 74 | == 1.3 Specification == |
![]() |
2.2 | 75 | |
76 | |||
![]() |
40.2 | 77 | (% style="color:#037691" %)**Micro Controller:** |
![]() |
2.2 | 78 | |
79 | * MCU: 48Mhz ARM | ||
80 | * Flash: 256KB | ||
81 | * RAM: 64KB | ||
82 | |||
![]() |
40.2 | 83 | (% style="color:#037691" %)**Common DC Characteristics:** |
![]() |
2.2 | 84 | |
![]() |
90.5 | 85 | * Supply Voltage: Built-in Battery, 2.5v ~~ 3.6v |
![]() |
87.2 | 86 | * Support current: 5V 300mA, 12V 100mA |
![]() |
2.2 | 87 | * Operating Temperature: -40 ~~ 85°C |
88 | |||
![]() |
40.2 | 89 | (% style="color:#037691" %)**LoRa Spec:** |
![]() |
2.2 | 90 | |
91 | * Frequency Range, Band 1 (HF): 862 ~~ 1020 Mhz | ||
92 | * Max +22 dBm constant RF output vs. | ||
93 | * RX sensitivity: down to -139 dBm. | ||
94 | * Excellent blocking immunity | ||
95 | |||
![]() |
40.2 | 96 | (% style="color:#037691" %)**Current Input Measuring :** |
![]() |
2.2 | 97 | |
98 | * Range: 0 ~~ 20mA | ||
99 | * Accuracy: 0.02mA | ||
100 | * Resolution: 0.001mA | ||
101 | |||
![]() |
40.2 | 102 | (% style="color:#037691" %)**Voltage Input Measuring:** |
![]() |
2.2 | 103 | |
104 | * Range: 0 ~~ 30v | ||
105 | * Accuracy: 0.02v | ||
106 | * Resolution: 0.001v | ||
107 | |||
![]() |
40.2 | 108 | (% style="color:#037691" %)**Battery:** |
![]() |
2.2 | 109 | |
110 | * Li/SOCI2 un-chargeable battery | ||
111 | * Capacity: 8500mAh | ||
112 | * Self-Discharge: <1% / Year @ 25°C | ||
113 | * Max continuously current: 130mA | ||
114 | * Max boost current: 2A, 1 second | ||
115 | |||
![]() |
40.2 | 116 | (% style="color:#037691" %)**Power Consumption** |
![]() |
2.2 | 117 | |
118 | * Sleep Mode: 5uA @ 3.3v | ||
119 | * LoRa Transmit Mode: 125mA @ 20dBm, 82mA @ 14dBm | ||
120 | |||
![]() |
9.2 | 121 | == 1.4 Connect to SDI-12 Sensor == |
![]() |
2.2 | 122 | |
123 | |||
![]() |
47.1 | 124 | [[image:1675212538524-889.png||_mstalt="298272"]] |
![]() |
2.2 | 125 | |
126 | |||
![]() |
9.2 | 127 | == 1.5 Sleep mode and working mode == |
![]() |
2.2 | 128 | |
129 | |||
![]() |
40.2 | 130 | (% style="color:blue" %)**Deep Sleep Mode: **(%%)Sensor doesn't have any LoRaWAN activate. This mode is used for storage and shipping to save battery life. |
![]() |
2.2 | 131 | |
![]() |
40.2 | 132 | (% style="color:blue" %)**Working Mode: **(%%)In this mode, Sensor will work as LoRaWAN Sensor to Join LoRaWAN network and send out sensor data to server. Between each sampling/tx/rx periodically, sensor will be in IDLE mode), in IDLE mode, sensor has the same power consumption as Deep Sleep mode. |
![]() |
2.2 | 133 | |
134 | |||
![]() |
9.2 | 135 | == 1.6 Button & LEDs == |
![]() |
2.2 | 136 | |
137 | |||
![]() |
137.2 | 138 | [[image:image-20250416151419-4.jpeg]] |
![]() |
2.2 | 139 | |
![]() |
90.12 | 140 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) |
141 | |=(% style="width: 167px;background-color:#4F81BD;color:white" %)**Behavior on ACT**|=(% style="width: 117px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 226px;background-color:#4F81BD;color:white" %)**Action** | ||
![]() |
48.3 | 142 | |(% style="background-color:#f2f2f2; width:167px" %)Pressing ACT between 1s < time < 3s|(% style="background-color:#f2f2f2; width:117px" %)Send an uplink|(% style="background-color:#f2f2f2; width:225px" %)((( |
![]() |
9.2 | 143 | If sensor is already Joined to LoRaWAN network, sensor will send an uplink packet, (% style="color:blue" %)**blue led** (%%)will blink once. |
![]() |
2.2 | 144 | Meanwhile, BLE module will be active and user can connect via BLE to configure device. |
145 | ))) | ||
![]() |
48.3 | 146 | |(% style="background-color:#f2f2f2; width:167px" %)Pressing ACT for more than 3s|(% style="background-color:#f2f2f2; width:117px" %)Active Device|(% style="background-color:#f2f2f2; width:225px" %)((( |
147 | (% style="background-color:#f2f2f2; color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:#037691" %)**OTA mode**(%%) for 3 seconds. And then start to JOIN LoRaWAN network. | ||
148 | (% style="background-color:#f2f2f2; color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network. | ||
![]() |
2.2 | 149 | Once sensor is active, BLE module will be active and user can connect via BLE to configure device, no matter if device join or not join LoRaWAN network. |
150 | ))) | ||
![]() |
102.1 | 151 | |(% style="background-color:#f2f2f2; width:167px" %)Fast press ACT 5 times.|(% style="background-color:#f2f2f2; width:117px" %)Deactivate Device|(% style="background-color:#f2f2f2; width:225px" %)(% style="color:red" %)**Red led**(%%) will solid on for 5 seconds. Means SDI-12-LB/LS is in Deep Sleep Mode. |
![]() |
2.2 | 152 | |
![]() |
9.2 | 153 | == 1.7 Pin Mapping == |
![]() |
2.2 | 154 | |
155 | |||
![]() |
47.1 | 156 | [[image:1675213198663-754.png||_mstalt="297167"]] |
![]() |
2.2 | 157 | |
158 | |||
![]() |
9.2 | 159 | == 1.8 BLE connection == |
![]() |
2.2 | 160 | |
![]() |
9.2 | 161 | |
![]() |
90.4 | 162 | SDI-12-LB/LS support BLE remote configure. |
![]() |
2.2 | 163 | |
164 | BLE can be used to configure the parameter of sensor or see the console output from sensor. BLE will be only activate on below case: | ||
165 | |||
166 | * Press button to send an uplink | ||
167 | * Press button to active device. | ||
168 | * Device Power on or reset. | ||
169 | |||
170 | If there is no activity connection on BLE in 60 seconds, sensor will shut down BLE module to enter low power mode. | ||
171 | |||
172 | |||
![]() |
9.2 | 173 | == 1.9 Mechanical == |
![]() |
2.2 | 174 | |
![]() |
90.6 | 175 | === 1.9.1 for LB version === |
![]() |
2.2 | 176 | |
![]() |
90.7 | 177 | |
![]() |
137.2 | 178 | [[image:image-20250416151406-3.jpeg]] |
![]() |
2.2 | 179 | |
180 | |||
![]() |
90.6 | 181 | === 1.9.2 for LS version === |
182 | |||
183 | |||
![]() |
132.2 | 184 | [[image:image-20250329133856-1.jpeg]] |
![]() |
90.6 | 185 | |
186 | |||
![]() |
19.2 | 187 | = 2. Configure SDI-12 to connect to LoRaWAN network = |
![]() |
9.2 | 188 | |
![]() |
19.2 | 189 | == 2.1 How it works == |
![]() |
9.2 | 190 | |
191 | |||
![]() |
90.4 | 192 | The SDI-12-LB/LS is configured as (% style="color:#037691" %)**LoRaWAN OTAA Class A**(%%) mode by default. It has OTAA keys to join LoRaWAN network. To connect a local LoRaWAN network, you need to input the OTAA keys in the LoRaWAN IoT server and activate the SDI-12-LB/LS. It will automatically join the network via OTAA and start to send the sensor value. The default uplink interval is 20 minutes. |
![]() |
9.2 | 193 | |
![]() |
2.2 | 194 | |
![]() |
19.2 | 195 | == 2.2 Quick guide to connect to LoRaWAN server (OTAA) == |
![]() |
2.2 | 196 | |
197 | |||
198 | Following is an example for how to join the [[TTN v3 LoRaWAN Network>>url:https://console.cloud.thethings.network/]]. Below is the network structure; we use the [[LPS8v2>>url:https://www.dragino.com/products/lora-lorawan-gateway/item/228-lps8v2.html]] as a LoRaWAN gateway in this example. | ||
199 | |||
![]() |
137.2 | 200 | [[image:image-20250416151346-2.png]] |
![]() |
2.2 | 201 | |
202 | |||
203 | The LPS8V2 is already set to connected to [[TTN network >>url:https://console.cloud.thethings.network/]], so what we need to now is configure the TTN server. | ||
204 | |||
205 | |||
![]() |
90.4 | 206 | (% style="color:blue" %)**Step 1**(%%): Create a device in TTN with the OTAA keys from SDI-12-LB/LS. |
![]() |
2.2 | 207 | |
![]() |
90.4 | 208 | Each SDI-12-LB/LS is shipped with a sticker with the default device EUI as below: |
![]() |
2.2 | 209 | |
![]() |
49.3 | 210 | [[image:image-20230426084456-1.png||height="241" width="519"]] |
![]() |
2.2 | 211 | |
212 | |||
![]() |
141.2 | 213 | You can enter this key in the LoRaWAN Server portal. Below is TTN screen shot: |
![]() |
2.2 | 214 | |
![]() |
141.2 | 215 | **Create the application.** |
![]() |
2.2 | 216 | |
![]() |
141.2 | 217 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/SAC01L_LoRaWAN_Temperature%26Humidity_Sensor_User_Manual/WebHome/image-20250423093843-1.png?width=756&height=264&rev=1.1||alt="image-20250423093843-1.png"]] |
![]() |
2.2 | 218 | |
![]() |
141.2 | 219 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111305-2.png?width=1000&height=572&rev=1.1||alt="image-20240907111305-2.png"]] |
![]() |
2.2 | 220 | |
221 | |||
![]() |
141.2 | 222 | **Add devices to the created Application.** |
![]() |
2.2 | 223 | |
![]() |
141.2 | 224 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111659-3.png?width=977&height=185&rev=1.1||alt="image-20240907111659-3.png"]] |
![]() |
2.2 | 225 | |
![]() |
141.2 | 226 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907111820-5.png?width=975&height=377&rev=1.1||alt="image-20240907111820-5.png"]] |
![]() |
2.2 | 227 | |
228 | |||
![]() |
141.2 | 229 | **Enter end device specifics manually.** |
![]() |
2.2 | 230 | |
![]() |
141.2 | 231 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112136-6.png?width=697&height=687&rev=1.1||alt="image-20240907112136-6.png"]] |
![]() |
2.2 | 232 | |
233 | |||
![]() |
141.2 | 234 | **Add DevEUI and AppKey.** |
235 | |||
236 | **Customize a platform ID for the device.** | ||
237 | |||
238 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LTC2-LB--LoRaWAN_Temperature_Transmitter_User_Manual/WebHome/image-20240907112427-7.png?rev=1.1||alt="image-20240907112427-7.png"]] | ||
239 | |||
240 | |||
![]() |
129.1 | 241 | (% style="color:blue" %)**Step 2: **(%%)Add decoder |
242 | |||
243 | While using TTN network, you can add the payload format to decode the payload. | ||
244 | |||
245 | There is no fix payload decoder in LoRaWAN server because the SDI-12 sensors returns are different. User need to write the decoder themselves for their case. | ||
246 | |||
247 | SDI-12-LB/LS TTN Payload Decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]] | ||
248 | |||
249 | Below is TTN screen shot: | ||
250 | |||
251 | [[image:image-20241118165746-3.png||height="470" width="869"]] | ||
252 | |||
253 | [[image:image-20241118165832-4.png||height="336" width="724"]] | ||
254 | |||
255 | |||
256 | (% style="color:blue" %)**Step 3**(%%): Activate on SDI-12-LB/LS | ||
257 | |||
![]() |
90.4 | 258 | Press the button for 5 seconds to activate the SDI-12-LB/LS. |
![]() |
2.2 | 259 | |
![]() |
40.2 | 260 | (% style="color:green" %)**Green led**(%%) will fast blink 5 times, device will enter (% style="color:blue" %)**OTA mode** (%%)for 3 seconds. And then start to JOIN LoRaWAN network. (% style="color:green" %)**Green led**(%%) will solidly turn on for 5 seconds after joined in network. |
![]() |
2.2 | 261 | |
![]() |
47.1 | 262 | [[image:1675213704414-644.png||_mstalt="293748"]] |
![]() |
2.2 | 263 | |
264 | |||
![]() |
19.2 | 265 | == 2.3 SDI-12 Related Commands == |
![]() |
2.2 | 266 | |
267 | |||
![]() |
90.4 | 268 | User need to configure SDI-12-LB/LS to communicate with SDI-12 sensors otherwise the uplink payload will only include a few bytes. |
![]() |
2.2 | 269 | |
![]() |
106.1 | 270 | If you use UART to connect a computer, refer to the following connection methods: |
![]() |
2.2 | 271 | |
![]() |
106.1 | 272 | [[image:image-20240823165402-1.jpeg||height="488" width="678"]] |
273 | |||
274 | Screenshot example: | ||
275 | |||
276 | [[image:image-20240823165526-2.png||height="489" width="690"]] | ||
277 | |||
278 | |||
279 | |||
![]() |
29.2 | 280 | === 2.3.1 Basic SDI-12 debug command === |
![]() |
2.2 | 281 | |
282 | |||
283 | User can run some basic SDI-12 command to debug the connection to the SDI-12 sensor. These commands can be sent via AT Command or LoRaWAN downlink command. | ||
284 | |||
![]() |
90.4 | 285 | If SDI-12 sensor return value after get these commands, //SDI-12-LB/LS// will uplink the return on FPORT=100, otherwise, if there is no response from SDI-12 sensor. //SDI-12-LB/LS// will uplink NULL (0x 4E 55 4C 4C) to server. |
![]() |
2.2 | 286 | |
287 | The following is the display information on the serial port and the server. | ||
288 | |||
289 | |||
![]() |
47.1 | 290 | [[image:image-20230201091027-6.png||_mstalt="429065"]] |
![]() |
2.2 | 291 | |
![]() |
19.2 | 292 | |
![]() |
47.1 | 293 | [[image:image-20230201091027-7.png||_mstalt="429429" height="261" width="1179"]] |
![]() |
19.2 | 294 | |
295 | |||
![]() |
41.4 | 296 | |
![]() |
40.2 | 297 | ==== (% style="color:blue" %)**al! ~-~- Get SDI-12 sensor Identification**(%%) ==== |
![]() |
19.2 | 298 | |
299 | |||
![]() |
2.2 | 300 | * AT Command: AT+ADDRI=aa |
301 | * LoRaWAN Downlink(prefix 0xAA00): AA 00 aa | ||
302 | |||
![]() |
40.2 | 303 | (% style="color:#037691" %)**Parameter: **(%%)aa: ASCII value of SDI-12 sensor address in downlink or HEX value in AT Command) |
![]() |
2.2 | 304 | |
![]() |
41.4 | 305 | (% style="color:blue" %)**Example : **(%%)AT+ADDRI=0 ( Equal to downlink: 0x AA 00 30) |
![]() |
2.2 | 306 | |
307 | |||
308 | The following is the display information on the serial port and the server. | ||
309 | |||
310 | |||
![]() |
47.1 | 311 | [[image:image-20230201091257-8.png||_mstalt="431392"]] |
![]() |
2.2 | 312 | |
313 | |||
![]() |
47.1 | 314 | [[image:image-20230201091257-9.png||_mstalt="431756" height="225" width="1242"]] |
![]() |
19.2 | 315 | |
316 | |||
![]() |
40.2 | 317 | ==== (% style="color:blue" %)**aM!,aMC!, aM1!- aM9!, aMC1!- aMC9!**(%%) ==== |
![]() |
2.2 | 318 | |
319 | |||
![]() |
40.2 | 320 | (% style="color:red" %)**aM! **(%%): Start Non-Concurrent Measurement |
![]() |
2.2 | 321 | |
![]() |
40.2 | 322 | (% style="color:red" %)**aMC! **(%%): Start Non-Concurrent Measurement – Request CRC |
![]() |
2.2 | 323 | |
![]() |
40.2 | 324 | (% style="color:red" %)**aM1!- aM9! **(%%): Additional Measurements |
![]() |
2.2 | 325 | |
![]() |
40.2 | 326 | (% style="color:red" %)**aMC1!- aMC9!**(%%) : Additional Measurements – Request CRC |
![]() |
2.2 | 327 | |
![]() |
27.2 | 328 | |
![]() |
2.2 | 329 | * AT Command : AT+ADDRM=0,1,0,1 |
![]() |
37.10 | 330 | |
![]() |
2.2 | 331 | * LoRaWAN Downlink(prefix 0xAA01): 0xAA 01 30 01 00 01 |
332 | |||
333 | Downlink:AA 01 aa bb cc dd | ||
334 | |||
![]() |
40.2 | 335 | (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address. |
![]() |
2.2 | 336 | |
![]() |
40.2 | 337 | (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC |
![]() |
2.2 | 338 | |
![]() |
40.2 | 339 | (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement |
![]() |
2.2 | 340 | |
![]() |
41.5 | 341 | (% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%) to get return. |
![]() |
2.2 | 342 | |
343 | |||
344 | The following is the display information on the serial port and the server. | ||
345 | |||
346 | |||
![]() |
47.1 | 347 | [[image:image-20230201091630-10.png||_mstalt="449995"]] |
![]() |
2.2 | 348 | |
349 | |||
![]() |
47.1 | 350 | [[image:image-20230201091630-11.png||_mstalt="450372" height="247" width="1165"]] |
![]() |
2.2 | 351 | |
352 | |||
353 | |||
![]() |
40.2 | 354 | ==== (% style="color:blue" %)**aC!, aCC!, aC1!- aC9!, aCC1!- aCC9! **(%%) ==== |
![]() |
2.2 | 355 | |
356 | |||
![]() |
40.2 | 357 | (% style="color:red" %)**aC!**(%%) : Start Concurrent Measurement |
![]() |
2.2 | 358 | |
![]() |
40.2 | 359 | (% style="color:red" %)**aCC!** (%%): Start Concurrent Measurement – Request CRC |
![]() |
2.2 | 360 | |
![]() |
40.2 | 361 | (% style="color:red" %)**aC1!- aC9!**(%%) : Start Additional Concurrent Measurements |
![]() |
27.2 | 362 | |
![]() |
40.2 | 363 | (% style="color:red" %)**aCC1!- aCC9!**(%%) : Start Additional Concurrent Measurements – Request CRC |
![]() |
27.2 | 364 | |
365 | |||
![]() |
2.2 | 366 | * AT Command : AT+ADDRC=0,1,0,1 |
367 | |||
368 | * LoRaWAN Downlink(0xAA02): 0xAA 02 30 01 00 01 | ||
369 | |||
370 | Downlink: AA 02 aa bb cc dd | ||
371 | |||
![]() |
40.2 | 372 | (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address. |
![]() |
2.2 | 373 | |
![]() |
40.2 | 374 | (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC |
![]() |
2.2 | 375 | |
![]() |
40.2 | 376 | (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement |
![]() |
2.2 | 377 | |
![]() |
41.5 | 378 | (% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%)__ __to get return. |
![]() |
2.2 | 379 | |
380 | |||
381 | The following is the display information on the serial port and the server. | ||
382 | |||
383 | |||
![]() |
47.1 | 384 | [[image:image-20230201091954-12.png||_mstalt="453687"]] |
![]() |
2.2 | 385 | |
386 | |||
![]() |
47.1 | 387 | [[image:image-20230201091954-13.png||_mstalt="454064" height="203" width="1117"]] |
![]() |
2.2 | 388 | |
![]() |
27.2 | 389 | |
390 | |||
![]() |
40.2 | 391 | ==== (% style="color:blue" %)**aR0!- aR9!, aRC0!- aRC9!**(%%) ==== |
![]() |
27.2 | 392 | |
![]() |
37.10 | 393 | |
![]() |
2.2 | 394 | Start Continuous Measurement |
395 | |||
396 | Start Continuous Measurement – Request CRC | ||
397 | |||
398 | |||
399 | * AT Command : AT+ADDRR=0,1,0,1 | ||
400 | * LoRaWAN Downlink (0xAA 03): 0xAA 03 30 01 00 01 | ||
401 | |||
402 | Downlink: AA 03 aa bb cc dd | ||
403 | |||
![]() |
40.2 | 404 | (% style="color:#037691" %)**aa**(%%): SDI-12 sensor address. |
![]() |
2.2 | 405 | |
![]() |
40.2 | 406 | (% style="color:#037691" %)**bb**(%%): 0: no CRC, 1: request CRC |
![]() |
2.2 | 407 | |
![]() |
40.2 | 408 | (% style="color:#037691" %)**cc**(%%): 1-9: Additional Measurement, 0: no additional measurement |
![]() |
2.2 | 409 | |
![]() |
41.5 | 410 | (% style="color:#037691" %)**dd**(%%): delay (in second) to send (% style="color:#037691" %)__**aD0!**__(%%) to get return. |
![]() |
2.2 | 411 | |
412 | |||
413 | The following is the display information on the serial port and the server. | ||
414 | |||
415 | |||
![]() |
47.1 | 416 | [[image:image-20230201092208-14.png||_mstalt="452283"]] |
![]() |
2.2 | 417 | |
![]() |
27.2 | 418 | |
![]() |
47.1 | 419 | [[image:image-20230201092208-15.png||_mstalt="452660" height="214" width="1140"]] |
![]() |
27.2 | 420 | |
421 | |||
![]() |
37.2 | 422 | === 2.3.2 Advance SDI-12 Debug command === |
![]() |
27.2 | 423 | |
424 | |||
![]() |
2.2 | 425 | This command can be used to debug all SDI-12 command. |
426 | |||
427 | |||
![]() |
73.1 | 428 | LoRaWAN Downlink: A8 aa xx xx xx xx bb cc dd |
![]() |
2.2 | 429 | |
![]() |
40.2 | 430 | (% style="color:#037691" %)**aa **(%%): total SDI-12 command length |
![]() |
2.2 | 431 | |
![]() |
40.2 | 432 | (% style="color:#037691" %)**xx **(%%): SDI-12 command |
![]() |
2.2 | 433 | |
![]() |
40.2 | 434 | (% style="color:#037691" %)**bb **(%%): Delay to wait for return |
![]() |
2.2 | 435 | |
![]() |
40.2 | 436 | (% style="color:#037691" %)**cc **(%%): 0: don't uplink return to LoRaWAN, 1: Uplink return to LoRaWAN on FPORT=100 |
![]() |
2.2 | 437 | |
![]() |
73.1 | 438 | (% style="color:#037691" %)**dd: **(%%) 0: Do not use aD0! command access, 1: use aD0! command access. |
![]() |
2.2 | 439 | |
440 | |||
![]() |
73.1 | 441 | (% style="color:blue" %)**Example1: **(%%) AT+CFGDEV =0RC0!,1 |
442 | |||
![]() |
40.2 | 443 | (% style="color:#037691" %)**0RC0! **(%%): SDI-12 Command, |
![]() |
2.2 | 444 | |
![]() |
40.2 | 445 | (% style="color:#037691" %)**1 **(%%): Delay 1 second. ( 0: 810 mini-second) |
![]() |
2.2 | 446 | |
447 | Equal Downlink: 0xA8 05 30 52 43 30 21 01 01 | ||
448 | |||
449 | |||
450 | The following is the display information on the serial port and the server. | ||
451 | |||
452 | |||
![]() |
47.1 | 453 | [[image:image-20230201092355-16.png||_mstalt="453960"]] |
![]() |
2.2 | 454 | |
455 | |||
![]() |
47.1 | 456 | [[image:image-20230201092355-17.png||_mstalt="454337" height="426" width="1135"]] |
![]() |
27.2 | 457 | |
![]() |
29.2 | 458 | |
![]() |
87.1 | 459 | (% style="color:blue" %)**Example2: **(%%) AT+CFGDEV =0M!,1,1 |
![]() |
73.1 | 460 | |
461 | (% style="color:#037691" %)**0M! **(%%): SDI-12 Command, | ||
462 | |||
463 | (% style="color:#037691" %)**1 **(%%): Delay 1 second. ( 0: 810 mini-second) | ||
464 | |||
![]() |
87.3 | 465 | (% style="color:#037691" %)**1 **(%%): Use aD0! command access. |
![]() |
73.1 | 466 | |
467 | Equal Downlink: 0xA8 03 30 4D 21 01 01 01 | ||
468 | |||
469 | |||
![]() |
86.1 | 470 | The following is the display information on the serial port and the server. |
471 | |||
472 | |||
473 | [[image:image-20230628091055-1.png||height="368" width="462"]] | ||
474 | |||
475 | [[image:image-20230628091130-2.png||height="258" width="879"]] | ||
476 | |||
477 | |||
![]() |
29.2 | 478 | === 2.3.3 Convert ASCII to String === |
479 | |||
480 | |||
![]() |
2.2 | 481 | This command is used to convert between ASCII and String format. |
482 | |||
483 | AT+CONVFORM ( Max length: 80 bytes) | ||
484 | |||
485 | |||
![]() |
40.2 | 486 | (% style="color:blue" %)**Example:** |
![]() |
2.2 | 487 | |
![]() |
29.2 | 488 | 1) AT+CONVFORM=0, string Convert String from String to ASCII |
![]() |
2.2 | 489 | |
![]() |
47.1 | 490 | [[image:1675214845056-885.png||_mstalt="297622"]] |
![]() |
2.2 | 491 | |
492 | |||
![]() |
29.2 | 493 | 2) AT+CONVFORM=1, ASCII Convert ASCII to String. |
![]() |
2.2 | 494 | |
![]() |
47.1 | 495 | [[image:1675214856590-846.png||_mstalt="297739"]] |
![]() |
2.2 | 496 | |
![]() |
29.2 | 497 | |
498 | === 2.3.4 Define periodically SDI-12 commands and uplink. === | ||
499 | |||
500 | |||
![]() |
2.2 | 501 | AT+COMMANDx & AT+DATACUTx |
502 | |||
![]() |
90.4 | 503 | User can define max 15 SDI-12 Commands (AT+COMMAND1 ~~ AT+COMMANDF). On each uplink period (TDC time, default 20 minutes), SDI-12-LB/LS will send these SDI-12 commands and wait for return from SDI-12 sensors. SDI-12-LB/LS will then combine these returns and uplink via LoRaWAN. |
![]() |
2.2 | 504 | |
505 | |||
![]() |
40.2 | 506 | * (% style="color:blue" %)**AT Command:** |
![]() |
2.2 | 507 | |
![]() |
40.2 | 508 | (% style="color:#037691" %)**AT+COMMANDx=var1,var2,var3,var4.** |
![]() |
2.2 | 509 | |
![]() |
40.2 | 510 | (% style="color:red" %)**var1**(%%): SDI-12 command , for example: 0RC0! |
![]() |
2.2 | 511 | |
![]() |
40.2 | 512 | (% style="color:red" %)**var2**(%%): Wait timeout for return. (unit: second) |
![]() |
2.2 | 513 | |
![]() |
40.2 | 514 | (% style="color:red" %)**var3**(%%): Whether to send //addrD0!// to get return after var2 timeout. 0: Don't Send //addrD0! //; 1: Send //addrD0!//. |
![]() |
2.2 | 515 | |
![]() |
90.4 | 516 | (% style="color:red" %)**var4**(%%): validation check for return. If return invalid, SDI-12-LB/LS will resend this command. Max 3 retries. |
![]() |
2.2 | 517 | |
![]() |
40.2 | 518 | (% style="color:red" %)**0 **(%%) No validation check; |
![]() |
2.2 | 519 | |
![]() |
40.2 | 520 | (% style="color:red" %)**1** (%%) Check if return chars are printable char(0x20 ~~ 0x7E); |
![]() |
2.2 | 521 | |
![]() |
41.5 | 522 | (% style="color:red" %)**2**(%%) Check if there is return from SDI-12 sensor |
![]() |
2.2 | 523 | |
![]() |
40.2 | 524 | (% style="color:red" %)**3** (%%) Check if return pass CRC check ( SDI-12 command var1 must include CRC request); |
![]() |
2.2 | 525 | |
526 | |||
![]() |
40.2 | 527 | Each AT+COMMANDx is followed by a (% style="color:blue" %)**AT+DATACUT**(%%) command. AT+DATACUT command is used to take the useful string from the SDI-12 sensor so the final payload will have the minimum length to uplink. |
![]() |
2.2 | 528 | |
529 | |||
![]() |
40.2 | 530 | (% style="color:blue" %)**AT+DATACUTx**(%%) : This command defines how to handle the return from AT+COMMANDx, max return length is 100 bytes. |
![]() |
2.2 | 531 | |
![]() |
48.4 | 532 | (% border="1" style="width:436px" %) |
![]() |
48.16 | 533 | |(% style="background-color:#f2f2f2; width:433px" %)((( |
534 | (% style="color:#0070c0" %)**AT+DATACUTx=a,b,c** | ||
![]() |
2.2 | 535 | |
![]() |
29.2 | 536 | **a**: length for the return of AT+COMMAND |
![]() |
2.2 | 537 | |
![]() |
37.11 | 538 | **b**: 1: grab valid value by byte, max 6 bytes. 2: grab valid value by bytes section, max 3 sections. |
![]() |
2.2 | 539 | |
![]() |
29.2 | 540 | **c**: define the position for valid value. |
![]() |
2.2 | 541 | ))) |
542 | |||
![]() |
43.1 | 543 | For example, if return from AT+COMMAND1 is “013METER TER12 112T12-00024895<CR><LF>” , Below AT+DATACUT1 will get different result to combine payload: |
![]() |
2.2 | 544 | |
545 | |||
![]() |
90.13 | 546 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) |
![]() |
90.14 | 547 | |=(% style="width: 164px;background-color:#4F81BD;color:white" %)**AT+DATACUT1 value**|=(% style="width: 346px;background-color:#4F81BD;color:white" %)**Final Result to combine Payload** |
![]() |
48.16 | 548 | |(% style="background-color:#f2f2f2; width:164px" %)34,1,1+2+3|(% style="background-color:#f2f2f2; width:344px" %)0D 00 01 30 31 33 |
549 | |(% style="background-color:#f2f2f2; width:164px" %)34,2,1~~8+12~~16|(% style="background-color:#f2f2f2; width:344px" %)0D 00 01 30 31 33 4D 45 54 45 52 54 45 52 31 32 | ||
550 | |(% style="background-color:#f2f2f2; width:164px" %)34,2,1~~34|(% style="background-color:#f2f2f2; width:344px" %)0D 00 01 30 31 33 4D 45 54 45 52 20 20 20 54 45 52 31 32 20 31 31 32 54 31 32 2D 30 30 30 32 34 38 39 35 0D 0A | ||
![]() |
2.2 | 551 | |
![]() |
40.2 | 552 | * (% style="color:blue" %)** Downlink Payload:** |
![]() |
2.2 | 553 | |
![]() |
40.2 | 554 | (% style="color:blue" %)**0xAF**(%%) downlink command can be used to set AT+COMMANDx or AT+DATACUTx. |
![]() |
2.2 | 555 | |
556 | |||
![]() |
40.2 | 557 | (% style="color:red" %)**Note : if user use AT+COMMANDx to add a new command, he also need to send AT+DATACUTx downlink.** |
![]() |
2.2 | 558 | |
559 | |||
![]() |
40.2 | 560 | Format: ** (% style="color:#037691" %)AF MM NN LL XX XX XX XX YY(%%)** |
![]() |
2.2 | 561 | |
562 | Where: | ||
563 | |||
![]() |
40.2 | 564 | * (% style="color:#037691" %)**MM **(%%): the AT+COMMAND or AT+DATACUT to be set. Value from 01 ~~ 0F, |
![]() |
43.1 | 565 | * (% style="color:#037691" %)**NN **(%%): 1: set the AT+COMMAND value ; 2: set the AT+DATACUT value. |
![]() |
40.2 | 566 | * (% style="color:#037691" %)**LL **(%%): The length of AT+COMMAND or AT+DATACUT command |
567 | * (% style="color:#037691" %)**XX XX XX XX **(%%): AT+COMMAND or AT+DATACUT command | ||
![]() |
90.4 | 568 | * (% style="color:#037691" %)**YY **(%%): If YY=0, SDI-12-LB/LS will execute the downlink command without uplink; if YY=1, SDI-12-LB/LS will execute an uplink after got this command. |
![]() |
2.2 | 569 | |
![]() |
40.2 | 570 | (% style="color:blue" %)**Example:** |
![]() |
2.2 | 571 | |
![]() |
47.1 | 572 | [[image:image-20230201094129-18.png||_mstalt="455065"]] |
![]() |
2.2 | 573 | |
574 | |||
![]() |
41.16 | 575 | |
![]() |
40.2 | 576 | (% style="color:blue" %)**Clear SDI12 Command** |
![]() |
2.2 | 577 | |
578 | The AT+COMMANDx and AT+DATACUTx settings are stored in special location, user can use below command to clear them. | ||
579 | |||
580 | |||
![]() |
40.2 | 581 | * (% style="color:#037691" %)**AT Command:** |
![]() |
2.2 | 582 | |
![]() |
40.2 | 583 | (% style="color:#4f81bd" %)**AT+CMDEAR=mm,nn** (%%) mm: start position of erase ,nn: stop position of erase |
![]() |
2.2 | 584 | |
585 | |||
586 | Etc. AT+CMDEAR=1,10 means erase AT+COMMAND1/AT+DATACUT1 to AT+COMMAND10/AT+DATACUT10 | ||
587 | |||
588 | |||
![]() |
90.9 | 589 | * (% style="color:#037691" %)**Downlink Payload:** |
![]() |
2.2 | 590 | |
![]() |
40.2 | 591 | (% style="color:#4f81bd" %)**0x09 aa bb**(%%) same as AT+CMDEAR=aa,bb |
![]() |
2.2 | 592 | |
593 | |||
594 | |||
![]() |
40.2 | 595 | (% style="color:blue" %)**command combination** |
![]() |
2.2 | 596 | |
597 | Below shows a screen shot how the results combines together to a uplink payload. | ||
598 | |||
![]() |
47.1 | 599 | [[image:1675215745275-920.png||_mstalt="295334"]] |
![]() |
2.2 | 600 | |
601 | |||
![]() |
35.2 | 602 | If user don't want to use DATACUT for some command, he simply want to uplink all returns. AT+ALLDATAMOD can be set to 1. |
![]() |
2.2 | 603 | |
![]() |
40.2 | 604 | (% style="color:blue" %)**AT+ALLDATAMOD**(%%) will simply get all return and don't do CRC check as result for SDI-12 command. AT+DATACUTx command has higher priority, if AT+DATACUTx has been set, AT+ALLDATAMOD will be ignore for this SDI-12 command. |
![]() |
2.2 | 605 | |
606 | |||
![]() |
41.7 | 607 | (% style="color:#4f81bd" %)**For example: **(%%) as below photo, AT+ALLDATAMOD=1, but AT+DATACUT1 has been set, AT+DATACUT1 will be still effect the result. |
![]() |
2.2 | 608 | |
609 | |||
![]() |
47.1 | 610 | [[image:1675215782925-448.png||_mstalt="297466"]] |
![]() |
2.2 | 611 | |
612 | |||
![]() |
40.2 | 613 | If AT+ALLDATAMOD=1, (% style="color:#4f81bd" %)**FX,X**(%%) will be added in the payload, FX specify which command is used and X specify the length of return. for example in above screen, F1 05 means the return is from AT+COMMAND1 and the return is 5 bytes. |
![]() |
2.2 | 614 | |
615 | |||
![]() |
41.17 | 616 | (% style="color:blue" %)**Compose Uplink** |
![]() |
2.2 | 617 | |
![]() |
40.2 | 618 | (% style="color:#4f81bd" %)**AT+DATAUP=0** |
![]() |
2.2 | 619 | |
![]() |
41.8 | 620 | Compose the uplink payload with value returns in sequence and send with **__A SIGNLE UPLINK__**. |
![]() |
2.2 | 621 | |
![]() |
41.8 | 622 | Final Payload is **__Battery Info+PAYVER + VALID Value from RETURN1 + Valid Value from RETURN2 + … + RETURNx__** |
![]() |
2.2 | 623 | |
624 | Where PAYVER is defined by AT+PAYVER, below is an example screen shot. | ||
625 | |||
626 | |||
![]() |
47.1 | 627 | [[image:1675215828102-844.png||_mstalt="294645"]] |
![]() |
2.2 | 628 | |
629 | |||
![]() |
40.2 | 630 | (% style="color:#4f81bd" %)**AT+DATAUP=1** |
![]() |
2.2 | 631 | |
![]() |
41.8 | 632 | Compose the uplink payload with value returns in sequence and send with **__Multiply UPLINKs__**. |
![]() |
2.2 | 633 | |
![]() |
41.8 | 634 | Final Payload is __**Battery Info+PAYVER + PAYLOAD COUNT + PAYLOAD# + DATA**__ |
![]() |
2.2 | 635 | |
636 | 1. Battery Info (2 bytes): Battery voltage | ||
637 | 1. PAYVER (1 byte): Defined by AT+PAYVER | ||
638 | 1. PAYLOAD COUNT (1 byte): Total how many uplinks of this sampling. | ||
639 | 1. PAYLOAD# (1 byte): Number of this uplink. (from 0,1,2,3…,to PAYLOAD COUNT) | ||
640 | 1. DATA: Valid value: max 6 bytes(US915 version here, Notice*!) for each uplink so each uplink <= 11 bytes. For the last uplink, DATA will might less than 6 bytes | ||
641 | |||
![]() |
47.1 | 642 | [[image:1675215848113-696.png||_mstalt="296998"]] |
![]() |
2.2 | 643 | |
644 | |||
![]() |
40.2 | 645 | (% style="color:red" %)**Notice: the Max bytes is according to the max support bytes in different Frequency Bands for lowest SF. As below:** |
![]() |
2.2 | 646 | |
![]() |
35.2 | 647 | * For AU915/AS923 bands, if UplinkDwell time=0, max 51 bytes for each uplink ( so 51 -5 = 46 max valid date) |
648 | * For AU915/AS923 bands, if UplinkDwell time=1, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). | ||
649 | * For US915 band, max 11 bytes for each uplink ( so 11 -5 = 6 max valid date). | ||
650 | * For all other bands: max 51 bytes for each uplink ( so 51 -5 = 46 max valid date). | ||
![]() |
2.2 | 651 | |
![]() |
40.2 | 652 | (% style="color:red" %)**When AT+DATAUP=1, the maximum number of segments is 15, and the maximum total number of bytes is 1500;** |
![]() |
2.2 | 653 | |
![]() |
40.2 | 654 | (% style="color:red" %)**When AT+DATAUP=1 and AT+ADR=0, the maximum number of bytes of each payload is determined by the DR value.** |
![]() |
2.2 | 655 | |
656 | |||
![]() |
40.7 | 657 | == 2.4 Uplink Payload == |
![]() |
2.2 | 658 | |
![]() |
37.2 | 659 | === 2.4.1 Device Payload, FPORT~=5 === |
![]() |
2.2 | 660 | |
![]() |
37.2 | 661 | |
![]() |
90.4 | 662 | Include device configure status. Once SDI-12-LB/LS Joined the network, it will uplink this message to the server. |
![]() |
2.2 | 663 | |
![]() |
90.4 | 664 | Users can also use the downlink command(0x26 01) to ask SDI-12-LB/LS to resend this uplink. |
![]() |
2.2 | 665 | |
![]() |
90.13 | 666 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) |
![]() |
90.10 | 667 | |(% colspan="6" style="background-color:#4f81bd; color:white" %)**Device Status (FPORT=5)** |
![]() |
48.5 | 668 | |(% style="background-color:#f2f2f2; width:103px" %)**Size (bytes)**|(% style="background-color:#f2f2f2; width:72px" %)**1**|(% style="background-color:#f2f2f2" %)**2**|(% style="background-color:#f2f2f2; width:91px" %)**1**|(% style="background-color:#f2f2f2; width:86px" %)**1**|(% style="background-color:#f2f2f2; width:44px" %)**2** |
669 | |(% style="background-color:#f2f2f2; width:103px" %)**Value**|(% style="background-color:#f2f2f2; width:72px" %)Sensor Model|(% style="background-color:#f2f2f2" %)Firmware Version|(% style="background-color:#f2f2f2; width:91px" %)Frequency Band|(% style="background-color:#f2f2f2; width:86px" %)Sub-band|(% style="background-color:#f2f2f2; width:44px" %)BAT | ||
![]() |
2.2 | 670 | |
671 | Example parse in TTNv3 | ||
672 | |||
![]() |
47.1 | 673 | [[image:1675215946738-635.png||_mstalt="297778"]] |
![]() |
2.2 | 674 | |
![]() |
37.2 | 675 | |
![]() |
90.4 | 676 | (% style="color:#037691" %)**Sensor Model**(%%): For SDI-12-LB/LS, this value is 0x17 |
![]() |
2.2 | 677 | |
![]() |
40.2 | 678 | (% style="color:#037691" %)**Firmware Version**(%%): 0x0100, Means: v1.0.0 version |
![]() |
2.2 | 679 | |
![]() |
40.2 | 680 | (% style="color:#037691" %)**Frequency Band**: |
![]() |
2.2 | 681 | |
![]() |
73.2 | 682 | 0x01: EU868 |
![]() |
2.2 | 683 | |
![]() |
73.2 | 684 | 0x02: US915 |
![]() |
2.2 | 685 | |
![]() |
73.2 | 686 | 0x03: IN865 |
![]() |
2.2 | 687 | |
![]() |
73.2 | 688 | 0x04: AU915 |
![]() |
2.2 | 689 | |
![]() |
73.2 | 690 | 0x05: KZ865 |
![]() |
2.2 | 691 | |
![]() |
73.2 | 692 | 0x06: RU864 |
![]() |
2.2 | 693 | |
![]() |
73.2 | 694 | 0x07: AS923 |
![]() |
2.2 | 695 | |
![]() |
73.2 | 696 | 0x08: AS923-1 |
![]() |
2.2 | 697 | |
![]() |
73.2 | 698 | 0x09: AS923-2 |
![]() |
2.2 | 699 | |
![]() |
73.2 | 700 | 0x0a: AS923-3 |
![]() |
2.2 | 701 | |
![]() |
73.2 | 702 | 0x0b: CN470 |
![]() |
2.2 | 703 | |
![]() |
73.2 | 704 | 0x0c: EU433 |
![]() |
2.2 | 705 | |
![]() |
73.2 | 706 | 0x0d: KR920 |
![]() |
2.2 | 707 | |
![]() |
73.2 | 708 | 0x0e: MA869 |
![]() |
2.2 | 709 | |
710 | |||
![]() |
40.2 | 711 | (% style="color:#037691" %)**Sub-Band**: |
![]() |
2.2 | 712 | |
713 | AU915 and US915:value 0x00 ~~ 0x08 | ||
714 | |||
715 | CN470: value 0x0B ~~ 0x0C | ||
716 | |||
717 | Other Bands: Always 0x00 | ||
718 | |||
719 | |||
![]() |
40.2 | 720 | (% style="color:#037691" %)**Battery Info**: |
![]() |
2.2 | 721 | |
722 | Check the battery voltage. | ||
723 | |||
724 | Ex1: 0x0B45 = 2885mV | ||
725 | |||
726 | Ex2: 0x0B49 = 2889mV | ||
727 | |||
728 | |||
![]() |
37.2 | 729 | === 2.4.2 Uplink Payload, FPORT~=2 === |
![]() |
2.2 | 730 | |
![]() |
37.2 | 731 | |
![]() |
2.2 | 732 | There are different cases for uplink. See below |
733 | |||
734 | * SDI-12 Debug Command return: FPORT=100 | ||
735 | |||
736 | * Periodically Uplink: FPORT=2 | ||
737 | |||
![]() |
90.13 | 738 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:500px" %) |
![]() |
90.7 | 739 | |=(% style="width: 90px;background-color:#4F81BD;color:white" %)((( |
![]() |
37.2 | 740 | **Size(bytes)** |
![]() |
90.7 | 741 | )))|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 90px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 240px;background-color:#4F81BD;color:white" %)**Length depends on the return from the commands** |
![]() |
87.9 | 742 | |(% style="width:93px" %)Value|(% style="width:83px" %)((( |
![]() |
2.2 | 743 | Battery(mV) |
744 | & | ||
745 | Interrupt_Flag | ||
![]() |
41.18 | 746 | )))|(% style="width:91px" %)[[PAYLOAD_VER>>||anchor="H3.6Setthepayloadversion"]]|(% style="width:212px" %)((( |
![]() |
37.2 | 747 | If the valid payload is too long and exceed the maximum support. |
![]() |
2.2 | 748 | Payload length in server,server will show payload not provided in the LoRaWAN server. |
749 | ))) | ||
750 | |||
![]() |
47.1 | 751 | [[image:1675216282284-923.png||_mstalt="295633"]] |
![]() |
2.2 | 752 | |
753 | |||
![]() |
37.2 | 754 | === 2.4.3 Battery Info === |
![]() |
2.2 | 755 | |
756 | |||
![]() |
90.4 | 757 | Check the battery voltage for SDI-12-LB/LS. |
![]() |
2.2 | 758 | |
759 | Ex1: 0x0B45 = 2885mV | ||
760 | |||
761 | Ex2: 0x0B49 = 2889mV | ||
762 | |||
763 | |||
![]() |
37.2 | 764 | === 2.4.4 Interrupt Pin === |
![]() |
2.2 | 765 | |
![]() |
37.2 | 766 | |
![]() |
40.2 | 767 | This data field shows if this packet is generated by (% style="color:#037691" %)**Interrupt Pin**(%%) or not. [[Click here>>||anchor="H3.2SetInterruptMode"]] for the hardware and software set up. Note: The Internet Pin is a separate pin in the screw terminal. See [[pin mapping>>||anchor="H1.7PinMapping"]]. |
![]() |
2.2 | 768 | |
![]() |
37.2 | 769 | **Example:** |
![]() |
2.2 | 770 | |
771 | Ex1: 0x0B45:0x0B&0x80= 0x00 Normal uplink packet. | ||
772 | |||
773 | Ex2: 0x8B49:0x8B&0x80= 0x80 Interrupt Uplink Packet. | ||
774 | |||
775 | |||
![]() |
37.2 | 776 | === 2.4.5 Payload version === |
![]() |
2.2 | 777 | |
![]() |
49.3 | 778 | |
![]() |
43.1 | 779 | The version number of the payload, mainly used for decoding. The default is 01. |
![]() |
2.2 | 780 | |
781 | |||
![]() |
37.2 | 782 | === 2.4.6 Decode payload in The Things Network === |
![]() |
2.2 | 783 | |
784 | |||
785 | While using TTN network, you can add the payload format to decode the payload. | ||
786 | |||
![]() |
47.1 | 787 | [[image:1675216779406-595.png||_mstalt="298376"]] |
![]() |
2.2 | 788 | |
789 | |||
790 | There is no fix payload decoder in LoRaWAN server because the SDI-12 sensors returns are different. User need to write the decoder themselves for their case. | ||
791 | |||
![]() |
90.4 | 792 | SDI-12-LB/LS TTN Payload Decoder: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>url:https://github.com/dragino/dragino-end-node-decoder]] |
![]() |
2.2 | 793 | |
794 | |||
![]() |
37.3 | 795 | == 2.5 Uplink Interval == |
![]() |
2.2 | 796 | |
797 | |||
![]() |
90.4 | 798 | The SDI-12-LB/LS by default uplink the sensor data every 20 minutes. User can change this interval by AT Command or LoRaWAN Downlink Command. See this link: |
![]() |
2.2 | 799 | |
![]() |
44.2 | 800 | [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H4.1ChangeUplinkInterval]] |
![]() |
2.2 | 801 | |
802 | |||
![]() |
56.1 | 803 | == 2.6 Examples To Set SDI commands == |
![]() |
2.2 | 804 | |
![]() |
56.1 | 805 | === 2.6.1 Examples 1 ~-~- General Example === |
![]() |
2.2 | 806 | |
![]() |
44.2 | 807 | |
![]() |
90.4 | 808 | COM port and SDI-12 sensor communication converted to SDI-12-LB/LS and SDI-12 sensor communication. |
![]() |
43.1 | 809 | |
![]() |
47.1 | 810 | [[image:image-20230222143809-1.png||_mstalt="429962" height="564" width="729"]] |
![]() |
43.1 | 811 | |
812 | |||
![]() |
44.2 | 813 | (% style="color:blue" %)**1) The AT+COMMANDx command is applied to the red arrow part, and sends the SDI12 command to the SDI12 sensor:** |
![]() |
43.1 | 814 | |
![]() |
44.2 | 815 | a. Send the first command and get the first reply: |
![]() |
43.1 | 816 | |
![]() |
44.2 | 817 | (% style="color:#037691" %)**AT+COMMANDx=1I!,0,0,1** |
![]() |
43.1 | 818 | |
![]() |
44.2 | 819 | b. Send the second command and get the second reply: |
![]() |
43.1 | 820 | |
![]() |
44.2 | 821 | (% style="color:#037691" %)**AT+COMMANDx=2I!,0,0,1** |
![]() |
43.1 | 822 | |
![]() |
44.2 | 823 | c. Send the third command and get the third reply: |
![]() |
43.1 | 824 | |
![]() |
44.2 | 825 | (% style="color:#037691" %)**AT+COMMANDx=3I!,0,0,1** |
![]() |
43.1 | 826 | |
![]() |
44.2 | 827 | d. Send the fourth command and get the fourth reply: |
![]() |
43.1 | 828 | |
![]() |
44.2 | 829 | (% style="color:#037691" %)**AT+COMMANDx=4I!,0,0,1** |
![]() |
43.1 | 830 | |
![]() |
44.2 | 831 | e. Send the fifth command plus the sixth command, get the sixth reply: |
![]() |
43.1 | 832 | |
![]() |
44.2 | 833 | (% style="color:#037691" %)**AT+COMMANDx=1M!,2,1,1** |
![]() |
43.1 | 834 | |
![]() |
44.2 | 835 | f. Send the seventh command plus the eighth command, get the eighth reply: |
![]() |
43.1 | 836 | |
![]() |
44.2 | 837 | (% style="color:#037691" %)**AT+COMMANDx=2M!,2,1,1** |
![]() |
43.1 | 838 | |
![]() |
44.2 | 839 | g. Send the ninth command plus the tenth command, get the tenth reply: |
![]() |
43.1 | 840 | |
![]() |
44.2 | 841 | (% style="color:#037691" %)**AT+COMMANDx=3M!,1,1,1** |
![]() |
43.1 | 842 | |
![]() |
44.2 | 843 | h. Send the eleventh command plus the twelfth command, get the twelfth reply: |
![]() |
43.1 | 844 | |
![]() |
44.2 | 845 | (% style="color:#037691" %)**AT+COMMANDx=4M!,1,1,1** |
![]() |
43.1 | 846 | |
847 | |||
![]() |
90.15 | 848 | (% style="color:blue" %)**2) The AT+DATACUTx command is applied to the green arrow part, receiving and cut out data from the SDI12 sensor:** |
![]() |
43.1 | 849 | |
![]() |
44.2 | 850 | a. The first reply, all 34 characters: ”113TRUEBNERSMT100038220303182331<CR><LF>” |
![]() |
43.1 | 851 | |
![]() |
47.1 | 852 | Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=34,2,1~~34**(% style="color:#037691" %); |
![]() |
44.2 | 853 | |
![]() |
90.15 | 854 | b. The sixth reply, all 31 characters: "1+19210+1.04+0.00+22.49+11.75<CR><LF>" |
![]() |
43.1 | 855 | |
![]() |
47.1 | 856 | Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**(% style="color:#037691" %); |
![]() |
43.1 | 857 | |
![]() |
90.15 | 858 | c. The eighth reply, all 31 characters: "2+18990+1.08+0.00+22.24+11.80<CR><LF>" |
![]() |
43.1 | 859 | |
![]() |
47.1 | 860 | Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=31,2,1~~31**(% style="color:#037691" %); |
![]() |
43.1 | 861 | |
![]() |
90.15 | 862 | d. The tenth reply, all 15 characters: "3-2919.8+24.0<CR><LF>" |
![]() |
43.1 | 863 | |
![]() |
47.1 | 864 | Cut out all characters: (% _mstmutation="1" style="color:#037691" %)**AT+ALLDATAMOD=1 or AT+DATACUTx=15,2,1~~15**(% style="color:#037691" %); |
![]() |
43.1 | 865 | |
![]() |
90.15 | 866 | e. The twelfth reply, all 25 characters: "4+30.8+22.84+4.7+954.38<CR><LF>" |
![]() |
43.1 | 867 | |
![]() |
90.15 | 868 | Partial cut, the cut sensor address and the first two parameters:(% style="color:#037691" %)**AT+DATACUTx=25,2,1~~12, cut out the character field "4+30.8+22.84"**. |
![]() |
43.1 | 869 | |
870 | |||
![]() |
71.1 | 871 | === 2.6.2 Example 2 ~-~- Connect to Hygrovue10 === |
![]() |
56.1 | 872 | |
873 | ==== 2.6.2.1 Reference Manual and Command ==== | ||
874 | |||
![]() |
72.2 | 875 | |
![]() |
56.1 | 876 | * [[Hygrovue10 Product Page>>https://www.campbellsci.com/hygrovue10]] |
![]() |
72.2 | 877 | |
![]() |
56.1 | 878 | * Commands to be used in PC and output. |
879 | |||
![]() |
72.2 | 880 | ~1. check device address |
![]() |
56.1 | 881 | |
![]() |
72.2 | 882 | 2. change device address |
![]() |
56.1 | 883 | |
![]() |
72.2 | 884 | 3. check device ID |
![]() |
56.1 | 885 | |
![]() |
72.2 | 886 | 4. start measure |
![]() |
56.1 | 887 | |
![]() |
72.2 | 888 | 5. Get Meausre result |
![]() |
56.1 | 889 | |
890 | [[image:image-20230603120209-2.png||height="281" width="267"]] | ||
891 | |||
892 | |||
![]() |
90.4 | 893 | ==== 2.6.2.2 Hardware Connection to SDI-12-LB/LS ==== |
![]() |
56.1 | 894 | |
![]() |
72.2 | 895 | |
![]() |
56.1 | 896 | [[image:image-20230603120515-3.png]] |
897 | |||
898 | |||
![]() |
90.4 | 899 | ==== 2.6.2.3 Commands set in SDI-12-LB/LS and uplink payload ==== |
![]() |
56.1 | 900 | |
![]() |
72.2 | 901 | |
![]() |
56.1 | 902 | [[image:image-20230603120648-4.png]] |
903 | |||
904 | [[image:image-20230603120726-5.png]] | ||
905 | |||
906 | |||
![]() |
72.2 | 907 | **Data in TTN:** |
908 | |||
![]() |
56.1 | 909 | [[image:image-20230603120859-6.png||height="118" width="1285"]] |
910 | |||
911 | |||
![]() |
87.5 | 912 | === 2.6.3 Example 3 ~-~- Connect to SIL-400 === |
![]() |
56.1 | 913 | |
![]() |
71.1 | 914 | ==== 2.6.3.1 Reference Manual and Command ==== |
![]() |
56.1 | 915 | |
![]() |
72.2 | 916 | |
![]() |
71.1 | 917 | * [[SIL-400 Product Page>>https://www.apogeeinstruments.com/sil-411-commercial-grade-sdi-12-digital-output-standard-field-of-view-infrared-radiometer-sensor/]] |
![]() |
72.2 | 918 | |
![]() |
71.1 | 919 | * Commands to be used in PC and output. |
920 | |||
![]() |
72.2 | 921 | ~1. check device address |
![]() |
71.1 | 922 | |
![]() |
72.2 | 923 | 2. change device address |
![]() |
71.1 | 924 | |
![]() |
72.2 | 925 | 3. check device ID |
![]() |
71.1 | 926 | |
![]() |
72.2 | 927 | 4. start measure |
![]() |
71.1 | 928 | |
![]() |
72.2 | 929 | 5. Get Meausre result |
![]() |
71.1 | 930 | |
931 | [[image:image-20230603121606-7.png||height="242" width="307"]] | ||
932 | |||
933 | |||
![]() |
90.4 | 934 | ==== 2.6.3.2 Hardware Connection to SDI-12-LB/LS ==== |
![]() |
71.1 | 935 | |
![]() |
72.3 | 936 | |
![]() |
71.1 | 937 | [[image:image-20230603121643-8.png||height="442" width="656"]] |
938 | |||
939 | |||
![]() |
90.4 | 940 | ==== 2.6.3.3 Commands set in SDI-12-LB/LS and uplink payload ==== |
![]() |
71.1 | 941 | |
![]() |
72.3 | 942 | |
![]() |
71.1 | 943 | [[image:image-20230603121721-9.png]] |
944 | |||
![]() |
83.1 | 945 | [[image:image-20230628090323-1.png||height="414" width="694"]] |
![]() |
71.1 | 946 | |
947 | Data in TTN: | ||
948 | |||
949 | [[image:image-20230603121826-11.png||height="155" width="1104"]] | ||
950 | |||
951 | |||
![]() |
87.4 | 952 | === 2.6.4 Example 4 ~-~- Connect to TEROS-12 === |
![]() |
71.1 | 953 | |
954 | ==== 2.6.4.1 Reference Manual and Command ==== | ||
955 | |||
![]() |
72.3 | 956 | |
![]() |
71.1 | 957 | * [[TEROS-12 Product Page>>https://www.metergroup.com/en/meter-environment/products/teros-12-soil-moisture-sensor]] |
![]() |
72.3 | 958 | |
![]() |
71.1 | 959 | * Commands to be used in PC and output. |
960 | |||
961 | 1.check device address | ||
962 | |||
963 | 2.change device address | ||
964 | |||
965 | 3.check device ID | ||
966 | |||
967 | 4.start measure | ||
968 | |||
969 | 5.Get Meausre result | ||
970 | |||
971 | [[image:image-20230603122248-16.png||height="196" width="198"]] | ||
972 | |||
973 | |||
![]() |
90.4 | 974 | ==== 2.6.4.2 Hardware Connection to SDI-12-LB/LS ==== |
![]() |
71.1 | 975 | |
![]() |
72.3 | 976 | |
![]() |
71.1 | 977 | [[image:image-20230603122212-15.png||height="502" width="667"]] |
978 | |||
979 | |||
![]() |
90.4 | 980 | ==== 2.6.4.3 Commands set in SDI-12-LB/LS and uplink payload ==== |
![]() |
71.1 | 981 | |
![]() |
73.4 | 982 | |
![]() |
71.1 | 983 | [[image:image-20230603122040-12.png]] |
984 | |||
985 | [[image:image-20230603122109-13.png||height="469" width="762"]] | ||
986 | |||
987 | |||
![]() |
72.3 | 988 | **Data in TTN:** |
989 | |||
![]() |
71.1 | 990 | [[image:image-20230603122139-14.png||height="148" width="1128"]] |
991 | |||
992 | |||
![]() |
87.4 | 993 | === 2.6.5 Example 5 ~-~- Connect to SIL-400/TEROS-12 & Hygrovue10 === |
![]() |
71.1 | 994 | |
![]() |
72.1 | 995 | ==== 2.6.5.1 Important Notice! ==== |
![]() |
71.1 | 996 | |
![]() |
72.3 | 997 | |
![]() |
71.1 | 998 | * The product page and reference command see above example 2,3,4 |
![]() |
72.3 | 999 | |
![]() |
71.1 | 1000 | * All of these SDI-12 sensors use the same address (address 0) by default. So we need to change their address to different address, by using **aAb!** command. See above example. |
![]() |
72.3 | 1001 | |
![]() |
71.1 | 1002 | * The sensor needs to be powered to a steady statue. So the 12VT time need to be set to the maximum stable time for the sensors. in this example, it is 13 seconds. |
![]() |
72.3 | 1003 | |
![]() |
90.4 | 1004 | * If these SDI-12 sensors are powered by external power source. It will add 300uA in the total current in SDI-12-LB/LS. |
![]() |
71.1 | 1005 | |
![]() |
90.4 | 1006 | ==== 2.6.5.2 Hardware Connection to SDI-12-LB/LS ==== |
![]() |
71.1 | 1007 | |
![]() |
72.3 | 1008 | |
![]() |
71.1 | 1009 | [[image:image-20230603122508-17.png||height="526" width="742"]] |
1010 | |||
1011 | |||
![]() |
90.4 | 1012 | ==== 2.6.5.3 Commands set in SDI-12-LB/LS and uplink payload ==== |
![]() |
71.1 | 1013 | |
![]() |
72.3 | 1014 | |
![]() |
71.1 | 1015 | [[image:image-20230603122549-18.png]] |
1016 | |||
1017 | [[image:image-20230603122623-19.png||height="483" width="1121"]] | ||
1018 | |||
1019 | |||
![]() |
72.3 | 1020 | **Data in TTN:** |
1021 | |||
![]() |
71.1 | 1022 | [[image:image-20230603122719-20.png||height="151" width="1179"]] |
1023 | |||
1024 | |||
![]() |
87.4 | 1025 | === 2.6.6 Example 6 ~-~- Connect to ENTELECHY-EP_SDI-12 === |
![]() |
81.1 | 1026 | |
![]() |
87.4 | 1027 | ==== 2.6.6.1 Reference Manual and Command ==== |
![]() |
81.1 | 1028 | |
1029 | |||
1030 | * [[https:~~/~~/enviroprosoilprobes.com/wp-content/uploads/2019/11/ENTELECHY-EP_SDI-12-Commands.pdf>>url:https://enviroprosoilprobes.com/wp-content/uploads/2019/11/ENTELECHY-EP_SDI-12-Commands.pdf]] | ||
1031 | |||
1032 | * Commands to be used in PC and output. | ||
1033 | |||
1034 | 1.check device address | ||
1035 | |||
1036 | 2.change device address | ||
1037 | |||
1038 | 3.check device ID | ||
1039 | |||
1040 | 4.start measure | ||
1041 | |||
1042 | 5.Get Meausre result | ||
1043 | |||
1044 | |||
1045 | [[image:image-20230627174559-3.png]] | ||
1046 | |||
![]() |
87.3 | 1047 | |
![]() |
90.4 | 1048 | ==== 2.6.6.2 Hardware Connection to SDI-12-LB/LS ==== |
![]() |
81.1 | 1049 | |
![]() |
87.3 | 1050 | |
![]() |
81.1 | 1051 | [[image:image-20230627174446-2.png]] |
1052 | |||
1053 | |||
![]() |
90.4 | 1054 | ==== 2.6.6.3 Commands set in SDI-12-LB/LS and uplink payload ==== |
![]() |
81.1 | 1055 | |
1056 | |||
1057 | [[image:image-20230627175513-4.png||height="596" width="576"]] | ||
1058 | |||
1059 | [[image:image-20230627175736-5.png||height="429" width="693"]] | ||
1060 | |||
1061 | |||
1062 | **Data in TTN:** | ||
1063 | |||
1064 | [[image:image-20230627180303-6.png||height="292" width="1171"]] | ||
1065 | |||
![]() |
87.3 | 1066 | |
![]() |
118.1 | 1067 | === 2.6.7 Example 7 ~-~- Connect to GroPoint Profile-8 (SDI-12 Version) === |
![]() |
97.1 | 1068 | |
![]() |
99.1 | 1069 | ==== 2.6.7.1 Reference Manual and Command ==== |
![]() |
97.1 | 1070 | |
![]() |
103.1 | 1071 | |
![]() |
97.1 | 1072 | * [[https:~~/~~/static1.squarespace.com/static/5db0b690c4990258f8f6d042/t/64189e1ab3ebc54e6947b0c0/1679334941034/2625-N-T+GroPoint+Profile+User+Manual-V1.1.3.pdf>>https://static1.squarespace.com/static/5db0b690c4990258f8f6d042/t/64189e1ab3ebc54e6947b0c0/1679334941034/2625-N-T+GroPoint+Profile+User+Manual-V1.1.3.pdf]] |
1073 | |||
1074 | * Commands to be used in PC and output. | ||
1075 | |||
![]() |
99.1 | 1076 | 1. check device address |
1077 | 1. change device address | ||
1078 | 1. check device ID | ||
1079 | 1. start measure | ||
1080 | 1. Get Meausre result | ||
![]() |
97.1 | 1081 | |
1082 | [[image:image-20240423143921-1.png]] | ||
1083 | |||
1084 | |||
1085 | ==== 2.6.7.2 Hardware Connection to SDI-12-LB/LS ==== | ||
1086 | |||
![]() |
100.1 | 1087 | |
![]() |
103.1 | 1088 | (% style="color:red" %)**Note: When the bytes returned by the sensor are not fixed, the full byte interception can be used: AT+ALLDATAMOD=1 (The DATACUTx parameter needs to be cleared when using this directive, or it will not work.)** |
1089 | |||
![]() |
97.1 | 1090 | [[image:image-20240423145522-2.png||height="345" width="400"]] |
1091 | |||
1092 | |||
1093 | ==== 2.6.7.3 Commands set in SDI-12-LB/LS and uplink payload ==== | ||
1094 | |||
1095 | [[image:image-20240423151202-3.png]] | ||
1096 | |||
![]() |
98.1 | 1097 | (% class="wikigeneratedid" id="H" %) |
1098 | [[image:image-20240423162851-6.png||height="251" width="935"]] | ||
![]() |
97.1 | 1099 | |
1100 | |||
1101 | DATA in TTN: | ||
1102 | |||
![]() |
98.1 | 1103 | [[image:image-20240423162322-4.png||height="269" width="933"]] |
![]() |
97.1 | 1104 | |
1105 | |||
![]() |
120.1 | 1106 | === 2.6.8 Example 8 ~-~- Connect to Acclima TDR Soil Moisture Sensor === |
![]() |
117.1 | 1107 | |
1108 | ==== 2.6.8.1 Reference Manual and Command ==== | ||
1109 | |||
1110 | |||
1111 | * [[Acclima TDR Soil Moisture Sensor User Manual>>url:https://acclima.com/tdr-soil-moisture-sensor-user-manual/]] | ||
1112 | |||
1113 | * Commands to be used in PC and output. | ||
1114 | |||
1115 | 1. check device address | ||
1116 | 1. change device address | ||
1117 | 1. check device ID | ||
1118 | 1. start measure | ||
1119 | 1. Get Meausre result | ||
1120 | |||
1121 | [[image:image-20240903152650-3.png]] | ||
1122 | |||
1123 | [[image:image-20240903152627-2.png]] | ||
1124 | |||
![]() |
122.1 | 1125 | |
![]() |
117.1 | 1126 | ==== 2.6.8.2 Hardware Connection to SDI-12-LB/LS ==== |
1127 | |||
1128 | |||
1129 | (% style="color:red" %)**Note: When the bytes returned by the sensor are not fixed, the full byte interception can be used: AT+ALLDATAMOD=1 (The DATACUTx parameter needs to be cleared when using this directive, or it will not work.)** | ||
1130 | |||
1131 | [[image:image-20240903153004-5.png||height="358" width="660"]] | ||
1132 | |||
![]() |
122.1 | 1133 | |
![]() |
117.1 | 1134 | ==== 2.6.8.3 Commands set in SDI-12-LB/LS and uplink payload ==== |
1135 | |||
![]() |
122.1 | 1136 | |
![]() |
117.1 | 1137 | [[image:image-20240903153258-6.png]] |
1138 | |||
1139 | [[image:image-20240903153627-7.png]] | ||
1140 | |||
1141 | DATA in TTN: | ||
1142 | |||
1143 | [[image:image-20240903154020-10.png||height="467" width="961"]] | ||
1144 | |||
![]() |
122.1 | 1145 | |
![]() |
43.1 | 1146 | == 2.7 Frequency Plans == |
1147 | |||
1148 | |||
![]() |
90.11 | 1149 | The SDI-12-LB/LS uses OTAA mode and below frequency plans by default. Each frequency band use different firmware, user update the firmware to the corresponding band for their country. |
![]() |
2.2 | 1150 | |
![]() |
37.3 | 1151 | [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20Frequency%20Band/]] |
![]() |
2.2 | 1152 | |
1153 | |||
![]() |
43.1 | 1154 | == 2.8 Firmware Change Log == |
![]() |
37.3 | 1155 | |
1156 | |||
![]() |
2.2 | 1157 | **Firmware download link:** |
1158 | |||
![]() |
41.9 | 1159 | [[https:~~/~~/www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0>>https://www.dropbox.com/sh/qrbgbikb109lkiv/AACBR-v_ZhZAMengcY7Nsa1ja?dl=0]] |
![]() |
2.2 | 1160 | |
1161 | |||
![]() |
90.4 | 1162 | = 3. Configure SDI-12-LB/LS via AT Command or LoRaWAN Downlink = |
![]() |
2.2 | 1163 | |
1164 | |||
![]() |
90.4 | 1165 | Use can configure SDI-12-LB/LS via AT Command or LoRaWAN Downlink. |
![]() |
2.2 | 1166 | |
![]() |
40.8 | 1167 | * AT Command Connection: See [[FAQ>>||anchor="H7.FAQ"]]. |
![]() |
37.3 | 1168 | * LoRaWAN Downlink instruction for different platforms: See [[IoT LoRaWAN Server>>http://wiki.dragino.com/xwiki/bin/view/Main/]] section. |
![]() |
2.2 | 1169 | |
![]() |
90.4 | 1170 | There are two kinds of commands to configure SDI-12-LB/LS, they are: |
![]() |
2.2 | 1171 | |
![]() |
40.7 | 1172 | * (% style="color:blue" %)**General Commands**. |
![]() |
2.2 | 1173 | |
1174 | These commands are to configure: | ||
1175 | |||
1176 | * General system settings like: uplink interval. | ||
1177 | * LoRaWAN protocol & radio related command. | ||
1178 | |||
1179 | They are same for all Dragino Device which support DLWS-005 LoRaWAN Stack. These commands can be found on the wiki: | ||
1180 | |||
![]() |
40.2 | 1181 | [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/>>http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/]] |
![]() |
2.2 | 1182 | |
1183 | |||
![]() |
90.4 | 1184 | * (% style="color:blue" %)**Commands special design for SDI-12-LB/LS** |
![]() |
2.2 | 1185 | |
![]() |
90.4 | 1186 | These commands only valid for SDI-12-LB/LS, as below: |
![]() |
2.2 | 1187 | |
1188 | |||
![]() |
43.1 | 1189 | == 3.1 Set Transmit Interval Time == |
![]() |
2.2 | 1190 | |
1191 | |||
1192 | Feature: Change LoRaWAN End Node Transmit Interval. | ||
1193 | |||
![]() |
37.3 | 1194 | (% style="color:blue" %)**AT Command: AT+TDC** |
![]() |
2.2 | 1195 | |
![]() |
90.13 | 1196 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) |
![]() |
90.7 | 1197 | |=(% style="width: 160px; background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 160px; background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 190px;background-color:#4F81BD;color:white" %)**Response** |
![]() |
48.7 | 1198 | |(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=?|(% style="background-color:#f2f2f2; width:166px" %)Show current transmit Interval|(% style="background-color:#f2f2f2" %)((( |
![]() |
2.2 | 1199 | 30000 |
1200 | OK | ||
1201 | the interval is 30000ms = 30s | ||
1202 | ))) | ||
![]() |
48.7 | 1203 | |(% style="background-color:#f2f2f2; width:157px" %)AT+TDC=60000|(% style="background-color:#f2f2f2; width:166px" %)Set Transmit Interval|(% style="background-color:#f2f2f2" %)((( |
![]() |
2.2 | 1204 | OK |
1205 | Set transmit interval to 60000ms = 60 seconds | ||
1206 | ))) | ||
1207 | |||
![]() |
37.3 | 1208 | (% style="color:blue" %)**Downlink Command: 0x01** |
![]() |
2.2 | 1209 | |
1210 | Format: Command Code (0x01) followed by 3 bytes time value. | ||
1211 | |||
![]() |
37.6 | 1212 | If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01. |
![]() |
2.2 | 1213 | |
![]() |
37.6 | 1214 | * Example 1: Downlink Payload: 0100001E ~/~/ Set Transmit Interval (TDC) = 30 seconds |
1215 | * Example 2: Downlink Payload: 0100003C ~/~/ Set Transmit Interval (TDC) = 60 seconds | ||
![]() |
2.2 | 1216 | |
![]() |
37.3 | 1217 | == 3.2 Set Interrupt Mode == |
![]() |
2.2 | 1218 | |
![]() |
37.6 | 1219 | |
![]() |
2.2 | 1220 | Feature, Set Interrupt mode for GPIO_EXIT. |
1221 | |||
![]() |
37.3 | 1222 | (% style="color:blue" %)**AT Command: AT+INTMOD** |
![]() |
2.2 | 1223 | |
![]() |
90.13 | 1224 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) |
![]() |
90.7 | 1225 | |=(% style="width: 154px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 196px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 160px;background-color:#4F81BD;color:white" %)**Response** |
![]() |
48.8 | 1226 | |(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=?|(% style="background-color:#f2f2f2; width:196px" %)Show current interrupt mode|(% style="background-color:#f2f2f2; width:157px" %)((( |
![]() |
2.2 | 1227 | 0 |
1228 | OK | ||
![]() |
48.8 | 1229 | the mode is 0 =Disable Interrupt |
![]() |
2.2 | 1230 | ))) |
![]() |
48.8 | 1231 | |(% style="background-color:#f2f2f2; width:154px" %)AT+INTMOD=2|(% style="background-color:#f2f2f2; width:196px" %)((( |
![]() |
2.2 | 1232 | Set Transmit Interval |
![]() |
43.1 | 1233 | 0. (Disable Interrupt), |
1234 | ~1. (Trigger by rising and falling edge) | ||
1235 | 2. (Trigger by falling edge) | ||
1236 | 3. (Trigger by rising edge) | ||
![]() |
48.8 | 1237 | )))|(% style="background-color:#f2f2f2; width:157px" %)OK |
![]() |
2.2 | 1238 | |
![]() |
37.3 | 1239 | (% style="color:blue" %)**Downlink Command: 0x06** |
![]() |
2.2 | 1240 | |
1241 | Format: Command Code (0x06) followed by 3 bytes. | ||
1242 | |||
1243 | This means that the interrupt mode of the end node is set to 0x000003=3 (rising edge trigger), and the type code is 06. | ||
1244 | |||
![]() |
37.6 | 1245 | * Example 1: Downlink Payload: 06000000 ~/~/ Turn off interrupt mode |
1246 | * Example 2: Downlink Payload: 06000003 ~/~/ Set the interrupt mode to rising edge trigger | ||
![]() |
2.2 | 1247 | |
![]() |
37.3 | 1248 | == 3.3 Set the output time == |
1249 | |||
1250 | |||
![]() |
2.2 | 1251 | Feature, Control the output 3V3 , 5V or 12V. |
1252 | |||
![]() |
37.3 | 1253 | (% style="color:blue" %)**AT Command: AT+3V3T** |
![]() |
2.2 | 1254 | |
![]() |
90.13 | 1255 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:474px" %) |
![]() |
90.7 | 1256 | |=(% style="width: 154px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 201px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 120px;background-color:#4F81BD;color:white" %)**Response** |
![]() |
48.9 | 1257 | |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=?|(% style="background-color:#f2f2f2; width:201px" %)Show 3V3 open time.|(% style="background-color:#f2f2f2; width:116px" %)((( |
![]() |
2.2 | 1258 | 0 |
1259 | OK | ||
1260 | ))) | ||
![]() |
48.9 | 1261 | |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=0|(% style="background-color:#f2f2f2; width:201px" %)Normally open 3V3 power supply.|(% style="background-color:#f2f2f2; width:116px" %)((( |
![]() |
2.2 | 1262 | OK |
1263 | default setting | ||
1264 | ))) | ||
![]() |
48.9 | 1265 | |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=1000|(% style="background-color:#f2f2f2; width:201px" %)Close after a delay of 1000 milliseconds.|(% style="background-color:#f2f2f2; width:116px" %)((( |
![]() |
2.2 | 1266 | OK |
1267 | ))) | ||
![]() |
48.9 | 1268 | |(% style="background-color:#f2f2f2; width:154px" %)AT+3V3T=65535|(% style="background-color:#f2f2f2; width:201px" %)Normally closed 3V3 power supply.|(% style="background-color:#f2f2f2; width:116px" %)((( |
![]() |
2.2 | 1269 | OK |
1270 | ))) | ||
1271 | |||
![]() |
37.3 | 1272 | (% style="color:blue" %)**AT Command: AT+5VT** |
![]() |
2.2 | 1273 | |
![]() |
48.21 | 1274 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:470px" %) |
![]() |
90.7 | 1275 | |=(% style="width: 155px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 196px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 119px;background-color:#4F81BD;color:white" %)**Response** |
![]() |
48.9 | 1276 | |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=?|(% style="background-color:#f2f2f2; width:196px" %)Show 5V open time.|(% style="background-color:#f2f2f2; width:114px" %)((( |
![]() |
2.2 | 1277 | 0 |
1278 | OK | ||
1279 | ))) | ||
![]() |
48.9 | 1280 | |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=0|(% style="background-color:#f2f2f2; width:196px" %)Normally closed 5V power supply.|(% style="background-color:#f2f2f2; width:114px" %)((( |
![]() |
2.2 | 1281 | OK |
1282 | default setting | ||
1283 | ))) | ||
![]() |
48.9 | 1284 | |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=1000|(% style="background-color:#f2f2f2; width:196px" %)Close after a delay of 1000 milliseconds.|(% style="background-color:#f2f2f2; width:114px" %)((( |
![]() |
2.2 | 1285 | OK |
1286 | ))) | ||
![]() |
48.9 | 1287 | |(% style="background-color:#f2f2f2; width:155px" %)AT+5VT=65535|(% style="background-color:#f2f2f2; width:196px" %)Normally open 5V power supply.|(% style="background-color:#f2f2f2; width:114px" %)((( |
![]() |
2.2 | 1288 | OK |
1289 | ))) | ||
1290 | |||
![]() |
73.1 | 1291 | (% style="color:blue" %)**AT Command: AT+12VT ** |
![]() |
2.2 | 1292 | |
![]() |
87.10 | 1293 | (% style="color:blue" %)**(The v1.2 version is enabled for 1 second by default, and the version below v1.2 is disabled by default)** |
![]() |
73.1 | 1294 | |
![]() |
48.21 | 1295 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:443px" %) |
![]() |
90.7 | 1296 | |=(% style="width: 156px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 199px;background-color:#4F81BD;color:white" %)**Function**|=(% style="width: 89px;background-color:#4F81BD;color:white" %)**Response** |
![]() |
48.9 | 1297 | |(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=?|(% style="background-color:#f2f2f2; width:199px" %)Show 12V open time.|(% style="background-color:#f2f2f2; width:83px" %)((( |
![]() |
2.2 | 1298 | 0 |
1299 | OK | ||
1300 | ))) | ||
![]() |
48.9 | 1301 | |(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=0|(% style="background-color:#f2f2f2; width:199px" %)Normally closed 12V power supply.|(% style="background-color:#f2f2f2; width:83px" %)OK |
1302 | |(% style="background-color:#f2f2f2; width:156px" %)AT+12VT=500|(% style="background-color:#f2f2f2; width:199px" %)Close after a delay of 500 milliseconds.|(% style="background-color:#f2f2f2; width:83px" %)((( | ||
![]() |
2.2 | 1303 | OK |
1304 | ))) | ||
1305 | |||
![]() |
37.3 | 1306 | (% style="color:blue" %)**Downlink Command: 0x07** |
![]() |
2.2 | 1307 | |
1308 | Format: Command Code (0x07) followed by 3 bytes. | ||
1309 | |||
1310 | The first byte is which power, the second and third bytes are the time to turn on. | ||
1311 | |||
![]() |
37.3 | 1312 | * Example 1: Downlink Payload: 070101F4 **~-~-->** AT+3V3T=500 |
1313 | * Example 2: Downlink Payload: 0701FFFF **~-~-->** AT+3V3T=65535 | ||
1314 | * Example 3: Downlink Payload: 070203E8 **~-~-->** AT+5VT=1000 | ||
1315 | * Example 4: Downlink Payload: 07020000 **~-~-->** AT+5VT=0 | ||
1316 | * Example 5: Downlink Payload: 070301F4 **~-~-->** AT+12VT=500 | ||
1317 | * Example 6: Downlink Payload: 07030000 **~-~-->** AT+12VT=0 | ||
![]() |
2.2 | 1318 | |
![]() |
37.3 | 1319 | == 3.4 Set the all data mode == |
1320 | |||
![]() |
37.5 | 1321 | |
![]() |
2.2 | 1322 | Feature, Set the all data mode. |
1323 | |||
![]() |
37.5 | 1324 | (% style="color:blue" %)**AT Command: AT+ALLDATAMOD** |
![]() |
2.2 | 1325 | |
![]() |
90.13 | 1326 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:437px" %) |
![]() |
90.7 | 1327 | |=(% style="background-color:#4F81BD;color:white" %)**Command Example**|=(% style="background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response** |
![]() |
48.16 | 1328 | |(% style="background-color:#f2f2f2" %)AT+ALLDATAMOD=?|(% style="background-color:#f2f2f2" %)Show current all data mode|(% style="background-color:#f2f2f2" %)((( |
![]() |
2.2 | 1329 | 0 |
1330 | OK | ||
1331 | ))) | ||
![]() |
48.16 | 1332 | |(% style="background-color:#f2f2f2" %)AT+ALLDATAMOD=1|(% style="background-color:#f2f2f2" %)Set all data mode is 1.|(% style="background-color:#f2f2f2" %)OK |
![]() |
2.2 | 1333 | |
![]() |
37.5 | 1334 | (% style="color:blue" %)**Downlink Command: 0xAB** |
![]() |
2.2 | 1335 | |
1336 | Format: Command Code (0xAB) followed by 1 bytes. | ||
1337 | |||
![]() |
37.5 | 1338 | * Example 1: Downlink Payload: AB 00 ~/~/ AT+ALLDATAMOD=0 |
1339 | * Example 2: Downlink Payload: AB 01 ~/~/ AT+ALLDATAMOD=1 | ||
![]() |
2.2 | 1340 | |
![]() |
37.3 | 1341 | == 3.5 Set the splicing payload for uplink == |
1342 | |||
![]() |
37.5 | 1343 | |
![]() |
2.2 | 1344 | Feature, splicing payload for uplink. |
1345 | |||
![]() |
37.5 | 1346 | (% style="color:blue" %)**AT Command: AT+DATAUP** |
![]() |
2.2 | 1347 | |
![]() |
90.13 | 1348 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) |
![]() |
90.7 | 1349 | |=(% style="width: 154px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 266px;background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response** |
![]() |
48.16 | 1350 | |(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =?|(% style="background-color:#f2f2f2; width:266px" %)Show current splicing payload for uplink mode|(% style="background-color:#f2f2f2" %)((( |
![]() |
2.2 | 1351 | 0 |
1352 | OK | ||
1353 | ))) | ||
![]() |
48.16 | 1354 | |(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =0|(% style="background-color:#f2f2f2; width:266px" %)((( |
![]() |
2.2 | 1355 | Set splicing payload for uplink mode is 0. |
![]() |
48.16 | 1356 | )))|(% style="background-color:#f2f2f2" %)((( |
![]() |
2.2 | 1357 | OK |
1358 | ))) | ||
![]() |
48.16 | 1359 | |(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =1|(% style="background-color:#f2f2f2; width:266px" %)Set splicing payload for uplink mode is 1 , and the each splice uplink is sent sequentially.|(% style="background-color:#f2f2f2" %)OK |
1360 | |(% style="background-color:#f2f2f2; width:154px" %)AT+DATAUP =1,20000|(% style="background-color:#f2f2f2; width:266px" %)((( | ||
![]() |
37.3 | 1361 | Set splicing payload for uplink mode is 1, and the uplink interval of each splice to 20000 milliseconds. |
![]() |
48.16 | 1362 | )))|(% style="background-color:#f2f2f2" %)OK |
![]() |
2.2 | 1363 | |
![]() |
37.5 | 1364 | (% style="color:blue" %)**Downlink Command: 0xAD** |
![]() |
2.2 | 1365 | |
1366 | Format: Command Code (0xAD) followed by 1 bytes or 5 bytes. | ||
1367 | |||
![]() |
37.6 | 1368 | * Example 1: Downlink Payload: AD 00 ~/~/ AT+DATAUP=0 |
1369 | * Example 2: Downlink Payload: AD 01 ~/~/ AT+DATAUP =1 | ||
1370 | * Example 3: Downlink Payload: AD 01 00 00 14 ~/~/ AT+DATAUP =1,20000 | ||
![]() |
2.2 | 1371 | |
1372 | This means that the interval is set to 0x000014=20S | ||
1373 | |||
1374 | |||
![]() |
37.3 | 1375 | == 3.6 Set the payload version == |
![]() |
2.2 | 1376 | |
![]() |
41.20 | 1377 | |
![]() |
2.2 | 1378 | Feature, Set the payload version. |
1379 | |||
![]() |
37.5 | 1380 | (% style="color:blue" %)**AT Command: AT+PAYVER** |
![]() |
2.2 | 1381 | |
![]() |
90.13 | 1382 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:437px" %) |
![]() |
90.7 | 1383 | |=(% style="width: 158px;background-color:#4F81BD;color:white" %)**Command Example**|=(% style="width: 192px;background-color:#4F81BD;color:white" %)**Function**|=(% style="background-color:#4F81BD;color:white" %)**Response** |
![]() |
48.16 | 1384 | |(% style="background-color:#f2f2f2; width:158px" %)AT+PAYVER=?|(% style="background-color:#f2f2f2; width:192px" %)Show current payload version|(% style="background-color:#f2f2f2" %)((( |
![]() |
2.2 | 1385 | 1 |
1386 | OK | ||
1387 | ))) | ||
![]() |
48.16 | 1388 | |(% style="background-color:#f2f2f2; width:158px" %)AT+PAYVER=5|(% style="background-color:#f2f2f2; width:192px" %)Set payload version is 5.|(% style="background-color:#f2f2f2" %)OK |
![]() |
2.2 | 1389 | |
![]() |
37.5 | 1390 | (% style="color:blue" %)**Downlink Command: 0xAE** |
![]() |
2.2 | 1391 | |
1392 | Format: Command Code (0xAE) followed by 1 bytes. | ||
1393 | |||
![]() |
37.6 | 1394 | * Example 1: Downlink Payload: AE 01 ~/~/ AT+PAYVER=1 |
1395 | * Example 2: Downlink Payload: AE 05 ~/~/ AT+PAYVER=5 | ||
![]() |
2.2 | 1396 | |
![]() |
48.14 | 1397 | = 4. Battery & Power Consumption = |
![]() |
2.2 | 1398 | |
![]() |
48.16 | 1399 | |
![]() |
90.4 | 1400 | SDI-12-LB use ER26500 + SPC1520 battery pack and SDI-12-LS use 3000mAh Recharable Battery with Solar Panel. See below link for detail information about the battery info and how to replace. |
![]() |
2.2 | 1401 | |
![]() |
48.16 | 1402 | [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] . |
![]() |
37.3 | 1403 | |
1404 | |||
1405 | = 5. Remote Configure device = | ||
![]() |
2.2 | 1406 | |
![]() |
37.3 | 1407 | == 5.1 Connect via BLE == |
![]() |
2.2 | 1408 | |
1409 | |||
![]() |
37.3 | 1410 | Please see this instruction for how to configure via BLE: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/BLE%20Bluetooth%20Remote%20Configure/]] |
![]() |
2.2 | 1411 | |
1412 | |||
![]() |
37.3 | 1413 | == 5.2 AT Command Set == |
![]() |
2.2 | 1414 | |
1415 | |||
1416 | |||
![]() |
37.3 | 1417 | = 6. OTA firmware update = |
1418 | |||
1419 | |||
![]() |
2.2 | 1420 | Please see this link for how to do OTA firmware update. |
1421 | |||
1422 | [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]] | ||
1423 | |||
1424 | |||
![]() |
40.2 | 1425 | = 7. FAQ = |
![]() |
2.2 | 1426 | |
![]() |
48.1 | 1427 | == 7.1 How to use AT Command via UART to access device? == |
![]() |
2.2 | 1428 | |
1429 | |||
![]() |
40.2 | 1430 | See: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]] |
1431 | |||
1432 | |||
1433 | == 7.2 How to update firmware via UART port? == | ||
1434 | |||
1435 | |||
1436 | See: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]] | ||
1437 | |||
1438 | |||
1439 | == 7.3 How to change the LoRa Frequency Bands/Region? == | ||
1440 | |||
![]() |
103.1 | 1441 | |
![]() |
40.2 | 1442 | You can follow the instructions for [[how to upgrade image>>doc:Main.Firmware Upgrade Instruction for STM32 base products.WebHome]]. |
1443 | When downloading the images, choose the required image file for download. | ||
1444 | |||
1445 | |||
![]() |
101.1 | 1446 | == 7.4 Why is the data uploaded to the LoRaWAN platform node empty and fProt~=0? == |
1447 | |||
![]() |
103.1 | 1448 | |
![]() |
101.1 | 1449 | This is due to The length of bytes sent by the node is limited by the lorawan protocol, and the fixed DR needs to be adjusted to improve this problem. |
1450 | |||
1451 | Please refer to the following link for the number of bytes limited by different frequencies and different DRs in the lorawan protocol | ||
1452 | |||
1453 | [[lora-alliance.org/wp-content/uploads/2021/05/RP002-1.0.3-FINAL-1.pdf>>url:https://lora-alliance.org/wp-content/uploads/2021/05/RP002-1.0.3-FINAL-1.pdf]] | ||
1454 | |||
1455 | Example: | ||
1456 | |||
1457 | [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/RS485-LN%20%E2%80%93%20RS485%20to%20LoRaWAN%20Converter/WebHome/image-20240620145456-1.png?rev=1.1||alt="image-20240620145456-1.png"]] | ||
1458 | |||
1459 | Please refer to the following command to fix DR | ||
1460 | |||
1461 | AT+ADR=0 | ||
1462 | |||
1463 | AT+DR=3 | ||
1464 | |||
1465 | Downlink command: | ||
1466 | |||
1467 | [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H7.4DataRate>>url:http://wiki.dragino.com/xwiki/bin/view/Main/End%20Device%20AT%20Commands%20and%20Downlink%20Command/#H7.4DataRate]] | ||
1468 | |||
1469 | |||
![]() |
40.2 | 1470 | = 8. Order Info = |
1471 | |||
1472 | |||
![]() |
41.20 | 1473 | ((( |
![]() |
90.10 | 1474 | **Part Number: (% style="color:blue" %)SDI-12-LB-XX-YY(%%) or (% style="color:blue" %)SDI-12-LS-XX-YY(%%)** |
![]() |
41.20 | 1475 | ))) |
![]() |
40.7 | 1476 | |
![]() |
41.20 | 1477 | ((( |
![]() |
87.6 | 1478 | (% style="color:blue" %)**XX**(%%): The default frequency band |
![]() |
41.20 | 1479 | ))) |
![]() |
2.2 | 1480 | |
![]() |
41.20 | 1481 | ((( |
![]() |
87.6 | 1482 | * (% style="color:red" %)**AS923**(%%): LoRaWAN AS923 band |
1483 | * (% style="color:red" %)**AU915**(%%): LoRaWAN AU915 band | ||
1484 | * (% style="color:red" %)**EU433**(%%): LoRaWAN EU433 band | ||
1485 | * (% style="color:red" %)**EU868**(%%): LoRaWAN EU868 band | ||
1486 | * (% style="color:red" %)**KR920**(%%): LoRaWAN KR920 band | ||
1487 | * (% style="color:red" %)**US915**(%%): LoRaWAN US915 band | ||
1488 | * (% style="color:red" %)**IN865**(%%): LoRaWAN IN865 band | ||
1489 | * (% style="color:red" %)**CN470**(%%): LoRaWAN CN470 band | ||
![]() |
41.20 | 1490 | ))) |
![]() |
2.2 | 1491 | |
![]() |
87.6 | 1492 | (% style="color:blue" %)**YY: **(%%)The grand connector hole size |
![]() |
2.2 | 1493 | |
![]() |
87.6 | 1494 | * M12: M12 hole |
1495 | * M16: M16 hole | ||
1496 | |||
![]() |
40.2 | 1497 | = 9. Packing Info = |
![]() |
37.3 | 1498 | |
1499 | |||
![]() |
40.7 | 1500 | (% style="color:#037691" %)**Package Includes**: |
![]() |
2.2 | 1501 | |
![]() |
90.4 | 1502 | * SDI-12-LB or SDI-12-LS SDI-12 to LoRaWAN Converter x 1 |
![]() |
2.2 | 1503 | |
![]() |
40.7 | 1504 | (% style="color:#037691" %)**Dimension and weight**: |
![]() |
2.2 | 1505 | |
1506 | * Device Size: cm | ||
1507 | * Device Weight: g | ||
1508 | * Package Size / pcs : cm | ||
1509 | * Weight / pcs : g | ||
1510 | |||
![]() |
40.2 | 1511 | = 10. Support = |
![]() |
37.3 | 1512 | |
1513 | |||
![]() |
2.2 | 1514 | * Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different timezones we cannot offer live support. However, your questions will be answered as soon as possible in the before-mentioned schedule. |
1515 | |||
![]() |
37.3 | 1516 | * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it etc) and send a mail to [[support@dragino.com>>url:http://../../../../../../D:%5C%E5%B8%82%E5%9C%BA%E8%B5%84%E6%96%99%5C%E8%AF%B4%E6%98%8E%E4%B9%A6%5CLoRa%5CLT%E7%B3%BB%E5%88%97%5Csupport@dragino.com]] |