前言
继上篇树莓派养成之路 ——siri 控制LED灯后一直想着怎么将线路接入真实生活中。由于测试都是使用导线将灯或继电器和树莓派连接,如果家里有多个设备就会出现如下问题:
- GPIO口数量不够
- 实体线部线(PS:在树莓派养成之路 ——siri 控制LED灯中至少要将GPIO口和灯或继电器连接),设备一多,线路满天飞。
基于上述两个问题,自然而然的就想到使用wifi控制设备。随后看到esp-01经济实惠的wifi模块。后续几篇我将从电路、程序、homebridge通信、siri控制等方面介绍下我这引些天使用esp-01无线模块自己打造**“智能开关”**
正文
下面简单描述下打造“智能开关”的步骤
整体框架设计和模块功能确定
整体框架
从连接方式上看;手机、树莓派和wifi模块通过路由器连接并通信(屁话)。wifi模块提供服务接收指令控制GPIO口控制达到控制灯开关的目的。
模块功能
“智能开关”设计之初是为了控制灯。可以手动控制也可以通过软件控制。
esp-01模块了解
esp-01是封装esp8266芯片的wifi模块。
- wifi模块 可烧固件
- 有3个GPIO口
- 有详细的开发手册、SDK文档、API文档 详细的DEMO
了解homebridge和esp-01通信
了解homebridge和esp-01通信主要是为了方便编写固件和homebridge插件。这里主要参考homebridge_yeelight插件。
通信报文采用json格式
{"id":-1,"method":"get_prop","power":"on"}
通信流程:
homebridge_yeelight会启动UDP服务。智能开关通电会启动tcp服务端和UDP客户端,通过UDP客户端发送智能开关的信息(主要是设备ID、IP、端口),homebridge_yeelight收到UDP信息通过tcp客户端连接上智能开关并保持通信。
esp-01固件开发和homebridge插件开发
esp-01固件开发
- 开发环境搭建。交叉编译工具、固件烧写工具
- 设备工具、烧写电路、测试电路
- demo编译测试
- 程序开发编译烧写
homebridge插件开发
这里主要是修改homebridge_yeelight插件
组装测试及修改
这步主要是迭代上面两步,直到项目结束。
结束
这是本人总结的基本的开发步骤,后续会陆续更新开发流程。最后送上一段测试视屏