用树莓派控制WS2812圣诞树灯饰

2021 年 12 月 24 日 CSDN

作者 | Stack Thomas
译者 | 弯月
出品 | CSDN(ID:CSDNnews)
注意:该项目没有考虑家庭网络安全问题。你应当使用密码,并确保网络无法被外界访问。
我没有任何IT方面的经验,但在研究了一段时间后,成功地完成了该项目,这都要归功于本文中提到的几个开源项目。
该项目需要的硬件:
  • 树莓派,这是一个小型计算机(我使用的是Zero V2,但任何支持WiFi的树莓派均可)
  • WS2812全彩LED灯带(我用的是5条50灯珠的灯带串联)
  • 5伏电源适配器(确保电源适配器能为LED灯带提供足够的功率,我用了多个USB充电器)
  • 绿色电工胶带(用来隐藏灯带上的红绿白色电线)
  • 一个箱子,用于放置这些设备

第一步:设置树莓派

 
安装树莓派系统并安装Node-RED和必要的软件包。
安装树莓派系统,如果你使用无头设置,确保启用了SSH或VNC。
你可以用任何方法进入树莓派(对于无头设置,SSH是最简单的方法)
确保树莓派系统为最新版本。
使用下述命令安装Node-RED:
   
   
     
bash <(curl -sLhttps://raw.githubusercontent.com/node-red/linux-installers/master/deb/update-nodejs-and-nodered)
设置Node-RED在计算机启动时自动运行:
   
   
     
sudo systemctl enable nodered.service
如果你想使用LED HAT来控制灯光,则需要装一个树莓派专用的PiCube 4x4x4 LEDcube HAT,这是一个能控制64个灯珠的单色(红蓝绿)的LED设备。
将PiCube安装到树莓派的40针GPIO排针上。
打开Git Bash控制台,使用下述命令下载代码库:
   
   
     
git clone https://github.com/sbcshop/PiCube.git
代码将被下载到home/pi 目录下。使用ls命令查看目录列表,然后使用cd命令进入目录:
   
   
     
cd PiCube
demo.py是PiCube的示例代码。运行下述命令测试并尝试PiCube。
   
   
     
python3 demo.py
这段代码会在PiCube上显示不同的灯光效果。你也可以修改代码来创建自己的效果。

第二步:设置Node-RED

 
我们可以通过Node-RED所在的树莓派(http://localhost:1880)或本地网络中的任意计算机来访问。如果从其他计算机访问,应该使用树莓派的主机名或IP地址,即http://hostname>:1880。在树莓派上执行hostname -i可以看到IP地址。
我们需要添加另外两个模块,以便控制LED。我们需要添加:
  • node-red-dashboard
  • node-red-node-pi-neopixel
如果你想使用命令行来添加,只需要通过链接找到命令,确保将其放在正确的目录下,以便Node-RED能发现。或者,你也可以通过UI来添加:
  • 点击右上角的Menu按钮
  • 在下拉菜单中选择Managepalette
  • 选择Install选项卡
  • 在搜索框中输入node-red-dashboard
  • 点击install
  • 完成后,再输入node-red-node-pi-neopixel
  • 点击install
  • 最后点击Close
现在Node-RED应该有了所有点亮灯带所需的模块。接下来:
  • 点击右上角的Menu
  • 在下拉菜单中选择Import
  • 输入下述代码:
[{"id":"85fce9c6579baaa0","type":"tab","label":"ChristmasLightsSimple","disabled":false,"info":"","env":[]},{"id":"cc28a93a30fc342a","type":"ui_colour_picker","z":"85fce9c6579baaa0","name":"ColorPicker","label":"COLORPICKER","group":"d2ace9cc.9f3998","format":"rgb","outformat":"string","showSwatch":true,"showPicker":true,"showValue":true,"showHue":false,"showAlpha":false,"showLightness":true,"square":"false","order":1,"width":0,"height":0,"passthru":true,"topic":"","x":370,"y":360,"wires":[["024561a721d6f79c"]]},{"id":"024561a721d6f79c","type":"function","z":"85fce9c6579baaa0","name":"SetColor","func":"var count = global.get('count')||0;\nmsg.payload= msg.payload.replace(/[rgb()\\s]/g,\"\");\nif(count===0){\n    msg.payload = msg.payload;\n}\nelse{\n    msg.payload = (count-1) + \",\" +msg.payload;\n}\n\nreturnmsg;","outputs":1,"noerr":0,"x":540,"y":360,"wires":[["c0297b03d780b3ae"]]},{"id":"693df877b38a2cf1","type":"ui_button","z":"85fce9c6579baaa0","name":"Clear","group":"d2ace9cc.9f3998","order":6,"width":0,"height":0,"passthru":false,"label":"CLEAR","tooltip":"","color":"","bgcolor":"","icon":"","payload":"0,0,0","payloadType":"str","topic":"","x":190,"y":460,"wires":[["a96f4433de81777e","663a12cf6cede0ef"]]},{"id":"206d8115b7db9943","type":"ui_dropdown","z":"85fce9c6579baaa0","name":"SelectStrip Color","label":"SELECT STRIPCOLOR","tooltip":"","place":"SELECTSTRIP COLOR","group":"d2ace9cc.9f3998","order":4,"width":0,"height":0,"passthru":true,"multiple":false,"options":[{"label":"RED","value":"255,0,0","type":"str"},{"label":"GREEN","value":"0,255,0","type":"str"},{"label":"BLUE","value":"0,0,255","type":"str"},{"label":"WHITE","value":"255,255,255","type":"str"},{"label":"PURPLE","value":"255,0,255","type":"str"},{"label":"CYAN","value":"0,255,255","type":"str"},{"label":"YELLOW","value":"255,255,0","type":"str"}],"payload":"","topic":"","topicType":"str","className":"","x":370,"y":420,"wires":[["c0297b03d780b3ae"]]},{"id":"9d8f5d23eeba3096","type":"delay","z":"85fce9c6579baaa0","name":"","pauseType":"rate","timeout":"1","timeoutUnits":"seconds","rate":"4","nbRateUnits":"0.0101","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"outputs":1,"x":710,"y":560,"wires":[["c0297b03d780b3ae"]]},{"id":"c0297b03d780b3ae","type":"rpi-neopixels","z":"85fce9c6579baaa0","name":"WS2812BLEDSTRIP","pixels":"250","bgnd":"","fgnd":"","wipe":"0","mode":"pixels","rgb":"grb","brightness":"40","gamma":true,"x":960,"y":400,"wires":[]},{"id":"40080ab07f9975a1","type":"ui_button","z":"85fce9c6579baaa0","name":"Christmas","group":"d2ace9cc.9f3998","order":5,"width":0,"height":0,"passthru":true,"label":"Christmas","tooltip":"","color":"","bgcolor":"","icon":"","payload":"true","payloadType":"bool","topic":"","x":200,"y":620,"wires":[["5db1f6bc1f363b40"]]},{"id":"34273e36c70ad99f","type":"debug","z":"85fce9c6579baaa0","name":"","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"reset","targetType":"msg","x":750,"y":700,"wires":[]},{"id":"5db1f6bc1f363b40","type":"function","z":"85fce9c6579baaa0","name":"Christmas","func":"varnumberOfLEDs = 250;\n\nvar j = 0\n\nwhile (j<numberOfLEDs+1){\n        var setColor = j+','+ 255 +','+ 0 +','+0;\n       node.send({payload:setColor});\n       j++;\n        var setColor =j+','+ 0 +','+ 255 +','+ 0;\n       node.send({payload:setColor});\n       j++;\n        var setColor =j+','+ 0 +','+ 0 +','+ 255;\n       node.send({payload:setColor});\n       j++;\n}","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":460,"y":620,"wires":[["c0297b03d780b3ae"]]},{"id":"a96f4433de81777e","type":"change","z":"85fce9c6579baaa0","name":"","rules":[{"t":"set","p":"reset","pt":"msg","to":"payload","tot":"msg"},{"t":"delete","p":"payload","pt":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":440,"y":520,"wires":[["9d8f5d23eeba3096","34273e36c70ad99f"]]},{"id":"663a12cf6cede0ef","type":"delay","z":"85fce9c6579baaa0","name":"","pauseType":"delay","timeout":"1","timeoutUnits":"milliseconds","rate":"1","nbRateUnits":"1","rateUnits":"second","randomFirst":"1","randomLast":"5","randomUnits":"seconds","drop":false,"outputs":1,"x":530,"y":480,"wires":[["c0297b03d780b3ae"]]},{"id":"d2ace9cc.9f3998","type":"ui_group","name":"Christmastree","tab":"14b7bf29.77ead1","order":1,"disp":true,"width":"6","collapse":false},{"id":"14b7bf29.77ead1","type":"ui_tab","name":"Lights","icon":"dashboard","order":1,"disabled":false,"hidden":false}]
  • 单击Import
  • 现在应该能看到图中的流程了
  • 单击右上角的Deploy
  • 打开新的浏览器窗口,访问http://hostname>:1880/ui(将hostname>改成树莓派的IP地址)。现在应该能看到用户界面了。
注意:这段代码中灯光强度设置为40%,这样能限制电源的功率,亮度也不错。如果想改变这个值,双击流程末尾的rpi-neopixels节点,在输入框中修改。


第三步:连接

 
在连接任何电线之前,确保关闭树莓派!LED的连线很简单,只需要连接好LED的地线和信号线即可。但是要确保连线正确。我的连接方式如下:
  • 电源——红色
  • 树莓派的6脚——地线——白色
  • 树莓派的12脚(GPIO 18)——信号线——绿色(这就是为什么只能通过HDMI输出音频,因为音频也使用了同一个引脚)
现在可以给LED灯带连上电源了。根据灯带长度,你可能需要在灯带的多个点连接多个电源(藏在圣诞树后面就好)。
任何裸露的电线都要用电工胶布进行绝缘,任何设备都要确保小孩无法接触。
设置好之后,启动树莓派和灯带。访问http://hostname?:1880/ui(将hostname>改成你的树莓派的IP地址)。点击色环的任意位置,即可改变灯光颜色。
参考链接:
https://shopmakergenix.blogspot.com/2021/12/neopixel-christmas-tree-lights.html

     
     
       

售价8988元起,华为首款纵向折叠屏手机P50 Pocket发布;阿里云回应漏洞风波;Python 3.6生命周期中止|极客头条

Log4j 漏洞还没忙完,新的漏洞又出现了!

K8s稳居容器榜首,Docker冲顶技术热词,微服务应用热度不减,2021云原生开发者现状

登录查看更多
0

相关内容

Node-RED是一种编程工具,用于以新颖有趣的方式将硬件设备,API和在线服务连接在一起。它提供了一个基于浏览器的编辑器,使您可以轻松地使用调色板中的各种节点将流连接在一起,只需单击即可将其部署到其运行时。
专知会员服务
32+阅读 · 2021年9月14日
一天狂揽2000+星,微软面向初学者ML课程来了,完全免费
【经典书】Linux UNIX系统编程手册,1554页pdf
专知会员服务
45+阅读 · 2021年2月20日
专知会员服务
43+阅读 · 2020年12月28日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
【新书】傻瓜式入门深度学习,371页pdf
专知会员服务
187+阅读 · 2019年12月28日
通过Termux打造免root安卓渗透工具
黑客技术与网络安全
16+阅读 · 2019年8月16日
搭建自己的searx搜索引擎
黑白之道
13+阅读 · 2019年5月31日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
8+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
4+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2008年12月31日
国家自然科学基金
1+阅读 · 2008年12月31日
Arxiv
15+阅读 · 2021年12月22日
Talking-Heads Attention
Arxiv
15+阅读 · 2020年3月5日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Self-Driving Cars: A Survey
Arxiv
41+阅读 · 2019年1月14日
VIP会员
相关VIP内容
相关资讯
通过Termux打造免root安卓渗透工具
黑客技术与网络安全
16+阅读 · 2019年8月16日
搭建自己的searx搜索引擎
黑白之道
13+阅读 · 2019年5月31日
Pupy – 全平台远程控制工具
黑白之道
43+阅读 · 2019年4月26日
如何运用Python建一个聊天机器人?
七月在线实验室
17+阅读 · 2018年1月23日
10个深度学习软件的安装指南(附代码)
数据派THU
17+阅读 · 2017年11月18日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
8+阅读 · 2014年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
4+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2008年12月31日
国家自然科学基金
1+阅读 · 2008年12月31日
相关论文
Arxiv
15+阅读 · 2021年12月22日
Talking-Heads Attention
Arxiv
15+阅读 · 2020年3月5日
Object Detection in 20 Years: A Survey
Arxiv
48+阅读 · 2019年5月13日
Self-Driving Cars: A Survey
Arxiv
41+阅读 · 2019年1月14日
Top
微信扫码咨询专知VIP会员