Version 52.2 by Xiaoling on 2022/09/23 11:31

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