本网页已闲置超过3分钟,按键盘任意键或点击空白处,即可回到网页

基于 ESP8266 的 Apple HomeKit Wi-Fi 除湿机
发布时间:2021-08-14
分享到:
基于 ESP8266 的 Apple HomeKit Wi-Fi 除湿机
发布时间:2021-08-14
分享到:

对于一个果粉而言, 不幸的是,只有一两个除湿器支持 Apple HomeKit,但它们的价格非常高(300 美元以上)。所以我决定基于我已经拥有的便宜的一台,制作我自己的具有 Wi-Fi 功能的 Apple HomeKit除湿机

它可以使用 ESP8266 与 HomeKit 一起使用,因此不需要 homebridge、HAP-NodeJS!

由于代码非常复杂,而且我使用了很多自定义库,因此我制作了预编译的固件文件。对于那些对制作原生 HomeKit 项目感兴趣的人,可以在此处获得esp-homekit的源代码

特征:

  • 使用 SHT3x 传感器进行湿度测量
  • 设置目标湿度
  • 控制风扇速度
  • 水位(通过 LED 指示灯和水箱满时自动关机)
  • 电源/重置按钮

印刷电路板零件:

  • ESP12F/E/S
  • XROW600B 除湿机
  • SHT3x 温度/湿度传感器
  • 贴片0805电阻
  • 贴片0805电容
  • AMS1117-3.3
  • 触觉按钮
  • 1x4P 2.54mm 接头(可选)
  • IRF540NS
  • 贴片 10x10.5 50V 100uF 电容
  • SMD 6x7 6,3V 330uF 电容器
  • LM2575S-5.0
  • 330uH CRDH74电感
  • 1N4007二极管
  • 2N3904
  • VH3.96-2P
  • XH2.54 2P、4P、5P
  • 3MM红/绿LED
  • 3mm(高)LED尼龙垫片
  • 4P 公头 XH2.54 带电缆(用于湿度传感器)

补给品

  • 烙铁或焊台或热风焊枪
  • 要上传代码,您可能还必须购买USB TTL 适配器。
  • 要拆卸除湿机,您需要一些螺丝刀。
  • 定制PCB
  • XROW600B除湿机

第 1 步:拆卸

要拆卸除湿机,您唯一需要的是一把螺丝刀,它可以插入设备背面的孔中!

  1. 拧下设备底部的 2 个螺丝
  2. 拧下设备背面的 4 个螺丝
  3. 现在您可以拆开塑料外壳
  4. 拔下 PCB 上的每个连接器
  5. 拧下固定 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 (wemos D1 mini 上的 D3)
  • SHT3x SDA - GPIO4 (wemos D1 mini 上的 D2)
  • SHT3x SCL - GPIO5 (wemos D1 mini 上的 D1)
  • 内置 LED GPIO2 (wemos D1 mini 上的 D4)
  • 电源 LED - GPIO14 (wemos D1 mini 上的 D5)
  • 风扇 - GPIO15 (wemos D1 mini 上的 D8)
  • Peltier - GPIO12 (wemos D1 mini 上的 D6)
  • 坦克传感器 - GPIO13 (wemos D1 mini 上的 D7)

第 3 步:软件设置

您可以从我的GitHub 页面下载固件!
视窗 : 

对于 Windows,您可以使用乐鑫官方提供的固件下载工具!

设置闪存地址(0x2000) 、闪存大小(4MB/32mbit)和闪存模式(DIO/QIO)是非常重要的一步,但这些设置可能会根据您使用的模块而改变!此外,我建议您在上传 .bin 文件之前第一次安装固件时擦除闪存!

设置:

  • 波特率 115200
  • 闪存大小 4MB 或 32mbit (取决于您的模块)
  • 闪存模式 QIO (或 DIO,取决于您的模块)
  • 0x0000 rboot.bin
  • 0x1000 blank_config.bin
  • 0x2000 main.bin
  • 40MHz

苹果系统

  • 对于 MacOS,您可以使用此flasher 工具!
  • 设置:擦除闪存 - 是 (仅在第一次安装时)
  • 波特率 115200
  • 闪存大小 4MB 或 32mbit (取决于您的模块)
  • 闪存模式 QIO (或 DIO,取决于您的模块)
  • 文件:main.bin
  • 40MHz

