# 1、智能窗帘功能
智能窗帘控制器V1.0能实现:雨滴检测、红外检测、光线明亮检测,语音交互、电机控制;附件是V1.0的程序源码,基础功能都已经调试完毕。
基础功能主要技术指标:
(1)可以通过红外遥控与语音设置是否打开自动模式;
(2)在自动模式下,当光照强度很高时,自动展开窗帘;当光照强度很低时,自动关闭窗帘;
(3)在自动模式下,当检测到大量雨滴时,自动展开窗帘,此优先级比光照检测高;
(4)在任何时候,可以通过红外遥控或语音命令展开与关闭窗帘,并关闭自动模式;
(5)主控芯片接收到数据后,驱动电机运转,现实智能窗帘窗户系统。
智能窗帘控制器V2.0在上述功能基础上,还能实现屏幕显示关键数据。
V2.0版本代码还在调试中,后续会增加链接。
# 2、器件选型及原理图绘制
## 2.1雨滴传感器
传感器移植模块,可以去**[梁山派模块移植手册](https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc)查看原理及代码**https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc
**手册使用教程**:**ctrl+f**在文档内**搜索**:雨滴,然后点击**下一处**即可快速跳转到雨滴传感器移植章节。
![下一处.png](//image.lceda.cn/pullimage/SW8oF7OQ6ngWPpnnsVfANab0H9UcdwlNxSU8tMHe.png)
雨滴传感器**功能**:用来检测是否下雨以及雨滴大小。
雨滴传感器**原理**:通过检测水滴的导电性来判断是否下雨。详情见[手册]
**原理图**:雨滴传感器,正极接一个10k电阻,没有雨滴的时候,RAIN标签处测量电压为0;也可以把10K电阻放右边和GND连在一起,这样RAIN标签有要放置在右边,没有雨滴的时候,RAIN标签处测量电压为5V;两种电路画法如下:
![雨滴传感器.png](//image.lceda.cn/pullimage/kRC8AjMYcM7Gmr7oDs9VCNpmaab9x9eVArlI2jXB.png)
## 2.2光线强度传感器模块
在**梁山派模块移植手册**查找**光敏电阻传感器**;
光敏电阻传感器**功能**:检测光线亮度。
光敏电阻传感器**原理**:随着光照强度的升高,电阻值迅速降低。**其在无光照时,几乎呈高阻状态,暗时电阻很大**。详情见[手册](https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc)。原理图如下:
![光敏电阻.png](//image.lceda.cn/pullimage/OHBgKoBvESEGLObiKWhruozNYkv0TJSYmy6UfKyp.png)
LM393使用:-比+电压高,输出低电平,+比-电压高,输出高电平;
为了节省成本,不用这个现成的光敏电阻传感器检测电路,只用上图的R2和R3;
光敏电阻选择C125626,[亮电阻:5kΩ~10kΩ 暗电阻:500kΩ](https://item.szlcsc.com/136904.html);
**ADC注意**:梁山派的ADC检测范围是0~3.3V,因此不能接+5V,要接3.3V;上述雨滴传感器同理,也要把5V改为3.3V;
## 2.3红外接收模块
在**梁山派模块移植手册**查找**红外接收模块**;
红外接收模块**功能**:实现红外信号接收。
红外接收模块**原理**:详情见[手册](https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc)。通过检测OUT端口,低电平说明有红外信号。
需要一个红外遥控器和一个接收头;**画PCB的时候是只需要接收头;但实际需要一个遥控器**;
接收头选择C16216,查看数据手册,输入电压范围:2.7V~5.5V,可以接3.3V;手册里提供了参考电路,直接拿来用即可;
为了避免干扰出现OUT低电平但又没有红外信号的情况,于是OUT接了个上拉电阻;
## 2.4语音识别模块
在**梁山派模块移植手册**查找**语音识别模块**;这是一个纯离线语音识别模块,只能通过特定命令识别。
型号:HLK-V20;
接线图参考**梁山派模块移植手册**,通过麦克风来识别语音,还需要一个喇叭来做出回应;
注意:**下载注意事项:点击下载时,不要给模块通电,只需要连接B6,B7,GND即可**;因此VCC还需要接一个开关;如果是按键,使用时要一直按着很不方便,此处推荐**拨码开关**。
## 2.5步进电机
在**梁山派模块移植手册**查找**步进电机模块**;推荐**二相四线步进电机**;根据购买链接点进去,选择带转换座的;
**原理**:二相指的是有两个线圈,四线指的是每一个线圈有两根线。其中A+与A-为一相,B+与B-为一相。
**电机驱动芯片**:推荐:L9110S,便宜好用;电路参考该芯片数据手册中的典型应用电路;
## 2.6短接符确定引脚
在原理图上通过短接符来确定接入梁山派的各个引脚,方便直接查看;
**PCB小技巧**:PCB走线,走不过去的时候,可以大范围铺铜连接过去,然后打孔;
# 3、**注意**
V2.0版本因为增加了屏幕接口,视屏教程中的原红外接口PF7改为PA1;该屏幕保留了贴片和直插两种接线方式。V1.0版本的源码也是在PA1的基础上进行调试的;
# 智能窗帘程序设计
# 4、雨滴+光敏电阻传感器
## 在[梁山派模块移植手册](https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc),下载雨滴传感器移植代码;
## 修改移植代码,主要是修改通道参数
打开移植工程:打开bsp_raindrop.h文件,AO引脚对应PF8,DO引脚用不到,删除DO引脚定义相关代码,并在bsp_raindrop.c文件中删除DO相关代码;PF8对应的是ADC2通道6,因此修改ADC定义相关代码;
## 移植现象
移植现象:输出检测雨滴大小程度的百分比。(当滴一些水在裸露的铜皮上时,输出高于50%;当将水擦掉时,输出2%左右)
## 光敏电阻模块移植同理,直接在雨滴传感器移植代码里进行修改即可;
# 5、步进电机
## 在[梁山派模块移植手册](https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc),下载二相四线步进电机移植代码;
## 用完电机之后,及时给电机输出低电平。不然一直高电平的状态,相当于电机一直通电,发烫是正常的;
## 电机驱动的时候,因为有正反转两个状态,在确定一个状态为1的时候,另一个状态也必须手动确定为0,否则可能出现两个状态都为1的情况。因此,在写代码的时候必须两个状态都明确表示出来。
# 6、红外接收
## **红外线的通讯原理**,查看梁山派模块移植手册;采用**NEC****协议的频率就是38KHZ**
NEC协议一次完整的传输包含: 引导码、8位地址码、8位地址反码、8位命令码、8位命令反码。这里我们主要讲解如何接收红外发送端发送的NEC协议内容。
**引导码:** 由9ms的低电平+4.5ms的高电平组成;
**4个字节的数据:** 地址码+地址反码+命令码+命令反码。 这里的反码可以用来校验数据是否传输正确,有没有丢包。
> **重点: NEC协议传输数据位的时候,0和1的区分是依靠收到的高、低电平的持续时间来进行区分的。这是解码关键。**
数据发送0码:0.56ms低电平+ 0.56ms的高电平。
数据发送1码:0.56ms低电平+1.68ms的高电平。
**还有一个重复码,它是由一个 9ms 的低电平和一个 2.5ms 的高电平组成**。当一个红外信号连续发送时,可以通过发送重复码的方式快速发送。
**注意:**按下遥控按键的时候,串口显示接收到的数据是这样的,四个一组(8位地址码、8位地址反码、8位命令码、8位命令反码):
![QQ图片20231015154729.png](//image.lceda.cn/pullimage/4WnRUJ1SXMEwkZVBRaHzMVuAwY9kXJKiyZa5HWxq.png)
因此在进行命令处理的时候,用的是第三组数据(命令码);
## 按键功能:
**右箭头按键,打开窗帘**
**左箭头按键,关闭窗帘**
**自动模式 ,*键**
**手动模式,#键**
因为本人接口用的是PA1(教程是PF7),因此要更改bsp_ir_receiver.h相关代码,注意:"bsp_ir_receiver.c文件中的中断函数代码也要进行相应更改,把原来的函数名改为void EXTI1_IRQHandler(void)即可;
# 7、语音识别固件烧录教程
此处需要一个CH340转换器;
## 方法一:海凌科
进入[海凌科产品中心](http://voice.hlktech.com/yunSound/public/toWebLogout):http://voice.hlktech.com/yunSound/public/toWebLogout
[海凌科语音识别模块的语音固件创建与下载](https://lceda001.feishu.cn/docx/LQkZd74b7o8aEHxAGzbcGvHynle):https://lceda001.feishu.cn/docx/LQkZd74b7o8aEHxAGzbcGvHynle
按照**海凌科语音识别模块的语音固件创建与下载**文档操作即可;
**下载注意事项:点击下载时,不要给模块通电,只需要连接B6,B7,GND即可。**
## 方法二:机芯智能
[机芯智能](https://www.aimachip.com/):https://www.aimachip.com/
进入后,进入智能公元平台,要登录;
按照[教程视频](https://www.bilibili.com/video/BV1iV411P7H4?p=16&share_source=copy_web)操作即可;https://www.bilibili.com/video/BV1iV411P7H4?p=16&share_source=copy_web
# 如何语音识别
## 在[梁山派模块移植手册](https://lceda001.feishu.cn/wiki/JNvYwEU5SiGldFkNcxncYXhZnZc),下载语音识别移植代码;
# 8、代码集成
以语音识别代码为主,复制该代码并重命名为窗帘控制系统,打开其它几个驱动的程序目录下的Hardware文件夹,把对应驱动的文件夹复制到窗帘控制系统下的Hardware文件夹下面,最终效果如图:
![QQ图片20231008093509.png](//image.lceda.cn/pullimage/hZUhF1gkk6t4BARs0Ifs9HG9vP6zR7G2vLNrgjd6.png)
打开工程,并添加刚刚新增的文件夹目录;
代码集成部分需要注意的点太多,建议直接看视频教程。
0
1
收藏到专辑