Spark的homekit直连固件 esp-open-sdk编译教程

这段时间可能会慢慢更新一些技术方面的帖子,但更多还是以成品为主,喜欢折腾的可以跟着我一起折腾。

今天这个帖子算是对上次发布的Spark进行一次固件更新,增加一种玩法。因为不停有朋友问我,能不能支持homekit直连?能不能支持homekit直连?

我心里小声bb,已经有了ha这么好的平台,自动化啥的都能够解决了,再来直连固件那不是开倒车嘛。。而且今天要是做了homekit的固件,过几天还会有小爱的直连固件,猫精的固件,小度的固件 :unamused:

不过既然有需求就试试吧。自己刚好有苹果的设备。索性找了些资料,基于sonoff的homekit直连。修修补补改改写出来了单路的homekit固件。三路的还需大神来一起帮忙看看,自己编程水平差点意思,而且实在是没有时间弄了,这里也抛砖引玉,希望有兴趣的大神来看看。

bdaed7a22c74cd3ea4fc3e18ed6fcae

所以大家想要用这个固件的,请只保留Spark中间的那个继电器,其他的可以空焊,当成一路的来使用。我手里也有一路的PCB板子,到时候我放出来。体积比这个还小一些,单路使用几乎完美了。

固件下载:Spark_homekit.zip (336.7 KB)

使用方法:固件烧录之后,会生成一个Spark打头的SSID,连它!

2c0ce9c3b93c7403b08ade44e6febf7

连好后会自动打开192.168.4.1进行配网。没有自动打开的手动进去即可。
然后选择你家的WiFi,输入密码,join即可。

随后打开homekit,添加设备,输入代码,会自动发现Spark,输入代码 1111 1111。

这一步需要挺长的时间,耐心等待。
在串口中可以看到配对的进程。

微信截图_20200424150454

配置完成后就可以愉快使用了~

Enjoy~

下面重点讲一下esp8266固件通过esp-open-sdk编译的过程

1、安装ubuntu。这个用虚拟机或者物理机都可以。我使用的版本为Ubuntu x64 18.04.4 LTS
相关教程可百度,这里不赘述了。

2、安装相关依赖

sudo apt-get update

sudo apt-get install make unrar-free autoconf automake libtool gcc g++ gperf
flex bison texinfo gawk ncurses-dev libexpat-dev python-dev python python-serial
sed git unzip bash help2man wget bzip2

sudo apt-get install libtool-bin

3、克隆esp-open-sdk

cd ~/Download

git clone --recursive https://github.com/pfalcon/esp-open-sdk.git

4、编译一下

cd /Download/esp-open-sdk

make STANDALONE=y

5、手动下载相关文件
上一步编译会经历比较长的时间且大概率失败,因为网络问题,一些文件无法完成下载,所以需要手动下载放进去。
进入到这个目录中:Downloads/esp-open-sdk/crosstool-NG/.build/tarballs,可以看到如下的文件,大概率会缺少newlib-2.0.0.tar.gz
http://mirrors.kernel.org/sourceware/newlib手动下载后放入即可。

6、配置系统变量。再make STANDALONE=y编译一次,此时应该就没问题没报错了。然后将将 eap-open-sdk 移动到 /opt 目录下

cd ~/Downloads

sudo mv -f esp-open-sdk /opt

此时就可以正式进行编译了。

7、克隆Spark的代码。

cd ~/Documents

git clone --recursive https://github.com/LeeLulin/esp-homekit-direct.git

8、替换main.c 文件,代码太长了,完整的main.c文件我贴在后面:
main.zip (2.8 KB)

9、然后编译就行了

cd Download/esp-homekit-direct
make -C devices/switch all

编译完成会在 /devices/switch/firmware 目录下生成 switch.bin 文件,且已存在 rboot.bin 和 blank_config.bin 两个文件。

然后用flash_download_tools_v3.6.5烧录就行了。
按照我的配置即可:

也可以直接合并bin文件后从0x0位置烧录,大家随意~

合并好的固件我已经上传在上面了,大家回复可见,直接烧录即可。
如果有时间的大神能看看做个三路的固件出来就完美了~
抛砖引玉,呼唤大神!

有沙发吗?顶顶顶顶

求教大佬这个是如何实现…