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