ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器

一、硬件
1、ESP8266-01S网上资料很多,就不再介绍了。

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第1张图片

2、1路继电器模块

1路继电器模块带有2x4母插口直接与ESP-01S连接,自带DC5V外接电源接口,有光电隔离。模块比较小巧。

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第2张图片

3、DC5V电源

我调试用的电源是手机充电器加自己用USB线改装的,如需要装入墙壁开关和插座可到陶宝购买220V转5V电源模块。

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第3张图片

4、下载器

我用的是ESP LINK,支持自动下载,免去了接线和外接3.3v电源的麻烦。

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第4张图片

也可用 USB TO TTL 下载线,接线和电源问题自行解决。 

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第5张图片  

  以上硬件除DC5V电源外都来自陶宝,单价不贵几元或十几元钱。在下载包 http://download.csdn.net/download/cppphp/11086449 中有详细的购买链接地址。

二、软件 

软件来自 https://github.com/Gruppio/Sonoff-Homekit.git,在此首先对作者表示感谢。但该软件需要进行一定的修改后才能使适配我们的硬件。

1、下载软件并调整目录

# 进入工作目录 devices
cd ~/文档/esp8266/homekit/esp-homekit-devices/devices

# 下载软件
git clone https://github.com/Gruppio/Sonoff-Homekit.git

# 对下载目录及文件进行整理
sudo mv -f Sonoff-Homekit/sonoff_advanced ./
sudo mv -f Sonoff-Homekit/firmware sonoff_advanced

# 删除文件
sudo rm sonoff_advanced/firmware/Sonoff_*.bin

2、编辑 Makefile 文件

# 打开 Makefile 文件
sudo gedit sonoff_advanced/Makefile

编辑前

PROGRAM ?= sonoff

EXTRA_COMPONENTS = \
	extras/http-parser \
	extras/dhcpserver \
	extras/mbedtls \
	extras/httpd \
	$(abspath ../../components/wifi_config) \
	$(abspath ../../components/wolfssl) \
	$(abspath ../../components/cJSON) \
	$(abspath ../../components/homekit)

FLASH_SIZE ?= 8
FLASH_MODE ?= dout
FLASH_SPEED ?= 40
HOMEKIT_SPI_FLASH_BASE_ADDR ?= 0x7A000

EXTRA_CFLAGS += -I../.. -DHOMEKIT_SHORT_APPLE_UUIDS -DLWIP_HTTPD_CGI=1 -DLWIP_HTTPD_SSI=1 -I./fsdata

include $(SDK_PATH)/common.mk

monitor:
	$(FILTEROUTPUT) --port $(ESPPORT) --baud 115200 --elf $(PROGRAM_OUT)

html:
	@echo "Generating fsdata.."
	cd fsdata && ./makefsdata && cd -

 编辑后

PROGRAM ?= sonoff

EXTRA_COMPONENTS = \
	extras/http-parser \
	extras/dhcpserver \
	extras/mbedtls \
	extras/httpd \
    $(abspath ../../external_libs/wolfssl) \
    $(abspath ../../external_libs/cJSON) \
    $(abspath ../../external_libs/homekit) \
    $(abspath ../../external_libs/wifi_config) \

FLASH_SIZE ?= 8
FLASH_MODE ?= dout
FLASH_SPEED ?= 40
HOMEKIT_SPI_FLASH_BASE_ADDR ?= 0x7A000

EXTRA_CFLAGS += -I../.. -DHOMEKIT_SHORT_APPLE_UUIDS -DLWIP_HTTPD_CGI=1 -DLWIP_HTTPD_SSI=1 -I./fsdata

include $(abspath ../../sdk/esp-open-rtos/common.mk)

monitor:
	$(FILTEROUTPUT) --port $(ESPPORT) --baud 115200 --elf $(PROGRAM_OUT)

html:
	@echo "Generating fsdata.."
	cd fsdata && ./makefsdata && cd -

编剧好后保存退出。还有其它源文件也需要简单修改,这里就不展开了。

3、编译源文件

# 退到 esp-homekit-devices 目录
cd ..

# 编译源文件
make -C devices/sonoff_advanced all

如编译成功应出现类似以下界面

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第6张图片

编译好后就可以准备进行烧写了。 

4、擦除和烧写 flash 

烧写除了需要上面编译好的 sonoff.bin 外,还需要 rboot.bin 和 blank_config.bin 两个文件,有需要的可以到 http://download.csdn.net/download/cppphp/11086449 下载,该软件包是针对我们硬件的完整软件包,下载后按说明直接刷机即可。

详细内容参见前一篇博客《ubuntu 上 ESP8266 HomeKit 实战(一)用 esp-homekit-devices 搭建开发环境》的相关内容。

三、iPad 或者 iPhone 等的连接和设置

刷机完成后,如果是 ESP Link 直接按 reset 键;是 USB TO TTL 则从电脑上拔下,把接线改成运行模式,再插入电脑。

打开 iPhone,进入设置 -> Wi-Fi 看到名为 sonoff-switch-****** 的 SSID

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第7张图片

 点击连接

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第8张图片

连上后会自动打开 WiFi 登陆页面,选择一个可联网的登陆。

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第9张图片

登陆成功后,打开家庭APP 

 ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第10张图片

点击 “添加配件” 

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第11张图片

点击 “没有代码或无法扫描?” 

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第12张图片

点击 红色矩形所围区域 

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第13张图片

点击 “仍然添加” 

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第14张图片

输入8位设置代码 “11111111” 

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第15张图片

等待添加完成 

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第16张图片

点击 “完成” 

ubuntu 上 ESP8266 HomeKit 实战(二)1路继电器_第17张图片

这时已经成功添加到家庭APP。把 ESP8266-01 插入 1 路继电器的 8 孔插座,接好 5v 电源和继电器接线,就能用手机对1 路继电器模块进行控制了。 但控制只能在同一 Wi-Fi 下进行,不能远程控制。如何进行远程控制在《ubuntu 上 ESP8266 HomeKit 实战(三)设置 iPad 为家居中枢使 ios 设备进行远程控制》中讲述。

相关博客

《ubuntu 上 ESP8266 HomeKit 实战(一)用 esp-homekit-devices 搭建开发环境》 

《ubuntu 上 ESP8266 HomeKit 实战(三)设置 iPad 为家居中枢使 ios 设备具备远程控制能力》

《ubuntu 上 ESP8266 HomeKit 实战(四)1路继电器 + 1个触摸开关》

《ubuntu 上 ESP8266 HomeKit 实战(五)2路继电器》

你可能感兴趣的:(Homekit,ESP:8266,物联网)