Wifi同步灯的制作

电子说

1.2w人已加入

描述

第1步:材料

这些是 ONE 灯所需的材料(乘以您想要制作的灯的数量):

1x NodeMCU ESP8266芯片(每个7美元,2美元13美元)

1x主板或面包板(每个约1美元)

烙铁和焊料

1x neopixel戒指(如果你从adafruit.com购买,每个10美元,8美元)

1x 5V电源(至少500mA输出,所以1A或2A将是完美的)与microUSB连接(或桶式插孔,但买一个桶式插孔转换为裸线)(每个8美元)

不是绝对必要但强烈推荐用于电路保护(每个只需几美分,但你可能必须批量购买)

1x 300-500欧姆电阻(虽然我使用了200欧姆然后逃脱了它)

1x 100-1000uF电容器

电线(或者你得到这些丝带类型)(唱歌le core是最好的)(5美分的几美分)

你不需要太多电线;只需5英寸即可

你可以为外部灯做任何你想做的事(上面是电子部件的部件)。我选择激光切割木材和丙烯酸,用于光漫射的写生纸。

我在上面附上了亚马逊链接,找到了我能找到的最便宜的选项(截至2018年12月20日),但你绝对可以从不同的地方找到更便宜的组件。我还是一个大学生,所以我可以使用电容器和电阻器:尝试询问任何使用电子设备的朋友。如果你有其他想要从那里订购的东西,可以从adafruit.com购买Neopixels更便宜(节省运费)。你可以从DigiKey或Mouser获得电阻器和电容器,价格便宜得多,但运费可能会更高。对于电源,旧的手机充电器会很好(如果你想插上灯泡就可以使用microUSB电缆)进入USB端口而不是墙上插座。如果你绝对没有这些组件,你的成本将是最大的每盏灯约40美元(每盏灯少一点,你制造的越多,因为你通常会批量购买这些组件:例如,protoboard可以5个一包)。我有东西躺着,所以对我来说只有5美元(是的,我是朋友的囤积者,碰巧放弃了很多东西 - 加上我上次重复使用了neopixel戒指)。

下面附有Arduino代码和Adobe Illustrator文件(用于激光切割盒)。

第2步:概述:灯具如何工作

好吧,所以一旦你掌握了材料,你可能会想知道它们是如何组合在一起的。这是一个解释:

NodeMCU ESP8266是一个工作在3.3V逻辑的微控制器(与大多数Arduinos相比,5V逻辑)。它包括板载wifi芯片和GPIO引脚,用于将数字和模拟信号与您连接的组件配合使用。您将使用其中一个能够输出PWM信号的引脚(请参见此处的引脚:任何带有〜旁边的引脚可以生成模拟信号,而不是仅为0或1,LOW或HIGH的数字信号)来控制新像素环。对于编程,您可以通过Arduino IDE轻松完成此操作,可在此处轻松下载。 (注意,我向他们的ESP8266 HUZZAH提供了Adafruit指南,而不是我们提供的NodeMCE。该指南仍然适用于两个主板,但您只需选择一个不同的主板上传Arduino。)

新像素环是创造灯的彩色动画的原因。它在环形结构中具有可寻址的LED,每个LED都可以单独控制。它通常使用5V逻辑运行,这通常需要电平转换(这里解释),但幸运的是,Adafruit neopixel库已经更新以支持ESP8266。虽然5V组件对3.3V信号的响应不可靠,但当新像素以较低电压(3.3V而不是5V)供电时,它可以相当可靠地工作。在这里查看详细信息。

就微控制器与新像素的连接而言,最明智的做法是在新像素的数据线和GPIO引脚之间放置一个300-500欧姆的电阻,以便发送信号(以保护信号)任何突然激增的LED)。您还应该添加一个1000uF电容并联连接到新像素环的电源线和地线:这是为了防止突然的电流浪涌。阅读本文以获取有关使用这些LED环的更多最佳实践(此处为Adafruit的完整用户指南)。

为了与Blynk物联网平台连接,Arduino有一个使用Blynk的库。您可以在此处阅读文档,以了解有关一般使用Blynk的更多信息。对于入门,这是一个方便的指导专门为NodeMCU ESP8266和Blynk。

