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传感器数据。

审核编辑:汤梓红

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

    关注

    2552

    文章

    51383

    浏览量

    756138
  • led
    led
    +关注

    关注

    242

    文章

    23347

    浏览量

    662720
  • RGB
    RGB
    +关注

    关注

    4

    文章

    801

    浏览量

    58673
  • PIR
    PIR
    +关注

    关注

    0

    文章

    75

    浏览量

    17909

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

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

收藏 人收藏

    评论

    相关推荐

    乐控变色LED电路图

    乐控变色LED电路图
    发表于 06-16 15:21 2754次阅读
    乐控<b class='flag-5'>变色</b><b class='flag-5'>LED</b><b class='flag-5'>灯</b>电路图

    RGB Led是什么?

    RGB Led是什么? RGB LED与白光LED两者其实都是希望达到白光的效果,只不
    发表于 11-18 13:41 2.4w次阅读

    带有LIN自动寻址的RGB氛围解决方案-E521.31

     德国公司日前宣布推出一款高度集成的单芯片方案E521.31,该芯片主要应用于汽车RGB氛围。 E521.31芯片带有LIN总线自动寻址功能,专门为车内RGB-LED
    发表于 07-07 13:37 7334次阅读

    基于单片机的综合应用程序交通【C语言】直接控制led

    基于单片机的综合应用程序交通【C语言】直接控制led
    发表于 01-06 14:18 10次下载

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

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

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

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

    LEDRGB色盘算法应用程序APP的详细资料免费下载

    本文档的主要内容详细介绍的是LEDRGB色盘算法应用程序APP的详细资料免费下载。
    发表于 09-03 08:00 11次下载
    <b class='flag-5'>LED</b><b class='flag-5'>灯</b><b class='flag-5'>RGB</b>色盘算法<b class='flag-5'>应用程序</b>APP的详细资料免费下载

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

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

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

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

    用自己声音或智能手机控制RGB LED带实现梦幻效果

    本项目将使用智能手机设置RGB LED带的颜色,这些RGB带内建蓝牙功能,可接收智能手机上的android
    的头像 发表于 07-15 09:11 6639次阅读
    用自己声音或智能手机<b class='flag-5'>控制</b><b class='flag-5'>RGB</b> <b class='flag-5'>LED</b><b class='flag-5'>灯</b>带实现梦幻效果

    RGB LED控制器开源分享

    电子发烧友网站提供《RGB LED控制器开源分享.zip》资料免费下载
    发表于 08-18 14:41 20次下载
    <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 LED条.zip》资料免费下载
    发表于 12-29 11:39 4次下载
    Arduino<b class='flag-5'>控制</b>的<b class='flag-5'>RGB</b> <b class='flag-5'>LED</b><b class='flag-5'>灯</b>条

    自动RGB/氛围

    电子发烧友网站提供《自动RGB/氛围.zip》资料免费下载
    发表于 02-13 16:32 12次下载
    自动<b class='flag-5'>RGB</b>/<b class='flag-5'>氛围</b><b class='flag-5'>灯</b>

    使用Arduino的Android控制RGB LED

    电子发烧友网站提供《使用Arduino的Android控制RGB LED条.zip》资料免费下载
    发表于 07-05 09:45 2次下载
    使用Arduino的Android<b class='flag-5'>控制</b><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>来拯救世界