WiFi排风扇控制器

图片
自从生产浴室湿度控制控制器以来已经过去了将近两年一直以来,控制器都像一个好的设备一样忠实地工作,没有故障和冻结,甚至用我妻子的轻巧手拿到了一个迷人的手工表壳。

图片

但是技术进步势不可挡,新的趋势再次困扰着我。我长期培育了在ESP8266 WiFi模块上实现智能家居概念的想法。他对这些模块进行了一段时间的试验,现在决定将其“智能家居”转移给它们。

该项目的主要目标是实施新功能,将来我将在其他设备中使用这些新功能。
那么,ESP8266风扇控制器的升级会给我带来什么呢?

新功能


  • 通过计算机/平板电脑/手机查看WiFi上的所有指示器。
  • 处理附加参数-风扇的运行时间和浴室内灯的燃烧时间。
  • 可通过计算机/平板电脑/手机控制WiFi风扇。
  • 通过WiFi设置控制器,并将值保存到非易失性存储器中。
  • 定期将所有指标的值记录在Internet上的服务器上。
  • 好吧,由于仍然有Internet,因此可以通过NTP协议同步显示时间。

所有这些功能使得可以分析控制器的操作,并在将来优化控制算法的参数。好吧,该控制器将进入智能家居的通用系统,并监视浴室的环境参数。
图片
该方案与以前的版本相比没有太大变化:
  • 用ESP8266代替Atmega328
  • 七段指示器用TN1637替换了已完成的显示模块
  • 用光电耦合器的三端双向可控硅开关被固态继电器取代(相同,但情况如此)。

控制器程序中的所有主要区别。

组件清单


  • 带适配器板的ESP8266 ESP07模块〜$ 2.3
  • 具有I2C连接的TM1637芯片上的四位七段显示器〜$ 1
  • 固态继电器OMRON G3MB-202P〜$ 1
  • 电源220V / 3.3V 600mA〜$ 2.2
  • 温湿度传感器(精度低,但足以完成我的任务)DHT11〜$ 0.7
  • 仪器塑料盒110x73x34〜$ 1
  • 光敏电阻,只是电阻,面包板和电线

总计约9美元。
除外壳和电源外,所有零件均在aliexpress.com上购买。我从taobao.com以合理的价格订购机箱和电源
图片

控制器组装


该控制器是ESP8266上未来设备的原型,因此安装在实验板上。
图片
我从文具店购买的用于文件夹的文件夹转角处的指示器下方做了一个滤光片。光敏电阻的透明窗口-一部电话遗留的保护膜(我订购了一次,有一定的余量,现在它周围了)。
图片
这是我的旧控制器在浴室工作了两年。
图片
调试时,发现了技术缺陷-窗口后面的光电二极管接收的光线太少如果没有放大器,当浴室里的灯被点燃时,它就无法工作,我必须将它朝着灯的方向拿出来。
图片
图片

现在,我将向您介绍程序的功能,控制算法和该控制器的设置。

ESP8266与之前版本的Atmega328不同,它具有更多的内存(RAM,ROM,EEPROM),再加上内置的WiFi,可实现内置WEB服务器的功能,而不会为文本字符串节省内存。

但是使用GPIO时,ESP8266相当糟糕,因此,它无法直接访问像管理7段指示器这样的奢侈行为。因此,选择了TM1637芯片上的指示器,该指示器仅需要两个输出即可连接。

开发环境


我对各种ESP8266固件已经玩够了,这些固件使我可以在内置解释器LUA,JC中编写程序,并且通常可以通过WEB进行编程。我试图写一个SDK。他选择了一个折衷方案-在Arduino IDE中进行编程。
一个相当简单的安装,编程和大量现成的库,这些库大部分都在ESP上运行。此环境允许使用许多旧代码,这些旧代码为风扇控制控制器的操作提供了基本逻辑,而这些逻辑已从以前的版本中保留下来。

基本上,转移经过验证的算法是很有趣的,该算法实现了状态转换表中描述的有限确定性状态机:
图片
Arduino库出现了没有问题DHT用于与传感器湿度/温度从Adafruit的使用与DigitalTube TM1637的指示器进行操作

本文详细介绍了使用Arduino IDE编程ESP8266的细节

实施新功能


制造连接网络连接参数的WiFi控制器非常不方便。想象一下,如果家里有十几个这样的控制器,更改接入点名称或密码会导致什么?

