Hide last authors
David Huang 3.1 1 (% style="text-align:center" %)
Xiaoling 50.2 2 [[image:)YK]Y_LZJIO]J2~~VA}OQJM2.png||height="442" width="410"]]
David Huang 10.1 3
Xiaoling 44.3 4 **Table of Contents:**
Xiaoling 44.2 5
6 {{toc/}}
7
8
9
Xiaoling 50.3 10 = 1.  Introduction =
David Huang 10.1 11
Xiaoling 50.3 12 == 1.1 ​ What is NSPH01 Soil pH Sensor ==
David Huang 10.1 13
14
Xiaoling 56.10 15 (((
Xiaoling 50.3 16 The Dragino NSPH01 is a (% style="color:blue" %)**NB-IoT soil pH sensor**(%%) for IoT of Agriculture. It is designed to measure the soil pH and soil temperature, so to send to the platform to analyze the soil acid or alkali level. The probe is IP68 waterproof.
Xiaoling 56.10 17 )))
David Huang 10.1 18
Xiaoling 56.10 19 (((
Xiaoling 50.3 20 NSPH01 probe is made by Solid AgCl reference electrode and Pure metal pH sensitive electrode. It can detect soil's** (% style="color:blue" %)pH (%%)**with high accuracy and stable value. The NSPH01 probe can be buried into soil for long time use.
Xiaoling 56.10 21 )))
Xiaoling 50.2 22
Xiaoling 56.10 23 (((
David Huang 10.1 24 NarrowBand-Internet of Things (NB-IoT) is a standards-based low power wide area (LPWA) technology developed to enable a wide range of new IoT devices and services. NB-IoT significantly improves the power consumption of user devices, system capacity and spectrum efficiency, especially in deep coverage.
Xiaoling 56.10 25 )))
David Huang 10.1 26
Xiaoling 56.10 27 (((
Xiaoling 56.4 28 NSPH01 supports different uplink methods include (% style="color:blue" %)**TCP,MQTT,UDP and CoAP  **(%%)for different application requirement.
Xiaoling 56.10 29 )))
Xiaoling 50.3 30
Xiaoling 56.10 31 (((
Xiaoling 56.4 32 NSPH01 is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long term use up to 5 years. (Actually Battery life depends on the use environment, update period & uplink method)
Xiaoling 56.10 33 )))
Xiaoling 56.4 34
Xiaoling 56.10 35 (((
Xiaoling 56.4 36 To use NSPH01, user needs to check if there is NB-IoT coverage in the installation area and with the bands NSPH01 supports. If the local operator supports it, user needs to get a (% style="color:blue" %)**NB-IoT SIM card** (%%)from local operator and install NSPH01 to get NB-IoT network connection.
Xiaoling 56.10 37 )))
Xiaoling 56.4 38
39
David Huang 34.1 40 [[image:image-20220907153151-1.png]]
41
Xiaoling 50.3 42
David Huang 34.1 43 [[image:M_K`YF9`CAYAE\@}3T]FHT$9.png]]
44
45
Xiaoling 50.3 46 == 1.2  Features ==
47
48
David Huang 34.1 49 * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
50 * Monitor soil pH with temperature compensation.
51 * Monitor soil temperature
Edwin Chen 46.1 52 * pH and Temperature alarm function
David Huang 34.1 53 * Monitor Battery Level
54 * Support pH calibration by end user
55 * Uplink on periodically
56 * Downlink to change configure
57 * IP66 Waterproof Enclosure
58 * IP68 rate for the Sensor Probe
59 * Ultra-Low Power consumption
60 * AT Commands to change parameters
Edwin Chen 46.1 61 * Micro SIM card slot
David Huang 34.1 62 * 8500mAh Battery for long term use
63
David Huang 44.1 64 == 1.3  Specification ==
David Huang 34.1 65
66
Xiaoling 50.3 67 (% style="color:#037691" %)**Common DC Characteristics:**
68
David Huang 34.1 69 * Supply Voltage: 2.1v ~~ 3.6v
70 * Operating Temperature: -40 ~~ 85°C
71
Xiaoling 50.3 72 (% style="color:#037691" %)**NB-IoT Spec:**
73
Xiaoling 56.9 74 * B1 @H-FDD: 2100MHz
75 * B3 @H-FDD: 1800MHz
76 * B8 @H-FDD: 900MHz
77 * B5 @H-FDD: 850MHz
78 * B20 @H-FDD: 800MHz
79 * B28 @H-FDD: 700MHz
David Huang 34.1 80
Xiaoling 50.3 81 == 1.4  Probe Specification ==
82
83
84 (% style="color:#037691" %)**Soil pH:**
85
David Huang 34.1 86 * Range: 3 ~~ 10 pH
87 * Resolution: 0.01 pH
88 * Accuracy: ±2% under (0~~50 ℃, Accuracy will poor under 0 due to frozen)
89 * Temperature Compensation Range: 0 ~~ 50℃
90 * IP68 Protection
91 * Length: 3.5 meters
92
Xiaoling 50.3 93 (% style="color:#037691" %)**Soil Temperature:**
94
David Huang 34.1 95 * Range -40℃~85℃
96 * Resolution: 0.1℃
97 * Accuracy: <±0.5℃(-10℃~40℃),<±0.8℃ (others)
98 * IP68 Protection
99 * Length: 3.5 meters
100
Xiaoling 51.10 101 == 1.5  ​Applications ==
102
103
David Huang 34.1 104 * Smart Agriculture
105
Xiaoling 51.10 106 == 1.6  Pin mapping and power on ==
107
108
David Huang 34.1 109 [[image:image-20220907153300-2.png]]
110
111
David Huang 44.1 112 = 2.  Use NSPH01 to communicate with IoT Server =
David Huang 34.1 113
David Huang 44.1 114 == 2.1  How it works ==
David Huang 34.1 115
Xiaoling 50.3 116
David Huang 34.1 117 The NSPH01 is equipped with a NB-IoT module, the pre-loaded firmware in NSPH01 will get environment data from sensors and send the value to local NB-IoT network via the NB-IoT module.  The NB-IoT network will forward this value to IoT server via the protocol defined by NSPH01.
118
119 The diagram below shows the working flow in default firmware of NSPH01:
120
Xiaoling 50.3 121
David Huang 34.1 122 [[image:image-20220907153416-3.png]]
123
Xiaoling 50.3 124
David Huang 44.1 125 == 2.2 ​ Configure the NSPH01 ==
David Huang 34.1 126
David Huang 44.1 127 === 2.2.1 Test Requirement ===
David Huang 34.1 128
Xiaoling 50.3 129
Edwin Chen 46.1 130 To use NSPH01 in the field, make sure meet below requirements:
David Huang 34.1 131
132 * Your local operator has already distributed a NB-IoT Network there.
133 * The local NB-IoT network used the band that NSPH01 supports.
134 * Your operator is able to distribute the data received in their NB-IoT network to your IoT server.
135
Xiaoling 52.2 136 Below figure shows our testing structure. Here we have NB-IoT network coverage by China Mobile, the band they use is B8.  The NSPH01 will use** CoAP(120.24.4.116:5683) **or raw **UDP(120.24.4.116:5601)** or **MQTT(120.24.4.116:1883)**or **TCP(120.24.4.116:5600)**protocol to send data to the test server.
137
138
David Huang 34.1 139 [[image:image-20220907153445-4.png]]
140
141
David Huang 44.1 142 === 2.2.2 Insert SIM card ===
David Huang 34.1 143
Xiaoling 50.3 144
Edwin Chen 47.1 145 User need to take out the NB-IoT module and insert the SIM card like below. ((% style="color:red" %) Pay attention to the direction(%%))
David Huang 34.1 146
Xiaoling 51.11 147
David Huang 34.1 148 [[image:image-20220907153505-5.png]]
149
Xiaoling 50.3 150
David Huang 44.1 151 === 2.2.3 Connect USB – TTL to NSPH01 to configure it ===
David Huang 34.1 152
153
Xiaoling 51.2 154 User need to configure NSPH01 via serial port to set the (% style="color:blue" %)**Server Address** / **Uplink Topic**(%%) to define where and how-to uplink packets. NSPH01 support AT Commands, user can use a USB to TTL adapter to connect to NSPH01 and use AT Commands to configure it, as below.
David Huang 34.1 155
156
Xiaoling 51.2 157 (% style="color:blue" %)**Connection:**
David Huang 34.1 158
Xiaoling 51.2 159 **~ (% style="background-color:yellow" %) USB TTL GND <~-~-~-~->  GND(%%)**
David Huang 34.1 160
Xiaoling 51.2 161 **~ (% style="background-color:yellow" %) USB TTL TXD  <~-~-~-~->  UART_RXD(%%)**
162
163 **~ (% style="background-color:yellow" %) USB TTL RXD  <~-~-~-~->  UART_TXD(%%)**
164
165
David Huang 34.1 166 In the PC, use below serial tool settings:
167
Xiaoling 51.2 168 * Baud:  (% style="color:green" %)**9600**
169 * Data bits:**  (% style="color:green" %)8(%%)**
170 * Stop bits:  (% style="color:green" %)**1**
171 * Parity:  (% style="color:green" %)**None**
172 * Flow Control: (% style="color:green" %)**None**
David Huang 34.1 173
Xiaoling 51.2 174 Make sure the switch is in FLASH position, then power on device by connecting the jumper on NSPH01. NSPH01 will output system info once power on as below, we can enter the (% style="color:green" %)**password: 12345678**(%%) to access AT Command input.
David Huang 34.1 175
176
Xiaoling 51.2 177 [[image:image-20220912144017-1.png]]
David Huang 34.1 178
Xiaoling 51.2 179
180 (% style="color:red" %)**Note: the valid AT Commands can be found at:**(%%)**  **[[**https:~~/~~/www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0**>>url:https://www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0]]
181
182
David Huang 44.1 183 === 2.2.4 Use CoAP protocol to uplink data ===
David Huang 34.1 184
185
Xiaoling 51.2 186 (% style="color:red" %)**Note: if you don't have CoAP server, you can refer this link to set up one:**(%%)** **[[**http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Set%20up%20CoAP%20Server/]]
David Huang 34.1 187
188
Xiaoling 51.2 189 (% style="color:blue" %)**Use below commands:**
190
191 * (% style="color:#037691" %)**AT+PRO=1**                         (%%) ~/~/  Set to use CoAP protocol to uplink
192 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5683   ** (%%) ~/~/  to set CoAP server address and port
193 * (% style="color:#037691" %)**AT+URI=5,11,"mqtt",11,"coap",12,"0",15,"c=text1",23,"0" ** (%%) ~/~/  Set COAP resource path
194
David Huang 34.1 195 For parameter description, please refer to AT command set
196
Xiaoling 51.2 197
David Huang 34.1 198 [[image:image-20220907153551-7.png||height="502" width="740"]]
199
200
Xiaoling 51.2 201 After configure the server address and (% style="color:green" %)**reset the device (via AT+ATZ )**(%%), NSPH01 will start to uplink sensor values to CoAP server.
202
203
David Huang 34.1 204 [[image:image-20220907153612-8.png||height="529" width="729"]]
205
206
David Huang 44.1 207 === 2.2.5 Use UDP protocol to uplink data(Default protocol) ===
David Huang 34.1 208
Xiaoling 51.2 209
David Huang 34.1 210 This feature is supported since firmware version v1.0.1
211
Xiaoling 51.4 212 * (% style="color:blue" %)**AT+PRO=2   ** (%%) ~/~/  Set to use UDP protocol to uplink
213 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5601   ** (%%) ~/~/  to set UDP server address and port
214 * (% style="color:blue" %)**AT+CFM=1       ** (%%) ~/~/  If the server does not respond, this command is unnecessar
215
David Huang 34.1 216 [[image:image-20220907153643-9.png||height="401" width="734"]]
217
Xiaoling 51.2 218
David Huang 34.1 219 [[image:image-20220907153703-10.png||height="309" width="738"]]
220
221
David Huang 44.1 222 === 2.2.6 Use MQTT protocol to uplink data ===
David Huang 34.1 223
Xiaoling 51.4 224
David Huang 34.1 225 This feature is supported since firmware version v110
226
Xiaoling 51.4 227 * (% style="color:blue" %)**AT+PRO=3   ** (%%) ~/~/ Set to use MQTT protocol to uplink
228 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,1883   ** (%%) ~/~/ Set MQTT server address and port
229 * (% style="color:blue" %)**AT+CLIENT=CLIENT       ** (%%) ~/~/ Set up the CLIENT of MQTT
230 * (% style="color:blue" %)**AT+UNAME=UNAME                               **(%%)~/~/ Set the username of MQTT
231 * (% style="color:blue" %)**AT+PWD=PWD                                        **(%%)~/~/ Set the password of MQTT
232 * (% style="color:blue" %)**AT+PUBTOPIC=NSE01_PUB                    **(%%)~/~/ Set the sending topic of MQTT
233 * (% style="color:blue" %)**AT+SUBTOPIC=NSE01_SUB          ** (%%) ~/~/ Set the subscription topic of MQTT
David Huang 34.1 234
235 [[image:image-20220907153739-11.png||height="491" width="764"]]
236
Xiaoling 51.3 237
David Huang 34.1 238 [[image:image-20220907153751-12.png||height="555" width="769"]]
239
Xiaoling 51.4 240
David Huang 34.1 241 MQTT protocol has a much higher power consumption compare vs UDP / CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval.
242
Xiaoling 51.3 243
David Huang 44.1 244 === 2.2.7 Use TCP protocol to uplink data ===
David Huang 34.1 245
Xiaoling 51.4 246
David Huang 34.1 247 This feature is supported since firmware version v110
248
Xiaoling 51.4 249 * (% style="color:blue" %)**AT+PRO=4   ** (%%) ~/~/ Set to use TCP protocol to uplink
250 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5600   ** (%%) ~/~/ to set TCP server address and port
David Huang 34.1 251
252 [[image:image-20220907153818-13.png||height="486" width="668"]]
253
Xiaoling 51.3 254
David Huang 34.1 255 [[image:image-20220907153827-14.png||height="236" width="684"]]
256
Xiaoling 51.3 257
David Huang 44.1 258 === 2.2.8 Change Update Interval ===
David Huang 34.1 259
Xiaoling 51.5 260
Edwin Chen 47.1 261 Users can use the below command to change the **uplink interval**.
David Huang 34.1 262
Xiaoling 51.4 263 * (% style="color:blue" %)**AT+TDC=7200      ** (%%) ~/~/ Set Update Interval to 7200s (2 hour)
David Huang 34.1 264
Xiaoling 51.4 265 (% style="color:red" %)**NOTE: By default, the device will send an uplink message every 2 hours. Each Uplink Include 8 set of records in this 2 hour (15 minute interval / record).**
David Huang 34.1 266
Edwin Chen 47.1 267
David Huang 44.1 268 == 2.3  Uplink Payload ==
David Huang 34.1 269
Xiaoling 51.5 270
David Huang 34.1 271 In this mode, uplink payload includes 87 bytes in total by default.
272
273 Each time the device uploads a data package, 8 sets of recorded data will be attached. Up to 32 sets of recorded data can be uploaded.
274
Xiaoling 56.12 275 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:520px" %)
Xiaoling 56.14 276 |(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**Size(bytes)**|(% style="background-color:#d9e2f3; color:#0070c0; width:40px" %)**8**|(% style="background-color:#d9e2f3; color:#0070c0; width:20px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:25px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:60px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:20px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:40px" %)**1**|(% style="background-color:#d9e2f3; color:#0070c0; width:40px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**4**|(% style="background-color:#d9e2f3; color:#0070c0; width:50px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:35px" %)**2**|(% style="background-color:#d9e2f3; color:#0070c0; width:40px" %)**4**
Xiaoling 56.16 277 |(% style="width:96px" %)Value|(% style="width:83px" %)Device ID|(% style="width:44px" %)Ver|(% style="width:42px" %)BAT|(% style="width:124px" %)Signal Strength|(% style="width:57px" %)MOD|(% style="width:80px" %)Interrupt|(% style="width:69px" %)Soil PH|(% style="width:134px" %)Soil Temperature|(% style="width:98px" %)Time stamp|(% style="width:134px" %)Soil Temperature|(% style="width:68px" %)Soil PH|(% style="width:125px" %)Time stamp  .....
David Huang 44.1 278
David Huang 34.1 279 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NSPH01 uplink data.
280
281 [[image:image-20220907153902-15.png||height="581" width="804"]]
282
283
Xiaoling 52.2 284 (((
David Huang 34.1 285 The payload is ASCII string, representative same HEX:
Xiaoling 52.2 286 )))
David Huang 34.1 287
Xiaoling 52.2 288 (((
289
290 )))
David Huang 34.1 291
Xiaoling 52.2 292 (((
293 **0x (% style="color:red" %)__f868411056754138__  (% style="color:blue" %)__0064 __ (% style="color:green" %)__0c78__  (% style="color:#00b0f0" %)__17__  (% style="color:#7030a0" %)__01__  (% style="color:#d60093" %)__00__  (% style="color:#a14d07" %)__0225 __ (% style="color:#0020b0" %) __010b__  (% style="color:#420042" %)__6315537b__  (% style="color:#663300" %)//__010b0226631550fb__  __010e022663154d77  01110225631549f1  011502246315466b  01190223631542e5  011d022163153f62  011e022163153bde 011e022163153859__//(%%)**
294 )))
David Huang 34.1 295
Xiaoling 52.2 296 (((
297
Xiaoling 51.10 298
Xiaoling 56.2 299 **where:**
Xiaoling 52.2 300 )))
Xiaoling 51.10 301
Xiaoling 56.2 302 * (% style="color:#037691" %)**Device ID:**(%%)** **0xf868411056754138 = f868411056754138
Xiaoling 52.2 303
Xiaoling 56.2 304 * (% style="color:#037691" %)**Version:**  (%%) 0x0064=100=1.0.0
305
306 * (% style="color:#037691" %)**BAT:**   (%%) 0x0c78 = 3192 mV = 3.192V
307
308 * (% style="color:#037691" %)**Singal:** (%%)0x17 = 23
309
310 * (% style="color:#037691" %)**Mod:** (%%) 0x01 = 1
311
312 * (% style="color:#037691" %)**Interrupt:**(%%) 0x00= 0
313
314 * (% style="color:#037691" %)**Soil PH:** (%%) 0x0225= 549 = 5.49
315
316 * (% style="color:#037691" %)**Soil Temperature:**(%%) 0x010b =267=26.7 °C
317
318 * (% style="color:#037691" %)**Time stamp :**   (%%) 0x6315537b =1662342011  ([[Unix Epoch Time>>url:http://www.epochconverter.com/]])
319
320 * (% style="color:#037691" %)**Soil Temperature,Soil PH,Time stamp : **(%%) 010b0226631550fb
321
322 * (% style="color:#037691" %)**8 sets of recorded data:**(%%) Temperature,Soil PH,Time stamp :  010e022663154d77,.......
323
David Huang 44.1 324 == 2.4  Payload Explanation and Sensor Interface ==
David Huang 34.1 325
David Huang 44.1 326 === 2.4.1  Device ID ===
David Huang 34.1 327
Xiaoling 51.5 328
David Huang 34.1 329 By default, the Device ID equal to the last 15 bits of IMEI.
330
Xiaoling 51.4 331 User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID
David Huang 34.1 332
Xiaoling 51.5 333
David Huang 34.1 334 **Example:**
335
336 AT+DEUI=868411056754138
337
338 The Device ID is stored in a none-erase area, Upgrade the firmware or run AT+FDR won't erase Device ID.
339
Xiaoling 51.5 340
David Huang 44.1 341 === 2.4.2  Version Info ===
David Huang 34.1 342
Xiaoling 51.5 343
David Huang 34.1 344 Specify the software version: 0x64=100, means firmware version 1.00.
345
346 For example: 0x00 64 : this device is NSPH01 with firmware version 1.0.0.
347
Xiaoling 51.5 348
David Huang 44.1 349 === 2.4.3  Battery Info ===
David Huang 34.1 350
Xiaoling 51.5 351
David Huang 34.1 352 Check the battery voltage for NSPH01.
353
354 Ex1: 0x0B45 = 2885mV
355
356 Ex2: 0x0B49 = 2889mV
357
Xiaoling 51.5 358
David Huang 44.1 359 === 2.4.4  Signal Strength ===
David Huang 34.1 360
Xiaoling 51.5 361
David Huang 34.1 362 NB-IoT Network signal Strength.
363
364 **Ex1: 0x1d = 29**
365
366 **0**  -113dBm or less
367
368 **1**  -111dBm
369
370 **2...30** -109dBm... -53dBm
371
372 **31**   -51dBm or greater
373
374 **99**    Not known or not detectable
375
Xiaoling 51.5 376
David Huang 44.1 377 === 2.4.5  Soil PH ===
David Huang 34.1 378
Xiaoling 51.5 379
David Huang 34.1 380 Get the PH content of the soil. The value range of the register is 300-1000(Decimal), divide this value by 100 to get the percentage of PH in the soil.
381
Xiaoling 51.9 382 For example, if the data you get from the register is (% style="color:blue" %)**__0x05 0xDC__**(%%), the PH content in the soil is
David Huang 34.1 383
Xiaoling 51.9 384 (% style="color:blue" %)**0229(H) = 549(D) /100 = 5.49.**
David Huang 34.1 385
Xiaoling 51.5 386
David Huang 44.1 387 === 2.4.6  Soil Temperature ===
David Huang 34.1 388
Xiaoling 51.5 389
Xiaoling 51.9 390 Get the temperature in the soil. The value range of the register is -4000 - +800(Decimal), divide this value by 100 to get the temperature in the soil. For example, if the data you get from the register is (% style="color:blue" %)**__0x09 0xEC__**(%%), the temperature content in the soil is
David Huang 34.1 391
Xiaoling 51.9 392
David Huang 34.1 393 **Example**:
394
David Huang 40.1 395 If payload is 0105H: ((0x0105 & 0x8000)>>15 === 0),temp = 0105(H)/10 = 26.1 °C
David Huang 34.1 396
David Huang 40.1 397 If payload is FF7EH: ((FF7E & 0x8000)>>15 ===1),temp = (FF7E(H)-FFFF(H))/10 = -12.9 °C
David Huang 34.1 398
Xiaoling 51.5 399
David Huang 44.1 400 === 2.4.7  Timestamp ===
David Huang 34.1 401
Xiaoling 51.5 402
David Huang 34.1 403 Time stamp : 0x6315537b =1662342011
404
405 Convert Unix timestamp to time 2022-9-5 9:40:11.
406
Xiaoling 51.5 407
David Huang 44.1 408 === 2.4.8  Digital Interrupt ===
David Huang 34.1 409
410
Xiaoling 51.5 411 Digital Interrupt refers to pin (% style="color:blue" %)**GPIO_EXTI**(%%), and there are different trigger methods. When there is a trigger, the NSPH01 will send a packet to the server.
412
David Huang 34.1 413 The command is:
414
Xiaoling 51.5 415 (% style="color:blue" %)**AT+INTMOD=3 ** (%%) ~/~/(more info about INMOD please refer [[**AT Command Manual**>>url:https://www.dragino.com/downloads/downloads/NB-IoT/NBSN95/DRAGINO_NBSN95-NB_AT%20Commands_v1.1.0.pdf]])**.**
David Huang 34.1 416
417 The lower four bits of this data field shows if this packet is generated by interrupt or not. Click here for the hardware and software set up.
418
419
Xiaoling 51.9 420 **Example:**
421
David Huang 34.1 422 0x(00): Normal uplink packet.
423
424 0x(01): Interrupt Uplink Packet.
425
Xiaoling 51.5 426
David Huang 44.1 427 === 2.4.9  ​+5V Output ===
David Huang 34.1 428
Xiaoling 51.5 429
David Huang 34.1 430 NSPH01 will enable +5V output before all sampling and disable the +5v after all sampling. 
431
432 The 5V output time can be controlled by AT Command.
433
Xiaoling 51.5 434 (% style="color:blue" %)**AT+5VT=1000**
David Huang 34.1 435
436 Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.** **
437
438
David Huang 44.1 439 == 2.5  Downlink Payload ==
David Huang 34.1 440
Xiaoling 51.5 441
David Huang 41.1 442 By default, NSPH01 prints the downlink payload to console port.
David Huang 34.1 443
Xiaoling 56.14 444 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:479.818px" %)
445 |=(% style="width: 183px; background-color:#D9E2F3;color:#0070C0" %)**Downlink Control Type**|=(% style="width: 55px; background-color:#D9E2F3;color:#0070C0" %)FPort|=(% style="width: 93px; background-color:#D9E2F3;color:#0070C0" %)**Type Code**|=(% style="width: 146px; background-color: rgb(217, 226, 243); color: rgb(0, 112, 192);" %)**Downlink payload size(bytes)**
446 |(% style="width:183px" %)TDC (Transmit Time Interval)|(% style="width:55px" %)Any|(% style="width:93px" %)01|(% style="width:146px" %)4
447 |(% style="width:183px" %)RESET|(% style="width:55px" %)Any|(% style="width:93px" %)04|(% style="width:146px" %)2
448 |(% style="width:183px" %)INTMOD|(% style="width:55px" %)Any|(% style="width:93px" %)06|(% style="width:146px" %)4
David Huang 34.1 449
Xiaoling 51.5 450 (% style="color:blue" %)**Examples:**
David Huang 34.1 451
Xiaoling 51.5 452 * (% style="color:#037691" %)** Set TDC**
David Huang 34.1 453
454 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
455
456 Payload:    01 00 00 1E    TDC=30S
457
458 Payload:    01 00 00 3C    TDC=60S
459
Xiaoling 51.5 460 * (% style="color:#037691" %)** Reset**
David Huang 34.1 461
David Huang 42.1 462 If payload = 0x04FF, it will reset the NSPH01
David Huang 34.1 463
Xiaoling 51.5 464 * (% style="color:#037691" %)** INTMOD**
David Huang 34.1 465
466 Downlink Payload: 06000003, Set AT+INTMOD=3
467
Xiaoling 51.5 468
David Huang 44.1 469 == 2.6  ​LED Indicator ==
David Huang 34.1 470
Xiaoling 51.5 471
David Huang 34.1 472 The NSPH01 has an internal LED which is to show the status of different state.
473
474 * When power on, NSPH01 will detect if sensor probe is connected, if probe detected, LED will blink four times. (no blinks in this step is no probe)
475 * Then the LED will be on for 1 second means device is boot normally.
476 * After NSPH01 join NB-IoT network. The LED will be ON for 3 seconds.
477 * For each uplink probe, LED will be on for 500ms.
478
Xiaoling 51.5 479 == 2.7  Installation and Maintain ==
480
481 === 2.7.1  Before measurement ===
482
483
David Huang 34.1 484 If the NSPH01 has more than 7 days not use or just clean the pH probe. User should put the probe inside pure water for more than 24 hours for activation. If no put in water, user need to put inside soil for more than 24 hours to ensure the measurement accuracy. 
485
486
Xiaoling 51.5 487 === 2.7.2  Measurement ===
488
489
Xiaoling 51.7 490 (% style="color:#037691" %)**Measurement the soil surface:**
David Huang 34.1 491
Xiaoling 51.5 492
David Huang 34.1 493 [[image:image-20220907154700-18.png]] ​
494
495 Choose the proper measuring position. Split the surface soil according to the measured deep.
496
497 Put pure water, or rainwater to make the soil of measurement point to moist mud. Remove rocks or hard things.
498
499 Slowly insert the probe to the measure point. Don't use large force which will break the probe. Make sure not shake when inserting.
500
501 Put soil over the probe after insert. And start to measure.
502
Xiaoling 51.5 503
Xiaoling 51.7 504 (% style="color:#037691" %)**Measurement inside soil:**
David Huang 34.1 505
506 Dig a hole with diameter > 20CM.
507
508 Insert the probe inside, method like measure the surface.
509
510
Xiaoling 51.5 511 === 2.7.3  Maintain Probe ===
512
513
David Huang 34.1 514 1. pH probe electrode is fragile and no strong. User must avoid strong force or hitting it.
515 1. After long time use (3~~ 6  months). The probe electrode needs to be clean; user can use high grade sandpaper to polish it or put in 5% hydrochloric acid for several minutes. After the metal probe looks like new, user can use pure water to wash it.
516 1. Probe reference electrode is also no strong, need to avoid strong force or hitting.
517 1. User should keep reference electrode wet while not use.
518 1. Avoid the probes to touch oily matter. Which will cause issue in accuracy.
519 1. The probe is IP68 can be put in water.
520
Xiaoling 51.5 521 == 2.8  PH and Temperature alarm function ==
522
523
Xiaoling 51.7 524 (% style="color:#037691" %)**➢ AT Command:**
Xiaoling 51.5 525
Xiaoling 51.7 526 (% style="color:blue" %)**AT+ PHALARM=min,max**
Xiaoling 51.5 527
David Huang 34.1 528 ² When min=3, and max≠0, Alarm higher than max
529
530 ² When min≠0, and max=0, Alarm lower than min
531
532 ² When min≠0 and max≠0, Alarm higher than max or lower than min
533
534
Xiaoling 51.7 535 (% style="color:blue" %)**Example:**
David Huang 34.1 536
Xiaoling 51.5 537 AT+ PHALARM =5,8  ~/~/ Alarm when PH lower than 5.
538
David Huang 34.1 539 AT+ TEMPALARM=min,max
540
541 ² When min=0, and max≠0, Alarm higher than max
542
543 ² When min≠0, and max=0, Alarm lower than min
544
545 ² When min≠0 and max≠0, Alarm higher than max or lower than min
546
547
Xiaoling 51.7 548 (% style="color:blue" %)**Example:**
David Huang 34.1 549
Xiaoling 51.5 550 AT+ TEMPALARM=20,30  ~/~/ Alarm when temperature lower than 20.
David Huang 34.1 551
Xiaoling 51.5 552
Xiaoling 51.7 553 == 2.9  Set the number of data to be uploaded and the recording time ==
David Huang 34.1 554
555
Xiaoling 51.7 556 (% style="color:#037691" %)**➢ AT Command:**
David Huang 34.1 557
Xiaoling 51.7 558 * (% style="color:blue" %)**AT+TR=900**     (%%) ~/~/  The unit is seconds, and the default is to record data once every 900 seconds.( The minimum can be set to 180 seconds)
559 * (% style="color:blue" %)**AT+NOUD=8**     (%%) ~/~/  The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded.
David Huang 34.1 560
Edwin Chen 54.1 561 The diagram below explains the relationship between TR, NOUD, and TDC more clearly**:**
Edwin Chen 47.1 562
Edwin Chen 56.1 563 [[image:image-20221009000933-1.png||height="750" width="1043"]]
Xiaoling 51.5 564
Edwin Chen 54.1 565
Xiaoling 51.7 566 == 2.10  Read or Clear cached data ==
David Huang 34.1 567
568
Xiaoling 51.7 569 (% style="color:#037691" %)**➢ AT Command:**
Xiaoling 51.5 570
Xiaoling 51.7 571 * (% style="color:blue" %)**AT+CDP**        (%%) ~/~/  Read cached data
Xiaoling 51.9 572 * (% style="color:blue" %)**AT+CDP=0**    (%%) ~/~/  Clear cached data
Xiaoling 51.5 573
David Huang 34.1 574 [[image:image-20220907154700-19.png]]
575
576
Xiaoling 51.5 577 == 2.11  Calibration ==
David Huang 34.1 578
579
580 User can do calibration for the probe. It is limited to use below pH buffer solution to calibrate: 4.00, 6.86, 9.18. When calibration, user need to clean the electrode and put the probe in the pH buffer solution to wait the value stable ( a new clean electrode might need max 24 hours to be stable).
581
582 After stable, user can use below command to calibrate.
583
Xiaoling 56.15 584 (% border="1" cellspacing="5" style="background-color:#f2f2f2; width:520px" %)
585 |(% style="background-color:#d9e2f3; color:#0070c0; width:120px" %)**pH buffer solution**|(% style="background-color:#d9e2f3; color:#0070c0; width:150px" %)**AT Command to calibrate**|(% style="background-color:#d9e2f3; color:#0070c0; width:150px" %)**Downlink Command**|(% style="background-color:#d9e2f3; color:#0070c0; width:100px" %)**Read Cal Value**
586 |(% style="width:149px" %)4.00|(% style="width:197px" %)AT+PHCAL=4|(% style="width:206px" %)(((
587 0x13 04
588 Reply with Calibrate payload
589 )))|(% style="width:136px" %)(((
590 AT+PHCAL=?
591 Example 41,61,91
592 )))
593 |(% style="width:149px" %)6.86|(% style="width:197px" %)AT+PHCAL=6|(% style="width:206px" %)(((
594 0x13 06
595 Reply with Calibrate payload
596 )))|(% style="width:136px" %)AT+PHCAL=?
597 |(% style="width:149px" %)9.18|(% style="width:197px" %)AT+PHCAL=9|(% style="width:206px" %)(((
598 0x13 09
599 Reply with Calibrate payload
600 )))|(% style="width:136px" %)AT+PHCAL=?
601 |(% style="width:149px" %)Factory Default|(% style="width:197px" %)AT+PHCAL=15|(% style="width:206px" %)(((
602 0x13 15
603 Reply with Calibrate payload
604 )))|(% style="width:136px" %)(((
605 AT+PHCAL=?
606 Example 151
607 )))
Xiaoling 51.5 608
Xiaoling 56.15 609
David Huang 34.1 610
Xiaoling 51.5 611
David Huang 44.1 612 == 2.12  ​Firmware Change Log ==
David Huang 34.1 613
Xiaoling 51.5 614
Xiaoling 51.11 615 Download URL & Firmware Change log: [[https:~~/~~/www.dropbox.com/sh/1tv07fro2pvjqj8/AAD-2wbfGfluTZfh38fQqdA_a?dl=0>>https://www.dropbox.com/sh/1tv07fro2pvjqj8/AAD-2wbfGfluTZfh38fQqdA_a?dl=0]]
David Huang 34.1 616
Xiaoling 51.7 617 Upgrade Instruction: [[Upgrade Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]]
David Huang 34.1 618
Xiaoling 51.5 619
Xiaoling 56.9 620 == 2.13 Battery & Power Consumption ==
Xiaoling 51.5 621
David Huang 34.1 622
Xiaoling 56.9 623 NSPH01 uses ER26500 + SPC1520 battery pack. See below link for detail information about the battery info and how to replace.
Xiaoling 51.5 624
Xiaoling 56.9 625 [[**Battery Info & Power Consumption Analyze**>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20calculate%20the%20battery%20life%20of%20Dragino%20sensors%3F/]] .
David Huang 34.1 626
Xiaoling 51.5 627
David Huang 44.1 628 = 3. ​ Access NB-IoT Module =
David Huang 34.1 629
Xiaoling 51.5 630
David Huang 34.1 631 Users can directly access the AT command set of the NB-IoT module.
632
633 The AT Command set can refer the BC35-G NB-IoT Module AT Command: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/>>url:https://www.dragino.com/downloads/index.php?dir=datasheet/other_vendors/BC35-G/]] 
634
Xiaoling 51.5 635
David Huang 34.1 636 [[image:image-20220907154700-23.png]]
637
638
639
David Huang 44.1 640 = 4.  Using the AT Commands =
David Huang 34.1 641
David Huang 44.1 642 == 4.1  Access AT Commands ==
David Huang 34.1 643
Xiaoling 51.5 644
David Huang 34.1 645 See this link for detail:  [[https:~~/~~/www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0>>url:https://www.dropbox.com/sh/351dwor6joz8nwh/AADn1BQaAAxLF_QMyU8NkW47a?dl=0]]
646
647 AT+<CMD>?  : Help on <CMD>
648
649 AT+<CMD>         : Run <CMD>
650
651 AT+<CMD>=<value> : Set the value
652
653 AT+<CMD>=?  : Get the value
654
Xiaoling 51.5 655
Xiaoling 51.7 656 (% style="color:#037691" %)**General Commands**      
David Huang 34.1 657
658 AT  : Attention       
659
660 AT?  : Short Help     
661
662 ATZ  : MCU Reset    
663
664 AT+TDC  : Application Data Transmission Interval
665
666 AT+CFG  : Print all configurations
667
668 AT+CFGMOD           : Working mode selection
669
670 AT+INTMOD            : Set the trigger interrupt mode
671
672 AT+5VT  : Set extend the time of 5V power  
673
674 AT+PRO  : Choose agreement
675
676 AT+RXDL  : Extend the sending and receiving time
677
678 AT+SERVADDR  : Server Address
679
680 AT+TR      : Get or Set record time"
681
David Huang 50.1 682 AT+APN     : Get or set the APN
David Huang 34.1 683
David Huang 50.1 684 AT+FBAND   : Get or Set whether to automatically modify the frequency band
685
686 AT+DNSCFG  : Get or Set DNS Server
687
688 AT+GETSENSORVALUE   : Returns the current sensor measurement
689
David Huang 34.1 690 AT+NOUD      : Get or Set the number of data to be uploaded
691
692 AT+CDP     : Read or Clear cached data
693
694 AT+TEMPALARM      : Get or Set alarm of temp
695
696 AT+PHALARM     : Get or Set alarm of PH
697
698 AT+ PHCAL  : calibrate PH value
699
700
Xiaoling 51.7 701 (% style="color:#037691" %)**COAP Management**      
David Huang 34.1 702
703 AT+URI            : Resource parameters
704
Xiaoling 51.5 705
Xiaoling 51.7 706 (% style="color:#037691" %)**UDP Management**
David Huang 34.1 707
708 AT+CFM          : Upload confirmation mode (only valid for UDP)
709
Xiaoling 51.5 710
Xiaoling 51.7 711 (% style="color:#037691" %)**MQTT Management**
David Huang 34.1 712
713 AT+CLIENT               : Get or Set MQTT client
714
715 AT+UNAME  : Get or Set MQTT Username
716
717 AT+PWD                  : Get or Set MQTT password
718
719 AT+PUBTOPIC  : Get or Set MQTT publish topic
720
721 AT+SUBTOPIC  : Get or Set MQTT subscription topic
722
Xiaoling 51.5 723
Xiaoling 51.7 724 (% style="color:#037691" %)**Information**          
David Huang 34.1 725
726 AT+FDR  : Factory Data Reset
727
728 AT+PWORD  : Serial Access Password
729
Xiaoling 51.5 730
David Huang 44.1 731 = ​5.  FAQ =
David Huang 34.1 732
David Huang 44.1 733 == 5.1 ​ How to Upgrade Firmware ==
David Huang 34.1 734
Xiaoling 51.5 735
David Huang 34.1 736 User can upgrade the firmware for 1) bug fix, 2) new feature release.
737
738 Please see this link for how to upgrade:  [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H2.HardwareUpgradeMethodSupportList]]
739
Xiaoling 51.8 740 (% style="color:red" %)**Notice, NSPH01 and LSPH01 share the same mother board. They use the same connection and method to update.**
David Huang 34.1 741
Xiaoling 51.5 742
David Huang 44.1 743 == 5.2  Can I calibrate NSPH01 to different soil types? ==
David Huang 34.1 744
Xiaoling 51.5 745
David Huang 34.1 746 NSPH01 is calibrated for saline-alkali soil and loamy soil. If users want to use it for other soil, they can calibrate the value in the IoT platform base on the value measured by saline-alkali soil and loamy soil. The formula can be found at [[this link>>url:https://www.dragino.com/downloads/downloads/LoRa_End_Node/LSE01/Calibrate_to_other_Soil_20220605.pdf]].
747
Xiaoling 51.5 748
David Huang 44.1 749 = 6.  Trouble Shooting =
David Huang 34.1 750
David Huang 44.1 751 == 6.1  ​Connection problem when uploading firmware ==
David Huang 34.1 752
Xiaoling 51.5 753
David Huang 34.1 754 **Please see: **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H3.3Troubleshooting>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20Upgrade%20Instruction%20for%20STM32%20base%20products/#H3.3Troubleshooting]]
755
Xiaoling 51.5 756
David Huang 44.1 757 == 6.2  AT Command input doesn't work ==
David Huang 34.1 758
759
Xiaoling 51.7 760 In the case if user can see the console output but can't type input to the device. Please check if you already include the (% style="color:green" %)**ENTER**(%%) while sending out the command. Some serial tool doesn't send (% style="color:green" %)**ENTER** (%%)while press the send key, user need to add ENTER in their string.
Xiaoling 51.5 761
762
Xiaoling 56.11 763 == 6.3 Not able to connect to NB-IoT network and keep showing "Signal Strength:99". ==
764
765
766 This means sensor is trying to join the NB-IoT network but fail. Please see this link for **//[[trouble shooting for signal strenght:99>>doc:Main.CSQ\:99,99.WebHome]]//**.
767
768
David Huang 44.1 769 = 7. ​ Order Info =
David Huang 34.1 770
Xiaoling 51.5 771
David Huang 34.1 772 Part Number**:** NSPH01
773
Xiaoling 51.5 774
David Huang 44.1 775 = 8.  Packing Info =
David Huang 34.1 776
Xiaoling 51.5 777
David Huang 34.1 778 **Package Includes**:
779
Edwin Chen 47.1 780 * NSPH01 NB-IoT pH Sensor x 1
David Huang 34.1 781 * External antenna x 1
782
783 **Dimension and weight**:
784
Xiaoling 51.10 785 * Device Size: cm
786 * Device Weight: g
787 * Package Size / pcs : cm
788 * Weight / pcs : g
David Huang 34.1 789
David Huang 44.1 790 = 9.  Support =
David Huang 34.1 791
Xiaoling 51.5 792
David Huang 34.1 793 * 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.
794 * 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]]
795
796
Copyright ©2010-2024 Dragino Technology Co., LTD. All rights reserved
Dragino Wiki v2.0