0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何通过网络应用程序创建可控制的变色RGB LED氛围灯

jf_9aVl32Dp 来源:Arm软件开发者 2023-01-03 13:55 次阅读

作者:Rob Zwetsloot

在今天新一期的HackSpace杂志中,Phil King向您展示了如何通过网络应用程序创建可控制的变色RGB LED氛围灯。

828e3a20-89f8-11ed-bfe3-dac502259ad0.png

PIR传感器的盖子为RGB LED发出的光提供了良好的漫射器

通过内置无线连接,Pico W是创建物联网IoT)项目的理想选择。为了更简单,Anvil发布了Pico W IoT工具包,使您能够轻松、安全地连接到您在Anvil平台上创建的web应用程序。有一个拖放式的web UI构建器、内置数据库、用户身份验证、电子邮件集成、HTTP API等,所有这些都与您的Pico W对话。

通过使用Anvil的特殊UF2固件映像,您可以在MicroPython中对Pico W上的程序进行编码,只需几行额外的代码即可连接到Anvil,然后在Anvil网站上创建一个web应用程序,该应用程序可以向Pico W程序发送数据或从Pico W中接收数据。在本教程中,我们将向您展示如何在Anvil web应用程序中使用滑块控制RGB LED的颜色。

01.安装固件

为了能够将Pico W链接到Anvil框架,您需要使用特殊的固件文件。到magpi.cc/enviluf2(https://github.com/anvil-works/anvil-pico/releases/)下载最新的“完整”UF2文件。(如果要避免覆盖Pico W上的任何现有文件,请使用“firmware-only”版本。)

与往常一样,按住Pico W的BOOTSEL按钮,同时通过USB将其连接到计算机,然后将UF2文件拖到已安装的“RPI-RP2”卷中。复制完成后,Pico W将自动重新启动并重新显示为一个名为“Pico W”的卷。

829dffc8-89f8-11ed-bfe3-dac502259ad0.png

图1:使用RGB LED的情绪灯电路的接线图

02.连接到WiFi

将Pico W连接到计算机后,打开Thonny IDE,确保Python解释器(显示在右下角)设置为“MicroPython (Raspberry Pi Pico)”。Pico W上的main.py文件将自动运行,因此您需要按下停止图标来停止它。打开boot.py文件,在顶部输入无线路由器的SSID(名称)和密码。

WIFI_SSID = ""


WIFI_PASSWORD = ""

现在,当Pico W重新启动时,它将自动连接到您的无线网络。

03.连接电路

将Pico W放在板子的一端,如图1所示。在另一端添加RGB LED,每条腿放置在不同的行中。它有四条腿,其中最长的应该是接地连接——使用跳线将其连接到Pico W上的GND引脚。

与LED一样,您应该使用电阻器来限制最大电流,以避免LED烧坏。我们用了三个330 Ω电阻器放置在测试板的中央凹陷上,将LED的R(红色)、G(绿色)和B(蓝色)支路连接到分别连接到Pico W上GPIO引脚13、14和15的跳线。

82ac6798-89f8-11ed-bfe3-dac502259ad0.png

Pico W运行连接到Anvil web应用程序的标准MicroPython代码

注意:我们的RGB LED腿的顺序是R、GND、B和G,但您的可能不同。

04.测试电路

为了确认一切都正确连接,我们将在Pico W上运行一个简单的程序。在您计算机上的Thanny IDE中,确保Python解释器(显示在右下角)设置为“MicroPython (Raspberry Pi Pico)”。

打开一个新文件并在RGB_test.py列表(背面)中添加代码。运行时,RGB LED应依次变为红色、绿色和蓝色。如果颜色顺序错误,则需要更换相关跳线

05.编写代码

现在,让我们为RGB LED“情绪灯”编写MicroPython代码,如mood_lamp_sliders.py列表所示。顶行import anvil.pico使pico W能够连接到anvil的服务器。第二行,import uasyncio as a,为运行并发函数设置异步调度程序。我们还从机器库导入Pin和PWM类,以便我们可以通过GPIO引脚控制RGB LED。

8370586a-89f8-11ed-bfe3-dac502259ad0.png

运行时,Pico W MicroPython代码将连接到Anvil web应用程序

再往下是一行,以"UPLINK_KEY ="开始。这是您稍后需要粘贴Anvil上创建的web应用程序的上行链路密钥的地方,以便Pico W程序可以链接到它。程序底部有一行可以使用它进行连接。

接下来,我们创建三个变量来设置RGB LED的红色、绿色和蓝色部分的级别。然后,我们按照测试代码设置PWM引脚。

06.调用decorator

在我们的代码中,我们有三个功能:一个用于控制RGB LED的红色、绿色和蓝色部分。在每个函数之前,我们添加一个“decorator”,并在定义函数的行的开头添加async;例如:

@anvil.pico.callable_async
async def red(slider):

这让我们连接的Anvil web应用程序知道可以从web调用此功能。我们将向其发送一个值,该值由web应用程序中的滑块设置,该滑块将设置该颜色的级别。当我们使用从0到255的值作为滑块时,我们将其乘以256,将其转换为PWM电平设置的无符号16位整数(0到65535)。

83b712a0-89f8-11ed-bfe3-dac502259ad0.png

RGB_test.py代码。在此处获取完整代码(https://github.com/themagpimag)

07.设计web应用程序

去anvil.works注册一个免费账户。我们希望为我们的灯使用滑块控件,这不是标准的Anvil组件,因此我们将打开一个包含滑块库的演示应用程序:转到Anvil.works/library/slider并单击“Open in Anvil”。

Sliders演示应用程序只有两个滑块,我们需要三个,分别为红色、绿色和蓝色。从右侧的“Toolbox”面板中,将滑块自定义组件拖动到“Reset”按钮的正上方。现在选择一个现有的“Value:”元素,按CTRL/CMD+C复制它,然后用CTRL/CMD+V将它粘贴到新滑块下。复制并粘贴一个“1”组件到它的右侧。

依次单击每个“Value:”元素,并将其文本(在右侧的“属性”面板中)分别更改为“红色:”、“绿色:”和“蓝色:”。将每个“1”文本元素设置为“0”。此外,将“Blue:”元素名称设置为“label_6”,并将附带的“0”元素名称设为“label_7”。对于每个滑块,将“slider_max”值设置为255。

83c848ea-89f8-11ed-bfe3-dac502259ad0.png

mood_lamp_sliders.py。在这里获取完整代码(https://github.com/themagpimag)

08.启用服务器上行链路


单击左下角的“+”按钮并选择上行链路,然后单击服务器上行链路旁边的启用。这将为应用程序生成一个服务器上行链路密钥(忽略客户端密钥),您应该将其粘贴到Pico W上MicroPython代码的第5行,以便它可以连接到该应用程序。



09.调整web代码

我们需要更改web应用程序代码,以便将每个滑块的设置发送到Pico W程序中的红色、绿色或蓝色功能。单击“Code”选项卡,将以下行(缩进)添加到slider1_change函数中:

anvil.server.call_s("green",self.slider_1.level)
  pass

请注意,滑块1是中间的滑块,我们将其指定为绿色。同样,对于slider2_change,添加以下两行(缩进):

anvil.server.call_s("red",self.slider_2.level)
  pass

为滑块3添加类似的新功能

defslider_3_change(self,**event_args):
self.label_7.text=self.slider_3.level
anvil.server.call_s("blue",self.slider_3.level)
  pass

最后,将这些行添加到web代码中的reset_btn_click函数:

self.slider_3.level=0
self.label_7.text=0
anvil.server.call_s("red",0)
anvil.server.call_s("green",0)
anvil.server.call_s("blue",0)
  pass

10.运行两个应用程序

我们现在可以出发了。首先,在Thonny运行Pico W程序。您将在Shell窗格中看到消息,以显示它正在连接。完成后,运行Anvil web应用程序。现在,您可以移动滑块来调整RGB LED的红色、绿色和蓝色组件,以改变其阴影。

为了使其更有效,您可能需要漫射LED的光。我们简单地将PIR传感器的半透明塑料盖放在上面,效果相当好。你现在有了一个网络控制的情绪灯!下一次,我们将在Anvil网络应用程序中读取Pico W传感器数据。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2515

    文章

    47698

    浏览量

    738693
  • led
    led
    +关注

    关注

    237

    文章

    22354

    浏览量

    645546
  • RGB
    RGB
    +关注

    关注

    4

    文章

    746

    浏览量

    57296
  • PIR
    PIR
    +关注

    关注

    0

    文章

    70

    浏览量

    17780

原文标题:Pico W IoT搭配Anvil:情绪灯| HackSpace#62

文章出处:【微信号:Arm软件开发者,微信公众号:Arm软件开发者】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    蓝牙4.0 RGB LEDiPhone5控制方案

    `蓝牙4.0 RGB LEDiPhone5控制方案 智能手机虽然都有蓝牙功能,但除了用来连接耳机跟键盘,实际效用实在有限。或者,拿来遥控灯泡如何呀?这可不是使用者懒到多走一点路去按开
    发表于 03-21 11:22

    具有IO-Link接口的多段式RGB LED设计

    。可通过 IO-Link 或 USB 控制,而且可配置不同的模式。主要特色灵活且易于控制RGB
    发表于 10-08 08:49

    智能拍拍单片机芯片,打造触控感应拍拍

    与彩灯互相切换功能2、带DC5V充电功能3、带震动开关功能4、供电工作电压:3.7V智能拍拍单片机方案,打造智能可控的专属彩色生活。拍拍可实现LED/
    发表于 03-18 11:19

    RGB LED驱动单片机方案,可根据需求定制开发

    RGB三原色的珠。通过位于内存条中间的EN8F152单片机芯片,实现对灯光的控制,即可令这些LED
    发表于 03-20 09:44

    DIY设计智能RGB/RGBCW聚光

    、Redis 等)无线网络设置为什么我做这个?我开发这个项目是因为我需要一个用于不同用途的 LED 聚光。市场上的那些太贵了。特征40 个 RGB
    发表于 08-22 06:31

    RGB LED控制器的资料分享

    描述RGB LED控制
    发表于 09-09 07:44

    如何通过MQTT控制RGB LED

    IDE 进行编程的。所有这些都 100% 有效。我可以通过 OpenHAB 的用户界面打开/关闭。现在这是我有问题的地方。 我还有一台 WeMos D1 Mini。我制作了一个定制的 RGB
    发表于 05-23 06:44

    如何用ESP8266制作一个声音反应性RGB LED条?

    wifi 盒子的东西连接到 led 和预制应用程序。 所以我不能在这里使用预制应用程序,我也准备从 MIT App Inventor 创建一个应用
    发表于 06-07 07:14

    可控控制变色吊灯电路

    可控控制变色吊灯电路 市售的这种变色吊灯造型新颖别致,使用方便,在不同需要的场合可以随意变换灯的颜色,从而改变环境气氛。从它的构造原理可知,五只乳
    发表于 07-27 11:09 892次阅读

    RGB混光的基本原理与RGB汽车氛围灯的应用研究

    就集中在颜色一致性的控制方面。本文以OSRAM的LRTB GVSG为例,介绍了RGB混光的基本原理及应用难点,探讨了基于温度探测反馈的RGB汽车氛围灯颜色一致性
    发表于 10-21 09:06 169次下载
    <b class='flag-5'>RGB</b>混光的基本原理与<b class='flag-5'>RGB</b>汽车<b class='flag-5'>氛围</b>灯的应用研究

    rgb led变色原理详解_RGB三基色LED变色程序

    RGB LED与白光LED两者其实都是希望达到白光的效果,只不过一个是直接以白光(荧光粉)呈现,另一个则是以红绿蓝三色混光而成。
    的头像 发表于 02-27 09:45 10.7w次阅读

    如何通过Android应用程序控制LED

    它实际上是通过一个定制的Android应用程序控制的,你可以使用智能手机改变LED灯的颜色,也可以控制亮度。
    的头像 发表于 04-10 16:14 1.1w次阅读

    RGB LED在汽车氛围灯中的应用说明

    本文档的主要内容详细介绍的是RGB LED在汽车氛围灯中的应用说明包括了:简介,光色混色原理,PWM驱动电路拓扑结构,颜色校准,颜色补偿,照明控制,统明亮的
    发表于 09-11 08:00 24次下载
    <b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>在汽车<b class='flag-5'>氛围</b>灯中的应用说明

    如何应用RGB LED变色连续渐变色来拯救世界

    电子发烧友网站提供《如何应用RGB LED变色连续渐变色来拯救世界.zip》资料免费下载
    发表于 07-05 09:35 0次下载
    如何应用<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>渐<b class='flag-5'>变色</b>连续渐<b class='flag-5'>变色</b>来拯救世界

    如何使用Arduino控制RGB LED

    在本指南中,您将学习如何使用Arduino控制RGB LEDRGB(红-绿-蓝)LED可以通过
    的头像 发表于 02-11 10:28 1053次阅读
    如何使用Arduino<b class='flag-5'>控制</b><b class='flag-5'>RGB</b> <b class='flag-5'>LED</b>