如果其中一些事情没有意义,请不要担心!未来的步骤将准确概述上传,下载,连接等内容。在开始构建之前,先阅读所有内容(是的,这是一个很长的教程,但至少是略读)!它会帮助你弄清楚事情是如何结合在一起的,而不仅仅是盲目地遵循指示。

步骤3:硬件

WIFI

WIFI

首先,连接硬件,如图所示上面的图片。 neopixel应该带有用于焊接电线的孔。在将导线连接到ESP8266的3.3V,接地和D2引脚之前,首先需要将导线焊接到标有PWR(电源),GND(接地)和IN(模拟信号输入)的孔中(针对引脚排列,请参见此内容) 。根据经验,红线表示电源,黑线表示接地,我喜欢用蓝色表示新像素的数据线(连接到D2引脚,它具有PWM信号)。

确保以正确的方向连接电容器:电容器具有极性,这意味着确定与哪一侧并联连接到neopixel的地面和力量。如果你看一下你的1000uF电容器,那么在侧面有一个灰色条带,表示电容器的负极(你也可以在上面的fritzing图中看到它)。这是应该与neopixel的地面并联连接的一侧。电阻没有极性,因此无需担心方向。

在建立牢固的连接方面,最好的方法是使用protoboard,这样你就可以将元件焊接在一起,而不仅仅是将电线插入面包板并冒险将它们冒出来。我使用面包板是因为我的时间很短,但同样,原型板更可取。面包板的好处在于它背面有粘性,所以我只是将贴纸剥开,将所有东西粘在我的灯座上。对于protoboard,你可以使用它们通常在角落处的4个孔将其拧入底座,或者只是将其粘贴/胶合。

步骤4:Arduino代码

.ino Arduino代码附在此步骤的底部以供参考。它看起来冗长而冗长,但不要担心:其中很多都涉及到解释所有内容的评论。我还想跳过行来添加空格来区分部分,这使得代码看起来更长。

要编辑以适合您的代码的主要部分:

Blynk授权令牌/代码(在您创建时通过Blynk通过电子邮件发送给您应用中的设备:请参阅下一页以获取更多信息)

每个灯泡都需要单独的授权码!

wifi域名(两个撇号之间“)

wifi密码(两个撇号之间”)

除此之外,只要您使用我的确切Blynk应用程序和整体硬件(因此在下一步中使用我的确切Blynk应用程序配置,在您的neopixel环中有12个LED,请使用ESP8266的D2引脚对于neopixel数据线等),您只需将该代码完全上传到您的ESP8266即可。 请注意,您需要为每个灯具使用不同的授权码!请参阅下一页,了解如何添加单独的设备并获取这些代码。如果它们位于不同的位置,请不要忘记将wifi域和密码与灯匹配。您可能希望根据您喜欢的动画和颜色来编辑其他内容,甚至可能根据您使用的引脚进行编辑。我已经对代码进行了评论,以帮助您根据需要更改内容。 (阅读Adafruit Neopixel库的线索测试示例代码)。

在您使用代码之前,您需要下载代码使用的库(代码顶部的库)。阅读并遵循Adafruit的本指南(从“使用Arduino IDE”开始),了解设置ESP8266所需的操作。是的:您需要安装CP2104驱动程序,添加到Arduino首选项中的其他Board Manager URL,安装ESP8266软件包(转到Sketch》 Include Library》 Manage Libaries 。..并搜索您需要的内容 - 查看图片下面),并在neopixel,Blynk等代码的顶部安装其他库。

WIFI

要将代码上传到来自Arduino IDE的ESP8266芯片,您需要选择正确的主板(NodeMCU ESP8266 ESP-12E),闪存大小,端口等(见下图)。除非将ESP8266插入计算机,否则将无法显示正确的端口SLAB_USBtoUART。但是一旦它连接起来,并且你确定你已经在上一步中正确连接了你的电路,你可以继续按下左上角的箭头将你的代码上传到电路板。是的,它确实需要比您通常的上传到Arduino流程更长的时间。您将看到它慢慢编译代码,然后是一串橙色句点。..。..。..。..。..。..上传时(显示在Arduino窗口的底部黑色部分)。

WIFI

