Wiki source code of NDS03A - Outdoor NB-IoT Open/Close Door Sensor User Manual
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | (% style="text-align:center" %) | ||
2 | [[image:image-20221117105556-1.png]] | ||
3 | |||
4 | |||
5 | |||
6 | |||
7 | |||
8 | |||
9 | |||
10 | **Table of Contents:** | ||
11 | |||
12 | |||
13 | |||
14 | |||
15 | |||
16 | = 1. Introduction = | ||
17 | |||
18 | == 1.1 What is NDS03A NB-IoT Open/Close Door Sensor == | ||
19 | |||
20 | |||
21 | ((( | ||
22 | The Dragino NDS03A is an (% style="color:blue" %)**Open/Close NB-IoT Door Sensor**(%%). It detects door (% style="color:blue" %)**open/close status**(%%) and (% style="color:blue" %)**uplinks**(%%) to IoT server via NB-IoT network. NDS03A can connect two door sensors. user can see the door status, open duration, open counts in the IoT Server. | ||
23 | ))) | ||
24 | |||
25 | ((( | ||
26 | The NDS03A will send periodically data (% style="color:blue" %)**every 4 hours** (%%)as well as for each door open/close action. It also counts the door open times and calculates the last door open duration. Users can also disable the uplink for each open/close event, instead, NDS03A can count each open event and uplink periodically. | ||
27 | ))) | ||
28 | |||
29 | ((( | ||
30 | NDS03A has a (% style="color:blue" %)**Datalog feature**(%%), it will record the open/close event and the user can retrieve the history from NB-IoT. | ||
31 | ))) | ||
32 | |||
33 | ((( | ||
34 | NDS03A has the(% style="color:blue" %)**open alarm feature**(%%), user can set this feature so the device will send an alarm if the door has been open for a certain time. | ||
35 | ))) | ||
36 | |||
37 | ((( | ||
38 | NDS03A is designed for outdoor use. It has a weatherproof enclosure and industrial level battery to work in low to high temperatures. | ||
39 | ))) | ||
40 | |||
41 | ((( | ||
42 | NarrowBand-Internet of Things (NB-IoT) is a (% style="color:blue" %)**standards-based low power wide area (LPWA) technologyTCP, MQTT, UDP, and CoAP**(%%) for different application requirements. | ||
43 | ))) | ||
44 | |||
45 | ((( | ||
46 | NDS03A is powered by (% style="color:blue" %)**8500mAh Li-SOCI2 battery**(%%), It is designed for long-term use of up to 5 years. (Actually Battery life depends on the use environment, update period & uplink method) | ||
47 | ))) | ||
48 | |||
49 | ((( | ||
50 | To use NDS03A, user needs to check if there is NB-IoT coverage in the field and with the Nb-IoT bands that NDS03A supports. If local operator support it, user needs to get a (% style="color:blue" %)**NB-IoT SIM card**(%%) from the operator and install into NDS03A to get NB-IoT network connection. | ||
51 | ))) | ||
52 | |||
53 | |||
54 | |||
55 | == 1.2 Features == | ||
56 | |||
57 | |||
58 | * NB-IoT Bands: B1/B3/B8/B5/B20/B28 @H-FDD | ||
59 | * Open/Close detect | ||
60 | * Open/Close statistics | ||
61 | * Monitor Battery Level | ||
62 | * connect two door sensors | ||
63 | * Datalog feature | ||
64 | * Uplink periodically | ||
65 | * Downlink to change configure | ||
66 | * Wall Mountable | ||
67 | * Outdoor Use | ||
68 | * Ultra-Low Power consumption | ||
69 | * AT Commands to change parameters | ||
70 | * Micro SIM card slot for NB-IoT SIM | ||
71 | * 8500mAh Battery for long-term use | ||
72 | |||
73 | |||
74 | |||
75 | == 1.3 Storage & Operation == | ||
76 | |||
77 | |||
78 | Temperature -40°C to +85°C | ||
79 | |||
80 | |||
81 | == 1.4 Mechanical == | ||
82 | |||
83 | |||
84 | [[image:image-20221117114937-4.png]] | ||
85 | |||
86 | |||
87 | [[image:image-20221117114949-5.png]] | ||
88 | |||
89 | |||
90 | [[image:image-20221117115010-6.png]] | ||
91 | |||
92 | |||
93 | |||
94 | == 1.5 Applications == | ||
95 | |||
96 | |||
97 | [[image:image-20221117114842-3.png]] | ||
98 | |||
99 | |||
100 | |||
101 | == 1.6 Specification == | ||
102 | |||
103 | |||
104 | (% style="color:blue" %)**Common DC Characteristics:** | ||
105 | |||
106 | * Supply Voltage: 2.1v ~~ 3.6v | ||
107 | * Operating Temperature: -40 ~~ 85°C | ||
108 | |||
109 | (% style="color:blue" %)**NB-IoT Spec:** | ||
110 | |||
111 | * - B1 @H-FDD: 2100MHz | ||
112 | * - B3 @H-FDD: 1800MHz | ||
113 | * - B8 @H-FDD: 900MHz | ||
114 | * - B5 @H-FDD: 850MHz | ||
115 | * - B20 @H-FDD: 800MHz | ||
116 | * - B28 @H-FDD: 700MHz | ||
117 | |||
118 | |||
119 | |||
120 | == 1.7 Pin Definitions and Switch == | ||
121 | |||
122 | |||
123 | [[image:image-20221021110429-4.png]] | ||
124 | |||
125 | |||
126 | === 1.7.1 Pin Definition === | ||
127 | |||
128 | |||
129 | The device is pre-configured to connect to a door sensor. The other pins are not used. If user wants to know more about other pins, please refer to the user manual of LSN50v2 at: [[https:~~/~~/www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0>>https://www.dropbox.com/sh/djkxs7mr17y94mi/AABVlWbM9uzK9OA3mXyAT10Za?dl=0]] | ||
130 | |||
131 | |||
132 | |||
133 | === 1.7.2 Jumper JP2(Power ON/OFF) === | ||
134 | |||
135 | |||
136 | Power on Device when putting this jumper. | ||
137 | |||
138 | |||
139 | |||
140 | === 1.7.3 BOOT MODE / SW1 === | ||
141 | |||
142 | |||
143 | 1) ISP: upgrade mode, device won't have any signal in this mode. but ready for upgrade firmware. LED won't work. The firmware won't run. | ||
144 | |||
145 | 2) Flash: working mode, the device starts to work for NB-IoT connection and sends out console output for further debugging. | ||
146 | |||
147 | |||
148 | |||
149 | === 1.7.4 Reset Button === | ||
150 | |||
151 | |||
152 | Press to reboot the device. | ||
153 | |||
154 | |||
155 | |||
156 | === 1.7.5 LED === | ||
157 | |||
158 | |||
159 | The LED will blink when : | ||
160 | |||
161 | 1. Boot the device in flash mode | ||
162 | |||
163 | 2. Send an uplink packet | ||
164 | |||
165 | |||
166 | |||
167 | == 1.8 Magnet Distance == | ||
168 | |||
169 | |||
170 | (% style="color:blue" %)**Wood Door:**(%%) 10 ~~ 30mm | ||
171 | |||
172 | (% style="color:blue" %)**Iron Door:**(%%)** **30 ~~ 45mm | ||
173 | |||
174 | |||
175 | |||
176 | = 2. Use CPN01 to communicate with IoT Server = | ||
177 | |||
178 | == 2.1 How it works == | ||
179 | |||
180 | |||
181 | In this user case, the NDS03A is installed on the door edge to detect the open/close event and send the status to the NB-IoT server. The NB-IoT network will forward this value to IoT server via the protocol defined by NDS03A. | ||
182 | |||
183 | The diagram below shows the working flow in the default firmware of NDS03A: | ||
184 | |||
185 | [[image:image-20221021110615-5.png]] | ||
186 | |||
187 | |||
188 | |||
189 | == 2.2 Configure CPN01 == | ||
190 | |||
191 | === 2.2.1 Test Requirement === | ||
192 | |||
193 | |||
194 | To use NDS03A in your city, make sure to meet below requirements: | ||
195 | |||
196 | * Your local operator has already distributed an NB-IoT Network. | ||
197 | * The local NB-IoT network used the band that CPN01 supports. | ||
198 | * Your operator is able to distribute the data received in their NB-IoT network to your IoT server. | ||
199 | |||
200 | Below figure shows our testing structure. Here we have NB-IoT network coverage by China Mobile, the band they use is B8. The NDS03A will use** (% style="color:red" %)CoAP(120.24.4.116:5683)(%%)** or raw (% style="color:red" %)**UDP(120.24.4.116:5601) **(%%)or (% style="color:red" %)**MQTT(120.24.4.116:1883) **(%%)or (% style="color:red" %)**TCP(120.24.4.116:5600)protocol**(%%) to send data to the test server. | ||
201 | |||
202 | [[image:image-20221117142300-1.png]] | ||
203 | |||
204 | | ||
205 | |||
206 | |||
207 | === 2.2.2 Insert NB-IoT SIM card === | ||
208 | |||
209 | |||
210 | Insert the NB-IoT Card get from your provider. | ||
211 | |||
212 | User needs to take out the NB-IoT module and insert the SIM card like below: | ||
213 | |||
214 | [[image:image-20221021110745-6.png]] | ||
215 | |||
216 | |||
217 | |||
218 | === 2.2.3 Connect USB – TTL to CPN01 and configure it === | ||
219 | |||
220 | |||
221 | User need to configure CPN01 via serial port to set the (% style="color:red" %)**Server Address** / **Uplink Topic**(%%) to define where and how-to uplink packets. CPN01 support AT Commands, user can use a USB to TTL adapter to connect to CPN01 and use AT Commands to configure it, as below. | ||
222 | |||
223 | (% style="color:blue" %)**Connection:** | ||
224 | |||
225 | (% style="background-color:yellow" %)** USB TTL GND <~-~-~-~-> GND** | ||
226 | |||
227 | (% style="background-color:yellow" %)** USB TTL TXD <~-~-~-~-> UART_RXD** | ||
228 | |||
229 | (% style="background-color:yellow" %)** USB TTL RXD <~-~-~-~-> UART_TXD** | ||
230 | |||
231 | |||
232 | In the PC, use below serial tool settings: | ||
233 | |||
234 | * Baud: (% style="color:red" %)**9600** | ||
235 | |||
236 | * Data bits:** (% style="color:red" %)8(%%)** | ||
237 | |||
238 | * Stop bits: (% style="color:red" %)**1** | ||
239 | |||
240 | * Parity: (% style="color:red" %)**None** | ||
241 | |||
242 | * Flow Control: (% style="color:red" %)**None** | ||
243 | |||
244 | Make sure the switch is in FLASH position, then power on CPN01 by connecting the (% style="color:orange" %)**Yellow Jumper**(%%). | ||
245 | |||
246 | [[image:image-20221021110817-7.png]] | ||
247 | |||
248 | CPN01 will output system info once powered on as below, we can enter the **password: 12345678** to access AT Command input. | ||
249 | |||
250 | |||
251 | (% 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]] | ||
252 | |||
253 | |||
254 | |||
255 | === 2.2.4 Use CoAP protocol to uplink data === | ||
256 | |||
257 | |||
258 | (% style="color:red" %)**Note: if you don't have a CoAP server, you can refer this link to set up a CoAP server: **(%%)[[**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/]] | ||
259 | |||
260 | |||
261 | (% style="color:blue" %)**Use below commands in CPN01:** | ||
262 | |||
263 | * (% style="color:#037691" %)**AT+PRO=1** (%%) ~/~/ Set to use CoAP protocol to uplink | ||
264 | |||
265 | * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5683 ** (%%) ~/~/ Set CoAP server address and port | ||
266 | |||
267 | * (% style="color:#037691" %)**AT+URI=0,0,11,2,"mqtt" ** (%%) ~/~/ Set CoAP resource path | ||
268 | |||
269 | For parameter description, please refer to AT command set | ||
270 | |||
271 | [[image:image-20221021110948-8.png]] | ||
272 | |||
273 | |||
274 | After configuring the server address and (% style="color:green" %)**reset CPN01**(%%) (via AT+ATZ ), CPN01 will start to uplink sensor values to the CoAP server. | ||
275 | |||
276 | [[image:image-20221021110956-9.png]] | ||
277 | |||
278 | |||
279 | |||
280 | === 2.2.5 Use UDP protocol to uplink data(Default protocol) === | ||
281 | |||
282 | |||
283 | (% style="color:blue" %)**AT Commands:** | ||
284 | |||
285 | * (% style="color:#037691" %)**AT+PRO=2 ** (%%) ~/~/ Set to use UDP protocol to uplink | ||
286 | |||
287 | * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5601 ** (%%) ~/~/ Set UDP server address and port | ||
288 | |||
289 | * (% style="color:#037691" %)**AT+CFM=1 ** (%%) ~/~/ If the server does not respond, this command is unnecessary | ||
290 | |||
291 | [[image:image-20221021111025-10.png]] | ||
292 | |||
293 | |||
294 | [[image:image-20221021111033-11.png||height="241" width="576"]] | ||
295 | |||
296 | | ||
297 | |||
298 | |||
299 | === 2.2.6 Use MQTT protocol to uplink data === | ||
300 | |||
301 | |||
302 | (% style="color:blue" %)**AT Commands:** | ||
303 | |||
304 | * (% style="color:#037691" %)**AT+PRO=3 ** (%%) ~/~/ Set to use MQTT protocol to uplink | ||
305 | |||
306 | * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,1883 ** (%%) ~/~/ Set MQTT server address and port | ||
307 | |||
308 | * (% style="color:#037691" %)**AT+CLIENT=CLIENT ** (%%) ~/~/ Set up the CLIENT of MQTT | ||
309 | |||
310 | * (% style="color:#037691" %)**AT+UNAME=UNAME **(%%)** **~/~/ Set the username of MQTT | ||
311 | |||
312 | * (% style="color:#037691" %)**AT+PWD=PWD **(%%)** **~/~/ Set the password of MQTT | ||
313 | |||
314 | * (% style="color:#037691" %)**AT+PUBTOPIC=NSE01_PUB **(%%)** **~/~/ Set the sending topic of MQTT | ||
315 | |||
316 | * (% style="color:#037691" %)**AT+SUBTOPIC=NSE01_SUB ** (%%) ~/~/ Set the subscription topic of MQTT | ||
317 | |||
318 | [[image:image-20221021111058-12.png]] | ||
319 | |||
320 | |||
321 | [[image:image-20221021111201-16.png||height="472" width="653"]] | ||
322 | |||
323 | | ||
324 | |||
325 | MQTT protocol has a much higher power consumption compare with UDP / CoAP protocol. Please check the power analyze document and adjust the uplink period to a suitable interval. | ||
326 | |||
327 | |||
328 | |||
329 | === 2.2.7 Use TCP protocol to uplink data === | ||
330 | |||
331 | |||
332 | (% style="color:blue" %)**AT Commands:** | ||
333 | |||
334 | * (% style="color:#037691" %)**AT+PRO=4 ** (%%) ~/~/ Set to use TCP protocol to uplink | ||
335 | |||
336 | * (% style="color:#037691" %)**AT+SERVADDR=120.24.4.116,5600 ** (%%) ~/~/ Set TCP server address and port | ||
337 | |||
338 | [[image:image-20221021111125-14.png]] | ||
339 | |||
340 | [[image:image-20221021111131-15.png]] | ||
341 | |||
342 | | ||
343 | |||
344 | |||
345 | === 2.2.8 Change Update Interval === | ||
346 | |||
347 | |||
348 | User can use below command to change the (% style="color:blue" %)**uplink interval**. | ||
349 | |||
350 | * (% style="color:#037691" %)**AT+TDC=7200 ** (%%) ~/~/ Set Update Interval to 7200s (2 hours) | ||
351 | |||
352 | (% style="color:red" %)**NOTE:** | ||
353 | |||
354 | 1. By default, the device will send an uplink message every 1 hour. | ||
355 | |||
356 | |||
357 | |||
358 | == 2.3 Uplink Payload == | ||
359 | |||
360 | |||
361 | The uplink payload includes 123 bytes in total by default. | ||
362 | |||
363 | 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. | ||
364 | |||
365 | |||
366 | (% border="1.5" style="background-color:#ffffcc; color:green; width:510px" %) | ||
367 | |=(% scope="row" style="width: 60px;" %)**Size(bytes)**|(% style="width:40px" %)**8**|(% style="width:20px" %)**2**|(% style="width:20px" %)**2**|(% style="width:80px" %)**1**|(% style="width:40px" %)**1**|(% style="width:80px" %)**1**|(% style="width:80px" %)**1**|(% style="width:40px" %)**1**|(% style="width:60px" %)**3** | ||
368 | |=(% style="width: 96px;" %)**Value**|(% style="width:84px" %)[[Device ID>>||anchor="H2.4.1A0A0DeviceID"]]|(% style="width:40px" %)[[Ver>>||anchor="H2.4.2A0VersionInfo"]]|(% style="width:44px" %)[[BAT>>||anchor="H2.4.3A0BatteryInfo"]]|(% style="width:121px" %)[[Signal Strength>>||anchor="H2.4.4A0SignalStrength"]]|(% style="width:52px" %)MOD|(% style="width:84px" %)[[ Calculate Flag>>||anchor="H2.4.5A0CalculateFlag"]]|(% style="width:116px" %)[[Contact Status>>||anchor="H2.4.7A0ContactStatus"]]|(% style="width:57px" %)[[Alarm>>||anchor="H2.4.6A0Alarm"]]|(% style="width:91px" %)[[Total pulse>>||anchor="H2.4.8A0Totalpulse"]] | ||
369 | |||
370 | (% border="1.5" style="background-color:#ffffcc; color:green; width:490px" %) | ||
371 | |(% style="width:100px" %)**3**|(% style="width:50px" %)**4**|(% style="width:70px" %)**1**|(% style="width:50px" %)**3**|(% style="width:100px" %)**3**|(% style="width:80px" %)4|(% style="width:50px" %)**8 group** | ||
372 | |(% style="width:176px" %)[[The last open duration>>||anchor="H2.4.9A0Thelastopenduration"]]|(% style="width:98px" %)[[Time stamp>>||anchor="H2.4.10A0Timestamp"]]|(% style="width:115px" %)Contact Status|(% style="width:92px" %)Total pulse|(% style="width:169px" %)The last open duration|(% style="width:97px" %)Time stamp|(% style="width:74px" %)... | ||
373 | |||
374 | If we use the MQTT client to subscribe to this MQTT topic, we can see the following information when the CPN01 uplink data. | ||
375 | |||
376 | [[image:image-20221021111201-16.png||height="572" width="792"]] | ||
377 | |||
378 | |||
379 | The payload is ASCII string, representative same HEX: | ||
380 | |||
381 | **0x (% style="color:red" %)__f867787050213317__ (% style="color:blue" %)__0064__ (% style="color:green" %) __0c78__(% style="color:#00b0f0" %) __17__(% style="color:#7030a0" %) __01__(% style="color:#0020b0" %) __00__ (% style="color:#420042" %)__00__ (% style="color:#660066" %)__00__ (% style="color:#aaaa40" %)__000009__(% style="color:#663300" %) __000002__ (% style="color:#d60093" %)__6315537b__ (% style="color:#660066" %)__01 00000b 02 0000026 63510fed__ (%%)__0100000e0200000263510f39__ __010000000000000063510e85__ __010000000000000063510d2e__ __010000000000000063510c7a__ __010000000000000063510bc6__ __010000000000000063510954__ __010000000000000063510882 __** | ||
382 | |||
383 | **where:** | ||
384 | |||
385 | * (% style="color:#037691" %)**Device ID:**(%%) 0x f867787050213317 = f867787050213317 | ||
386 | |||
387 | * (% style="color:#037691" %)**Version:**(%%) 0x0064=100=1.0.0 | ||
388 | |||
389 | * (% style="color:#037691" %)**BAT :**(%%) 0x0c78 = 3192 mV = 3.192V | ||
390 | |||
391 | * (% style="color:#037691" %)**Singal: **(%%)0x17 = 23 | ||
392 | |||
393 | * (% style="color:#037691" %)**Mod:**(%%) 0x01 = 1 | ||
394 | |||
395 | * (% style="color:#037691" %)**Calculate Flag:**(%%) 0x00=0 | ||
396 | |||
397 | * (% style="color:#037691" %)**Contact Status:**(%%) 0x00=0 | ||
398 | |||
399 | * (% style="color:#037691" %)**Alarm: **(%%)0x00 =0 | ||
400 | |||
401 | * (% style="color:#037691" %)**Total pulse: **(%%)0x000009 =9 | ||
402 | |||
403 | * (% style="color:#037691" %)**The last open duration: **(%%)0x000002 =2 | ||
404 | |||
405 | * (% style="color:#037691" %)**Timestamp:**(%%) 0x6315537b =1662342011 (Unix Time) | ||
406 | |||
407 | * (% style="color:#037691" %)**Contact Status, Total pulse,The last open duration ,Time stamp :**(%%) 01 00000b 000026 63510fed | ||
408 | |||
409 | * (% style="color:#037691" %)**8 sets of recorded data: Contact Status, Total pulse, The last open duration ,Time stamp :**(%%) 0100000e00002663510f39,....... | ||
410 | |||
411 | == 2.4 Payload Explanation and Sensor Interface == | ||
412 | |||
413 | |||
414 | === 2.4.1 Device ID === | ||
415 | |||
416 | |||
417 | By default, the Device ID is equal to the last 15 bits of IMEI. | ||
418 | |||
419 | User can use (% style="color:blue" %)**AT+DEUI** (%%)to set Device ID | ||
420 | |||
421 | **Example:** | ||
422 | |||
423 | AT+DEUI=868411056754138 | ||
424 | |||
425 | The Device ID is stored in a non-erase area, Upgrade the firmware or run AT+FDR won't erase the Device ID. | ||
426 | |||
427 | |||
428 | |||
429 | === 2.4.2 Version Info === | ||
430 | |||
431 | |||
432 | Specify the software version: 0x64=100, which means firmware version 1.00. | ||
433 | |||
434 | For example 0x00 64 : This device is CPN01 with firmware version 1.0.0. | ||
435 | |||
436 | |||
437 | |||
438 | === 2.4.3 Battery Info === | ||
439 | |||
440 | |||
441 | Check the battery voltage for CPN01. | ||
442 | |||
443 | Ex1: 0x0B45 = 2885mV | ||
444 | |||
445 | Ex2: 0x0B49 = 2889mV | ||
446 | |||
447 | |||
448 | |||
449 | === 2.4.4 Signal Strength === | ||
450 | |||
451 | |||
452 | NB-IoT Network signal Strength. | ||
453 | |||
454 | **Ex1: 0x1d = 29** | ||
455 | |||
456 | **0** -113dBm or less | ||
457 | |||
458 | **1** -111dBm | ||
459 | |||
460 | **2...30** -109dBm... -53dBm | ||
461 | |||
462 | **31** -51dBm or greater | ||
463 | |||
464 | **99** Not known or not detectable | ||
465 | |||
466 | |||
467 | |||
468 | === 2.4.5 Calculate Flag === | ||
469 | |||
470 | |||
471 | The calculate flag is a user defined field, IoT server can use this filed to handle different meters with different pulse factors. For example, if there are 100 water meters, meter 1~~50 are 1 liter/pulse and meter 51 ~~ 100 has 1.5 liter/pulse. | ||
472 | |||
473 | User can set calculate flag to 1 for meter 1~~50 and 2 for meter 51 ~~ 100, So IoT Server can use this field for calculation. | ||
474 | |||
475 | Default value: 0. | ||
476 | |||
477 | Range (6 bits): (b)000000 ~~ (b) 111111 | ||
478 | |||
479 | |||
480 | |||
481 | === 2.4.6 Alarm === | ||
482 | |||
483 | |||
484 | See [[Alarm Base on Timeout>>||anchor="H2.7A0AlarmBaseonTimeout"]] | ||
485 | |||
486 | |||
487 | |||
488 | === 2.4.7 Contact Status === | ||
489 | |||
490 | |||
491 | 0: Open | ||
492 | |||
493 | 1: Close | ||
494 | |||
495 | |||
496 | |||
497 | === 2.4.8 Total pulse === | ||
498 | |||
499 | |||
500 | Total pulse/counting based on dry [[contact trigger event>>||anchor="H2.12Setcountnumber"]] | ||
501 | |||
502 | Range (3 Bytes) : 0x000000 ~~ 0xFFFFFF . Max: 16777215 | ||
503 | |||
504 | |||
505 | |||
506 | === 2.4.9 The last open duration === | ||
507 | |||
508 | |||
509 | Dry Contact last open duration. | ||
510 | |||
511 | Unit: min. | ||
512 | |||
513 | [[image:image-20221021111346-17.png||height="146" width="770"]] | ||
514 | |||
515 | |||
516 | |||
517 | === 2.4.10 Timestamp === | ||
518 | |||
519 | |||
520 | Timestamp : 0x6315537b =1662342011 | ||
521 | |||
522 | Convert Unix timestamp to time 2022-9-5 9:40:11. | ||
523 | |||
524 | **~ ** | ||
525 | |||
526 | |||
527 | == 2.5 Downlink Payload == | ||
528 | |||
529 | |||
530 | By default, CPN01 prints the downlink payload to console port. | ||
531 | |||
532 | [[image:image-20221021111414-18.png]] | ||
533 | |||
534 | |||
535 | **Examples:** | ||
536 | |||
537 | * (% style="color:#037691" %)**Set TDC** | ||
538 | |||
539 | If the payload=0100003C, it means set the END Node's TDC to 0x00003C=60(S), while type code is 01. | ||
540 | |||
541 | Payload: 01 00 00 1E TDC=30S | ||
542 | |||
543 | Payload: 01 00 00 3C TDC=60S | ||
544 | |||
545 | * (% style="color:#037691" %)**Reset** | ||
546 | |||
547 | If payload = 0x04FF, it will reset the NSE01 | ||
548 | |||
549 | * (% style="color:#037691" %)**INTMOD** | ||
550 | |||
551 | Downlink Payload: 06000003, Set AT+INTMOD=3 | ||
552 | |||
553 | |||
554 | |||
555 | == 2.6 LED Indicator == | ||
556 | |||
557 | |||
558 | The CPN01 has an internal LED which is to show the status of different states. | ||
559 | |||
560 | * When the device starts normally, the LED will light up for 1 second. | ||
561 | * After CPN01 join NB-IoT network. The LED will be ON for 3 seconds. | ||
562 | * For each uplink probe, LED will be on for 500ms. | ||
563 | |||
564 | == 2.7 Alarm Base on Timeout == | ||
565 | |||
566 | |||
567 | CPN01 can monitor the timeout for a status change, this feature can be used to monitor some events such as door opening too long etc. Related Parameters are: | ||
568 | |||
569 | |||
570 | (% style="color:blue" %)**1. Keep Status: Status to be monitor** | ||
571 | |||
572 | Keep Status = 1: Monitor Close to Open event | ||
573 | |||
574 | Keep Status = 0: Monitor Open to Close event | ||
575 | |||
576 | |||
577 | (% style="color:blue" %)**2. Keep Time: Timeout to send an Alarm** | ||
578 | |||
579 | Range 0 ~~ 65535(0xFFFF) seconds. | ||
580 | |||
581 | If keep time = 0, Disable Alarm Base on Timeout feature. | ||
582 | |||
583 | If keep time > 0, device will monitor the keep status event and send an alarm when status doesn’t change after timeout. | ||
584 | |||
585 | |||
586 | (% style="color:blue" %)**AT Command to configure:** | ||
587 | |||
588 | (% style="color:#037691" %)**AT+TTRIG=1,30** (%%) **~-~->** When the **Keep Status** change from connected to disconnect, and device remains in disconnect status for more than 30 seconds. CPN01 will send an uplink packet, the [[Alarm bit>>url:http://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/CPL01%20LoRaWAN%20Outdoor%20PulseContact%20%20Sensor%20Manual/#H2.3.3Real-TimeOpen2FCloseStatus2CUplinkFPORT3D2]] (the second bit of 1^^st^^ byte of payload) on this uplink packet is set to 1. | ||
589 | |||
590 | (% style="color:#037691" %)**AT+TTRIG=0,0 ** (%%) **~-~->** Default Value, disable timeout Alarm. | ||
591 | |||
592 | |||
593 | |||
594 | == 2.8 Set debug mode == | ||
595 | |||
596 | |||
597 | Feature: Enable or Disable debug mode | ||
598 | |||
599 | (% style="color:blue" %)**AT Command: AT+DEBUG** | ||
600 | |||
601 | [[image:image-20221021111629-21.png]] | ||
602 | |||
603 | |||
604 | |||
605 | == 2.9 Clear Flash Record == | ||
606 | |||
607 | |||
608 | Feature: Clear flash storage for data log feature. | ||
609 | |||
610 | (% style="color:blue" %)**AT Command: AT+CLRDTA** | ||
611 | |||
612 | [[image:image-20221021111527-19.png]] | ||
613 | |||
614 | |||
615 | |||
616 | == 2.10 Set trigger mode == | ||
617 | |||
618 | |||
619 | (% style="color:blue" %)**AT Command: AT+TTRMOD** | ||
620 | |||
621 | Feature: Set the trigger interrupt mode. | ||
622 | |||
623 | [[image:image-20221021111552-20.png]] | ||
624 | |||
625 | |||
626 | |||
627 | == 2.11 Set the calculate flag == | ||
628 | |||
629 | |||
630 | Feature: Set the calculate flag | ||
631 | |||
632 | (% style="color:blue" %)**AT Command: AT+CALCFLAG** | ||
633 | |||
634 | [[image:image-20221021111711-22.png]] | ||
635 | |||
636 | |||
637 | |||
638 | == 2.12 Set count number == | ||
639 | |||
640 | |||
641 | Feature: Manually set the count number | ||
642 | |||
643 | (% style="color:blue" %)**AT Command: AT+SETCNT** | ||
644 | |||
645 | [[image:image-20221021111748-24.png]] | ||
646 | |||
647 | |||
648 | |||
649 | == 2.13 Set the number of data to be uploaded and the recording time == | ||
650 | |||
651 | |||
652 | (% style="color:blue" %)**AT Command:** | ||
653 | |||
654 | (% style="color:#037691" %)**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) | ||
655 | |||
656 | (% style="color:#037691" %)**AT+NOUD=8 ** (%%)~/~/ The device uploads 8 sets of recorded data by default. Up to 32 sets of record data can be uploaded. | ||
657 | |||
658 | |||
659 | |||
660 | == 2.14 Read or Clear cached data == | ||
661 | |||
662 | |||
663 | (% style="color:blue" %)**AT Command:** | ||
664 | |||
665 | (% style="color:#037691" %)**AT+CDP** (%%) ~/~/ Read cached data | ||
666 | |||
667 | (% style="color:#037691" %)**AT+CDP=0** (%%) ~/~/ Clear cached data | ||
668 | |||
669 | [[image:image-20221021111810-25.png||height="364" width="797"]] | ||
670 | |||
671 | |||
672 | |||
673 | == 2.15 Firmware Change Log == | ||
674 | |||
675 | |||
676 | Download URL & Firmware Change log: [[https:~~/~~/www.dropbox.com/sh/8p5nuvo6gh7je4n/AAAMP7MMusgbXMz9Ik7Ls03Ga?dl=0>>https://www.dropbox.com/sh/8p5nuvo6gh7je4n/AAAMP7MMusgbXMz9Ik7Ls03Ga?dl=0]] | ||
677 | |||
678 | Upgrade Instruction: [[Upgrade Firmware>>||anchor="H5.1200BHowtoUpgradeFirmware"]] | ||
679 | |||
680 | |||
681 | |||
682 | == 2.16 Battery Analysis == | ||
683 | |||
684 | |||
685 | === 2.16.1 Battery Type === | ||
686 | |||
687 | |||
688 | The CPN01 battery is a combination of an 8500mAh Li/SOCI2 Battery and a Super Capacitor. The battery is non-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. | ||
689 | |||
690 | The battery is designed to last for several years depends on the actual use environment and update interval. | ||
691 | |||
692 | The battery-related documents as below: | ||
693 | |||
694 | * [[Battery Dimension>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]] | ||
695 | |||
696 | * [[Lithium-Thionyl Chloride Battery datasheet>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]] | ||
697 | |||
698 | * [[Lithium-ion Battery-Capacitor datasheet>>url:http://www.dragino.com/downloads/index.php?dir=datasheet/Battery/ER26500/]] | ||
699 | |||
700 | [[image:image-20221021111911-26.png]] | ||
701 | |||
702 | |||
703 | |||
704 | === 2.16.2 Power consumption Analyze === | ||
705 | |||
706 | |||
707 | 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. | ||
708 | |||
709 | Instruction to use as below: | ||
710 | |||
711 | (% 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/]] | ||
712 | |||
713 | (% style="color:blue" %)**Step 2: **(%%) Open it and choose | ||
714 | |||
715 | * Product Model | ||
716 | |||
717 | * Uplink Interval | ||
718 | |||
719 | * Working Mode | ||
720 | |||
721 | And the Life expectation in difference case will be shown on the right. | ||
722 | |||
723 | [[image:1666596205057-567.png]] | ||
724 | |||
725 | |||
726 | |||
727 | === 2.16.3 Battery Note === | ||
728 | |||
729 | |||
730 | 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. | ||
731 | |||
732 | |||
733 | |||
734 | === 2.16.4 Replace the battery === | ||
735 | |||
736 | |||
737 | The default battery pack of CPN01 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). | ||
738 | |||
739 | |||
740 | |||
741 | = 3. Access NB-IoT Module = | ||
742 | |||
743 | |||
744 | Users can directly access the AT command set of the NB-IoT module. | ||
745 | |||
746 | 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/]] | ||
747 | |||
748 | [[image:image-20221021112006-28.png]] | ||
749 | |||
750 | |||
751 | |||
752 | = 4. Using the AT Commands = | ||
753 | |||
754 | |||
755 | == 4.1 Access AT Commands == | ||
756 | |||
757 | |||
758 | 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]] | ||
759 | |||
760 | AT+<CMD>? : Help on <CMD> | ||
761 | |||
762 | AT+<CMD> : Run <CMD> | ||
763 | |||
764 | AT+<CMD>=<value> : Set the value | ||
765 | |||
766 | AT+<CMD>=? : Get the value | ||
767 | |||
768 | |||
769 | (% style="color:blue" %)**General Commands** | ||
770 | |||
771 | AT : Attention | ||
772 | |||
773 | AT? : Short Help | ||
774 | |||
775 | ATZ : MCU Reset | ||
776 | |||
777 | AT+TDC : Application Data Transmission Interval | ||
778 | |||
779 | AT+CFG : Print all configurations | ||
780 | |||
781 | AT+CFGMOD : Working mode selection | ||
782 | |||
783 | AT+INTMOD : Set the trigger interrupt mode | ||
784 | |||
785 | AT+5VT : Set extend the time of 5V power | ||
786 | |||
787 | AT+PRO : Choose agreement | ||
788 | |||
789 | AT+RXDL : Extend the sending and receiving time | ||
790 | |||
791 | AT+SERVADDR : Server Address | ||
792 | |||
793 | AT+TR : Get or Set record time | ||
794 | |||
795 | AT+NOUD : Get or Set the number of data to be uploaded | ||
796 | |||
797 | AT+CDP : Read or Clear cached data | ||
798 | |||
799 | AT+ DEBUG : Enable or Disable debug mode | ||
800 | |||
801 | AT+ TTRIG : Get or Set Alarm Base on Timeout | ||
802 | |||
803 | AT+ TTRMOD : Get or Set the trigger interrupt mode(0:falling,1:rising) | ||
804 | |||
805 | AT+ CALCFLAG : Get or Set the calculate flag | ||
806 | |||
807 | AT+ CLRC : Clear current door open count | ||
808 | |||
809 | |||
810 | (% style="color:blue" %)**COAP Management** | ||
811 | |||
812 | AT+URI : Resource parameters | ||
813 | |||
814 | |||
815 | (% style="color:blue" %)**UDP Management** | ||
816 | |||
817 | AT+CFM : Upload confirmation mode (only valid for UDP) | ||
818 | |||
819 | |||
820 | (% style="color:blue" %)**MQTT Management** | ||
821 | |||
822 | AT+CLIENT : Get or Set MQTT client | ||
823 | |||
824 | AT+UNAME : Get or Set MQTT Username | ||
825 | |||
826 | AT+PWD : Get or Set MQTT password | ||
827 | |||
828 | AT+PUBTOPIC : Get or Set MQTT publish topic | ||
829 | |||
830 | AT+SUBTOPIC : Get or Set MQTT subscription topic | ||
831 | |||
832 | |||
833 | (% style="color:blue" %)**Information** | ||
834 | |||
835 | AT+FDR : Factory Data Reset | ||
836 | |||
837 | AT+PWORD : Serial Access Password | ||
838 | |||
839 | |||
840 | |||
841 | = 5. FAQ = | ||
842 | |||
843 | |||
844 | == 5.1 How to Upgrade Firmware == | ||
845 | |||
846 | |||
847 | User can upgrade the firmware for 1) bug fix, 2) new feature release. | ||
848 | |||
849 | 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]] | ||
850 | |||
851 | (% style="color:red" %)**Notice: **(% style="color:blue" %)**CPN01** (%%)**and (% style="color:blue" %)CPL01(%%)**(% style="color:blue" %) (%%)**share the same mother board. They use the same connection and method to update.** | ||
852 | |||
853 | |||
854 | |||
855 | = 6. Trouble Shooting = | ||
856 | |||
857 | |||
858 | == 6.1 Connection problem when uploading firmware == | ||
859 | |||
860 | |||
861 | (% style="color:blue" %)**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]] | ||
862 | |||
863 | |||
864 | |||
865 | == 6.2 AT Command input doesn't work == | ||
866 | |||
867 | |||
868 | 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. | ||
869 | |||
870 | |||
871 | |||
872 | = 7. Order Info = | ||
873 | |||
874 | |||
875 | Part Number**:** CPN01 | ||
876 | |||
877 | |||
878 | |||
879 | = 8. Packing Info = | ||
880 | |||
881 | |||
882 | (% style="color:blue" %)**Package Includes**: | ||
883 | |||
884 | * CPN01 Open/Close Sensor x 1 | ||
885 | * External antenna x 1 | ||
886 | |||
887 | (% style="color:blue" %)**Dimension and weight**: | ||
888 | |||
889 | * Size: 195 x 125 x 55 mm | ||
890 | * Weight: 420g | ||
891 | |||
892 | = 9. Support = | ||
893 | |||
894 | |||
895 | * 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. | ||
896 | |||
897 | * 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]] | ||
898 | |||
899 | |