如何通过esp8266模块增强标准的硬连线门铃

电子说

1.3w人已加入

描述

步骤1:硬件和材料

ESP8266

需要以下材料

该示意图显示了所使用的电路。假设使用低压交流电铃,这是硬连线简单铃的最常见类型。铃单元从外部铃式变压器获得功率,通常约为10V交流电。这不是至关重要的,唯一的限制是降压转换器的最大电压。我使用的是基于MP2307的,最大输入为23V dc(〜16V AC)。

通常有3个活动端子。按下钟形开关,即可从交流电源的一侧连接到钟形螺线管。该模块使用两个交流端子通过一个简单的半波整流器产生直流电源。通过监控实际螺线管两端的电压来实现钟声按动感应。这通常会接地,但是当铃响时,将是完整的交流电。电阻/齐纳二极管对此进行钳位,以便将0-3.3V 50 Hz脉冲馈入GPIO引脚。该软件对其进行处理,以使每按一次钟就可激活一次。

我将电路构造在一些带状板上,并且该电路小到可以轻松装入钟单元中。我使用简单的跳线连接器来简化安装,并与主交流电源一起专门安装,以便在需要时可以很容易地将其复位。

所示的原理图包括一个DS18B20温度传感器。这是可选的。我将其用作监视房屋中大部分区域的网络的一部分。如果包括的话,最好用几厘米的电缆将传感器连接到电缆中,以使其与任何局部热效应隔离开。

ESP-12F(ESP8266)wifi/cpu模块

DC Buck转换器用于3.3V电源

整流二极管(例如1N4001)

电解电容器220uF 35V

电解电容器220uF 16V

齐纳二极管3.3或2.6V

电阻器

插排板件

连接器(如有需要)

DS18B20数字温度传感器

步骤2:软件

门推单元使用github上提供的Arduino草图

需要对此进行调整以适应当地条件,然后在esp8266 Arduino环境中进行编译。需要以下库,它们是标准的或可以添加的。

ESP8266WiFi

WifiClient

ESP8266WebServer

ESP8266mDNS

ESP8266HTTPUpdateServer

ArduinoJson

WifiClientSecure

IFTTTMaker

DNSServer

WiFiManager(可选使用)

OneWire

DallasTemperature

草图中要更改的项目,包括

如果不使用WifiManager则本地wifi访问详细信息(ssid,密码)

用于Web访问的授权代码AP_AUTHID。使其长度适中是一件好事。它可以包含字母数字字符。

固件OTA密码update_password

WifiManager密码WM_PASSWORD

可以通过注释掉WM_NAME来手动设置Wifi

IFTTT制造商密钥(请参阅通知步骤)

可选更改包括

门铃检测器的更改输入引脚

更改的引脚对于温度传感器

将Web访问端口从默认80更改

一旦完成,则应首先使用常规的串行上传功能进行编译和上传。随后的更新可以通过在Arduino环境中编译导出二进制文件,然后在ip/firmware中访问OTA接口来完成。

在软件中,通过中断检测到第一个脉冲的上升沿来检测门铃推动从检测器电路。所有后续中断都将被忽略。超时用于在BELL_MIN_INTERVAL设置为10秒后重新激活检测器。

esp8266 Web服务器上可能会访问其他活动

ip/recent显示最近门铃活动

ip/reloadConfig重新加载espConfig

ip/bellPush模拟门铃推送

步骤3:配置

构建时,该软件从本地Web服务器获取其配置。该模块根据其Mac地址加载配置数据。这使得使用相同的二进制文件运行多个模块非常方便,并且还使得无需重新编译即可更轻松地更新配置。可以跳过此步骤,并将配置数据直接放入代码中。

我将配置文件存储在EasyIOT服务器上,该服务器在easyIOT/html上有一个文件夹,可在其中轻松检索配置文件。

该文件称为espConfig,它是一个简单的文本文件,为每个可能的Mac地址存储许多参数(12)。模块仅加载为其Mac地址设置的参数。

文件中的示例为

#Hall

#Mac地址

123456ABCDEF

#模块名称

esp8266-hall

#服务器模式掩码(1 =温度感应,4 =锅炉模式,4 =门铃)

9

#EIOT节点的温度

N9S0

#未使用

-1

#最小温度间隔以秒为单位

60

#最大温度间隔以秒为单位

300

#锅炉功率间隔

0

#EasyIOT锅炉电源节点

-1

#EasyIOT钟形推节点

N10S0

#IFTTT通知值

前面

#IFTTT通知事件名称

门铃

#action URL

192.168.0.2/snap.php

任何以#开头的行都会被忽略。所有行都必须存在。 -1用于忽略的参数。

在模块首次启动时读取配置文件。也可以通过访问ip/reloadConfig将其重新加载到正在运行的系统中(更改配置时)

配置的锅炉模式部分与此处无关,而是用于连接到中央供暖系统的温度传感器中

第4步:通知

当检测到门铃推动时,将检测到锅炉正在加热的管道输出。

它尝试通过IFTTT或PushOver通知此情况。我现在使用PushOver,因为它提供了更快的响应。

对于IFTTT,您需要一个帐户并激活Maker WebHoooks频道。需要将此通道中的MakerKey编译为代码。

使用Maker WebHooks设置IF操作,并使用与配置中相同名称的事件名称(例如,门铃)。 THEN操作应为IFTTT通知。您可以将value1添加到将在配置文件中的通知中。如果您有2个或更多检测器,这将非常有用。

您需要在手机上安装IFTTT应用,然后在门铃被触发时就会出现通知。

对于PushOver,您需要一个PushOver帐户并按照说明接收API通知。您需要使用PushOver帐户中的值在软件中设置NOTIFICATION_APP和NOTIFICATION_USER令牌。

您需要在手机上安装PushOver App,并支付一笔一笔的费用,以接收通知。在我看来,这是值得的,以获得更快的响应。

步骤5:EasyIOT集成

该软件可以将温度和门铃推送报告发送到EasyIOT服务器。 EasyIOT自动化可以根据这些报告来执行其他操作。

设置EasyIOT服务器(例如,在Raspberry Pi上)。在esp8266软件中配置IP地址和用户名密码,然后进行编译。

现在在EASYIOT配置中添加虚拟驱动程序。选择温度模拟输入,并记下EasyIOT节点名称。这应该放在espConfig文件的温度节点名称部分。

添加第二个虚拟驱动程序。选择门数字输入,记下节点名称并放入espConfig文件。

步骤6:其他Bell Push操作

该软件有一个名为actionBellOn的例程。按照本文所述,可以做三件事

IFTTT通知

EasyIOT报告

执行操作URL

URL可用于触发其他Web服务器上的其他活动。所使用的URL在espConfig文件中。

如果该URL的服务器已通过身份验证,则需要配置用户名和密码并将其编译为代码。

我使用它来在门旁边的摄像头上访问一个名为snap.php的URL。按下铃铛时需要jpg。最后4个保留下来,可以在相机Web服务器上远程查看。

我使用基于树莓派的相机,这种操作非常容易。相机
       责任编辑:wv 

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

全部0条评论

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

×
20
完善资料,
赚取积分