智能灯
=================
在这个项目中,我们将学习使用 Cloud4RPi 的 Silder 小部件控制 LED 的亮度。
实验步骤
-------------------------
搭建电路。
.. image:: img/led1.png
:align: center
打开代码。
.. raw:: html
.. code-block:: shell
cd /home/pi/cloud4rpi-raspberrypi-python
sudo nano smart_light.py
找到下面的部分并填写正确的设备令牌。
.. code-block:: python
DEVICE_TOKEN = '__YOUR_DEVICE_TOKEN__'
运行代码。
.. raw:: html
.. code-block:: shell
sudo python3 smart_light.py
转到 Cloud4RPi 页面,添加一个名为 project3 的新控制面板,然后单击 **Add Widget** 添加一个 **Slider小部件**。
.. image:: img/led2.png
:align: center
添加完后,就可以使用 **Slider** 小部件来控制 LED 的亮度了。
.. image:: img/led3.png
:align: center
代码说明
----------------------
.. code-block:: python
led_val = GPIO.PWM(LED_PIN, 2000)
led_val.start(0)
调用 ``GPIO.PWM()`` 函数定义 ``LED_PIN`` 为 PWM 引脚并设置 PWM 引脚的频率为 2000Hz,然后使用 ``start()`` 函数将初始占空比设置为 0。
.. code-block:: python
led_val.ChangeDutyCycle(value)
Slider 小部件发送到树莓派的值用作 PWM 占空比来改变 LED 的亮度。
.. code-block:: python
variables = {
'CPU Temp': {
'type': 'numeric',
'value': 0,
'bind': led_control
},
}
通过设置 ``'value'`` 键的值, 我们可以设置Slider部件的初始值, 然后循环读取 ``'value'`` 键的值,并将当前电平 ``LED_PIN`` (函数 ``led_control()`` 的返回值) 发送到Cloud4RPi。