如何制作具有家庭自动化集成功能的电池供电门传感器

电子说

1.3w人已加入

描述

步骤1:硬件 - 电路

参见附加的电路方案。我将SMD部件焊接在适配器PCB板上,并将所有部件焊接到双面穿孔板上。我通过母头连接ESP-01,所以我可以通过本Instructable步骤3中所示的适配器将其移除以进行编程。

电路的工作原理如下:

当门打开时,TPL5111接收到DELAY/M_DRV引脚的一个镜头并启用为ESP-01供电的TPS73733 LDO。对于此操作,必须将EN/ONE_SHOT拉低,请参见TPL5111的数据表。

程序运行后(参见步骤软件),ESP-01向TPL5111发送一个完成信号,然后禁用TPS73733,从而使TPL5111和TPS73733的功耗状态非常低。

我使用带有NO和NC连接的簧片开关。我连接了NC引线,因为当磁铁被移除(门打开)时,簧片开关必须关闭电路,当磁铁接近(门关闭)时,簧片开关必须打开。

对于后门传感器,我添加了一些冷凝器当我发现一些不稳定性时,电阻器和电阻器,但不稳定性是由我后来发现的软件(esp_now_init)引起的。

步骤2:硬件 - 外壳

我在Autodesk Fusion360中设计了机箱,受到了这个视频的启发带有瑞士口音‘。

这三个部分的STL文件:

Box

Lid

磁铁持有人

发布在我的Thingiverse页面上。

第3步:软件

该程序在我的Github中。

程序流程如图所示。请参阅我的其他Instructable,了解我如何使用ESP-NOW。

当模块开机时,它首先尝试通过ESP-NOW发送’OPEN‘消息。如果这不成功,它会切换到WiFi和MQTT连接。

我发现,至少在我的设置中,’CLOSED‘消息不能通过ESP-NOW成功发送,所以我删除了这个来自程序,只使用WiFi和MQTT。

在门打开并且模块正在等待门关闭的时候,它利用这段时间连接到WiFi和MQTT,所以当门关闭时,它只需发送测量值电压和CLOSED消息,然后它直接进入睡眠状态。

程序通过监听右侧主题的MQTT消息来检查接收方是否收到了关闭的消息。

步骤4:家庭自动化和电报

我的门传感器在我的Raspberry Pi Zero上与我的Openhab家庭自动化通信。

主要应用:

读取门的状态:OPEN或CLOSED。

如果打开门,则通过电报报警(如果打开报警或打开监控功能)。

读取上次打开或关闭门的时间。

计算门传感器在电池耗尽前可以处理的开口数。

《例如,如果我们正在度假并且邻居来给植物浇水,我会收到一条消息。请参阅介绍中的视频。

我的Openhab项目,规则和站点地图文件都在我的Github中。在这些文件中,您还可以看到棚屋的门传感器,它使用常规有线簧片开关和锁定开口中3D打印机的小触点(端部)开关(参见图片)。

如何在Openhab中使用Telegram操作在此处描述。

步骤5:改进和进一步改进

在过去的几个月里,我做了以下改进。

通过自动切换脉冲信号处理长门开启

在夏季当我们在家时,我们将后门开了几个小时。运行ESP-01与WiFi连接将不必要地耗尽电池。因此,我提供了一个开/关开关,可以在这些情况下关闭模块。

然而,这有时会导致永久关闭模块(当我忘记打开它时)和排空在打开的门和运行模块的几个下午之后电池(当我忘了关闭它时)。

因此我希望能够在模块打开后通过软件关闭模块预定义的时间(1分钟)。

然而,当门关闭时,ESP-01的“DONE”脉冲关闭了TPL5111,我发现TPL5111没有切换到DELAY/M_DRV引脚为高电平时,“DONE”脉冲。 DELAY/M_DRV引脚上的HIGH信号是由打开的门和簧片开关的NC触点连接到电池电压引起的。

因此,DELAY/M_DRV引脚的信号不应连续高,但应该是脉冲的。在TPL5111数据表中,您可以发现它应该是》 20 ms的脉冲。我通过P沟道mosfet,电容器和10K和300K电阻器制作了这个自切换信号,参见附带的方案。

它的工作原理如下:

如果簧片开关的NC触点闭合,则栅极为低电平且Mosfet导通,导致DELAY/M_DRV引脚上的高电平信号激活模块。

电容器为快速充电,导致栅极电压上升。

大约20 ms后,栅极电压为电池电压的97%(300K/(300K + 10K),即HIGH和Mosfet关闭,导致DELAY/M_DRV引脚上的低电平信号。

当DELAY/M_DRV引脚为低电平时,ESP-01的DONE信号导致模块关闭。

这是在软件中实现的; while循环不仅检查门是否仍然打开,还检查模块是否未打开太长时间。如果打开时间太长,它会发布一个NULL值(门的未定义状态)。在这种情况下,我不知道无论门是打开还是关闭,我没有达到介绍中提到的所有目标,但电池寿命更重要,大部分时间我们在当天晚些时候再次打开门,导致确认门关闭状态。

使用适合此处使用的电压范围的P沟道Mosfet非常重要。 Mosfet必须在大约-3.8V的VGS下完全开启,并且在大约-0.2V的VGS下完全关闭。我尝试了几个Mosfet并发现IRLML6401TRPBF与10K和300K电阻器组合使用可以很好地实现这一目标。 1 uF的电容可以正常工作,以获得约20 ms的脉冲长度。由于TPL5111被激活,因此较大的电容会产生较长的脉冲,这是不必要的。我使用DSO150示波器检查电压和脉冲长度。

计划改进:OTA更新

我计划通过以下程序合并OTA更新已经部分包含在当前软件中

通过NodeRed的Openhab我发布了一条保留的“更新”消息和“更新主题”。

如果模块已打开并连接到MQTT服务器并订阅了“更新主题”,则它会收到更新消息。

更新消息将阻止模块关闭并启动HTTPUpdateServer。

通过HTTPUpdateServer的网站,您可以更新软件。

通过NodeRed的Openhab,我将保留的“空”消息发布为“更新主题”。

计划的改进:在预定义的时间后硬件关闭。/strong》

在目前的方案中,我在TPL5111的DELAY/M_DRV和GND之间使用了200K电阻。这将打开模块超过2小时(参见TPL5111数据表的7.5.3。)。但是,我不希望模块打开这么久,因为电池会耗尽。如果软件解决方案(参见上文)未能关闭模块,或者更新消息意外将模块设置为更新模式,则模块将保持长时间通电状态。

因此最好在TPL5111的DELAY/M_DRV和GND之间使用一个较小的电阻,因此模块在短时间后断电,例如50K电阻导致导通时间为7分钟。

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

全部0条评论

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

×
20
完善资料,
赚取积分