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.
RUC Window Covering |
---|
2. Zigbee Implementation
The Zigbee cluster Window Covering [1] is used for this example.
Window Covering cluster usage |
---|
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.
2.3. Extension possible
A potential extension is to add the Alarms cluster [6] to notify when the shutter is blocking and flash the LEDs controller to warn User.
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 |