因此,该程序实现了将连接参数存储在非易失性EEPROM存储器中并通过网络进行设置的功能。我的项目的WC_EEPROM.h和WC_EEPROM.cpp文件中实现了用于保存参数以及读写参数的结构。通过计算配置的校验和并将其与EEPROM中写入的校验和进行比较,来进行读写验证。

除了网络配置之外,风扇控制算法的所有超时和其他参数也都保存在内存中,从而可以直接“无线”优化和调整该控制器。

使用内置的WEB服务器(WC_HTTP.h和WC_TTP.cpp文件)实现操作模式的显示,控制器配置的配置以及直接风扇控制

。接入点配置算法如下:

如果ESP机柜无法连接到EEPROM配置中指定的接入点,然后它会升高其访问点,并在地址192.168.4.1上进行配置。
好吧,如果已连接,它将照常工作。
WEB服务器的主页显示了控制器的基本参数,并允许您手动打开/关闭控制器(按手动控制按钮的类似按钮)。
图片
在这里,您还可以转到网络设置
图片
页面和控制器操作算法的设置页面
图片
在这两页中,您可以重新启动控制器并重置所有“默认”设置。

我计划在将来将界面美化的时候,WiFi上的智能家居概念或多或少地落在我的脑海。

此程序中实现的另一个功能是通过Internet上的NTP协议同步的实时时钟。 (文件WC_NTP.h和WC_NTP.cpp)

我将不描述主要算法,工作逻辑运行良好并且保持不变,您可以在上一篇文章中了解它。。重大更改影响了显示。我想提请注意一个“功能”-DisplaySpecialChar()函数,该函数可让您使用位掩码显示可以想到的用于在七段指示器上显示的任何字符。我想出了湿度显示中的“百分比”符号和温度显示中
图片
的“度”符号,
图片
位掩码中的位对应于指示器段。

好吧,最后一项新功能是将参数保存到Internet上的服务器上,以进行显示和后续分析。保存了湿度,温度,带有用于调节照明阈值的光敏电阻的模拟端口,风扇的时间,燃灯的时间以及上次重启后控制器的UPTIME时间的值。

记录到服务器有两种模式。当浴室中发生“某事”时,参数会以更高的频率记录,这时无论是开灯还是风扇在工作。所有超时都是通过WEB界面配置的。

数据存储在我的Internet服务器上。可以配置服务器地址,但是仍将录制格式缝入程序中。再次,直到更好的时节ustanivaniya概念)))。现在,参数已通过最简单的PHP脚本保存到具有简单结构的表中。
图片
将设置重新配置为相同的“公共监控”非常简单。就个人而言,此服务器不适合我使用数据存储频率和存档深度的限制。

优化控制器设置


在“试运行”之后,您可以确定是否正确设置了照明和湿度阈值,以及各种事件的超时时间。在先前的实现中,我将秒表的响应时间设置为20分钟。在几次淋浴期间观察参数图之后,我看到了以下内容:
图片
  • 冬季湿度变化35-40%
  • 自然通风的湿度正常化时间20-25分钟
  • 使用工作风扇的湿度归一化时间10-12分钟
  • 风扇使通风效率加倍

基于此,您可以安全地将风扇的运行时间减少到12分钟,从而延长风扇的使用寿命并节省少量能源。当公寓中的湿度完全不同时,可以针对其他季节进行类似的分析。

现在,经过分析,您可以增加将参数写入服务器的时间。

结论



  • ESP8266上的控制器稳定,执行功能。
  • 它的功能已经扩展,现在易于管理,并且可以正常集成到智能家居系统中
  • 有些事情需要改进,例如,WEB界面,访问授权,服务器部分以及计算风扇和轻型运行时间的一些不准确之处。其他改进的愿望可能会暴露出来。
  • WiFi上的智能家居试点项目可以认为是成功的;)

草图可在此处下载。如果您报告任何错误,我将不胜感激。

WiFi上风扇控制器的示意图

在项目上花费时间是

PS 休假两天后,我立即回答这个问题,为什么这么难?我可以与开关并排坐在计时器上吗?
-是的,可以。但是包含计时器和灯光并不适合我。另外,这是一种业余爱好,是在其他项目中使用的一些想法的实现。

存储设备再次出现故障,因此照片来自我的博客在那里,您可以看到我在智能家居方面的发展

Source: https://habr.com/ru/post/zh-CN389751/


All Articles