现在,这是代码的细分。第一部分包括函数将使用的库,并初始化全局变量(可由代码中的任何函数访问的变量)。 BLYNK_WRITE(virtualPin)部件控制当Blynk应用程序中的小部件(连接到虚拟引脚)被切换(即打开/关闭,滑块位置改变)时所执行的操作。我在Blynk应用程序中使用的7个虚拟引脚中有7个。 void colorWipe(),rainbow()等的下一部分用于定义代码其余部分使用的函数。这些功能大多来自Adafruit的neopixel库示例代码(特别是strandtest)。最后的部分是所有Arduino代码中的标准void setup()和void loop():void setup()定义仅在电路板上电时发生一次的操作,而void loop()定义电路板连续执行的操作它通电时循环通过。 void loop()主要根据我创建的变量“animation”来定义灯将循环播放的动画。

第5步:Blynk IoT

WIFI

WIFI

WIFI

WIFI

WIFI

我选择Blynk而非Adafruit IO用于此版本2.0灯。 Adafruit IO很棒,但是Blynk与Adafruit IO相比有两件事:一个应用程序界面和接受“空白”作为wifi密码的能力(所以如果你连接到没有的公共wifi)密码,您可以将密码部分留空,即只是“”)。我的朋友经常去医院接受治疗,所以我希望在她过夜但想要一些虚拟公司的情况下具备这种能力:她仍然能够连接到医院的无线网络。

首先访问Google Play商店或iPhone的App Store,然后将Blynk应用下载到手机上。免费创建一个帐户并创建一个新项目。在右上角,您将看到一个QR码扫描仪按钮:使用它来扫描下图中的QR码,将我的所有按钮复制到新项目中。有关其工作原理的更多信息,请参阅此页面(“共享项目的配置”)。该页面还提供了有用的信息,以便稍后与灯泡的收件人共享项目。

WIFI

当然,您可以根据需要自定义按钮!向右滑动即可显示您可以添加的小部件。您应该了解您对小部件有哪些选项:我已经在按钮的设置中添加了图片(每张图片中有注释)以及在此步骤顶部使用它们的建议。

顺便说一句,在应用程序中添加小部件成本点,每个人都免费开始一定数量的小额。增加额外积分需要花钱(1000美元额外增加2美元)。我最终添加了1000个点以使我的配置工作,但你只需删除一两个按钮就可以使用免费金额。

在项目中,您需要按左上角的“螺母”按钮(“播放”三角形按钮旁边)来访问项目设置。

WIFI

您需要将项目添加到项目中以获取每个灯的授权令牌/代码,您可以在前面提到的Arduino代码中更改这些代码/代码。按“设备”右箭头以创建新设备。当您创建设备时,您将看到如下图所示的令牌(模糊为红色)。

WIFI

获得代码后,请记住在每个灯的Arduino代码中输入正确的令牌,wifi域和密码。您可能应首先输入自己的wifi凭据,以确保每个灯正常工作并根据需要进行调试,但在发货之前使用收件人的wifi域和密码进行更新。

确保打开应用程序以实际使用按钮!当应用程序处于“打开”状态时(按右上角的播放按钮,旁边的设置的螺母按钮),背景将变为纯黑色,而不是您在编辑模式时看到的虚线网格。如果您已将Arduino代码上传到ESP8266并将其插入,芯片应自动连接到wifi。通过按右上角的小型微控制器图标(仅在应用程序打开时可见)来检查:您应该看到为项目创建的设备列表以及哪些设备在线。

WIFI

步骤6:灯罩

