前言
做完智慧浇水器之后对这种可以节省时间和精力的场景总有一种谜之向往(懒鬼是这样的),这次我准备做一个可以自动开窗的装置,结合之前的甲醛检测传感器就可以实现甲醛含量过高自动开窗通风,之后还可以把燃气检测、烟雾检测、一氧化碳检测、空气质量检测的各种气体传感器也接入进来,这个场景的覆盖面以及实用性也拉满了,有朋友要是还有想法可以在这个场景中接入哪些部件也可以留言给我,之后我都接入进来(快给我留言吧!求求你们了,让我室友给大伙磕头了!)。

硬件选择
板子依然选择超级好用,无敌便宜,资料齐全,生态完善之安信可 ESP32S 。
电动开窗器的选择呢,因为我家是常见的滑动平移的窗户,淘宝上大多都是推拉的,找了半天挑了一家最便宜的进行改造 ,别问,问就是穷!(T▽T)
接线有些复杂,因为这个开窗器的方向是由电流方向控制的,我就用了手边的一个三路继电器做了个电流反转的功能,接线具体如下:
ESP32S-5V — 继电器-Vcc
ESP32S-GND — 继电器-GND
ESP32S-P25 — 继电器-1路控制端
ESP32S-P26 — 继电器-2路控制端
ESP32S-P27 — 继电器-3路控制端
+24V 输出 — 继电器1路中间节点
-24V 输出 — 继电器3路中间节点
继电器1路常开节点 — 继电器2路中间节点
继电器2路常闭节点 — 继电器3路常开节点
继电器2路常开节点 — 继电器3路常闭节点
继电器3路常闭节点 — 开窗器的 +24V 输入
继电器3路常开节点 — 开窗器的 - 24V 输入


乱的一笔的飞线让大家看笑话了(/ω\)
最后用翼辉的 Spirit 1 边缘计算机,来进行设备控制。
代码解析
获取代码
为了方便讲解逻辑,我会打乱代码的顺序可能还会进行裁剪,要是想直接拿代码跑的朋友可以直接去 灵感桌面的秘密宝库 获取代码,或者直接 clone:
https://gitee.com/inspiration-desktop/DEV-lib-arduino.git
下载或者 clone代码后这次用到的是这个三个文件夹:

cjson:我移植的 cjson 库,就是标准的 cjson 库,放到 arduino 安装目录下的 libraries 文件夹里,百度一下 cjson 的函数使用就行了。
libsddc:是我移植自官方的SDDC库和自己写的 SDK,也是放入 libraries 文件夹里就行。里面是 SDDC 协议的处理函数,我们不用管。
demo 文件夹里面就是我们各种传感器的 demo 代码了:

红圈的 windows_sddc_sdk_demo 文件夹里面就是我们代码,点进去就能看见 windows_sddc_sdk_demo.ino 文件,双击文件会自动启动 arduino-IDE 打开代码。在工具 -> 端口 选择对应的 COM 口然后点击上传就可以把代码烧录到板子里:

具体 arduino 使用教程可以看我之前的文章 arduino开发指导 和 手把手带你 arduino 开发:基于ESP32S 的第一个应用-红外测温枪(带引脚图)
设备控制命令:
通过 Spirit 1 的应用程序或者嗅探器 向传感器设备发送的命令:
获取窗户当前位置百分比
{
"method": "get",
"obj": ["window_percent"]
}
向左移动
{
"method": "set",
"window": "left"
}
向右移动
{
"method": "set",
"window": "right"
}
停止移动
{
"method": "set",
"window": "OFF"
}
配置设备信息
这部分代码可以配置 WiFi 名字和 WiFi 密码,要使用的引脚,并且配置设备在 Spirit 1 上显示的信息:
#define SDDC_CFG_PORT 680U // SDDC 协议使用的端口号
#define PIN_INPUT 0 // 选择 IO0 进行控制
#define ESP_TASK_STACK_SIZE 4096
#define

最低0.47元/天 解锁文章
2859





