Featured image of post 树莓派之esp-01智能开关

树莓派之esp-01智能开关

前言

继上篇树莓派养成之路 ——siri 控制LED灯后一直想着怎么将线路接入真实生活中。由于测试都是使用导线将灯或继电器和树莓派连接,如果家里有多个设备就会出现如下问题:

  1. GPIO口数量不够
  2. 实体线部线(PS:在树莓派养成之路 ——siri 控制LED灯中至少要将GPIO口和灯或继电器连接),设备一多,线路满天飞。

基于上述两个问题,自然而然的就想到使用wifi控制设备。随后看到esp-01经济实惠的wifi模块。后续几篇我将从电路、程序、homebridge通信、siri控制等方面介绍下我这引些天使用esp-01无线模块自己打造**“智能开关”**

正文

下面简单描述下打造“智能开关”的步骤

整体框架设计和模块功能确定

整体框架

从连接方式上看;手机、树莓派和wifi模块通过路由器连接并通信(屁话)。wifi模块提供服务接收指令控制GPIO口控制达到控制灯开关的目的。

模块功能

“智能开关”设计之初是为了控制灯。可以手动控制也可以通过软件控制。

esp-01模块了解

esp-01是封装esp8266芯片的wifi模块。

  1. wifi模块 可烧固件
  2. 有3个GPIO口
  3. 有详细的开发手册、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插件

组装测试及修改

这步主要是迭代上面两步,直到项目结束。

结束

这是本人总结的基本的开发步骤,后续会陆续更新开发流程。最后送上一段测试视屏

Licensed under CC BY-NC-SA 4.0
最后更新于 2024-05-06 22:06 CST