(基于 ESP8266 的 Apple HomeKit Wi-Fi 除湿机)
对于一个果粉而言,不幸的是,只有一两个除湿器支持AppleHomeKit,但它们的价格非常高(300美元以上)。所以我决定基于我已经拥有的便宜的一台,制作我自己的具有Wi-Fi功能的AppleHomeKit除湿机
它可以使用ESP8266与HomeKit一起使用,因此不需要homebridge、HAP-NodeJS!
由于代码非常复杂,而且我使用了很多自定义库,因此我制作了预编译的固件文件。对于那些对制作原生HomeKit项目感兴趣的人,可以在此处获得esp-homekit的源代码。
特征:
使用SHT3x传感器进行湿度测量
设置目标湿度
控制风扇速度
水位(通过LED指示灯和水箱满时自动关机)
电源/重置按钮
印刷电路板零件:
ESP12F/E/S
XROW600B除湿机
SHT3x温度/湿度传感器
贴片0805电阻
贴片0805电容
AMS1117-3.3
触觉按钮
1x4P2.54mm接头(可选)
IRF540NS
贴片10x10.550V100uF电容
SMD6x76,3V330uF电容器
LM2575S-5.0
330uHCRDH74电感
1N4007二极管
2N3904
VH3.96-2P
XH2.542P、4P、5P
3MM红/绿LED
3mm(高)LED尼龙垫片
4P公头XH2.54带电缆(用于湿度传感器)
补给品
烙铁或焊台或热风焊枪
要上传代码,您可能还必须购买USBTTL适配器。
要拆卸除湿机,您需要一些螺丝刀。
定制PCB
XROW600B除湿机
第1步:拆卸
要拆卸除湿机,您唯一需要的是一把螺丝刀,它可以插入设备背面的孔中!
拧下设备底部的2个螺丝
拧下设备背面的4个螺丝
现在您可以拆开塑料外壳
拔下PCB上的每个连接器
拧下固定PCB的2个螺丝
第2步:定制PCB
我设计了一个定制的PCB,它可以取代原来的、非常基本的PCB。它基本上只是一个从12V到3.3V的电源/降压转换器、两个用于驱动风扇和珀耳帖的MOSFET、ESP8266本身、两个LED和触觉按钮,就像原始的一样。
我还为新PCB添加了与原始PCB相同的连接器,并为SHT3x湿度传感器添加了一个额外的4针连接器。除湿机自带的9V电源也可以使用!一切都是即插即用的
您可以在此处找到有关PCB的更多信息!
PCB文件可以在PCBWay找到!
SHT3x湿度传感器
您必须使用带电线的公XH2.54-4P连接器连接SHT3x传感器(在零件列表中链接),只需按原样连接一切即可:VCC到VCC、GND到GND、SDA到SDA和SCL到SCL
目前在我的设置中,传感器只是挂在除湿机的外壳外面,这取决于您放置传感器的位置/方式,但在除湿机的外壳内,捕获的湿度/水可能会影响传感器读数!
GPIO引脚排列
如果您想使用自己的固件,请使用引脚排列:
按钮-GPIO0(wemosD1mini上的D3)
SHT3xSDA-GPIO4(wemosD1mini上的D2)
SHT3xSCL-GPIO5(wemosD1mini上的D1)
内置LEDGPIO2(wemosD1mini上的D4)
电源LED-GPIO14(wemosD1mini上的D5)
风扇-GPIO15(wemosD1mini上的D8)
Peltier-GPIO12(wemosD1mini上的D6)
坦克传感器-GPIO13(wemosD1mini上的D7)
第3步:软件设置
您可以从我的GitHub页面下载固件!
视窗:
对于Windows,您可以使用乐鑫官方提供的固件下载工具!
设置闪存地址(0x2000)、闪存大小(4MB/32mbit)和闪存模式(DIO/QIO)是非常重要的一步,但这些设置可能会根据您使用的模块而改变!此外,我建议您在上传.bin文件之前第一次安装固件时擦除闪存!
设置:
波特率
闪存大小4MB或32mbit(取决于您的模块)
闪存模式QIO(或DIO,取决于您的模块)
0x0000rboot.bin
0x1000blank_config.bin
0x2000main.bin
40MHz
苹果系统
对于MacOS,您可以使用此flasher工具!
设置:擦除闪存-是(仅在第一次安装时)
波特率
闪存大小4MB或32mbit(取决于您的模块)
闪存模式QIO(或DIO,取决于您的模块)
文件:main.bin
40MHz
手动闪光
我们必须在Mac上安装esptool.py才能刷入我们的ESP模块。要使用esptool.py,您需要在系统上安装Python2.7、Python3.4或更新的Python。我们建议使用最新的Python版本,因此请访问Python的网站并将其安装到您的计算机中。安装Python后,打开终端窗口并使用pip安装最新的稳定版esptool.py:
注意:对于某些Python安装,该命令可能不起作用,您将收到错误消息。如果是这种情况,请尝试使用以下命令安装esptool.py:
安装后,您将esptool.py安装到默认的Python可执行文件目录中,您应该能够使用命令esptool.py运行它。在终端窗口中,运行以下命令:
在您的计算机上安装esptool.py后,您可以轻松地使用固件刷新您的ESP8266板。首先需要下载三个bin文件:rboot.bin和blank_config.bin以及最新版本。rboot.bin包含ESP8266的引导加载程序,blank_config.bin仅包含在一个空白配置文件中,而ledstrip.bin包含固件。现在以闪存模式将您的设备连接到FTDI适配器。
要启用ESP8266固件闪烁,必须在为设备供电时将GPIO0引脚拉低。我的定制PCB有一个按钮,您需要在将FTDI适配器连接到PC时按住该按钮。相反,对于正常启动,GPIO0必须拉高或悬空。以FLASH模式启动转到您放置先前下载的rboot.binblank_config.bin文件(例如下载)的目录打开终端应用程序。单击Dock中的Finder图标。单击“前往”。单击实用程序。双击终端。
切换到下载目录。
注意:如果您使用另一个库来存储三个.bin文件,请使用`cd`命令导航到该库:使用esptool.py刷新您的设备。
您需要一个USBTTL适配器来连接到ESP8266。如果您使用WemosD1Mini,只需要一根microUSB数据线,Wemos内置了TTL适配器。
第一次安装固件时,我们需要擦除闪存:
通常,您的ESPPort将类似于/dev/cu.usbserial-`xxxxxx`。然后,再次将您的设备设置为闪存模式,并刷新新固件:
Wi-Fi和HomeKit设置
Wi-Fi设置
在将配件添加到HomeKit之前,您必须配置wifi网络。要配置Wi-Fi设置,设备会在AP模式下生成自己的Wi-Fi。您必须连接到它才能设置Wi-Fi网络。只需拿起您的iOS设备,转到设置->Wi-Fi,然后搜索名为HomeKid的SSID,然后是模块的MAC地址并连接到它。出于安全原因,AP受密码保护!
等待几秒钟,直到出现显示设备已找到的所有Wi-Fi网络的网页。选择你的,然后输入密码!然后点击加入按钮!模块将尝试连接选定的Wi-Fi网络,这将需要几秒钟的时间。
注意:如果给定的密码错误,您可以通过按住按钮10秒来重置Wi-Fi设置
HomeKit设置
在您的iOS设备中,打开HomeApp并按照正常步骤添加新配件。配对设置大约需要30秒。
您也可以扫描此HomeKit二维码。
注意:如果配对失败,您可以将设备断电,重新通电,然后再次启动HomeKit设置(WiFi设置保持配置)。配对成功后,电源LED将呈白色闪烁3次!
第4步:PCB连接
对于PCB设计,我选择了与原始PCB上的连接器相同的连接器!
所以这一步应该很简单:
将风扇连接到风扇连接器
将TEC(珀耳帖模块)连接到相应的连接器
将5针电源连接器连接到相应的连接器
将SHT3x模块连接到它自己的连接器
第5步:设备组装
把设备组装在一起和拆卸是一样的过程,只是顺序相反.
第6步:重要提示
当水箱已满且设备正在运行时,除湿机具有一些安全功能:
自动关闭风扇/珀耳帖直到水箱为空
立即打开红色LED
电源LED每30秒闪烁3次
还具有安全功能,以防SHT3x传感器无法正常工作:
自动关闭风扇/珀耳帖直到水箱为空
将当前湿度设置为0%
电源LED每30秒闪烁2次
当SHT3x出现错误且油箱已满时,电源LED将每30秒闪烁6次。
在ESP8266有一些错误时,您不需要将设备从电源上拔下,三次按下按钮将重新启动ESP8266!
当除湿机打开且当前湿度等于和/或小于目标湿度时,设备将进入空闲模式。在Home应用程序中,它会在设备空闲时显示“设置为...”,在运行时显示“正在降低到...”!
更新固件
我计划实施无线(OTA)固件更新,但它不是那么稳定,因此应该像第一次设置一样手动完成更新!唯一的区别是您不需要擦除闪存,只需刷新较新的固件而不擦除即可保留您的Wi-Fi/HomeKit设置!