Version 5.1 by Edwin Chen on 2023/04/09 00:22

Show last authors
1 (% style="text-align:center" %)
2 [[image:image-20221206143242-2.png||height="602" width="551"]]
3
4
5
6
7
8
9
10
11
12 **Table of Contents:**
13
14 {{toc/}}
15
16
17
18
19
20
21
22
23
24 = 1. Introduction =
25
26 == 1.1 What is LHT65N-PIR Temperature,Humidity & PIR Sensor ==
27
28 The Dragino (% style="color:blue" %)**LHT65N-PIR Temperature, Humidity & PIR sensor**(%%) is a Long Range LoRaWAN Sensor.It includes a (% style="color:blue" %)**built-in Temperature & Humidity sensor**(%%) and has an (% style="color:blue" %)**external PIR Probe**(%%)**.** LHT65N-PIR can detect environment Temperature & Humdity, it also detects (% style="color:blue" %)**People Activity**(%%) via PIR probe and them send these info to LoRaWAN IoT Server.
29
30 The LHT65N-PIR allows users to send data and reach extremely long ranges. It provides ultra-long range spread spectrum communication and high interference immunity whilst minimizing current consumption. It targets professional wireless sensor network applications such as irrigation systems, smart metering, smart cities, building automation, and so on.
31
32 LHT65N-PIR has a (% style="color:blue" %)**built-in 2400mAh non-chargeable battery**(%%) which can be used for more than 5 years*.
33
34 LHT65N-PIR supports (% style="color:blue" %)**wireless configure & OTA update**(%%) which make user easy to use.
35
36 LHT65N-PIR is fully compatible with (% style="color:blue" %)**LoRaWAN v1.0.3 Class A protocol**(%%), it can work with a standard LoRaWAN gateway.
37
38
39 **~*~***The actual battery life depends on how often to send data, please see battery analyzer chapter.
40
41
42 == 1.2 Features ==
43
44 * LoRaWAN v1.0.3 Class A protocol
45 * Frequency Bands: CN470/EU433/KR920/US915/EU868/AS923/AU915
46 * AT Commands to change parameters
47 * Remote configure parameters via LoRaWAN Downlink
48 * Support wireless OTA update firmware
49 * Firmware upgradeable via program port
50 * Built-in 2400mAh battery for up to 5 years of use.
51 * Built-in Temperature & Humidity sensor
52 * External PIR Sensor
53 * Tri-color LED to indicate working status(% style="display:none" %)
54
55 == 1.3 Specification ==
56
57
58 (% style="color:#037691" %)**Built-in Temperature Sensor:**
59
60 * Resolution: 0.01 °C
61 * Accuracy Tolerance : Typ ±0.3 °C
62 * Long Term Drift: < 0.02 °C/yr
63 * Operating Range: -40 ~~ 85 °C
64
65 (% style="color:#037691" %)**Built-in Humidity Sensor:**
66
67 * Resolution: 0.04 %RH
68 * Accuracy Tolerance : Typ ±3 %RH
69 * Long Term Drift: < 0.02 °C/yr
70 * Operating Range: 0 ~~ 96 %RH
71
72 (% class="mark" style="color:#037691" %)**External PIR Sensor:**
73
74 * (% class="mark" %)Base on BH1750 Illumination Sensor
75 * (% class="mark" %)Cable Length : 50cm
76 * (% class="mark" %)Resolution: 1 lx
77 * (% class="mark" %)Range: 0-65535 lx
78 * (% class="mark" %)Operating Range: -40 °C ~~ 85 °C
79
80 = 2. Connect LHT65N-PIR to IoT Server =
81
82 == 2.1 How does LHT65N-PIR work? ==
83
84 LHT65N-PIR is configured as LoRaWAN OTAA Class A sensor by default. Each LHT65N-PIR is shipped with a worldwide unique set of OTAA keys. To use LHT65N-PIR in a LoRaWAN network, first, we need to put the OTAA keys in LoRaWAN Network Server and then activate LHT65N-PIR.
85
86 If LHT65N-PIR is within the coverage of this LoRaWAN network. LHT65N-PIR can join the LoRaWAN network automatically. After successfully joining, LHT65N-PIR will start to measure environment temperature, humidity & people activity, and start to transmit sensor data to the LoRaWAN server. The default period for each uplink is 20 minutes.
87
88
89 == 2.2 How to Activate LHT65N-PIR? ==
90
91 The LHT65N-PIR has two working modes:
92
93 * (% style="color:blue" %)**Deep Sleep Mode**(%%): LHT65N-PIR doesn't have any LoRaWAN activation. This mode is used for storage and shipping to save battery life.
94
95 * (% style="color:blue" %)**Working Mode**(%%):  In this mode, LHT65N-PIR works as LoRaWAN Sensor mode to Join LoRaWAN network and send out the sensor data to the server. Between each sampling/tx/rx periodically, LHT65N-PIR will be in STOP mode (IDLE mode), in STOP mode, the PIR sensor is still working to detect people activity in low power consumption.
96
97 The LHT65N-PIR is set in deep sleep mode by default; The ACT button on the front is to switch to different modes:
98
99
100 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N-E5%20LoRaWAN%20Temperature_Humidity%20%26%20Illuminance%20Sensor%20User%20Manual/WebHome/image-20220515123819-1.png?width=317&height=379&rev=1.1||alt="image-20220515123819-1.png" height="379" width="317"]]
101
102 [[image:http://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N-E5%20LoRaWAN%20Temperature_Humidity%20%26%20Illuminance%20Sensor%20User%20Manual/WebHome/image-20220525110604-2.png?rev=1.1||alt="image-20220525110604-2.png"]]
103
104
105 == 2.3 Example to join LoRaWAN network ==
106
107
108 (% class="wikigeneratedid" %)
109 This section shows an example of how to join the TTN V3 LoRaWAN IoT server. Use with other LoRaWAN IoT servers is of a similar procedure.
110
111
112 (% class="wikigeneratedid" %)
113 [[image:image-20221224101636-1.png||height="435" width="715"]]
114
115
116 Assume the LPS8v2 is already set to connect to [[TTN V3 network>>url:https://eu1.cloud.thethings.network||_mstvisible="2"]], So it provides network coverage for LHT65N-PIR. Next we need to add the LHT65N-PIR device in TTN V3:
117
118
119 === 2.3.1 Step 1: Create Device n TTN ===
120
121
122 Create a device in TTN V3 with the OTAA keys from LHT65N-PIR.
123
124 Each LHT65N-PIR is shipped with a sticker with its device EUI, APP Key and APP EUI as below:
125
126 [[image:image-20220617150003-1.jpeg||_mstalt="5426434"]]
127
128 User can enter these keys in the LoRaWAN Server portal. Below is TTN V3 screenshot:
129
130 Add APP EUI in the application.
131
132
133 [[image:image-20220522232916-3.png||_mstalt="430495"]]
134
135
136 [[image:image-20220522232932-4.png||_mstalt="430157"]]
137
138
139 [[image:image-20220522232954-5.png||_mstalt="431847"]]
140
141
142
143 (% style="color:red" %)**Note: LHT65N-PIR use same payload decoder as LHT65.**
144
145
146 Input APP EUI,  APP KEY and DEV EUI:
147
148
149 [[image:image-20220522233118-7.png||_mstalt="430430"]]
150
151
152 === 2.3.2 Step 2: Activate LHT65N-PIR by pressing the ACT button for more than 5 seconds. ===
153
154 Use ACT button to activate LHT65N-PIR and it will auto-join to the TTN V3 network. After join success, it will start to upload sensor data to TTN V3 and user can see in the panel.
155 [[image:image-20220522233300-8.png||_mstalt="428389" height="219" width="722"]]
156
157
158 == 2.4 Uplink Payload   ( Fport~=2) ==
159
160 The uplink payload includes totally 11 bytes. Uplink packets use FPORT=2 and (% style="color:#4f81bd" %)**every 20 minutes**(%%) send one uplink by default.
161
162 After each uplink, the (% style="color:blue" %)**BLUE LED**(%%) will blink once.
163
164 (% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:390px" %)
165 |=(% style="width: 60px;" %)(((
166 **Size(bytes)**
167 )))|=(% style="width: 30px;" %)(((
168 **2**
169 )))|=(% style="width: 100px;" %)(((
170 **2**
171 )))|=(% style="width: 100px;" %)(((
172 **2**
173 )))|=(% style="width: 50px;" %)(((
174 **1**
175 )))|=(% style="width: 50px;" %)(((
176 **4**
177 )))
178 |(% style="width:97px" %)(((
179 **Value**
180 )))|(% style="width:39px" %)(((
181 [[BAT>>||anchor="H2.4.2BAT-BatteryInfo"]]
182 )))|(% style="width:100px" %)(((
183 (((
184 [[Built-In Temperature>>||anchor="H2.4.3Built-inTemperature"]]
185 )))
186 )))|(% style="width:77px" %)(((
187 (((
188 [[Built-in Humidity>>||anchor="H2.4.4Built-inHumidity"]]
189 )))
190 )))|(% style="width:47px" %)(((
191 [[Ext>>||anchor="H2.4.5Ext23"]] #
192 )))|(% style="width:51px" %)(((
193 [[Ext value>>||anchor="H2.4.6Extvalue"]]
194 )))
195
196 * The First 6 bytes: has fix meanings for every LHT65N-PIR.
197 * The 7th byte (EXT #): defines the external sensor model. It can be (% class="mark" %)0x05 or 0x09(%%) for LHT65N-PIR
198 * The 7^^th^^ byte: Alarm Bit (if this uplink is from periodically or movement)
199 * The 8^^th^^ ~~ 11st  byte: Movement Detect Count. Each
200
201 === 2.4.1 Decoder in TTN V3 ===
202
203
204 When the uplink payload arrives TTNv3, it shows HEX format and not friendly to read. We can add LHT65N-E5 decoder in TTNv3 for friendly reading.
205
206 Below is the position to put the decoder and LHT65N-E5 decoder can be download from here: [[https:~~/~~/github.com/dragino/dragino-end-node-decoder>>https://github.com/dragino/dragino-end-node-decoder]]
207
208
209 [[image:image-20220522234118-10.png||_mstalt="451464" height="353" width="729"]]
210
211
212 === 2.4.2 BAT-Battery Info ===
213
214
215 These two bytes of BAT include the battery state and the actually voltage
216
217 [[image:image-20220523152839-18.png||_mstalt="457613"]]
218
219
220 [[image:image-20220522235639-1.png||_mstalt="431392" height="139" width="727"]]
221
222
223 Check the battery voltage for LHT65N-E5.
224
225 * BAT status=(0Xcba4>>14)&0xFF=11(B),very good
226 * Battery Voltage =0xCBF6&0x3FFF=0x0BA4=2980mV
227
228 === 2.4.3 Built-in Temperature ===
229
230
231 [[image:image-20220522235639-2.png||_mstalt="431756" height="138" width="722"]]
232
233 * Temperature:  0x0ABB/100=27.47℃
234
235 [[image:image-20220522235639-3.png||_mstalt="432120"]]
236
237 * Temperature:  (0xF5C6-65536)/100=-26.18℃
238
239 === 2.4.4 Built-in Humidity ===
240
241
242 [[image:image-20220522235639-4.png||_mstalt="432484" height="138" width="722"]]
243
244 * Humidity:    0x025C/10=60.4%
245
246 === 2.4.5 Ext value ===
247
248 ==== 2.4.5.1 Ext~=0x05, Illuminance Sensor ====
249
250
251 [[image:image-20221224161634-2.png||height="138" width="851"]]
252
253
254 * Illumination=0x005E=94 lux
255
256 The last 2 bytes of data are meaningless
257
258 [[image:image-20221224161725-3.png]]
259
260 * When the sensor is not connected or not connected properly, will show "NULL"
261
262 The last 2 bytes of data are meaningless
263
264
265
266 ==== 2.4.5.2 Ext~=0x85, E5 sensor with Unix Timestamp ====
267
268
269 (((
270 Timestamp mode is designed for LHT65N-E5 with E3 probe, it will send the uplink payload with Unix timestamp. With the limitation of 11 bytes (max distance of AU915/US915/AS923 band), the time stamp mode will be lack of BAT voltage field, instead, it shows the battery status. The payload is as below:
271 )))
272
273 (((
274
275 )))
276
277 (% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:535px" %)
278 |=(% style="width: 88px;" %)(((
279 **Size(bytes)**
280 )))|=(% style="width: 93px;" %)(((
281 **2**
282 )))|=(% style="width: 94px;" %)(((
283 **2**
284 )))|=(% style="width: 117px;" %)(((
285 **2**
286 )))|=(% style="width: 54px;" %)(((
287 **1**
288 )))|=(% style="width: 79px;" %)(((
289 **4**
290 )))
291 |(% style="width:88px" %)(((
292 **Value**
293 )))|(% style="width:93px" %)(((
294 [[External temperature>>||anchor="H4.2SetExternalSensorMode"]]
295 )))|(% style="width:94px" %)(((
296 [[Built-In Temperature>>||anchor="H2.4.3Built-inTemperature"]]
297 )))|(% style="width:117px" %)(((
298 BAT Status &
299 Illumination
300 )))|(% style="width:54px" %)(((
301 Status & Ext
302 )))|(% style="width:79px" %)(((
303 [[Unix Time Stamp>>||anchor="H2.6.2UnixTimeStamp"]]
304 )))
305
306 * **Battery status & Built-in Humidity**
307
308 (% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:461px" %)
309 |=(% style="width: 67px;" %)Bit(bit)|=(% style="width: 256px;" %)[15:14]|=(% style="width: 132px;" %)[11:0]
310 |(% style="width:67px" %)Value|(% style="width:256px" %)(((
311 BAT Status
312 00(b): Ultra Low ( BAT <= 2.50v)
313 01(b): Low  (2.50v <=BAT <= 2.55v)
314 10(b): OK   (2.55v <= BAT <=2.65v)
315 11(b): Good   (BAT >= 2.65v)
316 )))|(% style="width:132px" %)(((
317 Illumination
318 )))
319
320 * **Status & Ext Byte**
321
322 (% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:500px" %)
323 |=(% scope="row" style="width: 60px;" %)**Bits**|(% style="width:90px" %)**7**|(% style="width:100px" %)**6**|(% style="width:90px" %)**5**|(% style="width:100px" %)**4**|(% style="width:60px" %)**[3:0]**
324 |=(% style="width: 96px;" %)**Status&Ext**|(% style="width:124px" %)None-ACK Flag|(% style="width:146px" %)Poll Message FLAG|(% style="width:109px" %)Sync time OK|(% style="width:143px" %)Unix Time Request|(% style="width:106px" %)Ext: 0b(1001)
325
326 * (% style="color:blue" %)**Poll Message Flag**:(%%)  1: This message is a poll message reply, 0: means this is a normal uplink.
327 * (% style="color:blue" %)**Sync time OK**: (%%) 1: Set time ok,0: N/A. After time SYNC request is sent, LHT65N-E5 will set this bit to 0 until got the time stamp from the application server.
328 * (% style="color:blue" %)**Unix Time Request**:(%%)  1: Request server downlink Unix time, 0 : N/A. In this mode, LHT65N-E5 will set this bit to 1 every 10 days to request a time SYNC. (AT+SYNCMOD to set this)
329
330 == 2.5 Show data on Datacake ==
331
332
333 (((
334 Datacake IoT platform provides a human-friendly interface to show the sensor data, once we have sensor data in TTN V3, we can use Datacake to connect to TTN V3 and see the data in Datacake. Below are the steps:
335 )))
336
337 (((
338
339 )))
340
341 (((
342 (% style="color:blue" %)**Step 1**(%%): Be sure that your device is programmed and properly connected to the LoRaWAN network.
343 )))
344
345 (((
346 (% style="color:blue" %)**Step 2**(%%): Configure your Application to forward data to Datacake you will need to add integration. Go to TTN V3 Console ~-~-> Applications ~-~-> Integrations ~-~-> Add Integrations.
347 )))
348
349
350
351 (((
352 Add Datacake:
353 )))
354
355
356 [[image:image-20220523000825-7.png||_mstalt="429884" height="262" width="583"]]
357
358
359
360 Select default key as Access Key:
361
362
363 [[image:image-20220523000825-8.png||_mstalt="430248" height="453" width="406"]]
364
365
366 In Datacake console ([[https:~~/~~/datacake.co/>>url:https://datacake.co/]]) , add LHT65 device.
367
368
369 [[image:image-20221224161935-5.png||height="523" width="409"]]
370
371
372 [[image:image-20221224161957-6.png||height="306" width="852"]]
373
374
375 == 2.6 Datalog Feature ==
376
377
378 (((
379 Datalog Feature is to ensure IoT Server can get all sampling data from Sensor even if the LoRaWAN network is down. For each sampling, LHT65N-E5 will store the reading for future retrieving purposes. There are two ways for IoT servers to get datalog from LHT65N-E5.
380 )))
381
382
383 === 2.6.1 Ways to get datalog via LoRaWAN ===
384
385
386 There are two methods:
387
388 (% style="color:blue" %)**Method 1:** (%%)IoT Server sends a downlink LoRaWAN command to [[poll the value>>||anchor="H2.6.4Pollsensorvalue"]] for specified time range.
389
390
391 (% style="color:blue" %)**Method 2: **(%%)Set [[PNACKMD=1>>||anchor="H4.13AutoSendNone-ACKmessages"]], LHT65N-E5 will wait for ACK for every uplink, when there is no LoRaWAN network, LHT65N-E5 will mark these records with non-ack messages and store the sensor data, and it will send all messages (10s interval) after the network recovery.
392
393
394 (% style="color:red" %)**Note for method 2:**
395
396 * a) LHT65N-E5 will do an ACK check for data records sending to make sure every data arrive server.
397 * b) LHT65N-E5 will send data in **CONFIRMED Mode** when PNACKMD=1, but LHT65N-E5 won't re-transmit the packet if it doesn't get ACK, it will just mark it as a NONE-ACK message. In a future uplink if LHT65N-E5 gets a ACK, LHT65N-E5 will consider there is a network connection and resend all NONE-ACK Message.
398
399 Below is the typical case for the auto-update datalog feature (Set PNACKMD=1)
400
401
402 [[image:image-20220703111700-2.png||_mstalt="426244" height="381" width="1119"]]
403
404
405 === 2.6.2 Unix TimeStamp ===
406
407
408 LHT65N-E5 uses Unix TimeStamp format based on
409
410
411 [[image:image-20220523001219-11.png||_mstalt="450450" height="97" width="627"]]
412
413
414
415 User can get this time from link:  [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/]] :
416
417 Below is the converter example
418
419 [[image:image-20220523001219-12.png||_mstalt="450827" height="298" width="720"]]
420
421
422 So, we can use AT+TIMESTAMP=1611889405 or downlink 3060137afd00 to set the current time 2021 – Jan ~-~- 29 Friday 03:03:25
423
424
425 === 2.6.3 Set Device Time ===
426
427
428 (((
429 (% style="color:blue" %)**There are two ways to set device's time:**
430 )))
431
432 (((
433 **1.  Through LoRaWAN MAC Command (Default settings)**
434 )))
435
436 (((
437 User need to set SYNCMOD=1 to enable sync time via MAC command.
438 )))
439
440 (((
441 Once LHT65N-E5 Joined LoRaWAN network, it will send the MAC command (DeviceTimeReq) and the server will reply with (DeviceTimeAns) to send the current time to LHT65N-E5. If LHT65N-E5 fails to get the time from the server, LHT65N-E5 will use the internal time and wait for next time request (AT+SYNCTDC to set the time request period, default is 10 days).
442 )))
443
444 (((
445 (% style="color:red" %)**Note: LoRaWAN Server need to support LoRaWAN v1.0.3(MAC v1.0.3) or higher to support this MAC command feature, Chirpstack,TTN V3 v3 and loriot support but TTN V3 v2 doesn't support. If server doesn't support this command, it will through away uplink packet with this command, so user will lose the packet with time request for TTN V3 v2 if SYNCMOD=1.**
446 )))
447
448
449 (((
450 **2. Manually Set Time**
451 )))
452
453 (((
454 User needs to set SYNCMOD=0 to manual time, otherwise, the user set time will be overwritten by the time set by the server.
455 )))
456
457
458 === 2.6.4 Poll sensor value ===
459
460
461 User can poll sensor value based on timestamps from the server. Below is the downlink command.
462
463 [[image:image-20220523152302-15.png||_mstalt="451581"]]
464
465
466 Timestamp start and Timestamp end use Unix TimeStamp format as mentioned above. Devices will reply with all data log during this time period, use the uplink interval.
467
468 For example, downlink command (% _mstmutation="1" %)**31 5FC5F350 5FC6 0160 05**(%%)
469
470 Is to check 2020/12/1 07:40:00 to 2020/12/1 08:40:00’s data
471
472 Uplink Internal =5s,means LHT65N-E5 will send one packet every 5s. range 5~~255s.
473
474
475 === 2.6.5 Datalog Uplink payload ===
476
477
478 The Datalog poll reply uplink will use below payload format.
479
480 **Retrieval data payload:**
481
482 (% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:480px" %)
483 |=(% style="width: 60px;" %)(((
484 **Size(bytes)**
485 )))|=(% style="width: 90px;" %)**2**|=(% style="width: 90px;" %)**2**|=(% style="width: 70px;" %)**2**|=(% style="width: 100px;" %)**1**|=(% style="width: 70px;" %)**4**
486 |(% style="width:97px" %)**Value**|(% style="width:123px" %)[[External sensor data>>||anchor="H2.4.6Extvalue"]]|(% style="width:108px" %)[[Built In Temperature>>||anchor="H2.4.3Built-inTemperature"]]|(% style="width:133px" %)[[Built-in Humidity>>||anchor="H2.4.4Built-inHumidity"]]|(% style="width:159px" %)Poll message flag & Ext|(% style="width:80px" %)[[Unix Time Stamp>>||anchor="H2.6.2UnixTimeStamp"]]
487
488 **Poll message flag & Ext:**
489
490 [[image:image-20221006192726-1.png||_mstalt="430508" height="112" width="754"]]
491
492 (% style="color:blue" %)**No ACK Message**(%%):  1: This message means this payload is fromn Uplink Message which doesn't get ACK from the server before ( for [[PNACKMD=1>>||anchor="H4.13AutoSendNone-ACKmessages"]] feature)
493
494 (% style="color:blue" %)**Poll Message Flag**(%%): 1: This message is a poll message reply.
495
496 * Poll Message Flag is set to 1.
497
498 * Each data entry is 11 bytes, to save airtime and battery, devices will send max bytes according to the current DR and Frequency bands.
499
500 For example, in US915 band, the max payload for different DR is:
501
502 (% style="color:blue" %)**a) DR0:** (%%)max is 11 bytes so one entry of data
503
504 (% style="color:blue" %)**b) DR1:**(%%) max is 53 bytes so devices will upload 4 entries of data (total 44 bytes)
505
506 (% style="color:blue" %)**c) DR2:**(%%) total payload includes 11 entries of data
507
508 (% style="color:blue" %)**d) DR3: **(%%)total payload includes 22 entries of data.
509
510 If devise doesn't have any data in the polling time. Device will uplink 11 bytes of 0   
511
512
513 **Example:**
514
515 If LHT65N-E5 has below data inside Flash:
516
517 [[image:image-20220523144455-1.png||_mstalt="430040" height="335" width="735"]]
518
519
520 If user sends below downlink command: (% style="background-color:yellow" %)3160065F9760066DA705
521
522 Where : Start time: 60065F97 = time 21/1/19 04:27:03
523
524 Stop time: 60066DA7= time 21/1/19 05:27:03
525
526
527 **LHT65N-E5 will uplink this payload.**
528
529 [[image:image-20220523001219-13.png||_mstalt="451204" height="421" style="text-align:left" width="727"]]
530
531
532 __**7FFF089801464160065F97**__ **__7FFF__ __088E__ __014B__ __41__ __60066009__** 7FFF0885014E41600660667FFF0875015141600662BE7FFF086B015541600665167FFF08660155416006676E7FFF085F015A41600669C67FFF0857015D4160066C1E
533
534 Where the first 11 bytes is for the first entry:
535
536 7FFF089801464160065F97
537
538 Ext sensor data=0x7FFF/100=327.67
539
540 Temp=0x088E/100=22.00
541
542 Hum=0x014B/10=32.6
543
544 poll message flag & Ext=0x41,means reply data,Ext=1
545
546 Unix time is 0x60066009=1611030423s=21/1/19 04:27:03
547
548
549 == 2.7 Alarm Mode ==
550
551 (((
552
553
554 when the device is in alarm mode, it checks the built-in sensor temperature for a short time. if the temperature exceeds the preconfigured range, it sends an uplink immediately.
555 )))
556
557 (((
558 (% style="color:red" %)**Note: alarm mode adds a little power consumption, and we recommend extending the normal read time when this feature is enabled.**
559
560
561 )))
562
563 === 2.7.1 ALARM MODE ===
564
565
566 (% class="box infomessage" %)
567 (((
568 (((
569 **AT+WMOD=1**:  Enable/disable alarm mode. (0: Disabled, 1: Enabled Temperature Alarm for onboard temperature sensor)
570 )))
571
572 (((
573 **AT+CITEMP=1**:  The interval between checking the alarm temperature. (In minutes)
574 )))
575
576 (((
577 **AT+ARTEMP**:  Gets or sets the alarm range of the internal temperature sensor
578 )))
579
580 (((
581 (% _mstmutation="1" %)**AT+ARTEMP=? **(%%):  Gets the alarm range of the internal temperature sensor(% style="display:none" %)
582 )))
583
584 (((
585 **AT+ARTEMP=45,105**:  Set the internal temperature sensor alarm range from 45 to 105.
586 )))
587 )))
588
589 (% style="color:#4f81bd" %)**Downlink Command: AAXXXXXXXXXXXXXX**
590
591 Total bytes: 8 bytes
592
593 **Example:**AA0100010001003C
594
595 WMOD=01
596
597 CITEMP=0001
598
599 TEMPlow=0001
600
601 TEMPhigh=003C
602
603
604 == 2.8 LED Indicator ==
605
606
607 The LHT65 has a triple color LED which for easy showing different stage .
608
609 While user press ACT button, the LED will work as per LED status with ACT button.
610
611 In a normal working state:
612
613 * For each uplink, the BLUE LED or RED LED will blink once.
614 BLUE LED when external sensor is connected.
615 * RED LED when external sensor is not connected
616 * For each success downlink, the PURPLE LED will blink once
617
618 == 2.9 installation ==
619
620
621 [[image:image-20220516231650-1.png||_mstalt="428597" height="436" width="428"]]
622
623
624 = 3. Sensors and Accessories =
625
626 == 3.1 E2 Extension Cable ==
627
628
629 [[image:image-20220619092222-1.png||_mstalt="429533" height="182" width="188"]][[image:image-20220619092313-2.png||_mstalt="430222" height="182" width="173"]]
630
631
632 **1m long breakout cable for LHT65N-E5. Features:**
633
634 * (((
635 Use for AT Command
636 )))
637 * (((
638 Update firmware for LHT65N-E5
639 )))
640 * (((
641 Exposed All pins from the LHT65N Type-C connector.
642
643
644
645 )))
646
647 [[image:image-20220619092421-3.png||_mstalt="430547" height="371" width="529"]]
648
649
650 = 4. Configure LHT65N-E5 via AT command or LoRaWAN downlink =
651
652
653 (((
654 Use can configure LHT65N-E5 via AT Command or LoRaWAN Downlink.
655 )))
656
657 * (((
658 AT Command Connection: See [[FAQ>>||anchor="H6.FAQ"]].
659 )))
660
661 * (((
662 LoRaWAN Downlink instruction for different platforms: [[IoT LoRaWAN Server>>doc:Main.WebHome]]
663 )))
664
665 (((
666 There are two kinds of commands to configure LHT65N-E5, they are:
667 )))
668
669 * (((
670 (% style="color:#4f81bd" %)**General Commands**.
671 )))
672
673 (((
674 These commands are to configure:
675 )))
676
677 1. (((
678 General system settings like: uplink interval.
679 )))
680 1. (((
681 LoRaWAN protocol & radio-related commands.
682 )))
683
684 (((
685 They are the same for all Dragino Devices which supports DLWS-005 LoRaWAN Stack(Note~*~*). These commands can be found on the wiki: [[End Device Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]
686 )))
687
688 * (((
689 (% style="color:#4f81bd" %)**Commands special design for LHT65N-E5**
690 )))
691
692 (((
693 These commands are only valid for LHT65N-E5, as below:
694 )))
695
696
697 == 4.1 Set Transmit Interval Time ==
698
699
700 Feature: Change LoRaWAN End Node Transmit Interval.
701
702
703 (% style="color:#4f81bd" %)**AT Command: AT+TDC**
704
705 [[image:image-20220523150701-2.png||_mstalt="427453"]]
706
707
708 (% style="color:#4f81bd" %)**Downlink Command: 0x01**
709
710 Format: Command Code (0x01) followed by 3 bytes time value.
711
712 If the downlink payload=0100003C, it means set the END Node's Transmit Interval to 0x00003C=60(S), while type code is 01.
713
714 * **Example 1**: Downlink Payload: 0100001E  ~/~/ Set Transmit Interval (TDC) = 30 seconds
715
716 * **Example 2**: Downlink Payload: 0100003C  ~/~/ Set Transmit Interval (TDC) = 60 seconds
717
718 == 4.2 Currently only supports E5 ==
719
720
721 Feature: Set device password, max 9 digits
722
723
724 (% style="color:#4f81bd" %)**AT Command: AT+EXT**
725
726 (% border="1" cellspacing="10" style="background-color:#ffffcc; color:green; width:510px" %)
727 |Command Example|Function|Response
728 |AT+EXT=?|Get or Set external sensor model|(((
729 5
730
731 OK
732 )))
733 |AT+EXT=5|(% colspan="2" %)Set external sensor mode to 5
734
735 (% style="color:#4f81bd" %)**Downlink Command:0xA2**
736
737
738 Total bytes: 2 bytes
739
740 **Example:**
741
742 * 0xA205: Set external sensor type to E5
743
744 == 4.3 Set to sleep mode ==
745
746
747 Feature: Set device to sleep mode
748
749 * **AT+Sleep=0**  : Normal working mode, device will sleep and use lower power when there is no LoRa message
750 * **AT+Sleep=1** :  Device is in deep sleep mode, no LoRa activation happen, used for storage or shipping.
751
752 (% style="color:#4f81bd" %)**AT Command: AT+SLEEP**
753
754 [[image:image-20220523151218-7.png||_mstalt="430703"]]
755
756
757 (% style="color:#4f81bd" %)**Downlink Command:**
758
759 * There is no downlink command to set to Sleep mode.
760
761 == 4.4 Set system time ==
762
763
764 Feature: Set system time, unix format. [[See here for format detail.>>||anchor="H2.6.2UnixTimeStamp"]]
765
766
767 (% style="color:#4f81bd" %)**AT Command:**
768
769 [[image:image-20220523151253-8.png||_mstalt="430677"]]
770
771
772 (% style="color:#4f81bd" %)**Downlink Command:**
773
774 0x306007806000  ~/~/  Set timestamp to 0x(6007806000),Same as AT+TIMESTAMP=1611104352
775
776
777 == 4.5 Set Time Sync Mode ==
778
779
780 (((
781 Feature: Enable/Disable Sync system time via LoRaWAN MAC Command (DeviceTimeReq), LoRaWAN server must support v1.0.3 protocol to reply this command.
782 )))
783
784 (((
785 SYNCMOD is set to 1 by default. If user want to set a different time from LoRaWAN server, user need to set this to 0.
786
787
788 )))
789
790 (% style="color:#4f81bd" %)**AT Command:**
791
792 [[image:image-20220523151336-9.png||_mstalt="431717"]]
793
794
795 (% style="color:#4f81bd" %)**Downlink Command:**
796
797 0x28 01  ~/~/  Same As AT+SYNCMOD=1
798 0x28 00  ~/~/  Same As AT+SYNCMOD=0
799
800
801 == 4.6 Set Time Sync Interval ==
802
803
804 Feature: Define System time sync interval. SYNCTDC default value: 10 days.
805
806
807 (% style="color:#4f81bd" %)**AT Command:**
808
809 [[image:image-20220523151411-10.png||_mstalt="449696"]]
810
811
812 (% style="color:#4f81bd" %)**Downlink Command:**
813
814 **0x29 0A**  ~/~/ Same as AT+SYNCTDC=0x0A
815
816
817 == 4.7 Print data entries base on page. ==
818
819
820 Feature: Print the sector data from start page to stop page (max is 416 pages).
821
822
823 (% style="color:#4f81bd" %)**AT Command: AT+PDTA**
824
825 [[image:image-20220523151450-11.png||_mstalt="451035"]]
826
827
828 (% style="color:#4f81bd" %)**Downlink Command:**
829
830 No downlink commands for feature
831
832
833 == 4.8 Print last few data entries. ==
834
835
836 Feature: Print the last few data entries
837
838
839 (% style="color:#4f81bd" %)**AT Command: AT+PLDTA**
840
841 [[image:image-20220523151524-12.png||_mstalt="452101"]]
842
843
844 (% style="color:#4f81bd" %)**Downlink Command:**
845
846 No downlink commands for feature
847
848
849 == 4.9 Clear Flash Record ==
850
851
852 Feature: Clear flash storage for data log feature.
853
854
855 (% style="color:#4f81bd" %)**AT Command: AT+CLRDTA**
856
857 [[image:image-20220523151556-13.png||_mstalt="454129"]]
858
859
860 (% style="color:#4f81bd" %)**Downlink Command: 0xA3**
861
862 * Example: 0xA301  ~/~/  Same as AT+CLRDTA
863
864 == 4.10 Auto Send None-ACK messages ==
865
866
867 Feature: LHT65N-E5 will wait for ACK for each uplink, If LHT65N-E5 doesn't get ACK from the IoT server, it will consider the message doesn't arrive server and store it. LHT65N-E5 keeps sending messages in normal periodically. Once LHT65N-E5 gets ACK from a server, it will consider the network is ok and start to send the not-arrive message.
868
869
870 (% style="color:#4f81bd" %)**AT Command: AT+PNACKMD**
871
872 The default factory setting is 0
873
874 (% border="1" cellspacing="4" style="background-color:#ffffcc; color:green; width:367px" %)
875 |=(% style="width: 158px;" %)**Command Example**|=(% style="width: 118px;" %)**Function**|=(% style="width: 87px;" %)**Response**
876 |(% style="width:158px" %)AT+PNACKMD=1|(% style="width:118px" %)Poll None-ACK message|(% style="width:87px" %)OK
877
878 (% style="color:#4f81bd" %)**Downlink Command: 0x34**
879
880 * Example: 0x3401  ~/~/  Same as AT+PNACKMD=1
881
882 = 5. Battery & How to replace =
883
884 == 5.1 Battery Type ==
885
886
887 (((
888 LHT65N-E5 is equipped with a 2400mAH Li-MnO2 (CR17505) battery . The battery is an un-rechargeable battery with low discharge rate targeting for up to 8~~10 years use. This type of battery is commonly used in IoT devices for long-term running, such as water meters.
889 )))
890
891 (((
892 The discharge curve is not linear so can't simply use percentage to show the battery level. Below is the battery performance.
893
894
895 [[image:image-20220515075034-1.png||_mstalt="428961" height="208" width="644"]]
896 )))
897
898 The minimum Working Voltage for the LHT65N-E5 is ~~ 2.5v. When battery is lower than 2.6v, it is time to change the battery.
899
900
901 == 5.2 Replace Battery ==
902
903
904 LHT65N-E5 has two screws on the back, Unscrew them, and changing the battery inside is ok. The battery is a general CR17450 battery (3.0v). Any brand should be ok.
905
906 [[image:image-20220515075440-2.png||_mstalt="429546" height="338" width="272"]][[image:image-20220515075625-3.png||_mstalt="431574" height="193" width="257"]]
907
908
909 == 5.3 Battery Life Analyze ==
910
911
912 (((
913 Dragino battery-powered products are all run in Low Power mode. User can check the guideline from this link to calculate the estimated battery life:
914 [[https:~~/~~/www.dragino.com/downloads/downloads/LoRa_End_Node/Battery_Analyze/DRAGINO_Battery_Life_Guide.pdf>>https://www.dragino.com/downloads/downloads/LoRa_End_Node/Battery_Analyze/DRAGINO_Battery_Life_Guide.pdf]]
915 )))
916
917
918 (((
919 A full detail test report for LHT65N-E5 on different frequency can be found at : [[https:~~/~~/www.dropbox.com/sh/r2i3zlhsyrpavla/AAB1sZw3mdT0K7XjpHCITt13a?dl=0>>https://www.dropbox.com/sh/r2i3zlhsyrpavla/AAB1sZw3mdT0K7XjpHCITt13a?dl=0]]
920 )))
921
922
923 = 6. FAQ =
924
925 == 6.1 How to use AT Command? ==
926
927
928 LHT65N-E5 supports AT Command set.User can use a USB to TTL adapter plus the Program Cable to connect to LHT65 for using AT command, as below.
929
930
931 [[image:image-20220615153355-1.png||_mstalt="430222"]]
932
933
934
935 [[image:1655802313617-381.png||_mstalt="293917"]]
936
937
938
939 (((
940 In PC, User needs to set serial tool(such as [[**putty**>>https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]], SecureCRT) baud rate to (% style="color:green" %)**9600** (%%)to access to access serial console for LHT65N-E5. The AT commands are disable by default and need to enter password (default:(% style="color:green" %)**123456**(% style="color:red" %))(%%) to active it. Timeout to input AT Command is 5 min, after 5-minute, user need to input password again. User can use AT+DISAT command to disable AT command before timeout.
941 )))
942
943 [[image:image-20220615154519-3.png||_mstalt="431925" height="672" width="807"]]
944
945 AT Command List is as below:
946
947 AT+<CMD>? :  Help on <CMD>
948
949 AT+<CMD> :  Run <CMD>
950
951 AT+<CMD>=<value> :  Set the value
952
953 AT+<CMD>=? :  Get the value
954
955 AT+DEBUG:  Set more info output
956
957 ATZ:  Trig a reset of the MCU
958
959 AT+FDR:  Reset Parameters to Factory Default, Keys Reserve
960
961 AT+DEUI:  Get or Set the Device EUI
962
963 AT+DADDR:  Get or Set the Device Address
964
965 AT+APPKEY:  Get or Set the Application Key
966
967 AT+NWKSKEY:  Get or Set the Network Session Key
968
969 AT+APPSKEY:  Get or Set the Application Session Key
970
971 AT+APPEUI:  Get or Set the Application EUI
972
973 AT+ADR:  Get or Set the Adaptive Data Rate setting. (0: off, 1: on)
974
975 AT+TXP:  Get or Set the Transmit Power (0-5, MAX:0, MIN:5, according to LoRaWAN Spec)
976
977 AT+DR:  Get or Set the Data Rate. (0-7 corresponding to DR_X)
978
979 AT+DCS:  Get or Set the ETSI Duty Cycle setting - 0=disable, 1=enable - Only for testing
980
981 AT+PNM:  Get or Set the public network mode. (0: off, 1: on)
982
983 AT+RX2FQ:  Get or Set the Rx2 window frequency
984
985 AT+RX2DR:  Get or Set the Rx2 window data rate (0-7 corresponding to DR_X)
986
987 AT+RX1DL:  Get or Set the delay between the end of the Tx and the Rx Window 1 in ms
988
989 AT+RX2DL:  Get or Set the delay between the end of the Tx and the Rx Window 2 in ms
990
991 AT+JN1DL:  Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 1 in ms
992
993 AT+JN2DL:  Get or Set the Join Accept Delay between the end of the Tx and the Join Rx Window 2 in ms
994
995 AT+NJM:  Get or Set the Network Join Mode. (0: ABP, 1: OTAA)
996
997 AT+NWKID:  Get or Set the Network ID
998
999 AT+FCU:  Get or Set the Frame Counter Uplink
1000
1001 AT+FCD:  Get or Set the Frame Counter Downlink
1002
1003 AT+CLASS:  Get or Set the Device Class
1004
1005 AT+JOIN:  Join network
1006
1007 AT+NJS:  Get the join status
1008
1009 AT+SENDB:  Send hexadecimal data along with the application port
1010
1011 AT+SEND:  Send text data along with the application port
1012
1013 AT+RECVB:  Print last received data in binary format (with hexadecimal values)
1014
1015 AT+RECV:  Print last received data in raw format
1016
1017 AT+VER:  Get current image version and Frequency Band
1018
1019 AT+CFM:  Get or Set the confirmation mode (0-1)
1020
1021 AT+CFS:  Get confirmation status of the last AT+SEND (0-1)
1022
1023 AT+SNR:  Get the SNR of the last received packet
1024
1025 AT+RSSI:  Get the RSSI of the last received packet
1026
1027 AT+TDC:  Get or set the application data transmission interval in ms
1028
1029 AT+PORT:  Get or set the application port
1030
1031 AT+DISAT:  Disable AT commands
1032
1033 AT+PWORD: Set password, max 9 digits
1034
1035 AT+CHS:  Get or Set Frequency (Unit: Hz) for Single Channel Mode
1036
1037 AT+CHE:  Get or Set eight channels mode,Only for US915,AU915,CN470
1038
1039 AT+PDTA:  Print the sector data from start page to stop page
1040
1041 AT+PLDTA:  Print the last few sets of data
1042
1043 AT+CLRDTA:  Clear the storage, record position back to 1st
1044
1045 AT+SLEEP:  Set sleep mode
1046
1047 AT+EXT:  Get or Set external sensor model
1048
1049 AT+BAT:  Get the current battery voltage in mV
1050
1051 AT+CFG:  Print all configurations
1052
1053 AT+WMOD:  Get or Set Work Mode
1054
1055 AT+ARTEMP:  Get or set the internal Temperature sensor alarm range
1056
1057 AT+CITEMP:  Get or set the internal Temperature sensor collection interval in min
1058
1059 AT+SETCNT:  Set the count at present
1060
1061 AT+RJTDC:  Get or set the ReJoin data transmission interval in min
1062
1063 AT+RPL:  Get or set response level
1064
1065 AT+TIMESTAMP:  Get or Set UNIX timestamp in second
1066
1067 AT+LEAPSEC:  Get or Set Leap Second
1068
1069 AT+SYNCMOD:  Get or Set time synchronization method
1070
1071 AT+SYNCTDC:  Get or set time synchronization interval in day
1072
1073 AT+PID:  Get or set the PID
1074
1075
1076 == 6.2 Where to use AT commands and Downlink commands ==
1077
1078
1079 **AT commands:**
1080
1081 [[image:image-20220620153708-1.png||_mstalt="429806" height="603" width="723"]]
1082
1083
1084 **Downlink commands:**
1085
1086
1087
1088 (% style="color:blue" %)**TTN:**
1089
1090 [[image:image-20220615092124-2.png||_mstalt="429221" height="649" width="688"]]
1091
1092
1093
1094 (% style="color:blue" %)**Helium:**
1095
1096 [[image:image-20220615092551-3.png||_mstalt="430794" height="423" width="835"]]
1097
1098
1099
1100 (% style="color:blue" %)**Chirpstack: The downlink window will not be displayed until the network is accessed**
1101
1102
1103 [[image:image-20220615094850-6.png||_mstalt="433082"]]
1104
1105
1106 [[image:image-20220615094904-7.png||_mstalt="433485" height="281" width="911"]]
1107
1108
1109
1110 (% style="color:blue" %)**Aws:**
1111
1112 [[image:image-20220615092939-4.png||_mstalt="434460" height="448" width="894"]]
1113
1114
1115 == 6.3 How to change the uplink interval? ==
1116
1117
1118 Please see this link: [[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/How%20to%20set%20the%20transmit%20time%20interval/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/How%20to%20set%20the%20transmit%20time%20interval/||_mstmutation="1" style="background-color: rgb(255, 255, 255);"]]
1119
1120
1121
1122 [[image:image-20220615154519-3.png||_mstalt="431925" height="672" width="807"]]
1123
1124
1125 == 6.4 How to use TTL-USB to connect PC to upgrade firmware? ==
1126
1127
1128 [[image:image-20220615153355-1.png||_mstalt="430222"]]
1129
1130
1131 (% style="color:blue" %)**Step1**(%%): Install TremoProgrammer  first.
1132
1133 [[image:image-20220615170542-5.png||_mstalt="430638"]]
1134
1135
1136
1137 (% _mstmutation="1" style="color:blue" %)**Step2**(%%):wiring method.(% style="display:none" %)
1138
1139 First connect the four lines;(% style="display:none" %)
1140
1141 [[image:image-20220621170938-1.png||_mstalt="431340" height="413" width="419"]],(% style="display:none" %)
1142
1143
1144 Then use DuPont cable to short circuit port3 and port1, and then release them, so that the device enters bootlaod mode.
1145
1146 [[image:image-20220621170938-2.png||_mstalt="431704"]]
1147
1148
1149
1150 (% style="color:blue" %)**Step3:**(%%)Select the device port to be connected, baud rate and bin file to be downloaded.
1151
1152 [[image:image-20220615171334-6.png||_mstalt="431028"]]
1153
1154
1155 Click the (% style="color:blue" %)**start**(%%) button to start the firmware upgrade.
1156
1157
1158 When this interface appears, it indicates that the download has been completed.
1159
1160 [[image:image-20220620160723-8.png||_mstalt="430703"]]
1161
1162
1163 Finally, unplug the DuPont cable on port4, and then use the DuPont cable to short circuit port3 and port1 to reset the device.
1164
1165
1166
1167 [[image:image-20220615154519-3.png||_mstalt="431925" height="672" width="807"]]
1168
1169
1170 = 7. Order Info =
1171
1172
1173 Part Number: (% style="color:#4f81bd" %)** LHT65N-PIR-XX**
1174
1175 (% style="color:#4f81bd" %)**XX **(%%): The default frequency band
1176
1177 * (% style="color:#4f81bd" %)** **(% _mstmutation="1" style="color:red" %)**AS923**(%%): LoRaWAN AS923 band
1178 * (% style="color:#4f81bd" %)** **(% _mstmutation="1" style="color:red" %)**AU915**(%%): LoRaWAN AU915 band
1179 * (% style="color:#4f81bd" %)** **(% _mstmutation="1" style="color:red" %)**EU433**(%%): LoRaWAN EU433 band
1180 * (% style="color:#4f81bd" %)** **(% _mstmutation="1" style="color:red" %)**EU868**(%%): LoRaWAN EU868 band
1181 * (% style="color:#4f81bd" %)** **(% _mstmutation="1" style="color:red" %)**KR920**(%%): LoRaWAN KR920 band
1182 * (% style="color:#4f81bd" %)** **(% _mstmutation="1" style="color:red" %)**US915**(%%): LoRaWAN US915 band
1183 * (% style="color:#4f81bd" %)** **(% _mstmutation="1" style="color:red" %)**IN865**(%%): LoRaWAN IN865 band
1184 * (% style="color:#4f81bd" %)** **(% _mstmutation="1" style="color:red" %)**CN470**(%%): LoRaWAN CN470 band
1185
1186 = 8. Packing Info =
1187
1188
1189 **Package Includes**:
1190
1191 * LHT65N-PIR Temperature/Humidity/PIR Sensor x 1
1192
1193 **Dimension and weight**:
1194
1195 * Device Size:  10 x 10 x 3.5 mm
1196 * Device Weight: 120.5g
1197
1198 = 9. Reference material =
1199
1200
1201 * [[Datasheet, photos, decoder, firmware>>https://www.dropbox.com/sh/una19zsni308dme/AACOKp6J2RF5TMlKWT5zU3RTa?dl=0]]
1202
1203 = 10. FCC Warning =
1204
1205
1206 This device complies with part 15 of the FCC Rules.Operation is subject to the following two conditions:
1207
1208 (1) This device may not cause harmful interference;
1209
1210 (2) this device must accept any interference received, including interference that may cause undesired operation.