Wiki source code of PB05-L -- LoRaWAN Button User Manual
Last modified by Dilisi S on 2025/04/23 23:31
Show last authors
author | version | line-number | content |
---|---|---|---|
1 | (% style="text-align:center" %) | ||
2 | [[image:image-20250228144849-1.jpeg||height="490" width="490"]] | ||
3 | |||
4 | |||
5 | |||
6 | |||
7 | (% _mstvisible="1" %) | ||
8 | (% _msthash="315238" _msttexthash="18964465" _mstvisible="3" %)**Table of Contents:** | ||
9 | |||
10 | {{toc/}} | ||
11 | |||
12 | |||
13 | |||
14 | |||
15 | |||
16 | |||
17 | |||
18 | |||
19 | = 1. Introduction = | ||
20 | |||
21 | == 1.1 What is the PB05-L LoRaWAN Push Button? == | ||
22 | |||
23 | |||
24 | The **PB05-L LoRaWAN Button** is a wireless device with (% style="color:blue" %)**5 push buttons**(%%). When a button is pressed, the device sends a signal to the IoT server using the LoRaWAN protocol. | ||
25 | |||
26 | It runs on (% style="color:blue" %)**2 x AA batteries**(%%), lasting for approximately (% style="color:blue" %)**30k presses**(%%) across all five buttons. When the batteries run out, they can be easily replaced. | ||
27 | |||
28 | The PB05-L also has a **built-in speaker** that plays different sounds when a button is pressed or when a response is received from the server. If needed, the speaker can be turned off. | ||
29 | |||
30 | This device is **fully compatible with LoRaWAN v1.0.3** and works with any standard LoRaWAN gateway. | ||
31 | |||
32 | {{info}} | ||
33 | **Note:** Battery life depends on how often the device sends data. Check the [[battery analyzer>>||anchor="H4.2A0PowerConsumptionAnalyze"]] for details. | ||
34 | {{/info}} | ||
35 | |||
36 | == 1.2 Features == | ||
37 | |||
38 | |||
39 | * Wall-mountable | ||
40 | * LoRaWAN v1.0.3 Class A protocol | ||
41 | * 5 push buttons | ||
42 | * Built-in speaker | ||
43 | * Frequency bands: CN470, EU433, KR920, US915, EU868, AS923, AU915 | ||
44 | * AT commands for parameter configuration | ||
45 | * Remote parameter configuration via LoRaWAN downlink | ||
46 | * Firmware upgradeable via programming port | ||
47 | * Supports 2 × AA LR6 batteries | ||
48 | * IP52-rated for dust and water resistance | ||
49 | |||
50 | == 1.3 Power Consumption == | ||
51 | |||
52 | |||
53 | * **Idle:** 5 µA | ||
54 | * **Transmit:** Max 110 mA | ||
55 | |||
56 | == 1.4 Storage & Operation Temperature == | ||
57 | |||
58 | |||
59 | -10 ~~ 50 °C or -40 ~~ 60 °C (depends on the battery type, see [[FAQ>>||anchor="H6.5Whyiseedifferentworkingtemperatureforthedevice3F"]]) | ||
60 | |||
61 | |||
62 | == 1.5 Applications == | ||
63 | |||
64 | |||
65 | * Smart Buildings & Home Automation | ||
66 | * Logistics and Supply Chain Management | ||
67 | * Smart Metering | ||
68 | * Smart Agriculture | ||
69 | * Smart Cities | ||
70 | * Smart Factory | ||
71 | |||
72 | See **Use Cases** (Section 7) for more information. | ||
73 | |||
74 | |||
75 | == 1.6 Device appearance == | ||
76 | |||
77 | |||
78 | (% class="wikigeneratedid" %) | ||
79 | [[image:image-20250303102218-1.jpeg||height="340" width="572"]] | ||
80 | |||
81 | (% class="wikigeneratedid" %) | ||
82 | (% style="color:red" %)**Note: For customization purposes, the PVC sticker is not attached by default.** | ||
83 | |||
84 | |||
85 | == 1.7 Mechanical Drawings == | ||
86 | |||
87 | |||
88 | [[image:image-20250312090840-1.png||height="509" width="671"]] | ||
89 | |||
90 | |||
91 | = 2. Operation Mode = | ||
92 | |||
93 | == 2.1 How does it work? == | ||
94 | |||
95 | |||
96 | Each PB05-L is shipped with a **unique set of LoRaWAN registration information**, including **DevEUI**, **AppEUI**, and **AppKey**. To use the PB05-L in a LoRaWAN network, the user must register these EUIs and keys **in advance** to enable OTAA activation of the device in the LoRaWAN network server. | ||
97 | |||
98 | |||
99 | [[image:image-20230426083617-1.png||height="294" width="633"]] | ||
100 | |||
101 | |||
102 | Once the device is powered on and within the network’s coverage, it will automatically join and start transmitting sensor data. By default, it sends an uplink every **20 minutes**. | ||
103 | |||
104 | |||
105 | == 2.2 How to Activate PB05-L? == | ||
106 | |||
107 | |||
108 | (% style="color:red" %)** 1. Open the enclosure from the bottom as shown in the image below.** | ||
109 | |||
110 | [[image:image-20250303105217-1.jpeg||height="298" width="493"]] | ||
111 | |||
112 | |||
113 | (% style="color:red" %)** 2. Insert 2 x AA LR6 batteries. Make sure to insert them in the correct direction.** | ||
114 | |||
115 | [[image:image-20250303105439-2.jpeg||height="241" width="489"]] | ||
116 | |||
117 | |||
118 | (% style="color:red" %)** 3. Activate the device by pressing and holding (long press) the ACT button.** | ||
119 | |||
120 | [[image:image-20250303105945-3.jpeg||height="217" width="518"]] | ||
121 | |||
122 | You can check [[LED Status>>||anchor="H2.8LEDIndicator"]] to determine the working state of the PB05-L. | ||
123 | |||
124 | |||
125 | == 2.3 Joining with a LoRaWAN network server == | ||
126 | |||
127 | |||
128 | This section shows an example of how to join The Things Stack LoRaWAN network server. Registering with other LoRaWAN network servers may also follow a similar procedure. | ||
129 | |||
130 | (% _mstvisible="1" class="wikigeneratedid" %) | ||
131 | The following network diagram shows that the PB05-L is connected to a LoRaWAN Network Server. The network server supports end-to-end data communication between the PB05-L and the application server. You can use any public LoRaWAN Network Server to register your device, or you can set up your own private LoRaWAN Network Server. The Things Stack (both free and paid) and ChirpStack are some of the popular LoRaWAN Network Servers available for use. | ||
132 | |||
133 | |||
134 | (% _mstvisible="1" class="wikigeneratedid" %) | ||
135 | The following network diagram illustrates how the PB05-L connects to a LoRaWAN network server and how end-to-end communication occurs between the PB05-L and the application server. | ||
136 | |||
137 | (% _mstvisible="1" class="wikigeneratedid" %) | ||
138 | The PB01-L sends LoRa-modulated uplink packet when a specific button (Button 1 to 5) is pressed by the user. The uplink packet is received by the LoRaWAN gateway and forwarded to the LoRaWAN Network Server via its internet connection. The Network Server then forwards the application payload of the uplink packet to the Application Server for further processing, enabling data analysis and valuable insights. Both the Application Server and the Network Server can send downlink messages to the PB05-L through the LoRaWAN gateway. | ||
139 | |||
140 | |||
141 | [[image:pb05-l-lorawan-nw.jpg||height="241" width="900"]] | ||
142 | |||
143 | |||
144 | |||
145 | === 2.3.1 Registering with The Things Stack === | ||
146 | |||
147 | The following steps guide you through the process of registering the PB05-L with The Things Stack LoRaWAN network server. | ||
148 | |||
149 | |||
150 | ==== 2.3.1.1 Setting up ==== | ||
151 | |||
152 | * Sign up for a free account with [[The Things Stack Sandbox>>url:https://eu1.cloud.thethings.network]] if you do not have one yet. | ||
153 | * Log in to your **The Things Stack** account. | ||
154 | * Create an **application** with The Things Stack if you do not have one yet. | ||
155 | ** On the left navigation, click **Applications**. | ||
156 | ** Then click **+ Add Application** button. | ||
157 | |||
158 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LWL02%20-%20LoRaWAN%20Door%20Sensor%20User%20Manual/WebHome/lwl02-4.png?rev=1.1||alt="lwl02-4.png" height="768" width="1230"]] | ||
159 | |||
160 | |||
161 | * On the **Create Application **page, configure the following: | ||
162 | ** **Application ID**: Provide a unique identification for your application within The Things Stack. | ||
163 | ** **Application name**: (optional) Provide a descriptive name. | ||
164 | ** **Description**: (optional) Provide a description. | ||
165 | * Click on **Create application **button. | ||
166 | |||
167 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LWL02%20-%20LoRaWAN%20Door%20Sensor%20User%20Manual/WebHome/lwl02-5.png?rev=1.1||alt="lwl02-5.png" height="802" width="1284"]] | ||
168 | |||
169 | |||
170 | |||
171 | * Go to your application's page and click on the **End devices** in the left menu. | ||
172 | * On the End devices page, click on **+ Register end device**. | ||
173 | |||
174 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LDS02%20-%20LoRaWAN%20Door%20Sensor%20User%20Manual/WebHome/lds02-step-5.png?width=1311&height=819&rev=1.1||alt="lds02-step-5.png" height="819" width="1311"]] | ||
175 | |||
176 | |||
177 | |||
178 | * Two registration options are available: | ||
179 | ** Using the LoRaWAN Device Repositoty | ||
180 | ** Manual registration | ||
181 | |||
182 | ==== 2.3.1.2 Manual registration ==== | ||
183 | |||
184 | Currently, the PB05-L supports only manual registration. | ||
185 | |||
186 | |||
187 | |||
188 | |||
189 | * On the **Register end device** page: | ||
190 | ** Select the option **Enter end device specifies manually** under **Input method**. | ||
191 | ** Select the **Frequency plan** that matches your device from the **Frequency plan** dropdown list. | ||
192 | ** Select the **LoRaWAN version** as **LoRaWAN Specification 1.0.3** | ||
193 | ** Select the **Regional Parameters version** as** RP001 Regional Parameters 1.0.3 revision A** | ||
194 | ** Enter **AppEUI** in the **JoinEUI** field. Then click **Confirm** button. | ||
195 | |||
196 | [[image:image-20250306095706-4.jpeg]] | ||
197 | |||
198 | * In the **DevEUI** field, enter the **DevEUI**. | ||
199 | * In the **AppKey** field, enter the **AppKey**. | ||
200 | * In the **End device ID** field, enter a unique name for your PB05 within this application. | ||
201 | * Under **After registration**, select the **View registered end device** option. | ||
202 | * Click the **Register end device** button. | ||
203 | |||
204 | [[image:image-20250306095754-5.jpeg]] | ||
205 | |||
206 | |||
207 | You will be navigated to the **Device overview** page. | ||
208 | |||
209 | |||
210 | ==== 2.3.1.3 Uplink Payload Formatter (Decoder) ==== | ||
211 | |||
212 | |||
213 | To add the uplink formatter code, select **Applications > [your application] > End devices** > [**your end device]** > **Payload formatters** > **Uplink**. Then select **Use Device repository formatters** for the **Formatter type** dropdown. Click the **Save changes** button to apply the changes. | ||
214 | |||
215 | The uplink payload formatter for PB05-L can be downloaded from here: [[PB05-L decoder>>https://github.com/dragino/dragino-end-node-decoder/tree/main/PB05]]. | ||
216 | |||
217 | |||
218 | [[image:image-20241030172839-3.png||height="508" width="918"]] | ||
219 | |||
220 | |||
221 | Press the ACT button to activate the PB05-L. It will then join The Things Stack. Once successfully joined, it will start uploading sensor data to The Things Stack, which you can view on the Live Data panel. | ||
222 | |||
223 | |||
224 | [[image:image-20241030173150-5.png||height="304" width="1292"]] | ||
225 | |||
226 | |||
227 | == 2.4 Uplink Payload == | ||
228 | |||
229 | |||
230 | Uplink payloads include two types: **Valid Sensor Valu**e and **Other Status / Control Commands**. | ||
231 | |||
232 | * **Valid Sensor Value**: Use FPort=2 | ||
233 | * **Other Status / Control Commands**: Use an FPort other than 2. | ||
234 | |||
235 | === 2.4.1 Uplink FPort~=5, Device Status === | ||
236 | |||
237 | |||
238 | You can get the **Device Status** uplink through the downlink command: | ||
239 | |||
240 | (% style="color:#4472c4" %)**Downlink: **(%%)**0x2601** | ||
241 | |||
242 | The device uplinks the status using FPort=5. | ||
243 | |||
244 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:370px" %) | ||
245 | |=(% style="width: 60px;background-color:#4F81BD;color:white" %)**Size (bytes)(% style="display:none" %) (%%)**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**2**|=(% style="width: 80px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 60px;background-color:#4F81BD;color:white" %)**1**|=(% style="width: 30px;background-color:#4F81BD;color:white" %)**2** | ||
246 | |(% style="width:99px" %)Value|(% style="width:62px" %)Sensor Model|(% style="width:80px" %)Firmware Version|(% style="width:82px" %)Frequency Band|(% style="width:85px" %)Sub-band|(% style="width:46px" %)BAT | ||
247 | |||
248 | Example from The Things Stack: | ||
249 | |||
250 | [[image:image-20241030165804-1.png]] | ||
251 | |||
252 | Example payload (FPort=5): [[image:image-20241030170029-2.png||height="24" width="136"]] | ||
253 | |||
254 | (% style="color:#4472c4" %)**Sensor Model**(%%): For PB05-L, this value is 0x3B. | ||
255 | |||
256 | (% style="color:#4472c4" %)**Firmware Version**(%%): 0x0100 means the version is v1.0.0. | ||
257 | |||
258 | (% style="color:#4472c4" %)**Frequency Band**: | ||
259 | |||
260 | * 0x01: EU868 | ||
261 | * 0x02: US915 | ||
262 | * 0x03: IN865 | ||
263 | * 0x04: AU915 | ||
264 | * 0x05: KZ865 | ||
265 | * 0x06: RU864 | ||
266 | * 0x07: AS923 | ||
267 | * 0x08: AS923-1 | ||
268 | * 0x09: AS923-2 | ||
269 | * 0x0a: AS923-3 | ||
270 | |||
271 | (% style="color:#4472c4" %)**Sub-Band**(%%): Value 0x00 to 0x08 (only for CN470, AU915, and US915. For other regions, use 0x00.) | ||
272 | |||
273 | (% style="color:#4472c4" %)**BAT**(%%): Shows the battery voltage of PB05-L. | ||
274 | |||
275 | (% style="color:#4472c4" %)**Example**(%%): 0x0C48 = 3144mV | ||
276 | |||
277 | |||
278 | === 2.4.2 Uplink FPort~=2, Real-time sensor value === | ||
279 | |||
280 | |||
281 | The PB05-L will send this uplink after the Device Status uplink once it has successfully joined the LoRaWAN network. It will then continue to send this uplink periodically. The default interval is **20 minutes**, but it [[can be changed>>||anchor="H3.1A0DownlinkCommandSet"]]. | ||
282 | |||
283 | This uplink uses FPort=2 and, by default, is sent once every 20 minutes. | ||
284 | |||
285 | |||
286 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:470px" %) | ||
287 | |=(% style="width: 60px;background-color:#4F81BD;color:white" %)((( | ||
288 | **Size(bytes)** | ||
289 | )))|=(% style="width: 50px; background-color: rgb(79, 129, 189); color: white;" %)2|=(% style="width: 170px; background-color: rgb(79, 129, 189); color: white;" %)((( | ||
290 | **1** | ||
291 | )))|=(% style="width: 50px; background-color: rgb(79, 129, 189); color: white;" %)((( | ||
292 | **1** | ||
293 | )))|=(% style="width: 140px; background-color: rgb(79, 129, 189); color: white;" %)((( | ||
294 | **1** | ||
295 | ))) | ||
296 | |(% style="width:97px" %)((( | ||
297 | Value | ||
298 | )))|(% style="width:63px" %)Battery|(% style="width:101px" %)((( | ||
299 | Sound_key & Sound_ACK | ||
300 | )))|(% style="width:62px" %)((( | ||
301 | ((( | ||
302 | Alarm | ||
303 | ))) | ||
304 | )))|(% style="width:140px" %)key1 & key2 & key3 & key4 & key5 | ||
305 | |||
306 | (% style="color:blue" %)**key1 & key2 & key3 & key4 & key5:** | ||
307 | |||
308 | (% border="1" cellspacing="4" style="background-color:#f2f2f2; width:470px" %) | ||
309 | |=(% style="width: 81px; background-color: rgb(79, 129, 189); color: white;" %)**Size(bit)**|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)**bit[1:7]**|=(% style="width: 310px; background-color: rgb(79, 129, 189); color: white;" %)**bit0** | ||
310 | |(% style="width:81px" %)((( | ||
311 | Value | ||
312 | )))|(% style="width:79px" %)Reserve|(% style="width:294px" %)key1 & key2 & key3 & key4 & key5 | ||
313 | |||
314 | Example from The Things Stack. | ||
315 | |||
316 | [[image:image-20241031101215-3.png]] | ||
317 | |||
318 | |||
319 | * ((( | ||
320 | (% class="wikigeneratedid" id="HBattery:" %) | ||
321 | (% style="color:blue" %)**Battery:** | ||
322 | ))) | ||
323 | |||
324 | To get the battery voltage. | ||
325 | |||
326 | Example 1: 0x0CEA = 3306mV | ||
327 | |||
328 | Example 2: 0x0D08 = 3336mV | ||
329 | |||
330 | |||
331 | * (% style="color:blue" %)**Sound_key & Sound_ACK:** | ||
332 | |||
333 | Key sound and ACK sound are enabled by default. | ||
334 | |||
335 | Example 1: 0x03 | ||
336 | |||
337 | Sound_ACK: (03>>1) & 0x01=1, OPEN. | ||
338 | |||
339 | **~ ** Sound_key: 03 & 0x01=1, OPEN. | ||
340 | |||
341 | Example 2: 0x01 | ||
342 | |||
343 | Sound_ACK: (01>>1) & 0x01=0, CLOSE. | ||
344 | |||
345 | **~ ** Sound_key: 01 & 0x01=1, OPEN. | ||
346 | |||
347 | |||
348 | * (% style="color:blue" %)**Alarm:** | ||
349 | |||
350 | Key alarm. | ||
351 | |||
352 | Example 1: 0x01 & 0x01=1, "TRUE", key alarm packet. | ||
353 | |||
354 | Example 2: 0x00 & 0x01=0, "FALSE", normal uplink data. | ||
355 | |||
356 | |||
357 | * (% style="color:blue" %)**key1** | ||
358 | |||
359 | (% class="wikigeneratedid" %) | ||
360 | Displays whether the uplink data was triggered by key 1. | ||
361 | |||
362 | 01 (H): (0x01&0x01)=01(H) =0000 000**1**(B) bit0=1, "Yes" | ||
363 | |||
364 | 02 (H): (0x02&0x01)=0 bit0=0, "No" | ||
365 | |||
366 | |||
367 | * (% style="color:blue" %)**key2** | ||
368 | |||
369 | (% class="wikigeneratedid" %) | ||
370 | Displays whether the uplink data was triggered by key 2. | ||
371 | |||
372 | 02 (H): (0x02>>1)&0x01 =01(H) =0000 000**1**(B) bit0=1, "Yes" | ||
373 | |||
374 | 04 (H): (0x04>>1)&0x01 =0 bit0=0, "No" | ||
375 | |||
376 | |||
377 | * (% style="color:blue" %)**key3** | ||
378 | |||
379 | (% class="wikigeneratedid" %) | ||
380 | Displays whether the uplink data was triggered by key 3. | ||
381 | |||
382 | 04 (H): (0x04>>2)&0x01 =01(H) =0000 000**1**(B) bit0=1, "Yes" | ||
383 | |||
384 | 08 (H): (0x08>>2)&0x01 =0 bit0=0, "No" | ||
385 | |||
386 | |||
387 | * (% style="color:blue" %)**key4** | ||
388 | |||
389 | (% class="wikigeneratedid" %) | ||
390 | Displays whether the uplink data was triggered by key 4. | ||
391 | |||
392 | 08 (H): (0x08>>3)&0x01 =01(H) =0000 000**1**(B) bit0=1, "Yes" | ||
393 | |||
394 | 10 (H): (0x10>>3)&0x01 =0 bit0=0, "No" | ||
395 | |||
396 | |||
397 | * (% style="color:blue" %)**key5** | ||
398 | |||
399 | (% class="wikigeneratedid" %) | ||
400 | Displays whether the uplink data was triggered by key 5. | ||
401 | |||
402 | 10 (H): (0x10>>4)&0x01 =01(H) =0000 000**1**(B) bit0=1, "Yes" | ||
403 | |||
404 | 01 (H): (0x01>>4)&0x01 =0 bit0=0, "No" | ||
405 | |||
406 | |||
407 | === 2.4.3 Uplink FPort~=3, Datalog sensor value === | ||
408 | |||
409 | |||
410 | PB05-L stores sensor values, and the user can retrieve this historical data via a downlink command. The datalogged sensor values are sent via FPort=3. | ||
411 | |||
412 | The historical payload includes one or multiple entries. | ||
413 | |||
414 | (% border="1" cellspacing="2" style="background-color:#f2f2f2; width:510px" %) | ||
415 | |=(% style="width: 60px; background-color: rgb(79, 129, 189); color: white;" %)((( | ||
416 | **Size(bytes)** | ||
417 | )))|=(% style="width: 50px; background-color: rgb(79, 129, 189); color: white;" %)4|=(% style="width: 170px; background-color: rgb(79, 129, 189); color: white;" %)((( | ||
418 | **1** | ||
419 | )))|=(% style="width: 50px; background-color: rgb(79, 129, 189); color: white;" %)((( | ||
420 | **1** | ||
421 | )))|=(% style="width: 110px; background-color: rgb(79, 129, 189); color: white;" %)((( | ||
422 | **1** | ||
423 | )))|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)4 | ||
424 | |(% style="width:87px" %)((( | ||
425 | Value | ||
426 | )))|(% style="width:78px" %)Reserve|(% style="width:102px" %)((( | ||
427 | key5 & key4 & key3 & key2 & key1 | ||
428 | )))|(% style="width:75px" %)Reserve|(% style="width:55px" %)Poll message flag & alarm|(% style="width:68px" %)Unix Time Stamp | ||
429 | |||
430 | (% style="color:blue" %)**key5 & key4 & key3 & key2 & key1:** | ||
431 | |||
432 | (% border="1" cellspacing="2" style="background-color:#f2f2f2; width:470px" %) | ||
433 | |=(% style="width: 81px; background-color: rgb(79, 129, 189); color: white;" %)**Size(bit)**|=(% style="width: 79px; background-color: rgb(79, 129, 189); color: white;" %)**bit[1:7]**|=(% style="width: 310px; background-color: rgb(79, 129, 189); color: white;" %)**bit0** | ||
434 | |(% style="width:81px" %)((( | ||
435 | Value | ||
436 | )))|(% style="width:79px" %)Reserve|(% style="width:294px" %)key5 & key4 & key3 & key2 & key1 | ||
437 | |||
438 | (% style="color:blue" %)**Poll message flag & Alarm:** | ||
439 | |||
440 | (% border="1" cellspacing="2" style="background-color:#f2f2f2; width:510px" %) | ||
441 | |=(% style="width: 60px;background-color:#4F81BD;color:white" %)**Size(bit)**|=(% style="width: 80px; background-color: rgb(79, 129, 189); color: white;" %)**bit**7|=(% style="width: 80px; background-color: rgb(79, 129, 189); color: white;" %)((( | ||
442 | **bit6** | ||
443 | )))|=(% style="width: 80px; background-color: rgb(79, 129, 189); color: white;" %)bit5|=(% style="width: 80px; background-color: rgb(79, 129, 189); color: white;" %)bit4|=(% style="width: 60px; background-color: rgb(79, 129, 189); color: white;" %)**bit[3:1]**|=(% style="width: 70px; background-color: rgb(79, 129, 189); color: white;" %)**bit0** | ||
444 | |(% style="width:97px" %)Status&Ext|(% style="width:63px" %)No ACK Message|(% style="width:101px" %)Poll Message Flag|(% style="width:140px" %)Sync time OK|(% style="width:140px" %)Unix Time Request|(% style="width:140px" %)Reserve|(% style="width:140px" %)((( | ||
445 | Alarm:1 | ||
446 | ))) | ||
447 | |||
448 | (% style="color:blue" %)**No ACK Message:**(%%) 1: This indicates that the payload is from an uplink message that did not receive an ACK from the server (related to the [[PNACKMD=1>>url:https://wiki.dragino.com/xwiki/bin/view/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/#H4.13AutoSendNone-ACKmessages]] feature) | ||
449 | |||
450 | (% style="color:blue" %)**Poll Message Flag: **(%%)1: This indicates that the message is a reply to a poll message. | ||
451 | |||
452 | |||
453 | * Each data entry is 11 bytes long to save airtime and battery. PB05-L will send the maximum number of bytes allowed based on the current data rate (DR) and frequency band.(% style="display:none" %) | ||
454 | |||
455 | For example, in the US915 band, the maximum payload size for different DRs is: | ||
456 | |||
457 | 1. **DR0**: Maximum is 11 bytes - the device sends one data entry. | ||
458 | 1. **DR1**: Maximum is 53 bytes - the device sends 4 data entries (44 bytes total). | ||
459 | 1. **DR2**: Payload includes 11 data entries. | ||
460 | 1. **DR3**: Payload includes 22 data entries. | ||
461 | |||
462 | If you send the downlink command: [[image:image-20241031142131-3.png||height="31" width="216"]] | ||
463 | |||
464 | Where: | ||
465 | **Start time:** 6722DD98 = 2024/10/31 (Thursday) 01:30:00 | ||
466 | **Stop time:** 672300C0 = 2024/10/31 (Thursday) 04:00:00 | ||
467 | |||
468 | |||
469 | PB05-L will uplink the following payload: | ||
470 | |||
471 | [[image:image-20241031135901-2.png]] | ||
472 | |||
473 | **000000001000416722E531** | ||
474 | |||
475 | 000000000800416722E538000000000400416722E540000000000200416722E54A000000000100416722E552000000000000406722E9BA000000000000406722EE6A000000000000406722F31A000000000000406722F7CA000000001000416722F9BA000000001000416722F9F6000000000800416722FB0E000000000000406722FC7A | ||
476 | |||
477 | Where the first 11 bytes are for the first entry: | ||
478 | |||
479 | [[image:image-20241031153803-1.png||height="35" width="240"]] | ||
480 | |||
481 | The first four bytes are reserved - (do not indicate anything) | ||
482 | |||
483 | key5 & key4 & key3 & key2 & key1: __10(H)__ | ||
484 | |||
485 | * key5: ((0x10>>4)&0x01) = 1, "Yes". | ||
486 | * key4: ((0x10>>3)&0x01) = 0, "No". | ||
487 | * key3: ((0x10>>2)&0x01) = 0, "No". | ||
488 | * key2: ((0x10>>2)&0x01) = 0, "No". | ||
489 | * key1: (0x10 & 0x01) = 0, "No". | ||
490 | |||
491 | The sixth byte is reserved - (does not indicate anything) | ||
492 | |||
493 | Poll Message Flag & Alarm: 0x41 (Hex) indicates a reply message. For the alarm, 0x41 & 0x01 = 1, which means "True." | ||
494 | |||
495 | Unix time is 0x6722E531= 1730340145s= 24/10/31 02:02:25 | ||
496 | |||
497 | |||
498 | If the PB05-L has no data at the polling time, it will transmit an uplink containing 11 bytes of zeros. | ||
499 | |||
500 | [[image:image-20241031113339-4.png||height="307" width="1112"]](% style="display:none" %) | ||
501 | |||
502 | See [[Datalog feature>>||anchor="H2.6A0DatalogFeature"]] for more informaton. | ||
503 | |||
504 | (% style="display:none" %) (%%) | ||
505 | |||
506 | == 2.5 Show data on Datacake == | ||
507 | |||
508 | |||
509 | ((( | ||
510 | The Datacake IoT platform provides a user-friendly interface to display sensor data in charts. Once your sensor data is available in The Things Stack, you can connect Datacake to The Things Stack and view the data in Datacake. Follow the steps below: | ||
511 | |||
512 | |||
513 | === 2.5.1 Prerequisites === | ||
514 | |||
515 | * The Things Stack account | ||
516 | ))) | ||
517 | |||
518 | ((( | ||
519 | * Ensure that your PB05 is programmed and properly connected to the LoRaWAN network. | ||
520 | |||
521 | === 2.5.2 Procedure === | ||
522 | |||
523 | |||
524 | ))) | ||
525 | |||
526 | ((( | ||
527 | First, configure your application to forward data to Datacake by adding an integration: | ||
528 | |||
529 | |||
530 | ~1. Go to The **Things Stack Console ~-~-> Applications ~-~-> Integrations ~-~-> Add Integrations**. | ||
531 | ))) | ||
532 | |||
533 | ((( | ||
534 | 2. On the **Choose webhook template** page, click on the **Datacake**. | ||
535 | ))) | ||
536 | |||
537 | ((( | ||
538 | |||
539 | ))) | ||
540 | |||
541 | ((( | ||
542 | Please refer to the figure below: | ||
543 | ))) | ||
544 | |||
545 | [[image:image-20240510150924-2.png||height="500" width="970"]] | ||
546 | |||
547 | |||
548 | Log in to **Datacake **and copy the **API token** from your account. You can find it under **Account Settings -> API Token**. | ||
549 | |||
550 | [[image:image-20240510151944-3.png||height="482" width="989"]] | ||
551 | |||
552 | |||
553 | In the** Setup webhook for Datacake** page, enter the following: | ||
554 | |||
555 | * Enter the **Webhook ID** | ||
556 | * Paste the **API token** you copied from The Things Stack in the **Token **text box. | ||
557 | |||
558 | Click on the **Create Datacake webhook** button. | ||
559 | |||
560 | [[image:image-20241031114021-5.png||height="526" width="896"]] | ||
561 | |||
562 | |||
563 | In the Datacake, click **Devices **and then click on the **+Add Device** button. | ||
564 | |||
565 | [[image:image-20240510152300-5.png||height="249" width="995"]] | ||
566 | |||
567 | |||
568 | In the** Add Device** dialogue box, choose **LoRaWAN**. | ||
569 | |||
570 | Then click on the **Next **button. | ||
571 | |||
572 | |||
573 | [[image:image-20240510152355-6.png||height="459" width="701"]] | ||
574 | |||
575 | |||
576 | In the **Add LoRaWAN Device** dialogue box, configure the following: | ||
577 | |||
578 | **STEP 1:** | ||
579 | |||
580 | * Choose **New Product**. | ||
581 | * Enter the** product name** in the **Product Name** text box. pb05-l, for example. | ||
582 | |||
583 | Click on the **Next** button. | ||
584 | |||
585 | |||
586 | [[image:image-20241031114330-6.png||height="462" width="626"]] | ||
587 | |||
588 | |||
589 | **STEP 2:** | ||
590 | |||
591 | * Choose **The Things Stack V3.** | ||
592 | |||
593 | Click on the **Next **button. | ||
594 | |||
595 | |||
596 | [[image:image-20240510152634-9.png||height="609" width="602"]] | ||
597 | |||
598 | |||
599 | STEP 3: | ||
600 | |||
601 | * Enter the **DevEUI** of the PB05 in the **DEVEUI **box. | ||
602 | * Type //**PB05**// in the **NAME **text box. | ||
603 | |||
604 | Click the **Next **button. | ||
605 | |||
606 | [[image:image-20241031114443-7.png||height="498" width="601"]] | ||
607 | |||
608 | |||
609 | Go to the PB05's configuration page. | ||
610 | |||
611 | [[image:image-20241031114600-8.png||height="295" width="826"]] | ||
612 | |||
613 | |||
614 | Copy and paste the [[TTN decoder>>https://github.com/dragino/dragino-end-node-decoder/tree/main/PB05]] in the Payload Decoder box and click the **Save **button. | ||
615 | |||
616 | [[image:image-20240510153624-13.png||height="286" width="731"]] | ||
617 | |||
618 | |||
619 | To learn about how to add visual widgets in the Datacake to visualise the data, please read the **Datacake **[[documentation>>https://docs.datacake.de/]]. | ||
620 | |||
621 | (% style="display:none" %) (%%) | ||
622 | |||
623 | == 2.6 Datalog Feature == | ||
624 | |||
625 | |||
626 | (% _msthash="315262" _msttexthash="32283004" _mstvisible="1" %) | ||
627 | When you want to retrieve a sensor value, you can send a poll command from the IoT platform to request the sensor to send the value during the specified time slot. | ||
628 | |||
629 | |||
630 | === 2.6.1 Unix TimeStamp === | ||
631 | |||
632 | |||
633 | The Unix timestamp shows the sampling time of the uplink payload. The following figure shows the **DeviceTimeAns** payload format. | ||
634 | |||
635 | [[image:image-20220523001219-11.png||_mstalt="450450" _mstvisible="3" height="97" width="627"]] | ||
636 | |||
637 | |||
638 | To get the current Unix epoch time, visit the website [[https:~~/~~/www.epochconverter.com/>>url:https://www.epochconverter.com/||_mstvisible="3"]] : | ||
639 | |||
640 | For example, if the Unix epoch time is 1611889090, you can convert it to hex using a Decimal to Hex Converter available online, such as Code Beautify. For this example, the equivalent hex value is 0x60137afd. | ||
641 | |||
642 | |||
643 | [[image:1655782409139-256.png]] | ||
644 | |||
645 | |||
646 | === 2.6.2 Set Device Time === | ||
647 | |||
648 | |||
649 | ((( | ||
650 | (% style="color:blue" %)**There are two ways to set the device's time:** | ||
651 | ))) | ||
652 | |||
653 | ((( | ||
654 | **1. Through LoRaWAN MAC Command (Default settings)** | ||
655 | ))) | ||
656 | |||
657 | ((( | ||
658 | You need to set **AT+SYNCMOD=1** to enable time synchronisation via the MAC command. | ||
659 | |||
660 | Once the PB05-L joins a LoRaWAN network, it sends a MAC command (DeviceTimeReq). The server responds with a DeviceTimeAns to provide the current time to the PB05-L. If the PB05-L fails to get the time from the server, it will use its internal clock and wait for the next time request. | ||
661 | |||
662 | You can use **AT+SYNCTDC** to set the time request period (default is 10 days). | ||
663 | ))) | ||
664 | |||
665 | ((( | ||
666 | {{info}} | ||
667 | **Note:** The LoRaWAN server needs to support **LoRaWAN v1.0.3 (MAC v1.0.3)** or higher to enable this MAC command feature. | ||
668 | **ChirpStack**, **TTS V3 (v3)**, and **Loriot** support it, but **TTS V3 (v2)** does not. | ||
669 | If the server does not support this command, it will **discard** the uplink packet containing the time request. As a result, the user will lose the time request packet when using **TTS V3 (v2)** with SYNCMOD=1. | ||
670 | {{/info}} | ||
671 | |||
672 | |||
673 | ))) | ||
674 | |||
675 | ((( | ||
676 | **2. Manually Set Time** | ||
677 | ))) | ||
678 | |||
679 | ((( | ||
680 | You need to set **AT+SYNCMOD=0** to enable manual time configuration. Otherwise, the time you set will be overwritten by the time provided by the server. | ||
681 | ))) | ||
682 | |||
683 | |||
684 | === 2.6.3 Poll sensor value === | ||
685 | |||
686 | |||
687 | You can poll sensor values based on timestamps from the server. | ||
688 | |||
689 | |||
690 | Below is the downlink command. | ||
691 | |||
692 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:428px" %) | ||
693 | |(% style="background-color:#4f81bd; color:white; width:59px" %)**1byte**|(% style="background-color:#4f81bd; color:white; width:128px" %)**4bytes**|(% style="background-color:#4f81bd; color:white; width:124px" %)**4bytes**|(% style="background-color:#4f81bd; color:white; width:117px" %)**1byte** | ||
694 | |(% style="width:58px" %)31|(% style="width:128px" %)Timestamp start|(% style="width:123px" %)Timestamp end|(% style="width:116px" %)Uplink Interval | ||
695 | |||
696 | Timestamp start and Timestamp end use Unix Timestamp format as mentioned above. Devices will reply with all data logs during this time period, using the uplink interval. | ||
697 | |||
698 | For example, downlink command [[image:image-20241031142131-3.png||height="31" width="216"]] | ||
699 | |||
700 | Is to check 2024/10/31 01:30:00 to 2020/12/1 04:00:00's data | ||
701 | |||
702 | Uplink Internal =5s, means PB05-L will send one packet every 5s, range 5~~255s. | ||
703 | |||
704 | |||
705 | === 2.6.4 Datalog Uplink payload === | ||
706 | |||
707 | |||
708 | See, [[Uplink FPort=3, Datalog sensor value>>||anchor="H2.4.3A0UplinkFPORT3D32CDatalogsensorvalue"]] | ||
709 | |||
710 | (% style="display:none" %) (%%) (% style="display:none" %) | ||
711 | |||
712 | == 2.7 Buttons == | ||
713 | |||
714 | |||
715 | * **ACT button** | ||
716 | |||
717 | Long-press the ACT button to reset the device and allow it to join the network again. | ||
718 | |||
719 | [[image:image-20250303110613-4.jpeg||height="198" width="472"]] | ||
720 | |||
721 | * **Alarm buttons** | ||
722 | |||
723 | When you press the alarm button, the PB05-L immediately uplinks data. The alarm flag is set to 'TRUE,' and the corresponding button status is 'Yes'. | ||
724 | |||
725 | [[image:image-20250303111505-5.jpeg||height="252" width="374"]](% style="display:none" %) | ||
726 | |||
727 | |||
728 | == 2.8 LED Indicators == | ||
729 | |||
730 | |||
731 | ((( | ||
732 | The** PB05-L** has a **tri-color LED** for easily indicating different stages. | ||
733 | |||
734 | Hold the **ACT** button until the green light turns on to reset the device. The green LED will flash as the node restarts, the blue LED will flash once when requesting network access, and the green LED will remain on for 5 seconds after successful network access. | ||
735 | ))) | ||
736 | |||
737 | ((( | ||
738 | **In a normal working state:** | ||
739 | |||
740 | * When the node restarts, hold the ACT button until the GREEN LED lights up. The GREEN LED will flash as the node restarts. | ||
741 | * The BLUE LED will flash once upon requesting network access. | ||
742 | * The GREEN LED will remain on for 5 seconds after successful network access. | ||
743 | |||
744 | **During OTAA Join:** | ||
745 | |||
746 | * For each Join Request uplink, the GREEN LED will blink once. | ||
747 | * Once the Join is successful, the GREEN LED will remain on for 5 seconds. | ||
748 | * After joining, for each uplink, either the BLUE or GREEN LED will blink once. | ||
749 | |||
750 | **Alarm Button Press:** | ||
751 | |||
752 | * When an alarm button is pressed, the RED LED will flash until the node receives an ACK from the platform. | ||
753 | * Once the ACK is received, the BLUE LED will stay on for 5 seconds. | ||
754 | |||
755 | |||
756 | ))) | ||
757 | |||
758 | == 2.9 Buzzer == | ||
759 | |||
760 | |||
761 | The PB05 has a **button sound** and an **ACK sound**, both of which users can turn on or off using [[AT+SOUND>>||anchor="H3.3A0SetbuttonsoundandACKsound"]]. | ||
762 | |||
763 | * (% style="color:#4f81bd" %)**Button sound**(%%) is the tone played by the node after an alarm button is pressed. | ||
764 | You can use [[AT+OPTION>>||anchor="H3.4A0Setbuzzermusictype2807E429"]] to set different button sounds. | ||
765 | * (% style="color:#4f81bd" %)**ACK sound**(%%) is the notification tone played when the node receives an ACK. | ||
766 | |||
767 | == 2.10 E2 Extension Cable == | ||
768 | |||
769 | |||
770 | [[image:https://wiki.dragino.com/xwiki/bin/download/Main/User%20Manual%20for%20LoRaWAN%20End%20Nodes/LHT65N%20LoRaWAN%20Temperature%20%26%20Humidity%20Sensor%20Manual/WebHome/image-20220619092222-1.png?width=188&height=182&rev=1.1||alt="image-20220619092222-1.png"]][[image:image-20250303135532-3.jpeg||height="184" width="234"]] | ||
771 | |||
772 | |||
773 | **1m Long Breakout Cable for PB05-L** | ||
774 | |||
775 | **Features:** | ||
776 | |||
777 | * Used for AT commands; compatible with LHT52, LHT65N, and PB05-L. | ||
778 | * Supports firmware updates for PB05-L; also works with LHT52 and LHT65N. | ||
779 | * Exposes all pins from the PB05-L Type-C connector. | ||
780 | |||
781 | The following diagram shows the pin mapping between PB05 and the E2 Cable. | ||
782 | |||
783 | [[image:image-20250303134914-1.png||height="320" width="456"]] | ||
784 | |||
785 | |||
786 | = 3. Configure PB05-L via AT command or LoRaWAN downlink = | ||
787 | |||
788 | |||
789 | You can configure PB05-L via AT Command or LoRaWAN Downlink command. | ||
790 | |||
791 | * **AT Command Connection: ** | ||
792 | |||
793 | [[image:image-20250303141745-4.jpeg||height="489" width="505"]] | ||
794 | |||
795 | |||
796 | ((( | ||
797 | On a PC, you need to set the serial tool (such as [[PuTTY>>https://www.chiark.greenend.org.uk/~~sgtatham/putty/latest.html]] or SecureCRT) to a baud rate of **9600** to access the serial console for the PB05-L. | ||
798 | |||
799 | AT commands are disabled by default and require entering a password (default: **123456**) to activate them. The AT command input timeout is 5 minutes; after this period, the user must enter the password again. | ||
800 | |||
801 | Enter the password and ATZ to activate the PB05-L, as shown below: | ||
802 | |||
803 | |||
804 | [[image:image-20250303114409-8.png]] | ||
805 | |||
806 | |||
807 | ))) | ||
808 | |||
809 | * LoRaWAN Downlink instructions for different platforms can be found here: [[IoT LoRaWAN Server>>doc:Main.WebHome]] | ||
810 | |||
811 | ((( | ||
812 | There are two types of commands to configure the PB05-L: | ||
813 | |||
814 | **General Commands** | ||
815 | |||
816 | These commands configure: | ||
817 | |||
818 | * General system settings, such as the uplink interval. | ||
819 | * LoRaWAN protocol and radio-related settings. | ||
820 | |||
821 | These commands are the same for all Dragino devices that support the DLWS-005 LoRaWAN stack (**Note~*~***). They can be found on the wiki: [[End Device Downlink Command>>doc:Main.End Device AT Commands and Downlink Command.WebHome]]. | ||
822 | |||
823 | **Commands Specifically Designed for PB05-L** | ||
824 | |||
825 | These commands are only valid for the PB05-L, as listed below: | ||
826 | |||
827 | |||
828 | ))) | ||
829 | |||
830 | == 3.1 Downlink Command Set == | ||
831 | |||
832 | |||
833 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:510px" %) | ||
834 | |=(% style="width: 100px; background-color: rgb(79, 129, 189); color: white;" %)**Command Example**|=(% style="width: 161px; background-color: rgb(79, 129, 189); color: white;" %)**Function**|=(% style="width: 92px; background-color: rgb(79, 129, 189); color: white;" %)**Response**|=(% style="width: 157px; background-color: rgb(79, 129, 189); color: white;" %)**Downlink** | ||
835 | |(% style="width:130px" %)AT+TDC=?|(% style="width:151px" %)((( | ||
836 | View current TDC time | ||
837 | )))|(% style="width:92px" %)((( | ||
838 | 1200000 | ||
839 | OK | ||
840 | )))|(% style="width:206px" %)Default 1200000(ms) | ||
841 | |(% style="width:130px" %)AT+TDC=300000|(% style="width:151px" %)Set TDC time|(% style="width:92px" %)OK|(% style="width:206px" %)((( | ||
842 | ((( | ||
843 | 0X0100012C: | ||
844 | 01: Fixed command | ||
845 | 00012C: 0X00012C= | ||
846 | |||
847 | 300(seconds) | ||
848 | ))) | ||
849 | |||
850 | ((( | ||
851 | |||
852 | ))) | ||
853 | ))) | ||
854 | |(% style="width:130px" %)ATZ|(% style="width:151px" %)Reset node|(% style="width:92px" %) |(% style="width:206px" %)0x04FF | ||
855 | |(% style="width:130px" %)AT+FDR|(% style="width:151px" %)Restore factory settings|(% style="width:92px" %) |(% style="width:206px" %)0X04FE | ||
856 | |(% style="width:130px" %)AT+CFM=?|(% style="width:151px" %)View the current confirmation mode status|(% style="width:92px" %)((( | ||
857 | 0,7,0 | ||
858 | OK | ||
859 | )))|(% style="width:206px" %)Default 0,7,0 | ||
860 | |(% style="width:130px" %)AT+CFM=1,7,1|(% style="width:151px" %)((( | ||
861 | Confirmed uplink mode. The maximum number of retries is seven, and the uplink FCnt increases by 1 for each retry. | ||
862 | )))|(% style="width:92px" %)((( | ||
863 | OK | ||
864 | )))|(% style="width:206px" %)((( | ||
865 | 05010701 | ||
866 | 05: Fixed command | ||
867 | 01: Confirmed uplink | ||
868 | 07: Retry 7 times | ||
869 | 01: FCnt count plus 1 | ||
870 | ))) | ||
871 | |(% style="width:130px" %)AT+NJM=?|(% style="width:151px" %)((( | ||
872 | Check the current network connection method. | ||
873 | )))|(% style="width:92px" %)((( | ||
874 | 1 | ||
875 | OK | ||
876 | )))|(% style="width:206px" %)Default 1 | ||
877 | |(% style="width:130px" %)AT+NJM=0|(% style="width:151px" %)Change the network connection method to ABP.|(% style="width:92px" %)((( | ||
878 | Attention: Take effect after ATZ | ||
879 | OK | ||
880 | )))|(% style="width:206px" %)((( | ||
881 | 0X2000: ABP | ||
882 | 0x2001: OTAA | ||
883 | 20: Fixed command | ||
884 | ))) | ||
885 | |(% style="width:130px" %)AT+RPL=?|(% style="width:151px" %)View current RPL settings|(% style="width:92px" %)((( | ||
886 | 0 | ||
887 | OK | ||
888 | )))|(% style="width:206px" %)Default 0 | ||
889 | |(% style="width:130px" %)AT+RPL=1|(% style="width:151px" %)set RPL=1 |(% style="width:92px" %)OK|(% style="width:206px" %)((( | ||
890 | 0x2101: | ||
891 | 21: Fixed command | ||
892 | 01: For details, check the wiki | ||
893 | ))) | ||
894 | |(% style="width:130px" %)AT+ADR=?|(% style="width:151px" %)View current ADR status|(% style="width:92px" %)((( | ||
895 | 1 | ||
896 | OK | ||
897 | )))|(% style="width:206px" %)Default 0 | ||
898 | |(% style="width:130px" %)AT+ADR=0|(% style="width:151px" %)Set the ADR state to off|(% style="width:92px" %)OK|(% style="width:206px" %)((( | ||
899 | 0x2200: Close | ||
900 | 0x2201: Open | ||
901 | 22: Fixed command | ||
902 | ))) | ||
903 | |(% style="width:130px" %)AT+DR=?|(% style="width:151px" %)View the current DR settings|(% style="width:92px" %)OK|(% style="width:206px" %) | ||
904 | |(% style="width:130px" %)AT+DR=1|(% style="width:151px" %)((( | ||
905 | Set DR to 1 | ||
906 | It takes effect only when ADR=0 | ||
907 | )))|(% style="width:92px" %)OK|(% style="width:206px" %)((( | ||
908 | 0X22000101: | ||
909 | 00: ADR=0 | ||
910 | 01: DR=1 | ||
911 | 01: TXP=1 | ||
912 | 22: Fixed command | ||
913 | ))) | ||
914 | |(% style="width:130px" %)AT+TXP=?|(% style="width:151px" %)View the current TXP|(% style="width:92px" %)OK|(% style="width:206px" %) | ||
915 | |(% style="width:130px" %)AT+TXP=1|(% style="width:151px" %)((( | ||
916 | Set TXP to 1 | ||
917 | It takes effect only when ADR=0 | ||
918 | )))|(% style="width:92px" %)OK|(% style="width:206px" %)((( | ||
919 | 0X22000101: | ||
920 | 00: ADR=0 | ||
921 | 01: DR=1 | ||
922 | 01: TXP=1 | ||
923 | 22: Fixed command | ||
924 | ))) | ||
925 | |(% style="width:130px" %)AT+RJTDC=10|(% style="width:151px" %)Set the RJTDC time interval|(% style="width:92px" %)OK|(% style="width:206px" %)((( | ||
926 | 0X26000A: | ||
927 | 26: Fixed command | ||
928 | 000A: 0X000A=10(min) | ||
929 | For details, check the wiki | ||
930 | ))) | ||
931 | |(% style="width:130px" %) |(% style="width:151px" %)((( | ||
932 | ((( | ||
933 | ~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_~_ | ||
934 | |||
935 | Retrieve stored data for a specified period of time | ||
936 | ))) | ||
937 | |||
938 | ((( | ||
939 | |||
940 | ))) | ||
941 | )))|(% style="width:92px" %) |(% style="width:206px" %)((( | ||
942 | 0X3161DE7C7061DE8A800A: | ||
943 | 31: Fixed command | ||
944 | 61DE7C70:0X61DE7C70=2022/1/12 15:00:00 | ||
945 | 61DE8A80:0X61DE8A80=2022/1/12 16:00:00 | ||
946 | 0A: 0X0A=10(second) | ||
947 | View details 2.6.2 | ||
948 | ))) | ||
949 | |(% style="width:130px" %)AT+DDETECT=?|(% style="width:151px" %)View the current DDETECT setting status and time|(% style="width:92px" %)((( | ||
950 | 1,1440,2880 | ||
951 | OK | ||
952 | )))|(% style="width:206px" %)Default 1,1440,2880(min) | ||
953 | |(% style="width:130px" %)AT+DDETECT=((( | ||
954 | 1,1440,2880 | ||
955 | )))|(% style="width:151px" %)((( | ||
956 | Set the DDETECT setting status and time | ||
957 | ((% style="color:red" %)When the node does not receive the downlink packet within the set time, it will re-enter the network(%%)) | ||
958 | )))|(% style="width:92px" %)OK|(% style="width:206px" %)((( | ||
959 | 0X320005A0: Close | ||
960 | 0X320105A0: Open | ||
961 | 32: Fixed command | ||
962 | 05A0: 0X05A0=1440(min) | ||
963 | ))) | ||
964 | |||
965 | == 3.2 Set Password == | ||
966 | |||
967 | |||
968 | **Feature**: Set the device password—maximum 9 digits. | ||
969 | |||
970 | (% style="color:#4f81bd" %)**AT Command: AT+PWORD** | ||
971 | |||
972 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:372px" %) | ||
973 | |(% style="background-color:#4f81bd; color:white; width:155px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:128px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:89px" %)**Response** | ||
974 | |(% style="width:155px" %)AT+PWORD=?|(% style="width:124px" %)Show password|(% style="width:86px" %)((( | ||
975 | 123456 | ||
976 | OK | ||
977 | ))) | ||
978 | |(% style="width:155px" %)AT+PWORD=999999|(% style="width:124px" %)Set password|(% style="width:86px" %)OK | ||
979 | |||
980 | (% style="color:#4f81bd" %)**Downlink Command:** | ||
981 | |||
982 | No downlink command is available for this feature. | ||
983 | |||
984 | |||
985 | == 3.3 Set button sound and ACK sound == | ||
986 | |||
987 | |||
988 | **Feature**: Turn on/off the button sound and the ACK sound/alarm. | ||
989 | |||
990 | (% style="color:#4f81bd" %)**AT Command: AT+SOUND** | ||
991 | |||
992 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:372px" %) | ||
993 | |(% style="background-color:#4f81bd; color:white; width:155px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:128px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:89px" %)**Response** | ||
994 | |(% style="width:155px" %)((( | ||
995 | AT+SOUND=? | ||
996 | )))|(% style="width:124px" %)Get the current status of the button sound and the ACK sound|(% style="width:86px" %)((( | ||
997 | 1,1 | ||
998 | OK | ||
999 | ))) | ||
1000 | |(% style="width:155px" %)((( | ||
1001 | AT+SOUND=0,1 | ||
1002 | )))|(% style="width:124px" %)Turn off the button sound and turn on the ACK sound|(% style="width:86px" %)OK | ||
1003 | |||
1004 | (% style="color:#4f81bd" %)**Downlink Command: 0xA1 ** | ||
1005 | |||
1006 | **Format**: Command Code/prefix (0xA1) followed by 2 bytes mode value. | ||
1007 | |||
1008 | The first byte after 0XA1 sets the button sound, and the second byte after 0XA1 sets the ACK sound.** (0: OFF, 1: ON)** | ||
1009 | |||
1010 | * **Example: **Downlink Payload: **A10001 **~/~/ Set AT+SOUND=0,1 Turn off the button sound and turn on ACK sound. | ||
1011 | |||
1012 | == 3.4 Set buzzer music type(0~~4) == | ||
1013 | |||
1014 | |||
1015 | **Feature**: Set different alarm key response sounds. There are five different types of button music. | ||
1016 | |||
1017 | (% style="color:#4f81bd" %)**AT Command: AT+OPTION** | ||
1018 | |||
1019 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:372px" %) | ||
1020 | |(% style="background-color:#4f81bd; color:white; width:155px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:128px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:89px" %)**Response** | ||
1021 | |(% style="width:155px" %)((( | ||
1022 | AT+OPTION=? | ||
1023 | )))|(% style="width:124px" %)((( | ||
1024 | Get the buzzer music type | ||
1025 | )))|(% style="width:86px" %)((( | ||
1026 | 3 | ||
1027 | |||
1028 | OK | ||
1029 | ))) | ||
1030 | |(% style="width:155px" %)AT+OPTION=1|(% style="width:124px" %)Set the buzzer music to type 1|(% style="width:86px" %)OK | ||
1031 | |||
1032 | (% style="color:#4f81bd" %)**Downlink Command: 0xA3** | ||
1033 | |||
1034 | **Format**: Command Code/Prefix (0xA3) followed by 1 byte mode value. | ||
1035 | |||
1036 | * **Example: **Downlink Payload: **A300 **~/~/ Set AT+OPTION=0 to set the buzzer music to type 0. | ||
1037 | |||
1038 | |||
1039 | == 3.5 Set Valid Push Time == | ||
1040 | |||
1041 | |||
1042 | Feature: Set the holding time for pressing the alarm button to avoid miscontact. Values range from** 0 ~~1000ms**. | ||
1043 | |||
1044 | (% style="color:#4f81bd" %)**AT Command: AT+STIME** | ||
1045 | |||
1046 | (% border="1" cellspacing="3" style="background-color:#f2f2f2; width:372px" %) | ||
1047 | |(% style="background-color:#4f81bd; color:white; width:155px" %)**Command Example**|(% style="background-color:#4f81bd; color:white; width:128px" %)**Function**|(% style="background-color:#4f81bd; color:white; width:89px" %)**Response** | ||
1048 | |(% style="width:155px" %)((( | ||
1049 | AT+STIME=? | ||
1050 | )))|(% style="width:124px" %)((( | ||
1051 | Get the button sound time | ||
1052 | )))|(% style="width:86px" %)((( | ||
1053 | 0 | ||
1054 | OK | ||
1055 | ))) | ||
1056 | |(% style="width:155px" %)((( | ||
1057 | AT+STIME=1000 | ||
1058 | )))|(% style="width:124px" %)Set the button sound time to 1000**ms**|(% style="width:86px" %)OK | ||
1059 | |||
1060 | (% style="color:#4f81bd" %)**Downlink Command: 0xA2** | ||
1061 | |||
1062 | Format: Command Code/Prefix (0xA2) followed by 2 bytes mode value. | ||
1063 | |||
1064 | * **Example: **Downlink Payload: **A203E8 **~/~/ Set AT+STIME=1000 | ||
1065 | |||
1066 | **~ Explain: **Hold the alarm button for 10 seconds before the node will send the alarm packet. | ||
1067 | |||
1068 | |||
1069 | = 4. Battery & How to replace = | ||
1070 | |||
1071 | == 4.1 Battery Type and Replacement == | ||
1072 | |||
1073 | |||
1074 | PB05-L uses 2 x AA LR6(1.5v) batteries. If the batteries are running low (Shows 2.1v in the platform). You can buy generic AA batteries and replace them. | ||
1075 | |||
1076 | (% style="color:red" %)**Note: ** | ||
1077 | |||
1078 | 1. The PB05-L doesn't have any screws so you can use a nail to open it by the middle. | ||
1079 | |||
1080 | [[image:image-20250303112351-7.png||height="234" width="494"]] | ||
1081 | |||
1082 | |||
1083 | 2. Make sure the direction is correct when installing the AA batteries. | ||
1084 | |||
1085 | [[image:image-20250303105439-2.jpeg||height="241" width="489"]] | ||
1086 | |||
1087 | |||
1088 | == 4.2 Power Consumption Analysis == | ||
1089 | |||
1090 | |||
1091 | All Dragino's battery-powered products run in low-power mode. We have an updated battery calculator which based on the measurement of the real device. You can use this calculator to check the battery life and calculate the battery life if you want to use a different transmit interval. | ||
1092 | |||
1093 | Instructions to use are as below: | ||
1094 | |||
1095 | (% style="color:blue" %)**Step 1**(%%): Download the up-to-date DRAGINO_Battery_Life_Prediction_Table.xlsx from the below link: | ||
1096 | |||
1097 | [[battery calculator>>https://www.dropbox.com/sh/sxrgszkac4ips0q/AAA4XjBI3HAHNpdbU3ALN1j0a/Battery%20Document/Battery_Analyze?dl=0&subfolder_nav_tracking=1]] | ||
1098 | |||
1099 | |||
1100 | (% style="color:blue" %)**Step 2**(%%): (% style="display:none" %) (%%)Open it and choose | ||
1101 | |||
1102 | * Product Model | ||
1103 | * Uplink Interval | ||
1104 | * Working Mode | ||
1105 | |||
1106 | And the Life expectancy in different cases will be shown on the right. | ||
1107 | |||
1108 | [[image:image-20220621143643-7.png||height="429" width="1326"]] | ||
1109 | |||
1110 | |||
1111 | |||
1112 | = 5. OTA Firmware update = | ||
1113 | |||
1114 | **You can update the firmware of PB05-L to:** | ||
1115 | |||
1116 | * Change the Frequency band/ region. | ||
1117 | * Update with new features. | ||
1118 | * Fix bugs. | ||
1119 | |||
1120 | **Firmware and changelog can be downloaded from:** **[[Firmware download link>>https://www.dropbox.com/scl/fo/ztlw35a9xbkomu71u31im/ACMiK0Y0E5C2ZEcSKxgvmeE/LoRaWAN%20End%20Node/PB05/Firmware?dl=0&rlkey=ojjcsw927eaow01dgooldq3nu&subfolder_nav_tracking=1]]** | ||
1121 | |||
1122 | **Methods to Update Firmware:** | ||
1123 | |||
1124 | * (Recommended way) OTA firmware update via wireless: **[[http:~~/~~/wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/>>url:http://wiki.dragino.com/xwiki/bin/view/Main/Firmware%20OTA%20Update%20for%20Sensors/]]** | ||
1125 | * Update through UART TTL interface: **[[Instruction>>url:http://wiki.dragino.com/xwiki/bin/view/Main/UART%20Access%20for%20LoRa%20ST%20v4%20base%20model/#H1.LoRaSTv4baseHardware]]**. | ||
1126 | |||
1127 | = 6. Use Cases = | ||
1128 | |||
1129 | == 6.1 Public Transport Satisfaction == | ||
1130 | |||
1131 | Public transport satisfaction terminals, placed inside buses, trams, or train stations, allow passengers to quickly rate aspects like cleanliness, punctuality, or overall experience after a ride, providing cities and transport operators with valuable real-time feedback, even from locations with poor cellular or WiFi coverage. This helps to improve service quality and passenger satisfaction. | ||
1132 | |||
1133 | |||
1134 | [[image:public-transport.jpg||height="186" width="800"]] | ||
1135 | |||
1136 | |||
1137 | |||
1138 | == 6.2 Event or Conference Feedback == | ||
1139 | |||
1140 | Event or conference feedback terminals, strategically placed at session exits, information booths, or entrance gates, enable attendees to rate specific talks, exhibitors, or their overall event experience on the spot. This setup provides organisers with detailed, location-specific feedback in real time, without relying on constant internet connectivity, allowing them to assess and improve various aspects of the event efficiently. | ||
1141 | |||
1142 | |||
1143 | [[image:conference.jpg||height="186" width="800"]] | ||
1144 | |||
1145 | |||
1146 | == 6.3 Retail Stores or Service Desks == | ||
1147 | |||
1148 | Placed at cashier counters or near store exits, these devices allow customers to quickly rate staff behaviour, checkout experience, and store cleanliness. The feedback is captured in real time, giving store managers valuable, honest insights to help improve service quality and enhance the overall shopping experience. | ||
1149 | |||
1150 | |||
1151 | [[image:retail-store.jpg||height="186" width="800"]] | ||
1152 | |||
1153 | |||
1154 | = 7. FAQ = | ||
1155 | |||
1156 | |||
1157 | == 7.1 How to design a customised sticker? == | ||
1158 | |||
1159 | |||
1160 | PB05-L is shipped with a default PVC stick with satisfied icons. This sticker is not attached to the design for easy customisation purposes. You can design a customised PVC sticker and change the panel design. | ||
1161 | |||
1162 | Follow this [[link>>https://www.dropbox.com/scl/fo/4i7ezfiwdxqvnmo5d30pe/AO8KACW7i6tRiNC22ZLR_RU?rlkey=9z9bdlix0hal7dmy9lztgmrel&st=9su98u3a&dl=0]] for the design template. | ||
1163 | |||
1164 | |||
1165 | = 8. Order Info = | ||
1166 | |||
1167 | |||
1168 | Part Number: (% style="color:#4472c4" %)**PB05-L-XX** | ||
1169 | |||
1170 | (% style="color:#4472c4" %)**XX **(%%): The default frequency band | ||
1171 | |||
1172 | * (% style="color:red" %)**AS923**(%%)**: **LoRaWAN AS923 band | ||
1173 | * (% style="color:red" %)**AU915**(%%)**: **LoRaWAN AU915 band | ||
1174 | * (% style="color:red" %)**EU433**(%%)**: **LoRaWAN EU433 band | ||
1175 | * (% style="color:red" %)**EU868**(%%)**:** LoRaWAN EU868 band | ||
1176 | * (% style="color:red" %)**KR920**(%%)**: **LoRaWAN KR920 band | ||
1177 | * (% style="color:red" %)**US915**(%%)**: **LoRaWAN US915 band | ||
1178 | * (% style="color:red" %)**IN865**(%%)**: **LoRaWAN IN865 band | ||
1179 | * (% style="color:red" %)**CN470**(%%)**: **LoRaWAN CN470 band | ||
1180 | |||
1181 | = 9. Packing Info = | ||
1182 | |||
1183 | |||
1184 | (% style="color:#4472c4" %)**Package Includes:** | ||
1185 | |||
1186 | * PB05-L LoRaWAN Push Buttons x 1 | ||
1187 | |||
1188 | (% style="color:#4472c4" %)**Dimension and weight:** | ||
1189 | |||
1190 | * Device Size: cm | ||
1191 | * Device Weight: g | ||
1192 | * Package Size / pcs: cm | ||
1193 | * Weight / pcs: g | ||
1194 | |||
1195 | = 10. Support = | ||
1196 | |||
1197 | |||
1198 | * Support is provided Monday to Friday, from 09:00 to 18:00 GMT+8. Due to different time zones, we cannot offer live support. However, your questions will be answered as soon as possible in the aforementioned schedule. | ||
1199 | * Provide as much information as possible regarding your enquiry (product models, accurately describe your problem and steps to replicate it, etc.) and send an email to [[support@dragino.com>>url:file:///D:/市场资料/说明书/LoRa/LT系列/support@dragino.com]]. |