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