diff options
Diffstat (limited to 'Projects/P-NUCLEO-WB55.Nucleo/Applications/Zigbee/Zigbee_DoorLock_Client_Router/readme.txt')
-rw-r--r-- | Projects/P-NUCLEO-WB55.Nucleo/Applications/Zigbee/Zigbee_DoorLock_Client_Router/readme.txt | 212 |
1 files changed, 212 insertions, 0 deletions
diff --git a/Projects/P-NUCLEO-WB55.Nucleo/Applications/Zigbee/Zigbee_DoorLock_Client_Router/readme.txt b/Projects/P-NUCLEO-WB55.Nucleo/Applications/Zigbee/Zigbee_DoorLock_Client_Router/readme.txt new file mode 100644 index 000000000..8b94c7670 --- /dev/null +++ b/Projects/P-NUCLEO-WB55.Nucleo/Applications/Zigbee/Zigbee_DoorLock_Client_Router/readme.txt @@ -0,0 +1,212 @@ +/** + @page Zigbee_DoorLock_Client_Router application + + @verbatim + ****************************************************************************** + * @file Zigbee/Zigbee_DoorLock_Client_Router/readme.txt + * @author MCD Application Team + * @brief Description of the Zigbee Door Lock Cluster application as a client + * using a centralized network. + ****************************************************************************** + * + * Copyright (c) 2019 STMicroelectronics. All rights reserved. + * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * www.st.com/SLA0044 + * + ****************************************************************************** + @endverbatim + +@par Application Description + +How to use Door Lock cluster as a client on a centralized Zigbee network. + +The purpose of this application is to show how to create a Zigbee centralized network, and +how to communicate from one node to another one using the Door Lock cluster. Once the Zigbee mesh +network is created, the user can send requests from both client to server (through push buttons SW1, SW2 and SW3) +and server to client (push buttons SW1). + +For this application it is requested to have: + +- 1 STM32WB55xx board loaded with: + - wireless coprocessor : stm32wb5x_Zigbee_FFD_fw.bin + - application : Zigbee_DoorLock_Server_Coord + +- 1 or more STM32WB55xx board loaded with: + - wireless coprocessor : stm32wb5x_Zigbee_FFD_fw.bin + - application : Zigbee_DoorLock_Client_Router + + +Demo use case : + +This demo shows how to use Door Lock cluster. + +The Door Lock Server set up its initial configuration: + - The lock state is locked. + - The Door Lock normal and passage mode are supported. + - The operating mode is set to normal. + - The Auto Relock Time is set to 5 seconds. + - The Door Lock alarm supports <Forced Door Open under Door Locked Condition> event. + +When the Door Lock server lock state is locked, the green led is ON. +The Door Lock Server periodically enables passage mode (every 30 seconds during 10 seconds). +When passage mode is activated on server, the red led is ON. + +The Door Lock Client can remotely: + - Create a new user (with PIN code). + - Lock/Unlock the door (including unlock requests with a wrong PIN). + +When the Door Lock client receives a Door Lock alarm notification, the red led +is ON during 500ms. + +Note: When the Door Lock server is in passage mode, the PIN code is not checked + and the lock remains open after an unlock. + + + Device 1 Device 2 + + +--------+ +--------+ + | | | | + | Client | | Server | + | | /* Door Lock server init */ | | + | | -->| | + | | ZbZclAttrIntegerWrite(ZCL_DOORLOCK_ATTR_LOCKSTATE) | | | + | | ---| | + | | | | + | | -->| | + | | ZbZclAttrIntegerWrite(ZCL_DOORLOCK_ATTR_DOORSTATE) | | | + | | ---| | + | | | | + | | -->| | + | | ZbZclAttrIntegerWrite(ZCL_DOORLOCK_ATTR_SUPPORTED_MODES) | | | + | | ---| | + | | | | + | | -->| | + | | ZbZclAttrIntegerWrite(ZCL_DOORLOCK_ATTR_MODE) | | | + | | ---| | + | | | | + | | -->| | + | | ZbZclAttrIntegerWrite(ZCL_DOORLOCK_ATTR_AUTO_RELOCK) | | | + | | ---| | + | | | | + | | | | + | | /* Door Lock client/server normal mode interaction */ | | + | | | | + | | ZbZclDoorLockClientUnlockReq(PIN) | | + PushB SW1=>| | -------------------------------------------------------------------> | |=> GREEN LED OFF + | | <------------------------------------------------------------------- | | + | | | | + | | /* When Auto Relock Time is reached */ -->| | + | | ZbZclAttrIntegerWrite(ZCL_DOORLOCK_ATTR_LOCKSTATE) | | |=> GREEN LED ON + | | ---| | + | | | | + | | ZbZclDoorLockClientLockReq(PIN) | | + PushB SW2=>| | -------------------------------------------------------------------> | |=> GREEN LED ON + | | <------------------------------------------------------------------- | | + | | | | + | | ZbZclDoorLockClientUnlockReq(WRONG_PIN) | | + PushB SW3=>| | -------------------------------------------------------------------> | |=> GREEN LED remains ON + | | <------------------------------------------------------------------- | | + | | | | + | | | | + | | /* Door Lock client/server passage interaction */ | | + | | | | + | | ZbZclDoorLockClientUnlockReq(PIN) | | + PushB SW1=>| | -------------------------------------------------------------------> | |=> GREEN LED OFF + | | <------------------------------------------------------------------- | | + | | | | + | | ZbZclDoorLockClientLockReq(PIN) | | + PushB SW2=>| | -------------------------------------------------------------------> | |=> GREEN LED ON + | | <------------------------------------------------------------------- | | + | | | | + | | ZbZclDoorLockClientUnlockReq(WRONG_PIN) | | + PushB SW3=>| | -------------------------------------------------------------------> | |=> GREEN LED OFF + | | <------------------------------------------------------------------- | | + | | | | + | | | | + | | /* Forced Door Open under Door Locked Condition alarm */ | | + | | | | + | | -->| | + | | ZbZclAttrIntegerWrite(ZCL_DOORLOCK_ATTR_DOORSTATE) | | |<=PushB SW1 + | | ---| | + | | ZbZclClusterSendAlarm | | +RED LED ON <=| | <------------------------------------------------------------------- | | + | | | | + | | -->| | + | | /* Passage mode for 10s */ | | |<=PushB SW2 + | | ---| | + | | | | + | | | | + +--------+ +--------+ + +To setup the application : + + a) Open the project, build it and load your generated application on your STM32WB devices. + + To run the application : + + a) Start the first board. It must be the coordinator of the Zigbee network so in this demo application it is + the device running Zigbee_DoorLock_Server_Coord application (Device2 in the above diagram). + Wait for the Blue LED (LED1) ON. + Start the second board. This board is configured as Zigbee router and will attached to the network created + by the coordinator. Do the same for the other boards if applicable. + + b) At this stage, the Zigbee network is automatically created and BLUE LED (LED1) is ON on all devices. + it is now possible to remotely read Door Lock server attributes on the client by pressing on + the SW1/SW2 push button. + + Note: when LED1, LED2 and LED3 are toggling it is indicating an error has occurred on application. + +@par Hardware and Software environment + + - This example runs on STM32WB55xx devices. + + - This example has been tested with an STMicroelectronics STM32WB55RG_Nucleo + board and can be easily tailored to any other supported device + and development board. + + - On STM32WB55RG_Nucleo, the jumpers must be configured as described + in this section. Starting from the top left position up to the bottom + right position, the jumpers on the Board must be set as follows: + + CN11: GND [OFF] + JP4: VDDRF [ON] + JP6: VC0 [ON] + JP2: +3V3 [ON] + JP1: USB_STL [ON] All others [OFF] + CN12: GND [OFF] + CN7: <All> [OFF] + JP3: VDD_MCU [ON] + JP5: GND [OFF] All others [ON] + CN10: <All> [OFF] + + +@par How to use it ? + +=> Loading of the stm32wb5x_Zigbee_FFD_fw.bin binary + + This application requests having the stm32wb5x_Zigbee_FFD_fw.bin binary flashed on the Wireless Coprocessor. + If it is not the case, you need to use STM32CubeProgrammer to load the appropriate binary. + All available binaries are located under /Projects/STM32_Copro_Wireless_Binaries directory. + Refer to UM2237 to learn how to use/install STM32CubeProgrammer. + Refer to /Projects/STM32_Copro_Wireless_Binaries/ReleaseNote.html for the detailed procedure to change the + Wireless Coprocessor binary. + +=> Getting traces + To get the traces you need to connect your Board to the Hyperterminal (through the STLink Virtual COM Port). + The UART must be configured as follows: + + - BaudRate = 115200 baud + - Word Length = 8 Bits + - Stop Bit = 1 bit + - Parity = none + - Flow control = none + +=> Running the application + + Refer to the Application description at the beginning of this readme.txt + + * <h3><center>© COPYRIGHT STMicroelectronics</center></h3> + |