前言
闲言少叙,使用ESP8266制作一个接入Homekit的电灯开关,以实现手机上远程开关
正文
准备
硬件部分
ESP8266开发板
ESP8266继电器模块
触摸传感器模块(若不需要实体开关,可以省略此插件)
220V转5V变压器
CH340C烧录器(ESP8266大板不需要)
若干根电线
软件部分
- Arduino
- 继电器固件
- ESP-01S烧录器驱动
开始
烧录固件
我使用的ESP-01S,需要通过烧录器连接电脑,进行烧录。
如果你使用的是ESP8266大板则不需要烧录器
- 打开Arduino,配置开发板设置(大板/小板开发板设置不同)
- 解压并打开继电器固件中的HomeKit_led文件
- 根据实际情况修改HomeKit_led中的WIFI信息
- 点击左上方指向右的箭头进行上传
- 等待上传完成
测试固件
此举在于测试固件有没有烧录成功
- 打开Arduino>工具>串口监视器
- 点击烧录器上的按钮,对ESP8266进行重启
- 查看串口监视器上显示的信息
- 打开iPhone上的家庭,并添加配件
- 点击家庭中灯的开关按钮,查看串口监视器中的信息是否显示正常
连接电路
将市电的火线连接到继电器的COM端,电灯的火线连接到继电器的NC端(连接前请使用弱电测试,以免造成意外!!!)
将5V电源VCC(正极)连接到继电器的VCC端,GND(负极)连接到继电器的GND端
触摸传感器VCC端连接到ESP开发板的3.3V端,GND连接到开发板的GND端,IO连接到开发板的IO2端
测试模块
与测试固件类似,只需要去家庭中测试电灯可不可以正常开启关闭
注意事项
- 如果你发现没有在家庭APP中找到设备,你可以尝试查看固件配置的WIFI名称和密码有没有错误;固件之前有没有刷其他固件,如果刷了请清除(查看文章ESP8266如何刷空白固件)
- 如果你发现家庭APP里面的电灯开关控制颠倒了,你可以将固件simple_led_accessory.c文件中
HIGH
与LOW
的位置互换;或者将电灯火线连接到模块的NO端
后语
代码是别人开源的,如有不理解之处烦请自行百度;
如果你实在不会,一瓶可乐帮你搭建