代码改变世界

智能家居填坑006 新风接入

2020-02-24 12:03  kiddfu  阅读(936)  评论(0编辑  收藏  举报

设备简介

前面将设备的部署与接入已经描述完毕,从这篇开始将描述各类设备的接入,比如新风、浴霸、风扇灯、传感器等。

全热交换新风、带粗滤、风量250、最大78w、三档调速。

经和卖家沟通了解此风机使用的是四线风扇电机,接线原理图如下:

透过原理图可知,我们分别接通1、2、3号开关即可实现低、中、高三档风力调节。

即,使用三个继电器就能轻松控制:

但是,基于我的理解这三个开关只能同时接通一个,不能多个同时接通,他们三者之间是线圈连接,也就是说他们之间有很长的导线,会产生一个相位差(应该是这个名词),存在短路的风险,我的新风机是我一个人花了一天慢慢顶螺丝才装上去的,我可不想再拆装他一次。那么必须要让他们做到同时只能接通一个,我拿出了如下方案:

  1. 在自带的新风控制器的旋钮上装一个步进电机,带动旋钮实现换挡:太蠢了。
  2. 直接接三个继电器,在服务器里面通过软件实现独立工作:经以往玩51和树莓派的经历,很多单片机在通电复位的时候都会同时给io口供电,也就是说存在不可控的状态,更何况不能保证在服务器里的操作就万无一失,此方案暂议。
  3. 基于2知道必须在硬件方面要做到他们互斥,又必须高效可行,几经思考我做出如下结构

我们定义一个数组来表示三个继电器的状态[0,0,0] 。(0表示断开,1表示接通)

[0,0,0] 第一个继电器断开,断开后蓝色线路和黄色线路、红色线路就彻底断开,此时处于关闭状态。

[1,0,0] 第一个继电器接通,蓝色和黄色接通 和红色断开,此时处于低档状态。

[1,1,0] 第一、二个继电器接通,红、黄、蓝和中接通,此时处于中档状态。

[1,1,1] 所有继电器接通,此时处于高档状态。

此装置总共8种状态,就此四种即可满足要求,其余几种都不起作用或功能重复就不列出,但任何一种状态都是处于互斥。

实际接入

准备阶段

  装备nodered的服务器或者别的上位机、单片机都可:此处使用node-red,其余软件原理相同请自行演化。

  已部署好的mqtt服务器:mqtt服务器自行部署,可使用类似onenet、aliyun等成品方案。

  Arduino单片机或者8266模块一个:此处使用8266模块刷写espeasy(未使用esphome:网络不好编译总是失败,easy蛮好用的)

  三位继电器模块:io输出需要使用放大和光耦隔离,建议使用模块更方便整洁。

  电源:参考继电器模块需求,一般是5v或者12v,此处还应为8266准备一块降压板,若使用nodemcu则可统一使用5v供电。

参照上述硬件原理,连接好8266和继电器模块

  这是硬件接好后的成品,使用12、13、14号io口控制

  登录espeasy,设置你的设备名。

  在controllser页新建一个mqtt连接 填入地址、端口、账号、密码并勾选启用

  在devices也随便新建一个switch,启用就好了

  在nodered里新建一个mqtt的输出节点 订阅名就是 设备名/devices名/GPIO/端口号 通过输入0或1就可轻松控制设备了