Version 56.6 by Xiaoling on 2022/10/25 16:43

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.2 12
Xiaoling 50.3 13 == 1.1 ​ What is NSPH01 Soil pH Sensor ==
David Huang 10.1 14
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.
David Huang 10.1 17
Xiaoling 50.3 18 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 50.2 19
David Huang 10.1 20 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.
21
Xiaoling 56.4 22 NSPH01 supports different uplink methods include (% style="color:blue" %)**TCP,MQTT,UDP and CoAP  **(%%)for different application requirement.
Xiaoling 50.3 23
Xiaoling 56.4 24 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)
25
26 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.
27
28
David Huang 34.1 29 [[image:image-20220907153151-1.png]]
30
Xiaoling 50.3 31
David Huang 34.1 32 [[image:M_K`YF9`CAYAE\@}3T]FHT$9.png]]
33
34
Xiaoling 50.3 35
36 == 1.2  Features ==
37
38
David Huang 34.1 39 * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD
40 * Monitor soil pH with temperature compensation.
41 * Monitor soil temperature
Edwin Chen 46.1 42 * pH and Temperature alarm function
David Huang 34.1 43 * Monitor Battery Level
44 * Support pH calibration by end user
45 * Uplink on periodically
46 * Downlink to change configure
47 * IP66 Waterproof Enclosure
48 * IP68 rate for the Sensor Probe
49 * Ultra-Low Power consumption
50 * AT Commands to change parameters
Edwin Chen 46.1 51 * Micro SIM card slot
David Huang 34.1 52 * 8500mAh Battery for long term use
53
Xiaoling 56.2 54
David Huang 44.1 55 == 1.3  Specification ==
David Huang 34.1 56
57
Xiaoling 50.3 58 (% style="color:#037691" %)**Common DC Characteristics:**
59
David Huang 34.1 60 * Supply Voltage: 2.1v ~~ 3.6v
61 * Operating Temperature: -40 ~~ 85°C
62
Xiaoling 50.3 63 (% style="color:#037691" %)**NB-IoT Spec:**
64
David Huang 34.1 65 * - B1 @H-FDD: 2100MHz
66 * - B3 @H-FDD: 1800MHz
67 * - B8 @H-FDD: 900MHz
68 * - B5 @H-FDD: 850MHz
69 * - B20 @H-FDD: 800MHz
70 * - B28 @H-FDD: 700MHz
71
Xiaoling 56.2 72
Xiaoling 50.3 73 == 1.4  Probe Specification ==
74
75
76 (% style="color:#037691" %)**Soil pH:**
77
David Huang 34.1 78 * Range: 3 ~~ 10 pH
79 * Resolution: 0.01 pH
80 * Accuracy: ±2% under (0~~50 ℃, Accuracy will poor under 0 due to frozen)
81 * Temperature Compensation Range: 0 ~~ 50℃
82 * IP68 Protection
83 * Length: 3.5 meters
84
Xiaoling 50.3 85 (% style="color:#037691" %)**Soil Temperature:**
86
David Huang 34.1 87 * Range -40℃~85℃
88 * Resolution: 0.1℃
89 * Accuracy: <±0.5℃(-10℃~40℃),<±0.8℃ (others)
90 * IP68 Protection
91 * Length: 3.5 meters
92
Xiaoling 56.2 93
Xiaoling 51.10 94 == 1.5  ​Applications ==
95
96
David Huang 34.1 97 * Smart Agriculture
98
Xiaoling 56.2 99
Xiaoling 51.10 100 == 1.6  Pin mapping and power on ==
101
102
David Huang 34.1 103 [[image:image-20220907153300-2.png]]
104
105
Xiaoling 50.3 106
David Huang 44.1 107 = 2.  Use NSPH01 to communicate with IoT Server =
David Huang 34.1 108
Xiaoling 50.3 109
David Huang 44.1 110 == 2.1  How it works ==
David Huang 34.1 111
Xiaoling 50.3 112
David Huang 34.1 113 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.
114
115 The diagram below shows the working flow in default firmware of NSPH01:
116
Xiaoling 50.3 117
David Huang 34.1 118 [[image:image-20220907153416-3.png]]
119
Xiaoling 50.3 120
121
David Huang 44.1 122 == 2.2 ​ Configure the NSPH01 ==
David Huang 34.1 123
Xiaoling 50.3 124
David Huang 44.1 125 === 2.2.1 Test Requirement ===
David Huang 34.1 126
Xiaoling 50.3 127
Edwin Chen 46.1 128 To use NSPH01 in the field, make sure meet below requirements:
David Huang 34.1 129
130 * Your local operator has already distributed a NB-IoT Network there.
131 * The local NB-IoT network used the band that NSPH01 supports.
132 * Your operator is able to distribute the data received in their NB-IoT network to your IoT server.
133
Xiaoling 52.2 134 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.
135
136
David Huang 34.1 137 [[image:image-20220907153445-4.png]]
138
139
Xiaoling 50.3 140
David Huang 44.1 141 === 2.2.2 Insert SIM card ===
David Huang 34.1 142
Xiaoling 50.3 143
Edwin Chen 47.1 144 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 145
Xiaoling 51.11 146
David Huang 34.1 147 [[image:image-20220907153505-5.png]]
148
Xiaoling 50.3 149
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
183
David Huang 44.1 184 === 2.2.4 Use CoAP protocol to uplink data ===
David Huang 34.1 185
186
Xiaoling 51.2 187 (% 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 188
189
Xiaoling 51.2 190 (% style="color:blue" %)**Use below commands:**
191
192 * (% style="color:#037691" %)**AT+PRO=1**                         (%%) ~/~/  Set to use CoAP protocol to uplink
193 * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5683   ** (%%) ~/~/  to set CoAP server address and port
194 * (% style="color:#037691" %)**AT+URI=5,11,"mqtt",11,"coap",12,"0",15,"c=text1",23,"0" ** (%%) ~/~/  Set COAP resource path
195
David Huang 34.1 196 For parameter description, please refer to AT command set
197
Xiaoling 51.2 198
David Huang 34.1 199 [[image:image-20220907153551-7.png||height="502" width="740"]]
200
201
Xiaoling 51.2 202 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.
203
204
David Huang 34.1 205 [[image:image-20220907153612-8.png||height="529" width="729"]]
206
207
Xiaoling 51.2 208
David Huang 44.1 209 === 2.2.5 Use UDP protocol to uplink data(Default protocol) ===
David Huang 34.1 210
Xiaoling 51.2 211
David Huang 34.1 212 This feature is supported since firmware version v1.0.1
213
Xiaoling 51.4 214 * (% style="color:blue" %)**AT+PRO=2   ** (%%) ~/~/  Set to use UDP protocol to uplink
215 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5601   ** (%%) ~/~/  to set UDP server address and port
216 * (% style="color:blue" %)**AT+CFM=1       ** (%%) ~/~/  If the server does not respond, this command is unnecessar
217
David Huang 34.1 218 [[image:image-20220907153643-9.png||height="401" width="734"]]
219
Xiaoling 51.2 220
David Huang 34.1 221 [[image:image-20220907153703-10.png||height="309" width="738"]]
222
223
Xiaoling 51.4 224
David Huang 44.1 225 === 2.2.6 Use MQTT protocol to uplink data ===
David Huang 34.1 226
Xiaoling 51.4 227
David Huang 34.1 228 This feature is supported since firmware version v110
229
Xiaoling 51.4 230 * (% style="color:blue" %)**AT+PRO=3   ** (%%) ~/~/ Set to use MQTT protocol to uplink
231 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,1883   ** (%%) ~/~/ Set MQTT server address and port
232 * (% style="color:blue" %)**AT+CLIENT=CLIENT       ** (%%) ~/~/ Set up the CLIENT of MQTT
233 * (% style="color:blue" %)**AT+UNAME=UNAME                               **(%%)~/~/ Set the username of MQTT
234 * (% style="color:blue" %)**AT+PWD=PWD                                        **(%%)~/~/ Set the password of MQTT
235 * (% style="color:blue" %)**AT+PUBTOPIC=NSE01_PUB                    **(%%)~/~/ Set the sending topic of MQTT
236 * (% style="color:blue" %)**AT+SUBTOPIC=NSE01_SUB          ** (%%) ~/~/ Set the subscription topic of MQTT
David Huang 34.1 237
238 [[image:image-20220907153739-11.png||height="491" width="764"]]
239
Xiaoling 51.3 240
David Huang 34.1 241 [[image:image-20220907153751-12.png||height="555" width="769"]]
242
Xiaoling 51.4 243
David Huang 34.1 244 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.
245
Xiaoling 51.3 246
247
248
David Huang 44.1 249 === 2.2.7 Use TCP protocol to uplink data ===
David Huang 34.1 250
Xiaoling 51.4 251
David Huang 34.1 252 This feature is supported since firmware version v110
253
Xiaoling 51.4 254 * (% style="color:blue" %)**AT+PRO=4   ** (%%) ~/~/ Set to use TCP protocol to uplink
255 * (% style="color:blue" %)**AT+SERVADDR=120.24.4.116,5600   ** (%%) ~/~/ to set TCP server address and port
David Huang 34.1 256
257 [[image:image-20220907153818-13.png||height="486" width="668"]]
258
Xiaoling 51.3 259
David Huang 34.1 260 [[image:image-20220907153827-14.png||height="236" width="684"]]
261
Xiaoling 51.3 262
263
David Huang 44.1 264 === 2.2.8 Change Update Interval ===
David Huang 34.1 265
Xiaoling 51.5 266
Edwin Chen 47.1 267 Users can use the below command to change the **uplink interval**.
David Huang 34.1 268
Xiaoling 51.4 269 * (% style="color:blue" %)**AT+TDC=7200      ** (%%) ~/~/ Set Update Interval to 7200s (2 hour)
David Huang 34.1 270
Xiaoling 51.4 271 (% 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 272
Edwin Chen 47.1 273
Xiaoling 51.5 274
David Huang 44.1 275 == 2.3  Uplink Payload ==
David Huang 34.1 276
Xiaoling 51.5 277
David Huang 34.1 278 In this mode, uplink payload includes 87 bytes in total by default.
279
280 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.
281
Xiaoling 56.3 282 (% border="1.5" style="background-color:#ffffcc; color:green; width:520px" %)
Xiaoling 56.6 283 |=(% scope="row" style="width: 50px;" %)**Size(bytes)**|(% style="width:40px" %)**8**|(% style="width:20px" %)**2**|(% style="width:25px" %)**2**|(% style="width:60px" %)**1**|(% style="width:20px" %)**1**|(% style="width:40px" %)**1**|(% style="width:40px" %)**2**|(% style="width:50px" %)**2**|(% style="width:50px" %)**4**|(% style="width:50px" %)**2**|(% style="width:30px" %)**2**|(% style="width:40px" %)**4**
Xiaoling 56.3 284 |=(% 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 285
David Huang 34.1 286 If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the NSPH01 uplink data.
287
288 [[image:image-20220907153902-15.png||height="581" width="804"]]
289
290
Xiaoling 52.2 291 (((
David Huang 34.1 292 The payload is ASCII string, representative same HEX:
Xiaoling 52.2 293 )))
David Huang 34.1 294
Xiaoling 52.2 295 (((
296
297 )))
David Huang 34.1 298
Xiaoling 52.2 299 (((
300 **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__//(%%)**
301 )))
David Huang 34.1 302
Xiaoling 52.2 303 (((
304
Xiaoling 51.10 305
Xiaoling 56.2 306 **where:**
Xiaoling 52.2 307 )))
Xiaoling 51.10 308
Xiaoling 56.2 309 * (% style="color:#037691" %)**Device ID:**(%%)** **0xf868411056754138 = f868411056754138
Xiaoling 52.2 310
Xiaoling 56.2 311 * (% style="color:#037691" %)**Version:**  (%%) 0x0064=100=1.0.0
312
313 * (% style="color:#037691" %)**BAT:**   (%%) 0x0c78 = 3192 mV = 3.192V
314
315 * (% style="color:#037691" %)**Singal:** (%%)0x17 = 23
316
317 * (% style="color:#037691" %)**Mod:** (%%) 0x01 = 1
318
319 * (% style="color:#037691" %)**Interrupt:**(%%) 0x00= 0
320
321 * (% style="color:#037691" %)**Soil PH:** (%%) 0x0225= 549 = 5.49
322
323 * (% style="color:#037691" %)**Soil Temperature:**(%%) 0x010b =267=26.7 °C
324
325 * (% style="color:#037691" %)**Time stamp :**   (%%) 0x6315537b =1662342011  ([[Unix Epoch Time>>url:http://www.epochconverter.com/]])
326
327 * (% style="color:#037691" %)**Soil Temperature,Soil PH,Time stamp : **(%%) 010b0226631550fb
328
329 * (% style="color:#037691" %)**8 sets of recorded data:**(%%) Temperature,Soil PH,Time stamp :  010e022663154d77,.......
330
331
David Huang 44.1 332 == 2.4  Payload Explanation and Sensor Interface ==
David Huang 34.1 333
Xiaoling 51.5 334
David Huang 44.1 335 === 2.4.1  Device ID ===
David Huang 34.1 336
Xiaoling 51.5 337
David Huang 34.1 338 By default, the Device ID equal to the last 15 bits of IMEI.
339
Xiaoling 51.4 340 User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID
David Huang 34.1 341
Xiaoling 51.5 342
David Huang 34.1 343 **Example:**
344
345 AT+DEUI=868411056754138
346
347 The Device ID is stored in a none-erase area, Upgrade the firmware or run AT+FDR won't erase Device ID.
348
Xiaoling 51.5 349
350
David Huang 44.1 351 === 2.4.2  Version Info ===
David Huang 34.1 352
Xiaoling 51.5 353
David Huang 34.1 354 Specify the software version: 0x64=100, means firmware version 1.00.
355
356 For example: 0x00 64 : this device is NSPH01 with firmware version 1.0.0.
357
Xiaoling 51.5 358
359
David Huang 44.1 360 === 2.4.3  Battery Info ===
David Huang 34.1 361
Xiaoling 51.5 362
David Huang 34.1 363 Check the battery voltage for NSPH01.
364
365 Ex1: 0x0B45 = 2885mV
366
367 Ex2: 0x0B49 = 2889mV
368
Xiaoling 51.5 369
370
David Huang 44.1 371 === 2.4.4  Signal Strength ===
David Huang 34.1 372
Xiaoling 51.5 373
David Huang 34.1 374 NB-IoT Network signal Strength.
375
376 **Ex1: 0x1d = 29**
377
378 **0**  -113dBm or less
379
380 **1**  -111dBm
381
382 **2...30** -109dBm... -53dBm
383
384 **31**   -51dBm or greater
385
386 **99**    Not known or not detectable
387
Xiaoling 51.5 388
389
David Huang 44.1 390 === 2.4.5  Soil PH ===
David Huang 34.1 391
Xiaoling 51.5 392
David Huang 34.1 393 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.
394
Xiaoling 51.9 395 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 396
Xiaoling 51.9 397 (% style="color:blue" %)**0229(H) = 549(D) /100 = 5.49.**
David Huang 34.1 398
Xiaoling 51.5 399
400
David Huang 44.1 401 === 2.4.6  Soil Temperature ===
David Huang 34.1 402
Xiaoling 51.5 403
Xiaoling 51.9 404 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 405
Xiaoling 51.9 406
David Huang 34.1 407 **Example**:
408
David Huang 40.1 409 If payload is 0105H: ((0x0105 & 0x8000)>>15 === 0),temp = 0105(H)/10 = 26.1 °C
David Huang 34.1 410
David Huang 40.1 411 If payload is FF7EH: ((FF7E & 0x8000)>>15 ===1),temp = (FF7E(H)-FFFF(H))/10 = -12.9 °C
David Huang 34.1 412
Xiaoling 51.5 413
414
David Huang 44.1 415 === 2.4.7  Timestamp ===
David Huang 34.1 416
Xiaoling 51.5 417
David Huang 34.1 418 Time stamp : 0x6315537b =1662342011
419
420 Convert Unix timestamp to time 2022-9-5 9:40:11.
421
Xiaoling 51.5 422
423
David Huang 44.1 424 === 2.4.8  Digital Interrupt ===
David Huang 34.1 425
426
Xiaoling 51.5 427 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.
428
David Huang 34.1 429 The command is:
430
Xiaoling 51.5 431 (% 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 432
433 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.
434
435
Xiaoling 51.9 436 **Example:**
437
David Huang 34.1 438 0x(00): Normal uplink packet.
439
440 0x(01): Interrupt Uplink Packet.
441
Xiaoling 51.5 442
443
David Huang 44.1 444 === 2.4.9  ​+5V Output ===
David Huang 34.1 445
Xiaoling 51.5 446
David Huang 34.1 447 NSPH01 will enable +5V output before all sampling and disable the +5v after all sampling. 
448
449 The 5V output time can be controlled by AT Command.
450
Xiaoling 51.5 451 (% style="color:blue" %)**AT+5VT=1000**
David Huang 34.1 452
453 Means set 5V valid time to have 1000ms. So the real 5V output will actually have 1000ms + sampling time for other sensors.** **
454
455
Xiaoling 51.5 456
David Huang 44.1 457 == 2.5  Downlink Payload ==
David Huang 34.1 458
Xiaoling 51.5 459
David Huang 41.1 460 By default, NSPH01 prints the downlink payload to console port.
David Huang 34.1 461
David Huang 37.1 462 [[image:image-20220907154636-17.png]]
David Huang 34.1 463
464
Xiaoling 51.5 465 (% style="color:blue" %)**Examples:**
David Huang 34.1 466
Xiaoling 51.5 467 * (% style="color:#037691" %)** Set TDC**
David Huang 34.1 468
469 If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01.
470
471 Payload:    01 00 00 1E    TDC=30S
472
473 Payload:    01 00 00 3C    TDC=60S
474
Xiaoling 51.5 475 * (% style="color:#037691" %)** Reset**
David Huang 34.1 476
David Huang 42.1 477 If payload = 0x04FF, it will reset the NSPH01
David Huang 34.1 478
Xiaoling 51.5 479 * (% style="color:#037691" %)** INTMOD**
David Huang 34.1 480
481 Downlink Payload: 06000003, Set AT+INTMOD=3
482
Xiaoling 51.5 483
484
David Huang 44.1 485 == 2.6  ​LED Indicator ==
David Huang 34.1 486
Xiaoling 51.5 487
David Huang 34.1 488 The NSPH01 has an internal LED which is to show the status of different state.
489
490 * 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)
491 * Then the LED will be on for 1 second means device is boot normally.
492 * After NSPH01 join NB-IoT network. The LED will be ON for 3 seconds.
493 * For each uplink probe, LED will be on for 500ms.
494
Xiaoling 51.5 495 == 2.7  Installation and Maintain ==
496
497
498 === 2.7.1  Before measurement ===
499
500
David Huang 34.1 501 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. 
502
503
Xiaoling 51.5 504
505 === 2.7.2  Measurement ===
506
507
Xiaoling 51.7 508 (% style="color:#037691" %)**Measurement the soil surface:**
David Huang 34.1 509
Xiaoling 51.5 510
David Huang 34.1 511 [[image:image-20220907154700-18.png]] ​
512
513 Choose the proper measuring position. Split the surface soil according to the measured deep.
514
515 Put pure water, or rainwater to make the soil of measurement point to moist mud. Remove rocks or hard things.
516
517 Slowly insert the probe to the measure point. Don't use large force which will break the probe. Make sure not shake when inserting.
518
519 Put soil over the probe after insert. And start to measure.
520
Xiaoling 51.5 521
Xiaoling 51.7 522 (% style="color:#037691" %)**Measurement inside soil:**
David Huang 34.1 523
524 Dig a hole with diameter > 20CM.
525
526 Insert the probe inside, method like measure the surface.
527
528
Xiaoling 51.5 529
530 === 2.7.3  Maintain Probe ===
531
532
David Huang 34.1 533 1. pH probe electrode is fragile and no strong. User must avoid strong force or hitting it.
534 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.
535 1. Probe reference electrode is also no strong, need to avoid strong force or hitting.
536 1. User should keep reference electrode wet while not use.
537 1. Avoid the probes to touch oily matter. Which will cause issue in accuracy.
538 1. The probe is IP68 can be put in water.
539
Xiaoling 51.5 540 == 2.8  PH and Temperature alarm function ==
541
542
Xiaoling 51.7 543 (% style="color:#037691" %)**➢ AT Command:**
Xiaoling 51.5 544
Xiaoling 51.7 545 (% style="color:blue" %)**AT+ PHALARM=min,max**
Xiaoling 51.5 546
David Huang 34.1 547 ² When min=3, and max≠0, Alarm higher than max
548
549 ² When min≠0, and max=0, Alarm lower than min
550
551 ² When min≠0 and max≠0, Alarm higher than max or lower than min
552
553
Xiaoling 51.7 554 (% style="color:blue" %)**Example:**
David Huang 34.1 555
Xiaoling 51.5 556 AT+ PHALARM =5,8  ~/~/ Alarm when PH lower than 5.
557
David Huang 34.1 558 AT+ TEMPALARM=min,max
559
560 ² When min=0, and max≠0, Alarm higher than max
561
562 ² When min≠0, and max=0, Alarm lower than min
563
564 ² When min≠0 and max≠0, Alarm higher than max or lower than min
565
566
Xiaoling 51.7 567 (% style="color:blue" %)**Example:**
David Huang 34.1 568
Xiaoling 51.5 569 AT+ TEMPALARM=20,30  ~/~/ Alarm when temperature lower than 20.
David Huang 34.1 570
Xiaoling 51.5 571
572
Xiaoling 51.7 573 == 2.9  Set the number of data to be uploaded and the recording time ==
David Huang 34.1 574
575
Xiaoling 51.7 576 (% style="color:#037691" %)**➢ AT Command:**
David Huang 34.1 577
Xiaoling 51.7 578 * (% 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)
579 * (% 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 580
Edwin Chen 54.1 581 The diagram below explains the relationship between TR, NOUD, and TDC more clearly**:**
Edwin Chen 47.1 582
Edwin Chen 56.1 583 [[image:image-20221009000933-1.png||height="750" width="1043"]]
Xiaoling 51.5 584
Edwin Chen 54.1 585
586
Xiaoling 51.7 587 == 2.10  Read or Clear cached data ==
David Huang 34.1 588
589
Xiaoling 51.7 590 (% style="color:#037691" %)**➢ AT Command:**
Xiaoling 51.5 591
Xiaoling 51.7 592 * (% style="color:blue" %)**AT+CDP**        (%%) ~/~/  Read cached data
Xiaoling 51.9 593 * (% style="color:blue" %)**AT+CDP=0**    (%%) ~/~/  Clear cached data
Xiaoling 51.5 594
David Huang 34.1 595 [[image:image-20220907154700-19.png]]
596
597
598
Xiaoling 51.5 599 == 2.11  Calibration ==
David Huang 34.1 600
601
602 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).
603
604 After stable, user can use below command to calibrate.
605
Xiaoling 51.5 606
David Huang 34.1 607 [[image:image-20220907154700-20.png]] ​
608
Xiaoling 51.5 609
610
David Huang 44.1 611 == 2.12  ​Firmware Change Log ==
David Huang 34.1 612
Xiaoling 51.5 613
Xiaoling 51.11 614 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 615
Xiaoling 51.7 616 Upgrade Instruction: [[Upgrade Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]]
David Huang 34.1 617
Xiaoling 51.5 618
619
David Huang 44.1 620 == 2.13  ​Battery Analysis ==
David Huang 34.1 621
Xiaoling 51.5 622
David Huang 44.1 623 === 2.13.1  ​Battery Type ===
David Huang 34.1 624
Xiaoling 51.5 625
David Huang 34.1 626 The NSPH01 battery is a combination of an 8500mAh Li/SOCI2 Battery and a Super Capacitor. The battery is none-rechargeable battery type with a low discharge rate (<2% per year). This type of battery is commonly used in IoT devices such as water meter.
627
628 The battery is designed to last for several years depends on the actually use environment and update interval. 
629
Edwin Chen 47.1 630 The battery-related documents as below:
David Huang 34.1 631
632 * [[Battery Dimension>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
633 * [[Lithium-Thionyl Chloride Battery datasheet>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
634 * [[Lithium-ion Battery-Capacitor datasheet>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]]
635
636 [[image:image-20220907154700-21.png]] ​
637
Xiaoling 51.5 638
639
David Huang 44.1 640 === 2.13.2  Power consumption Analyze ===
David Huang 34.1 641
Xiaoling 51.5 642
David Huang 34.1 643 Dragino battery powered product are all runs in Low Power mode. We have an update battery calculator which base on the measurement of the real device. User can use this calculator to check the battery life and calculate the battery life if want to use different transmit interval.
644
645 Instruction to use as below:
646
Xiaoling 51.7 647 (% style="color:blue" %)**Step 1:  **(%%)Downlink the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from: [[https:~~/~~/www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/>>url:https://www.dragino.com/downloads/index.php?dir=LoRa_End_Node/Battery_Analyze/]]
David Huang 34.1 648
Xiaoling 51.8 649 (% style="color:blue" %)**Step 2: **(%%) Open it and choose
David Huang 34.1 650
651 * Product Model
652 * Uplink Interval
653 * Working Mode
654
655 And the Life expectation in difference case will be shown on the right.
656
Xiaoling 51.6 657
David Huang 34.1 658 [[image:image-20220907154700-22.jpeg]]
659
660
661
Xiaoling 51.5 662
David Huang 44.1 663 === 2.13.3  ​Battery Note ===
David Huang 34.1 664
Xiaoling 51.5 665
David Huang 34.1 666 The Li-SICO battery is designed for small current / long period application. It is not good to use a high current, short period transmit method. The recommended minimum period for use of this battery is 5 minutes. If you use a shorter period time to transmit LoRa, then the battery life may be decreased.
667
Xiaoling 51.5 668
669
David Huang 44.1 670 === 2.13.4  Replace the battery ===
David Huang 34.1 671
Xiaoling 51.5 672
David Huang 34.1 673 The default battery pack of NSPH01 includes a ER26500 plus super capacitor. If user can't find this pack locally, they can find ER26500 or equivalence without the SPC1520 capacitor, which will also work in most case. The SPC can enlarge the battery life for high frequency use (update period below 5 minutes).
674
Xiaoling 51.5 675
676
David Huang 44.1 677 = 3. ​ Access NB-IoT Module =
David Huang 34.1 678
Xiaoling 51.5 679
David Huang 34.1 680 Users can directly access the AT command set of the NB-IoT module.
681
682 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/]] 
683
Xiaoling 51.5 684
David Huang 34.1 685 [[image:image-20220907154700-23.png]]
686
687
688
Xiaoling 51.5 689
David Huang 44.1 690 = 4.  Using the AT Commands =
David Huang 34.1 691
Xiaoling 51.5 692
David Huang 44.1 693 == 4.1  Access AT Commands ==
David Huang 34.1 694
Xiaoling 51.5 695
David Huang 34.1 696 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]]
697
698 AT+<CMD>?  : Help on <CMD>
699
700 AT+<CMD>         : Run <CMD>
701
702 AT+<CMD>=<value> : Set the value
703
704 AT+<CMD>=?  : Get the value
705
Xiaoling 51.5 706
Xiaoling 51.7 707 (% style="color:#037691" %)**General Commands**      
David Huang 34.1 708
709 AT  : Attention       
710
711 AT?  : Short Help     
712
713 ATZ  : MCU Reset    
714
715 AT+TDC  : Application Data Transmission Interval
716
717 AT+CFG  : Print all configurations
718
719 AT+CFGMOD           : Working mode selection
720
721 AT+INTMOD            : Set the trigger interrupt mode
722
723 AT+5VT  : Set extend the time of 5V power  
724
725 AT+PRO  : Choose agreement
726
727 AT+RXDL  : Extend the sending and receiving time
728
729 AT+SERVADDR  : Server Address
730
731 AT+TR      : Get or Set record time"
732
David Huang 50.1 733 AT+APN     : Get or set the APN
David Huang 34.1 734
David Huang 50.1 735 AT+FBAND   : Get or Set whether to automatically modify the frequency band
736
737 AT+DNSCFG  : Get or Set DNS Server
738
739 AT+GETSENSORVALUE   : Returns the current sensor measurement
740
David Huang 34.1 741 AT+NOUD      : Get or Set the number of data to be uploaded
742
743 AT+CDP     : Read or Clear cached data
744
745 AT+TEMPALARM      : Get or Set alarm of temp
746
747 AT+PHALARM     : Get or Set alarm of PH
748
749 AT+ PHCAL  : calibrate PH value
750
751
Xiaoling 51.7 752 (% style="color:#037691" %)**COAP Management**      
David Huang 34.1 753
754 AT+URI            : Resource parameters
755
Xiaoling 51.5 756
Xiaoling 51.7 757 (% style="color:#037691" %)**UDP Management**
David Huang 34.1 758
759 AT+CFM          : Upload confirmation mode (only valid for UDP)
760
Xiaoling 51.5 761
Xiaoling 51.7 762 (% style="color:#037691" %)**MQTT Management**
David Huang 34.1 763
764 AT+CLIENT               : Get or Set MQTT client
765
766 AT+UNAME  : Get or Set MQTT Username
767
768 AT+PWD                  : Get or Set MQTT password
769
770 AT+PUBTOPIC  : Get or Set MQTT publish topic
771
772 AT+SUBTOPIC  : Get or Set MQTT subscription topic
773
Xiaoling 51.5 774
Xiaoling 51.7 775 (% style="color:#037691" %)**Information**          
David Huang 34.1 776
777 AT+FDR  : Factory Data Reset
778
779 AT+PWORD  : Serial Access Password
780
Xiaoling 51.5 781
782
David Huang 44.1 783 = ​5.  FAQ =
David Huang 34.1 784
Xiaoling 51.5 785
David Huang 44.1 786 == 5.1 ​ How to Upgrade Firmware ==
David Huang 34.1 787
Xiaoling 51.5 788
David Huang 34.1 789 User can upgrade the firmware for 1) bug fix, 2) new feature release.
790
791 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]]
792
Xiaoling 51.8 793 (% 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 794
Xiaoling 51.5 795
796
David Huang 44.1 797 == 5.2  Can I calibrate NSPH01 to different soil types? ==
David Huang 34.1 798
Xiaoling 51.5 799
David Huang 34.1 800 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]].
801
Xiaoling 51.5 802
803
David Huang 44.1 804 = 6.  Trouble Shooting =
David Huang 34.1 805
Xiaoling 51.5 806
David Huang 44.1 807 == 6.1  ​Connection problem when uploading firmware ==
David Huang 34.1 808
Xiaoling 51.5 809
David Huang 34.1 810 **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]]
811
Xiaoling 51.5 812
813
David Huang 44.1 814 == 6.2  AT Command input doesn't work ==
David Huang 34.1 815
816
Xiaoling 51.7 817 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 818
819
820
David Huang 44.1 821 = 7. ​ Order Info =
David Huang 34.1 822
Xiaoling 51.5 823
David Huang 34.1 824 Part Number**:** NSPH01
825
Xiaoling 51.5 826
827
David Huang 44.1 828 = 8.  Packing Info =
David Huang 34.1 829
Xiaoling 51.5 830
David Huang 34.1 831 **Package Includes**:
832
Edwin Chen 47.1 833 * NSPH01 NB-IoT pH Sensor x 1
David Huang 34.1 834 * External antenna x 1
835
836 **Dimension and weight**:
837
Xiaoling 51.10 838 * Device Size: cm
839 * Device Weight: g
840 * Package Size / pcs : cm
841 * Weight / pcs : g
David Huang 34.1 842
Xiaoling 56.2 843
David Huang 44.1 844 = 9.  Support =
David Huang 34.1 845
Xiaoling 51.5 846
David Huang 34.1 847 * 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.
848 * 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]]
849
850