自制 HomeKit 智能开关

前言

自制 HomeKit 智能开关视频演示.gif

视频效果:https://zjhdreamteam.coding.net/p/OTADemo/d/OTADemo/git/raw/master/HomeKit_video_demo.mov

最近研究Homekit,发现可以自己刷系统接入设备,于是搜集了下资料,自己动手操作下,写篇文章,做个记录。实现原理:通过 CH340C 烧录器给 ESP-01 模块刷入可供 HomeKit 识别的固件(Home Accessory Architect),ESP 通过继电器的开关控制线路的通断从而控制设备开关。

一、材料准备

首先是需要购买一个芯片,我这边买的型号是ESP-01s;然后一个继电器,型号是ESP-01s relay;之后是烧录器,型号是CH340,这个工具是烧录 ESP-01 用的,一次购买就可以一直用了。有需要的可自行网上购买

材料准备.PNG

二、烧录固件

官方的安装教程:https://github.com/RavenSystem/esp-homekit-devices/wiki/Installation

1、下载 HAA 的二进制文件

https://github.com/RavenSystem/haa/releases/latest/download/fullhaaboot.bin

2、安装 esptool.py

esptool.py 是乐鑫提供的开源库工具,用于乐鑫 ESP8285, ESP8266, ESP32, ESP32-S等系列芯片和 ROM Bootloader(即:一级 bootloader)通讯,从而实现:固件烧录,flash 擦除,flash 读取,读 MAC 地址,读 flash id ,elf 文件转 bin 等常用功能。官方介绍:https://github.com/espressif/esptool/blob/master/README.md

如下 shell 命令,任选其一,执行成功即可安装:

pip install esptool

python -m pip install esptool

pip3 install esptool

如安装过程中遇到问题,可以自行网上搜索教程。
:升级pip失败,解决python -m pip install --upgrade pip 升级不成功问题:https://blog.csdn.net/boborainbow/article/details/112544623
再如:解决zsh: command not found问题:https://blog.csdn.net/qq_34565900/article/details/117295593

3、将 ESP-01 插入烧录器

将 ESP-01 插入烧录器.png

将 ESP-01 插入烧录器,然后将设备插入电脑的 USB 口

4、查找烧录器的设备端口

我这里使用的是 MAC 电脑,执行以下命令查看 USB 端口:ls -l /dev/cu.*
如果不知道哪个是,可尝试先拔出,执行命令,然后再插入,执行命令,看看哪个端口有变化。如图红色圈出的即为我的 ESP-01 设备端口为:/dev/cu.usbserial-14230

查找烧录器的设备端口.png

Windows 可在设备管理器中查看,大概长这样,同样也是插拔一下,看看哪个端口是 ESP-01,如下图所示,端口号为 COM4

Windows在设备管理器中查看端口号.png

5、使用 esptool.py 擦除 ESP-01 的 flash

将以下命令中的端口号替换为你上一步骤找到的端口号,然后执行下面指令。命令执行完后 ESP-01 会自动重启。

esptool.py -p 端口号 erase_flash
使用 esptool.py 擦除 ESP-01 的 flash.png

6、开始烧录固件

同样,将以下命令中的端口号修改为你自己的端口号,bin 文件地址修改为第 1 步骤下载的文件地址,然后执行

esptool.py -p 端口号 --baud 115200 write_flash -fs 1MB -fm dout -ff 40m 0x0 fullhaaboot.bin

注意: 如果使用旧版本的 esptool,则必须更改为 -fs 1MB-fs 8m

不出意外的话,就是下图这样的情况了,然后 ESP-01 又会重启了。至此,固件烧录完成🎉

开始烧录固件.png

三、继电器安装及芯片联网与配置

1、安装继电器

烧录固件完成后直接拔下esp-01s即可,连接esp8266继电器,继电器连接5v电源。VCC接正极,GND接负极。我这使用树莓派的面包板直接连接了,没有树莓派的话,可以将家里弃用的数据线剪开,之后连接5v的充电器。

安装继电器并连接电源.png

2、ESP-01芯片联网

完成之后,ESP-01 会建立一个 SSID 为 HAA-XXXXXX 的开放 2.4GHz WiFi 热点,使用手机或者电脑连接它,等待几秒钟,就会跳转到 Home Accessory Architect 的配置页面。如果没有自动跳转,可以直接访问:http://192.168.4.1:4567

连接芯片的Wi-Fi热点.png

选择你的家庭路由,如果没有发现你想连接的路由,可以点击按钮“ WiFi Networks”进行刷新。注意 ESP-01 仅能连接 2.4GHz 的 WiFi。

选择你的家庭路由.png

然后在下面输入Wi-Fi的密码

输入家庭路由的密码.png

3、ESP-01芯片配置

将下面文本拷贝到* JSON Config:中。之后点击Save按钮,保存配置,这时芯片就会连接Wi-Fi,然后自动配置数据,一般情况大约需要等待 10 分钟左右,配置成功继电器上的灯会亮起,期间保持设备通电。

{
  "c": { "l": 1, "b": [{ "g": 2, "t": 5 }] },
  "a": [{
    "t": 1,
    "s": 1,
    "0": { "r": [{ "g": 0, "v": 1 }] },
    "1": { "r": [{ "g": 0, "v": 0 }] },
    "b": [{ "g": 2 }]
  }]
}
添加芯片的配置信息.png

这里表示了一个基本类型的开关("t": 1),通过 GPIO 0 控制继电器,因为这个继电器模块是 GPIO 0 低电平时闭合,所以在下面的 "0" 表示开关关闭的选项中 "v": 1 表示高电平,而 "1" 与之相反。LED 指示灯定义为 GPIO 1,按钮定义为 GPIO 2,"s": 1 表示通电后默认为开关打开状态。详细的配置规则可以参阅原项目的 Wiki。

4、查看配置进度

在设备安装或者更新的时候,可以在 macOS 或 GNU/Linux 设备上通过下面的命令检测日志获取设备状态,注意:电脑要和芯片连同一Wi-Fi。如果一直配置不成功,可以重新擦除芯片,然后重新烧录,再按上面的步骤重新操作一遍。

nc -kulnw0 45678
查看配置进度.png

我这网络不好,配置了得有一个多小时,等芯片常亮就表示配置成功了。🎉🎉

四、添加进苹果家庭

苹果手机连接和芯片同一Wi-Fi,然后打开“家庭”APP,按照步骤添加设备。注意:这里设置代码统一为02182017

添加进苹果家庭.png

五、电器接线

电器接线图.png
电器接线实体图.png

VCC(接正极)GND(接负极)为继电器和esp8266提供5v1a供电,COM口为公共端,NC为常闭触点,NO为常开触点。按照线路图接完线后,就能正常的控制设备啦。🎉🎉🎉



参考链接:
手把手智能家居 | 手把手教你自制原生 HomeKit 智能开关,成本仅 10 元!:https://blog.wangtwothree.com/smart_home/117.html
低成本将用电器接入HomeKit!保姆级教程:https://zhuanlan.zhihu.com/p/429490747
20 元将普通电灯接入 HomeKit:https://imwtx.com/archives/143/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,012评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,589评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,819评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,652评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,954评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,381评论 1 210
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,687评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,404评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,082评论 1 238
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,355评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,880评论 1 255
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,249评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,864评论 3 232
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,007评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,760评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,394评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,281评论 2 259

推荐阅读更多精彩内容