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

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

3天内不再提示

如何制作一个与wifi连接的灯开关

454398 来源:工程师吴畏 2019-08-08 16:56 次阅读

所需材料:

1塑料外壳PolyCase和PolyCase

1羽毛HUZZAH与ESP8266 Adafruit

1半尺寸可焊面包板Adafruit

3 leds Adafruit

3个高而窄的按钮Adafruit

1个短而宽的按钮Adafruit

7个3.3k电阻亚马逊

1个USB-A型男性插头Adafruit

电线Sparkfun

聚氨酯胶Lowes

所需工具:

烙铁亚马逊

Dremel(如果你没有,一把美工刀就足够了)Lowes

钻床(如果你没有,那么手钻就足够了)Lowes

第1步:设计

如何制作一个与wifi连接的灯开关

微控制器

作为微控制器,我使用由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
收藏 人收藏

    评论

    相关推荐

    【开源项目】基于ESP32制作的小小光立方,可以使用wifi连接到电脑

    的工艺,花钱买设备即可。光立方使用usb口实现给esp32和51上传代码,使用自锁开关切换上传模式,无需繁琐的操作。光立方体积小,使用碳钢丝连接
    发表于 12-19 13:51

    手机wifi芯片坏了能连接网络吗 手机wifi芯片坏了会出现什么情况

    信号弱或不稳定:即使你能够连接到某个 WiFi 网络,WiFi 信号的强度可能会非常弱,导致连接不稳定,经常掉线或连接速度缓慢。
    的头像 发表于 09-04 15:55 3368次阅读

    制作鼠标连接

    DIY制作
    学习电子知识
    发布于 :2023年07月24日 22:37:39

    构建wifi开关以与OpenRemote IoT智能家居起使用,加载后中断不起作用是怎么回事?

    您好,我正在构建 wifi 开关以与 OpenRemote IoT 智能家居起使用。每个电灯开关都有
    发表于 06-12 07:39

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

    我想用 ESP8266 制作声音反应性 RGB LED 条,声音应该从我手机的麦克风中捕获并发送到 ESP,ESP 将寻址 LED。 这可能吗 ? 我在网上看到过这些类型的东西,
    发表于 06-07 07:14

    当Wemos最初由L298n供电时无法连接WIFI怎么解决?

    这里有奇怪的问题。当 Wemos 最初由 L298n 供电时,我无法连接WIFI。 我将 wemos 连接到 L298n Hbridge shield 以驱动两电机打开/关闭两
    发表于 05-26 11:45

    Relay + esp12F编程来控制带有wifi和普通开关,如果它安装在开关板内会经常重置和卡住的原因?

    我已经阅读了所有针对此问题的主题,但仍未通过我正在使用的设置得到解决。 我有 Relay + esp12F 编程来控制带有 wifi 和普通开关
    发表于 05-25 12:21

    WiFi如何连接到蜂窝模块?

    我打算制作 wifi 热点(MiFi?),这类似于如今大多数可穿戴设备和些无人机提供的东西 - 因为它们的设备上同时具有蜂窝和 wi-
    发表于 05-24 08:41

    NodeMCU ESP8266 wifi信号问题求解

    工作正常。谁能证实这点?如果是这样,可以做些什么来帮助解决这个问题?我想 5v 的电源就足够了(电路板和 LED 条都说不要超过这个),但也许如果电路板和 LED
    发表于 05-16 08:54

    创建永远在线的设备,为什么没有wifi网络?

    我想创建永远在线的设备,可以经常移动。 如果这个设备可以找到它知道的 wifi 网络,我希望它连接旦找不到要
    发表于 05-16 07:34

    如何用ESP8266制作wifi扫描仪并显示信息?

    我正在用 ESP8266 制作 wifi 扫描仪并显示信息我正在使用基于 SPI 的诺基亚 1616/C100 显示器。这次我在本地编码 ESP8266,而不是使用 mcu + e
    发表于 05-16 06:35

    Wifi需要很长时间才能连接怎么处理?

    嗨,我成功地制作运动传感器。问题是,出于某种原因,当我将 wifi 配置保存到 spiffs 时,需要 6 到 15 秒才能连接
    发表于 05-15 07:51

    esp可以与wifi连接起使用吗?

    0 上工作,是真的吗? 2 - 研究些示例代码我意识到wifi模式有时会从AP变为STA,这可以避免吗?因为第二 sp8266 必须保持连接到接入点 (STA) 3 - 我可以
    发表于 05-08 06:48

    wifi.sta.connect() 会干扰wifi.ap连接吗?

    正在托管小型网络服务器,我正在浏览器中访问它。在该浏览器中,我输入用于将 ESP 连接到我的主要家庭 WiFi 网络的数据。当我点击保存按钮时,数据被发送到 ESP,然后在
    发表于 04-27 07:02

    nodeMCU与wifi断开连接后如何重新连接

    断开连接 (WiFi.status() = 6)。旦断开连接,我就无法通过 WiFi.begin(ssid, pass) 再次
    发表于 04-27 06:10