前言
自从有了 Spirit 1 这个超便宜的个人智能设备服务器,就可以自己在家制作智能家居设备,简直就是DIY党的福音!ヾ(●゜ⅴ゜)ノ 棒棒哒!
上次做了一个 智能红外测温模块 感觉真有意思,有点上头了,满脑子寻思着还能做点啥玩玩,发现手边正好有一个主动红外接近传感器,感应进入范围的物体,原理类似,输出数字量0 1,可以直接接入 arduino ,这东西感觉可以配合很多其他的设备实现 combos。这次就简单的来做一个智能红外接近传感器吧!
ヾ(✿゚▽゚)ノ
硬件选择
开发板选择和之前的 红外测温枪 完全一致,安信可 ESP32S 开发板,至于我为什么选择这个开发板,或者想选择了解其他开发板的朋友可以看 arduino开发指导 和 手把手带你 arduino 开发:基于ESP32S 的第一个应用-红外测温枪(带引脚图)里面有我推荐这块开发板的原因和 arduino 开发入门,肯定能帮助你从零开始学习arduino。
*绝对不是想拯救那可悲的阅读量!绝对不是!(拍桌子,震声!︵╰(‵□′)╯︵┻━┻) *
而传感器部分我选择了 XKC主动红外接近传感器 还挺厉害的,探测距离可达2米,而且调节探测距离也很方便
传感器接线非常简单:
VCC->5V
GND -> GND
OUT -> 34

代码解析
获取代码
为了方便讲解逻辑,我会打乱代码的顺序可能还会进行裁剪,要是想直接拿代码的朋友可以直接去 灵感桌面的秘密宝库 获取代码,或者直接clone:
https://gitee.com/inspiration-desktop/DEV-lib-arduino.git
这次用到的是这个三个文件夹:

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

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

具体 arduino 使用教程可以看我之前的文章 arduino开发指导 和 手把手带你 arduino 开发:基于ESP32S 的第一个应用-红外测温枪(带引脚图)
设备控制命令:
由 Spirit 1 的应用程序或者嗅探器(嗅探器是啥?) 向传感器设备发送的命令。(虽然现在应用我还没写出来(˘•ω•˘))
{
"method": "get", // 获取传感器当前状态,可以主动查询传感器前是否有
"obj": ["proximity"]
}
设备和协议初始化流程:
不需要做什么修改,主要是设备初始化,管脚配置,和协议初始化部分
/*
* 初始化传感器
*/
void sensor_init()
{
// 初始化 GOIP 口为输入模式,接收传感器发送的信息
pinMode(sensor_in,INPUT);
}
void setup() {
byte mac[6];
Serial.begin(115200);
Serial.setDebugOutput(true);
Serial.println();
// 初始化传感器
sensor_init();
// 启动 WiFi 并且连接网络
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED)
{
delay(500);
Serial.print(
ESP32 DIY智能家居:红外接近传感器的智能控制与SDDC应用

本文介绍了如何使用ESP32和XKC主动红外接近传感器,配合SDDC协议,实现智能家居设备的基本控制。通过代码解析,展示了设备初始化、命令发送和状态获取的过程,以及如何构建场景联动。
最低0.47元/天 解锁文章
1207

被折叠的 条评论
为什么被折叠?



