The photovoltaic panel is used to charge 12V, 7Ah batteries, which are the most common and economical batteries used in UPS devices. The panel generates an output voltage of about 11V, under the artificial light (lamps) of a room. As an intermediate device for the safe charging of the batteries, a controller intervenes which protects the batteries from overcharging, but at the same time, activates when the battery voltage drops below the 10.5V limit. An array of two batteries of this type can power a 24V electric motor, which is used to power an awning. At the center of the system is the ESP32 controller, to which the electric motor is connected via a relay circuit.
As shown in Figure 4, the ESP32 controller receives as input signals from a sensor measuring dust in the ambient air, a humidity and temperature sensor, and a photodiode. In this scenario, the awning actuator is activated when:
- a) Sunlight is intense (above a predetermined threshold). The awning comes down creating shade. Conversely, when the light level drops below a predetermined threshold, the awning rises.
- b) Humidity is intense (above a predetermined limit). The awning comes down to protect against water. The awning will work whether it is raining, or the humidity levels in the air are very high (e.g. in the evening hours).
- c) The temperature is too low. The awning goes up to harness solar energy as a heat source,
- d) Dust levels are very high in the air. The awning comes down to protect our space as much as possible.
In this specific implementation scenario, we create a smart awning that can adapt to the conditions of the external environment and move accordingly, to protect our space. Additionally, on the ESP32 controller we could run a Web Server and take sensor readings, as well as control the awning remotely, via web. The biggest challenge in the implementation of the above is the fact that the awning's use scenarios may overlap. For example, to have sun and rain at the same time, or to have very high levels of dust and at the same time the temperature is low. In these cases, we should set implementation priorities in our scripts so that the system runs smoothly.