对于实际灯泡,我选择激光切割木材(1/8“桦木胶合板)和丙烯酸(透明,1/4”,底面,所以光线透过)。木头上有我的朋友和我独有的剪纸,但我附上了Adobe Illustrator文件,用于拼图面部设计(制作一个4英寸的立方体),如果你喜欢这个形状,你可以剪掉(文件附在这一步,警告:在这些文件中,底面必须为1/4“厚,以便装配在一起。如果您想制作不同的尺寸或拥有一个厚度的所有东西,请使用makercase.com生成激光切割盒子的文件。

WIFI

WIFI

不要忘记留出电源线从灯泡中取出的孔。我忘了把它包括在内但是能够用钢丝钳在1/8“木头上切出一个小三角孔。

步骤7:与收件人共用灯

当您将灯泡发送给收件人时,他们还需要将Blynk应用程序从Google Play商店或Apple的App Store下载到手机上以控制灯泡。您可以让他们单独创建帐户或使用如果他们创建一个单独的帐户,您可以共享一个特殊的QR码供其他人使用1000点(不是我之前在Blynk步骤中共享的那个;这个QR码允许使用与您相同的应用程序,但他们无法更改任何按钮设置或配置 - 通读此页面,特别是“共享对硬件的访问权限”。)您需要确保打开应用程序(按右上角的播放按钮)因此,您可以看到微控制器按钮而不是螺母设置按钮,以便其他人使用该应用程序。

我通过向朋友提供我的登录信息来获得1000点左右的费用,这样她就可以通过我的帐户登录应用程序了。如果您将这些灯发送给那些电子设备不太好的人(一般来说是老年人),我建议您花2美元来创建一个共享链接,这样他们就无法访问您的帐户了。搞乱你的应用程序设置。有了这个QR选项(1000点成本),他们仍然有你的应用程序的克隆,但不能改变任何东西。

步骤8:使用应用程序

现在,您如何使用该应用程序来控制灯具?

使用大电源按钮打开和关闭灯泡(关闭时为红色,打开时为绿色)。如果灯泡熄灭,它会自动关闭应用程序中的所有其他按钮并将RGB设置为0,0,0。当您按下以重新打开灯泡时,灯泡将以白色脉冲开始。

右上角有三个RGB滑块,用于控制灯泡闪烁时的RGB颜色输出。他们在调整滑块时实时更新颜色。您还可以使用应用程序底部的斑马形彩色地图调整颜色。它连接到RGB滑块,因此滑块会根据您在地图中选择的颜色进行更新,反之亦然。如果您有特别需要的阴影但不知道相应的RGB数值,此地图会很有用。

应用程序左侧有按钮,带有快乐,愤怒,悲伤和meh的预设动画。 “快乐”使灯闪过彩虹色,“愤怒”使灯闪烁在红色和黄色之间,“悲伤”使灯闪烁蓝色和天蓝色,“meh”使灯泡产生旋转的彩虹轮。我选择了彩虹的快乐和meh,因为它们更有可能成为默认的日常动画。每当您按下其中一个预设按钮时,所有其他按钮都将被关闭(即如果您处于“开心”但按下“生气”,则快乐按钮会在几秒钟后自动关闭)。 请注意,需要更长时间从快乐和动画制作切换,因为灯泡必须经过完整的彩虹动画才能更改动画。如果您关闭任何预设按钮,则灯泡将默认返回闪烁RGB滑块所对应的颜色。如果您打开了任何预设动画但更改了RGB滑块,则不会发生任何事情:预设动画占主导地位。

在拔下灯泡之前,请按应用程序中的电源关闭按钮作为经验法则。然后在重新插入灯泡时按下应用程序中的电源。当任何灯泡未通电或连接到wifi时(不是世界末端,但它会弄乱灯泡),请勿调整应用程序按钮操作)。请参阅下一步了解原因。..。..

步骤9:**正确操作警告**

一个灯的运作存在漏洞。 Blynk接口不允许我有选择地控制当其他东西打开或关闭时可以切换的内容,但是我在代码中设置条件,以便在灯关闭或其他动画时切换不应切换的内容打开,切换将自行撤消:这需要大量调试,但它运行良好(在上面的视频中演示:应用程序拒绝灯关闭时发生的更改,如果预设动画打开,则任何更改为在关闭预设按钮之前,滑块不会影响动画!

剩下的一个缺陷是,如果你在芯片没有连接到互联网时在应用程序中切换东西,这个自动“撤消”功能将不起作用,并且灯将不会遵循应用程序命令。然后当你打开灯泡时,它不能准确地反映你正在做的事情(无论如何,当你打开电源时,灯泡会以白色闪烁开始)。要解决此问题,只需按下大电源开/关按钮:电源循环将重置应用程序中的所有内容,以便灯泡按预期运行。

长话短说:每当你启动时灯,只需在应用程序中重新启动电源按钮即可重置所有内容。如果您在没有插入灯泡的情况下拔掉灯泡或使用应用程序(或者即使您给它时间做出反应,如果您的wifi随机断开连接也可能没有正确响应,请执行此操作)。

第10步:完成

这是一个包装!对于与您有长期恋爱关系的人来说,这是一个很好的礼物:在你上大学之前为你的父母做一个或为你的新工作搬到另一个州,当你没有时间去看望他们时,为你的祖父母做一个,做一个让你的SO公司继续工作等等。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分