Version 53.1 by David Huang on 2022/10/08 11:47

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