1. Introduction
This implementation can be seen as a simple extension of the RUC Lighting, adding another Zigbee cluster in the Home automation aspect.
Test and verify various functionality and ensure proper functioning.
2. Cluster implementation
The Zigbee Window Covering cluster is used for this example [1]
2.1. Server side
The server is based on a STM32WB5MM-DK [2], which has a slot to put an Arduino board to expand its functionality.
It uses an Arduino Motor Shield Control (AMS) [3] based on the ST dual full-bridge driver L298P [4] to drive a DC motor, enabling the real opening and closing of a window covering.
One driver was created to enable the following functionalities:
- Adjust the motor’s speed by modifying the duty cycle of a PWM (driven by a GPIO connected to a timer).
- Change the rotation direction (driven by a GPIO).
- Set a break (also driven by a GPIO)
- Current sensing, with that possibility, this feature detects when the window covering is stuck and stops the motor.
2.2. Client side
The client is based on a P-NUCLEO-WB55 [5]
The client cluster of the window covering implements 7 commands but only three commands are used.
- Up / Open
- Down / Close
- Stop
As with the previous example, theses commands are associated with callbacks functions on the server side. When a UP comand is sent, the corresponding callback function on the server side, initiating the motor rotation to open the window covering.
3. Acronyms and definitions
Term | Definition |
---|---|
ZC | Zigbee Coordinator |
ZR | Zigbee Router |
ZED | Zigbee End Device |
RUC | Realistic Use Case |
GPIO | General Purpose Input Output |
PWM | Pulse Width Modulation |