手动闪光
我们必须在 Mac 上安装 esptool.py 才能刷入我们的 ESP 模块。要使用 esptool.py,您需要在系统上安装 Python 2.7、Python 3.4 或更新的 Python。我们建议使用最新的 Python 版本,因此请访问 Python 的网站并将其安装到您的计算机中。安装 Python 后,打开终端窗口并使用 pip 安装最新的稳定版 esptool.py:

pip 安装 esptool 

注意:对于某些 Python 安装,该命令可能不起作用,您将收到错误消息。如果是这种情况,请尝试使用以下命令安装 esptool.py:

pip3 安装 esptool python -m pip 安装 esptool pip2 安装 esptool

安装后,您将 esptool.py 安装到默认的 Python 可执行文件目录中,您应该能够使用命令 esptool.py 运行它。在终端窗口中,运行以下命令:

esptool.py 

在您的计算机上安装 esptool.py 后,您可以轻松地使用固件刷新您的 ESP8266 板。首先需要下载三个 bin 文件:rboot.binblank_config.bin以及最新版本。rboot.bin 包含 ESP8266 的引导加载程序,blank_config.bin 仅包含在一个空白配置文件中,而 ledstrip.bin 包含固件。现在以闪存模式将您的设备连接到 FTDI 适配器。

要启用 ESP8266 固件闪烁,必须在为设备供电时将 GPIO0 引脚拉低。我的定制 PCB 有一个按钮,您需要在将 FTDI 适配器连接到 PC 时按住该按钮。相反,对于正常启动,GPIO0 必须拉高或悬空。以 FLASH 模式启动 转到您放置先前下载的 rboot.bin blank_config.bin 文件(例如下载)的目录 打开终端应用程序。单击 Dock 中的 Finder 图标。单击“前往”。单击实用程序。双击终端。

切换到下载目录。

注意:如果您使用另一个库来存储三个 .bin 文件,请使用 `cd` 命令导航到该库:使用 esptool.py 刷新您的设备。

光盘下载

您需要一个USB TTL 适配器来连接到 ESP8266。如果您使用 Wemos D1 Mini,只需要一根 microUSB 数据线,Wemos 内置了 TTL 适配器。

第一次安装固件时,我们需要擦除闪存:

esptool.py -p /dev/erase_flash

通常,您的 ESPPort 将类似于 /dev/cu.usbserial-`xxxxxx`。然后,再次将您的设备设置为闪存模式,并刷新新固件:

esptool.py -p /dev/cu.wchusbserial1420 --baud 115200 write_flash -fs 32m -fm dio -ff 40m 0x0 rboot.bin 0x1000 blank_config.bin 0x2000 main.bin

Wi-Fi 和 HomeKit 设置
Wi-Fi 设置

在将配件添加到 HomeKit 之前,您必须配置 wifi 网络。要配置 Wi-Fi 设置,设备会在 AP 模式下生成自己的 Wi-Fi。您必须连接到它才能设置 Wi-Fi 网络。只需拿起您的 iOS 设备,转到设置 -> Wi-Fi,然后搜索名为 HomeKid 的 SSID,然后是模块的 MAC 地址并连接到它。出于安全原因,AP 受密码保护!

默认 AP 密码:12345678

等待几秒钟,直到出现显示设备已找到的所有 Wi-Fi 网络的网页。选择你的,然后输入密码!然后点击加入按钮!模块将尝试连接选定的 Wi-Fi 网络,这将需要几秒钟的时间。

注意:如果给定的密码错误,您可以通过按住按钮 10 秒来重置 Wi-Fi 设置

HomeKit 设置

在您的 iOS 设备中,打开 Home App 并按照正常步骤添加新配件。配对设置大约需要 30 秒。

HomeKit 代码是 586-84-417

您也可以扫描此 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 设置!

加入微信技术交流群

技术交流,职业进阶

关注与非网服务号

获取电子工程师福利

加入电路城 QQ 交流群

与技术大牛交朋友

讨论