WebSocket应用实例:远程控制RGBW-LED彩灯
前面已经实现了通过输入指令点亮灯珠,并且通信问题也已经用WebSocket解决了,那么今天我们就把两者结合一下:做一个网页/安卓/iOS通用的RGBW彩灯控制端APP,通过手机远程控制连接到树莓派上的LED灯珠,实现调光调色功能。
最终效果:
模板在手机端看视频有点问题,B站直达:树莓派:远程控制RGBW-LED彩灯
*除了控制LED外,其它设备同理,实验主要为熟悉GPIO的几种工作模式。
有了前面的工作(见树莓派系列笔记),现在只需要让树莓派能根据手机上发来的信息执行不同的动作即可,即指令约定!
为提高代码的重复利用率与可读性,我们在服务端server.py脚本中定义一个LED操作类。
想想控制过程中都会需要哪些功能?
一、关闭灯珠:初始化引脚
二、点亮灯珠:把引脚设置为输出模式并输出高电平
三、调光:通过调整占空比改变灯珠亮度
1.硬件PWM:白光LED调光采用此模式
2.软件PWM,通过循环输出不同时长高低电平,模拟PWM
*貌似3b+只有两路pwm输出?没详细试过就不乱说了。(网上说是GPIO.1和GPIO.26)
由于硬件PWM端口不足(需要四路分别控制RGBW灯珠),只能采用软件PWM了。
不过注意的是:模拟PWM频率越高,所需要的系统资源就越高。
那么我们就不去更改wiringPi中内置的软件PWM频率,由频率过低造成的闪烁,将在后面的通过电路设计去解决。