Wiki source code of NDS01 - NB-IoT Door Sensor User Manual
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | (% style="text-align:center" %) | ||
2 | [[image:image-20221112113258-1.jpeg]] | ||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | |||
11 | |||
12 | |||
13 | |||
14 | = 1. Introduction = | ||
15 | |||
16 | |||
17 | == 1.1 What is NDS01 NB-IoT Door Sensor == | ||
18 | |||
19 | |||
20 | The Dragino NDS01 is a NB-IOT Door Sensor for Internet of Things solution. It is used to detect the open/close event for door and uplink the event to IoT server via NB-IoT network. | ||
21 | |||
22 | Besides open/close event, NDS01 also has an internal temperature and humidity sensor which can detect the temperature and humidity inside the sensor. | ||
23 | |||
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. | ||
25 | |||
26 | NDS01 is powered by 2 x AAA batteries for long term use. | ||
27 | |||
28 | *The measured temperature is 2~~3 degree higher than the actually environment temperature out of NDS01. | ||
29 | |||
30 | |||
31 | [[image:1668224602353-769.png]] | ||
32 | |||
33 | |||
34 | |||
35 | |||
36 | == 1.2 Specifications == | ||
37 | |||
38 | |||
39 | **Common DC Characteristics:** | ||
40 | |||
41 | * Supply Voltage: 2.1v ~~ 3.6v | ||
42 | * Operating Temperature: -10 ~~ 50°C | ||
43 | |||
44 | |||
45 | **NB-IoT Spec:** | ||
46 | |||
47 | * - B1 @H-FDD: 2100MHz | ||
48 | * - B3 @H-FDD: 1800MHz | ||
49 | * - B8 @H-FDD: 900MHz | ||
50 | * - B5 @H-FDD: 850MHz | ||
51 | * - B20 @H-FDD: 800MHz | ||
52 | * - B28 @H-FDD: 700MHz | ||
53 | |||
54 | |||
55 | **Power Consumption** | ||
56 | |||
57 | * IDEL Mode: 10uA @ 3.3v | ||
58 | * Max transmit power: <500mA@3.3v | ||
59 | |||
60 | | ||
61 | |||
62 | |||
63 | == 1.3 Features == | ||
64 | |||
65 | |||
66 | * NB-IoT Bands: B1/B3/B5/B8/B20/B28 @H-FDD | ||
67 | * Ultra low power consumption | ||
68 | * Door Open / Close Detect | ||
69 | * Device remove alarm | ||
70 | * Uplink Protocol: TCP or UDP | ||
71 | * Uplink on periodically | ||
72 | * Micro SIM card slot for NB-IoT SIM | ||
73 | * 2 x AAA LR03 Batteries | ||
74 | |||
75 | |||
76 | |||
77 | == 1.4 Applications == | ||
78 | |||
79 | |||
80 | * Smart Buildings & Home Automation | ||
81 | * Logistics and Supply Chain Management | ||
82 | * Smart Cities | ||
83 | * Smart Factory | ||
84 | |||
85 | |||
86 | |||
87 | = 2. Use NDS01 to communicate with IoT Server = | ||
88 | |||
89 | |||
90 | == 2.1 How it works == | ||
91 | |||
92 | |||
93 | The NDS01 is equipped with a NB-IoT module, the pre-loaded firmware in NDS01 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 NDS01. | ||
94 | |||
95 | The diagram below shows the working flow in default firmware of NDS01: | ||
96 | |||
97 | |||
98 | == 2.2 Configure the NDS01 == | ||
99 | |||
100 | |||
101 | === 2.2.1 Test Requirement === | ||
102 | |||
103 | |||
104 | To use NDS01 in your city, make sure meet below requirements: | ||
105 | |||
106 | * Your local operator has already distributed a NB-IoT Network there. | ||
107 | * The local NB-IoT network used the band that NDS01 supports. | ||
108 | * Your operator is able to distribute the data received in their NB-IoT network to your IoT server. | ||
109 | |||
110 | Below figure shows our testing structure. Here we have NB-IoT network coverage by China Mobile, the band they use is B8. The NDS01 will use UDP(120.24.4.116:5601) or TCP(120.24.4.116:5600)protocol to send data to IoT server. | ||
111 | |||
112 | |||
113 | [[image:1668224789474-811.png]] | ||
114 | |||
115 | |||
116 | |||
117 | === 2.2.1 Insert SIM card === | ||
118 | |||
119 | Insert the NB-IoT Card get from your provider. | ||
120 | |||
121 | |||
122 | User need to take out the NB-IoT module and insert the SIM card like below: | ||
123 | |||
124 | |||
125 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image003.png]] | ||
126 | |||
127 | |||
128 | === 2.2.3 Configure NDS01 === | ||
129 | |||
130 | User need to configure NDS01 via serial port to set the **Server Address** / **Uplink Topic** to define where and how-to uplink packets. NDS01 support AT Commands, user can use a USB to TTL adapter to connect to NDS01 and use AT Commands to configure it, NDS01 needs to be in the wake-up state when using AT commands,as below. | ||
131 | |||
132 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image004.png]] | ||
133 | |||
134 | |||
135 | |||
136 | Connection: | ||
137 | |||
138 | USB TTL GND <~-~-~-~-> GND | ||
139 | |||
140 | USB TTL TXD <~-~-~-~-> UART_RXD | ||
141 | |||
142 | USB TTL RXD <~-~-~-~-> UART_TXD | ||
143 | |||
144 | |||
145 | |||
146 | In the PC, use below serial tool settings: | ||
147 | |||
148 | * Baud: **115200** | ||
149 | * Data bits:** 8** | ||
150 | * Stop bits: **1** | ||
151 | * Parity: **None** | ||
152 | * Flow Control: **None** | ||
153 | |||
154 | After powering on the NDS01, the following information will be printed | ||
155 | |||
156 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png]] | ||
157 | |||
158 | AT command set | ||
159 | |||
160 | 1. Set and query the communication protocol | ||
161 | |||
162 | Send: AT+PRO=<val> Val: 0:TCP 1:UDP | ||
163 | |||
164 | Reply: OK | ||
165 | |||
166 | Send: AT+PRO? ~/~/Inquire | ||
167 | |||
168 | Reply: +PRO:0 | ||
169 | |||
170 | OK | ||
171 | |||
172 | 1. Set and query the server address | ||
173 | |||
174 | Send: AT+SERVADDR=<server>,<port> | ||
175 | |||
176 | Reply: OK | ||
177 | |||
178 | Send: AT+SERVADDR? ~/~/Inquire | ||
179 | |||
180 | Reply: +SERVADDR:<server>,<port> | ||
181 | |||
182 | OK | ||
183 | |||
184 | 1. Set and query the TDC | ||
185 | |||
186 | Send:AT+TDC=<value>~/~/Heartbeat time, in seconds, the default is 86400s,which is 24 hours | ||
187 | |||
188 | Reply:OK | ||
189 | |||
190 | Send:AT+TDC? ~/~/Inquire | ||
191 | |||
192 | Reply: +TDC:<value> | ||
193 | |||
194 | OK | ||
195 | |||
196 | 1. Query parameters | ||
197 | |||
198 | Send:AT+CFG? | ||
199 | |||
200 | Reply:+PRO:0 | ||
201 | |||
202 | +SERVADDR:120.27.12.119,2023 | ||
203 | |||
204 | +TDC:86400 | ||
205 | |||
206 | +CSQ:31 | ||
207 | |||
208 | +IMEI:868163049937383 | ||
209 | |||
210 | +ICCID:898604611619C0854626 | ||
211 | |||
212 | +IMSI:460048118204626 | ||
213 | |||
214 | OK | ||
215 | |||
216 | 1. Set and query the APN | ||
217 | |||
218 | Send: AT+APN="<apn>" ~/~/Set APN | ||
219 | |||
220 | Reply: OK | ||
221 | |||
222 | Send: AT+APN? ~/~/Inquire | ||
223 | |||
224 | Reply: +APN:"cmiot" | ||
225 | |||
226 | OK | ||
227 | |||
228 | 1. Alarm and Silencer | ||
229 | |||
230 | Send:AT+ALARM=<value> ~/~/0~~1,0: mute 1: buzzer alarm (note that no data will be reported, only the buzzer and the red light are on, if it is in silent mode, only the red light is on) | ||
231 | |||
232 | Reply: OK | ||
233 | |||
234 | |||
235 | |||
236 | |||
237 | === 2.2.4 Use UDP protocol to uplink data (Default protocol) === | ||
238 | |||
239 | * **AT+PRO=1 ** ~/~/ Set to use UDP protocol to uplink | ||
240 | * **AT+SERVADDR=119.91.62.30,1999 **~/~/ to set UDP server address and port | ||
241 | |||
242 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image006.png]] | ||
243 | |||
244 | |||
245 | |||
246 | === 2.2.5 Use TCP protocol to uplink data === | ||
247 | |||
248 | * **AT+PRO=0 ** ~/~/ Set to use TCP protocol to uplink | ||
249 | * **AT+SERVADDR=119.91.62.30,2002 **~/~/ to set TCP server address and port | ||
250 | |||
251 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image007.png]] | ||
252 | |||
253 | |||
254 | |||
255 | |||
256 | === 2.2.6 Change Update Interval === | ||
257 | |||
258 | User can use below command to change the **uplink interval**. | ||
259 | |||
260 | **AT+TDC=86400 **~/~/ Set Update Interval to 86400s | ||
261 | |||
262 | |||
263 | **NOTE:** | ||
264 | |||
265 | 1. By default, the device will send an uplink message every 24 hour (86400s). | ||
266 | |||
267 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image008.png]] | ||
268 | |||
269 | |||
270 | |||
271 | |||
272 | == 2.3 Uplink Payload == | ||
273 | |||
274 | registration package, uplink payload includes in total 61 bytes | ||
275 | |||
276 | |||
277 | |((( | ||
278 | **Size** | ||
279 | |||
280 | **(bytes)** | ||
281 | )))|**2**|**1**|**1**|**1**|**1**|**15**|**15**|**20**|**1**|**1**|**3** | ||
282 | |**Value**|head|Version|data type|Data length|device type|device ID|IMSI|ICCID|BAT|Signal|tail | ||
283 | |||
284 | The payload is ASCII string, representative same HEX: 0x4B5710013401383639393735303334343431303832343630313133313138373433373332 | ||
285 | |||
286 | 38393836313132303232343031343339383736321E15494F54 where: | ||
287 | |||
288 | * Head: 0x4B57(fixed) | ||
289 | * Version: 0x10=”V1.0” | ||
290 | * Data type: 0x01=1(1:register,2:data sending) | ||
291 | * Data length: 0x34=52(Valid data is 52 bytes) | ||
292 | |||
293 | * Device type: 0x01 = 1(Representative NDS01) | ||
294 | * Device ID:0x383639393735303334343431303832=869975034441082(ASCII) | ||
295 | * IMSI: 0x343630313133313138373433373332 = 460113118743732(ASCII) | ||
296 | * ICCID: 0x3839383631313230323234303134333938373632=89861120224014398762(ASCII) | ||
297 | * Bat: 0x1E = 30/10=3.0V | ||
298 | * Signal: 0x15=21 | ||
299 | |||
300 | **0** -113dBm or less | ||
301 | |||
302 | **1** -111dBm | ||
303 | |||
304 | **2...30** -109dBm... -53dBm | ||
305 | |||
306 | **31** -51dBm or greater | ||
307 | |||
308 | **99** Not known or not detectable | ||
309 | |||
310 | * Tail:0x494F54(fixed) | ||
311 | |||
312 | data upload, uplink payload includes in total 32 bytes | ||
313 | |||
314 | |((( | ||
315 | **Size** | ||
316 | |||
317 | **(bytes)** | ||
318 | )))|**2**|**1**|**1**|**1**|**1**|**15**|**1**|**1**|**1**|**1**|**1**|**1**|**1**|**1**|**3** | ||
319 | |**Value**|head|Version|data type|Data length|device type|device ID|event type|Door magnetic state|BAT|Signal|((( | ||
320 | Temp | ||
321 | |||
322 | integer | ||
323 | )))|((( | ||
324 | Temp | ||
325 | |||
326 | decimal | ||
327 | )))|((( | ||
328 | Hum | ||
329 | |||
330 | integer | ||
331 | )))|((( | ||
332 | Hum | ||
333 | |||
334 | decimal | ||
335 | )))|tail | ||
336 | |||
337 | The payload is ASCII string, representative same HEX: 0x4B5710021401383639393735303334343431303832010020151c552312494F54 where: | ||
338 | |||
339 | * Head: 0x4B57(fixed) | ||
340 | * Version: 0x10=”V1.0” | ||
341 | * Data type: 0x02=2(1:register,2:data sending) | ||
342 | * Data length: 0x14=20(Valid data is 20 bytes) | ||
343 | |||
344 | * Device type: 0x01 = 1(Representative NDS01) | ||
345 | * Device ID:0x383639393735303334343431303832=869975034441082(ASCII) | ||
346 | * Event type:0x01 | ||
347 | |||
348 | 01:TDC | ||
349 | |||
350 | 02:alarm | ||
351 | |||
352 | 03:remove alarm | ||
353 | |||
354 | 04:dismantling alarm | ||
355 | |||
356 | 05:remove demolition alarm | ||
357 | |||
358 | 06:low voltage | ||
359 | |||
360 | 07:remove low voltage | ||
361 | |||
362 | * Door magnetic state: 0x00 | ||
363 | |||
364 | 00:Door sensor is close | ||
365 | |||
366 | 01:Door sensor is open | ||
367 | |||
368 | * Bat: 0x20 = 32/10=3.2V | ||
369 | * Signal: 0x15=21 | ||
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 | |||
381 | * Temp integer:0x1c=28 | ||
382 | * Temp decimal:0x55=85 | ||
383 | |||
384 | Temp =Temp integer+(Temp decimal)/100=28+85/100=28.85℃ | ||
385 | |||
386 | * Hum integer:0x23=35 | ||
387 | * Hum decimal:0x12=18 | ||
388 | |||
389 | Hum =Hum integer+(Hum decimal)/100=35+18/100=35.18**%rh** | ||
390 | |||
391 | * Tail:0x494F54(fixed) | ||
392 | |||
393 | |||
394 | |||
395 | == 2.4 Node-Red Example == | ||
396 | |||
397 | Please refer to this link for the use of Node-RED: | ||
398 | |||
399 | [[http:~~/~~/8.211.40.43:8080/xwiki/bin/view/Main/Node-RED/>>url:http://8.211.40.43:8080/xwiki/bin/view/Main/Node-RED/]] | ||
400 | |||
401 | Please visit this link to download the Node-RED process: | ||
402 | |||
403 | [[https:~~/~~/github.com/dragino/dragino-end-node-decoder/tree/main/Node-RED>>url:https://github.com/dragino/dragino-end-node-decoder/tree/main/Node-RED]] | ||
404 | |||
405 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image009.png]] | ||
406 | |||
407 | |||
408 | |||
409 | |||
410 | == 2.5 Buttons and LED and Mode == | ||
411 | |||
412 | Operating mode | ||
413 | |||
414 | (1) In the self-check mode (the default is the self-check mode when power on for the first time), the state change of the tamper switch does not trigger an alarm; | ||
415 | |||
416 | (2) In normal working mode, the state change of the tamper switch triggers an alarm; | ||
417 | |||
418 | (3) In silent mode (the default is non-silent mode when power on for the first time), the buzzer is silent. | ||
419 | |||
420 | |||
421 | led lights | ||
422 | |||
423 | (1) After the device is powered on, the green light flashes once; | ||
424 | |||
425 | (2) The device does not set server parameters or cannot connect to the server, and the green light flashes quickly; | ||
426 | |||
427 | (3) SIM card recognition fails, the green light is always on for 20s; | ||
428 | |||
429 | (4) The equipment signal is poor, and the green light flashes once every 3 seconds; | ||
430 | |||
431 | (5) When the device sends data, the green light flashes twice; | ||
432 | |||
433 | (6) The communication of the equipment is normal, and the green light flashes 3 times continuously; | ||
434 | |||
435 | (7) Trigger the tamper switch, the red light is always on for 30s, and goes out when the alarm is canceled; | ||
436 | |||
437 | (8) Trigger the door magnetic alarm, the red light is always on for 30s, and goes out when the alarm is canceled; | ||
438 | |||
439 | |||
440 | buzzer | ||
441 | |||
442 | (1) When the door magnetic alarm is triggered, the buzzer will sound for 30s; after the alarm is restored, the buzzer will be silenced; | ||
443 | |||
444 | (2) Enter the normal working mode (the tamper switch is closed for more than 5s or the door sensor is locked for more than 5s), the buzzer will sound for 1500ms; | ||
445 | |||
446 | (3) After entering the normal working mode, the tamper switch does not close, the buzzer sounds for 30s, the tamper switch is closed, and the buzzer sounds 1 time; | ||
447 | |||
448 | (4) When the door sensor does not alarm, press the button to trigger the alarm, and the buzzer will sound for 30s; when the door sensor alarms, press it once to cancel the alarm, and the buzzer will be silenced. | ||
449 | |||
450 | |||
451 | button | ||
452 | |||
453 | (1) When there is no alarm, press it once to trigger the alarm, and the buzzer will sound; when it alarms, press the buzzer to silence the sound. | ||
454 | |||
455 | (2) Press twice to silence the buzzer; | ||
456 | |||
457 | (3) Press the button three times or more, when the mute function is turned off, the mute function is turned on, and the green light flashes once; when the mute function is turned on, the mute function is turned off, and the green light flashes once. | ||
458 | |||
459 | |||
460 | data pack | ||
461 | |||
462 | (1) The device needs to send a registration packet and a heartbeat packet every time it is powered on and registered; | ||
463 | |||
464 | (2) The heartbeat time is reported once every 24 hours by default. | ||
465 | |||
466 | = 3. FAQ = | ||
467 | |||
468 | == 3.1 How to Upgrade Firmware == | ||
469 | |||
470 | User can upgrade the firmware for 1) bug fix, 2) new feature release. | ||
471 | |||
472 | Burning software please go to this link to download: | ||
473 | |||
474 | Note: | ||
475 | |||
476 | Disconnect one battery before starting the upgrade | ||
477 | |||
478 | Please use 1.8V USB TO TTL serial port | ||
479 | |||
480 | Connection: | ||
481 | |||
482 | USB TTL GND <~-~-~-~-> GND | ||
483 | |||
484 | USB TTL TXD <~-~-~-~-> UART_RXD | ||
485 | |||
486 | USB TTL RXD <~-~-~-~-> UART_TXD | ||
487 | |||
488 | 1. Double-click "FlashTool.exe" to start the program | ||
489 | |||
490 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image010.png]] | ||
491 | |||
492 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image011.png]] | ||
493 | |||
494 | 1. Select burn serial port and firmware package to complete the upgrade | ||
495 | |||
496 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image012.png]] | ||
497 | |||
498 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image013.png]] | ||
499 | |||
500 | 1. Install the battery to the node, and the upgrade will start at this time | ||
501 | |||
502 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image014.png]] | ||
503 | |||
504 | 1. The following screenshot appears, indicating that the upgrade has been successful | ||
505 | |||
506 | [[image:file:///C:/Users/93456/AppData/Local/Temp/msohtmlclip1/01/clip_image015.png]] | ||
507 | |||
508 | |||
509 | = 4. Order Info = | ||
510 | |||
511 | Part Number: **NDS01** | ||
512 | |||
513 | |||
514 | = 5. Packing Info = | ||
515 | |||
516 | |||
517 | **Package Includes**: | ||
518 | |||
519 | * NDS01 NB-IoT Door Sensor | ||
520 | |||
521 | **Dimension and weight**: | ||
522 | |||
523 | * Device Size: | ||
524 | * Device Weight: | ||
525 | * Package Size / pcs : | ||
526 | * Weight / pcs : |