所需材料:
1塑料外壳PolyCase和PolyCase
1半尺寸可焊面包板Adafruit
3 leds Adafruit
3个高而窄的按钮Adafruit
1个短而宽的按钮Adafruit
1个USB-A型男性插头Adafruit
电线Sparkfun
聚氨酯胶Lowes
所需工具:
烙铁亚马逊
Dremel(如果你没有,一把美工刀就足够了)Lowes
钻床(如果你没有,那么手钻就足够了)Lowes
第1步:设计
微控制器:
作为微控制器,我使用由Adafruit制作的ESP8266羽毛Huzzah,原因如下:
它具有wifi功能
它很便宜(18.95美元的组装
相对较小(23mm x 51mm x 8mm/0.9“x 2”x 0.28“)
它有9个GPIO引脚(我需要7个)
微控制器将由USB插座的5V供电。
4个GPIO将用作按钮的输入,3个将用作指示灯的输出。其中一个按钮(关闭每个灯的按钮)都包含一个LED,所以对我来说这个按钮的反馈是没有意义的。
按钮:
按钮的设计非常简单:对于3个小按钮,我选择了触觉开关,也称为SPST开关。我挑选了那些高大的,以便它们能够从外壳中脱颖而出。对于更大的按钮,我还选择了一个SPST开关,但是它更短,因此它将嵌入外壳中,目标是不会意外地推动它。它还有一个内置LED,并有一个I/O符号。
如上图所示,这些开关通过3.3k下拉电阻为GPIO供电,并提供3.3V电压。按下GPIO。
LED:
我使用了5mm黄色LED。它们只是一端连接到GPIO,另一端连接到3.3k电阻。
外壳:
外壳,我需要一个内部尺寸至少为51mm x 97mm x 11mm/2.0“x 3.8”x 0.4“的塑料盒。我挑选的盒子内部尺寸为52mm x 100mm x 19mm/2.0”x 3.9“x 0.7”。这意味着我必须在面包板后面堆放一些纸板或纸,以确保系统与外壳盖齐平,并且按钮将从盖子中伸出。
所有组件焊接在可焊接的面包板上。这使其比传统的面包板更加永久和安全,并且不需要设计定制的PCB。我发现Adafruit的半尺寸按钮工作得很好。
第2步:制作电路板
焊接板是有趣的部分!只需按照接线图,一切都应按计划进行。请特别注意以下几点:
注意LED极性(短引线阴极接地/长引线阳极正电压)。
LED应尽可能低到面包板。否则,LED的顶部将太高并且太多地从外壳中伸出。
在焊接Feather Huzzah之前,我从中取出了电池连接器。我们不需要它,它非常高,所以它不允许我们正确放置机箱盖。
我在羽毛Huzzah的“棉絮”针脚和地面导轨上放置了一个90度的公母针连接器。然后将它们连接到USB的5V和接地。
提示:
使用第三只手,或自己制作一只用一块木头,4个Loc-line软管和4个鳄鱼夹
第3步:制作附件
USB插头:
使用dremel或美工刀切割在后侧的机箱上角之一打开USB插头。将USB插头插入其中。
确保USB插头从机箱背面突出11.5 mm/0.45“,并使用聚氨酯胶将USB插头粘在机箱中。
焊接+ 5V的电线USB插头和USB插头接地线。当您将电路板放置在外壳中时,这些电线将分别连接到90度公母接头的“电池”和接地。
按钮和LED开口:
在外壳盖上钻出按钮和LED突出的孔。直径为4mm/5/32“的钻头是非常适合小按钮,8mm/5/16“非常适合较大的按钮。使用埋头钻头制作锥形孔使其看起来不错。对于LED,我钻的直径比LED本身小得多( 1毫米/1/32英寸)。否则,我发现我选择的LED会产生太多光线。如果灯开关位于卧室,那么从开关发出太多光可能会令人不安。
提示:
放置一个空的可焊接外壳盖上的面包板,并使用薄尖笔在应钻孔的外壳上绘制。
步骤4:编程
I使用Arduino IDE编程我的Feather Huzzah。如果你还没有完成,请下载并安装Arduio IDE。
为了能够使用Blynk,我必须使用Blynk库来安装Arduino IDE。 Blynk图书馆可以在这里下载。按照以下步骤安装库(引自Blynk网站):
下载最新版本的.zip文件。
将所有这些库复制到Arduino IDE的 your_sketchbook_folder 。要查找 your_sketchbook_folder 的位置,请转到Arduino IDE中的顶级菜单:文件 - 》首选项(如果您使用的是Mac OS - 请转到 Arduino→首选项)
解压缩它。您会注意到存档包含多个文件夹和几个库。
your_sketchbook_folder 的结构现在应该与您的其他草图一样(如果有的话):
your_sketchbook_folder/库/Blynk点击your_sketchbook_folder/库/BlynkESP8266_Lib点击。..
your_sketchbook_folder/工具/BlynkUpdater点击your_sketchbook_folder/工具/BlynkUsbScript
。..
请注意库应该转到库,工具转到工具。如果您没有 tools 文件夹,可以自己创建。
它应该有相当好的文档记录,但如果您有任何问题,请随时发表评论。
总之,这是代码的工作方式:
定时器每200 ms运行一次checkInputs函数。此功能检查按钮是否被按下或释放。
checkInputs:
如果按钮被释放,则它不会执行任何操作。
如果按钮按下,它切换开关的状态(switchState),并调用函数sendState。
sendState:
如果按下其中一个小按钮,函数sendState将发送新的通过内置函数bridge.virtualWrite切换到相应继电器的状态。
如果按下更大的按钮,函数sendState将通过内置函数向所有继电器发送“关闭”状态function bridge.virtualWrite。
代码的其余部分是设置,创建变量,连接到已知的wifi等。..
步骤5:设置Blynk App
Blynk是一个很棒的应用程序,用于处理手机,设备和Blynk服务器之间的链接。他们有一个很棒的社区,很多例子,应用程序界面是用户友好的,同时仍然可以自定义。该应用程序是免费的,但它附带了可以添加的有限数量的小部件。如果你添加我拥有的所有小部件,你可能需要购买5美元的信用额度。但是很多小部件都是可选的,你可以免费做这个项目,特别是如果你想控制少于15个继电器。
如果您之前从未使用过Blynk,请按照以下步骤进行设置:
在智能手机上从Google Play商店或App Store安装Blynk应用。
在Blynk应用程序中:
登录或创建帐户
创建新项目
为每个远程和中继添加设备(选择ESP8266,具有wifi连接)
Build
使用USB电缆将羽毛Huzzah连接到计算机。
确保在上一步中下载并安装了Blynk库。
在程序中,输入您通过Blynk发送的电子邮件收到的身份验证令牌。
在工具 - 》端口中,选择Arduino所连接的COM端口。
我在仪表板上创建了5个选项卡:
灯
灯光选项卡用于打开/关闭各个灯(或连接继电器的任何东西)。在切换模式下,我使用了按钮小部件,其中交换机作为目标,V0是0和1之间的输出。我为每个开关做了那个。
组
“组”选项卡用于打开/关闭灯组(或任何连接到灯组的灯组)继电器)。我只是为每个房间创建标签,然后重复与Lights选项卡相同的步骤,每个组都有一个按钮小部件。
定时器
我添加了几个计时器,可以用来在晚上打开前门灯,或者在你度假时模拟一个存在,或者让你的床头灯点亮以唤醒你等等。..我选择了以下小部件:
时间输入小部件,我在其中选择了要控制的relayI,输出V3,允许启动/停止输入,以及允许时区选择。
一个按钮小部件,我在模式“switch”中选择了相同的继电器,输出V4在0和1之间。这是告诉继电器是否应遵循时间表。
另一个按钮小部件,我在模式“switch”中选择了相同的继电器,输出V0在0和1之间。这是手动打开或关闭继电器。
监视器
“监视器”选项卡包含一个终端小部件。这仅用于调试目的。在“source”中,我选择了要调试的设备。输入是V16。我还有一个通知小部件,当硬件脱机时通知我(可选),以及一个实时时钟小部件,设备现在能够当前时间(只有你使用定时器时才需要)。
的LED
LED标签包含一堆用作反馈的LED。这也是可选的。我选择了LED小部件,选择了一个输入V1的继电器。我为每个接力做了那个。
步骤6:使用和潜在的改进
我现在有了在我家安装了6个遥控器,并用了几个月。我相信它们运作良好,我没有太多改进。 “关闭所有灯”功能是一个很大的改进。外观很简单,很清醒,我喜欢。 LED反馈的小孔不会产生太多光线,因此它们不会在夜间打扰我,但即使在白天它们仍然可见。响应时间非常快。
以下是可以改进的一些事项:
如果用其他设备打开/关闭继电器而不是链接遥控器(例如,使用app),遥控器不知道继电器状态已经改变,因此它不会更新其反馈灯。此外,当我想用遥控器打开灯时,在我用我的应用程序打开它后,我将不得不按两次按钮:第一次,遥控器打开灯,即使它已经打开,第二次关闭它。
这不是什么大问题,但是我试图实现这个修复,但是找不到定期检查其他设备状态的Blynk函数。如果你知道如何做到这一点,请在评论中告诉我。
我选择了我找到的最小的外壳,但它仍然很厚。它们可能更纤细,但我找不到这样的塑料外壳。
-
微控制器
+关注
关注
48文章
6808浏览量
147601 -
WIFI
+关注
关注
81文章
5159浏览量
199409
发布评论请先 登录
相关推荐
评论