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. Cluster implementation
The Zigbee cluster Window Covering [1] is used for this example.
A potential extension is to add the Alarms cluster [2] to notify when the shutter is blocking and flash the LEDs controller to warn User.
Window Covering cluster usage |
---|
2.1. Server side
The server is based on a STM32WB5MM-DK [3], which has a slot to put an Arduino board to expand its functionality.
It uses an Arduino Motor Shield Control (AMS) [4] based on the ST dual full-bridge driver L298P [5] 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.
A potential extension is to add the Alarms cluster [2] to notify when the shutter is blocking.
2.2. Client side
The client is based on a P-NUCLEO-WB55 [6]
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.
Like server side, a potential extension is to add the Alarms cluster [2] to notify when the shutter is blocking and flash the LEDs 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 |