
【训练营】智能窗帘控制系统
简介
这是一个智能窗帘的设计方案,物联网模块使用的是涂鸦智能的WB3S模块,一个STM32F0主控和一个2.4G无线模块断网也可以控制。
简介:这是一个智能窗帘的设计方案,物联网模块使用的是涂鸦智能的WB3S模块,一个STM32F0主控和一个2.4G无线模块断网也可以控制。开源协议
:GPL 3.0
描述
物联网智能窗帘控制系统
话不多说先上效果图:
![]() |
![]() |
窗帘关闭 | 窗帘打开 |
演示视频在最后,接下来正文开始!
=============================================正文分割线==============================================
1、项目介绍
19号的下午6点过,我一如既往的看着公众号推送,却刚好赶上了立创EDA发布的训练营消息!还正好是我非常喜爱的物联网专题,赶紧点进去查看详情报名(因为暑假的训练营没赶上,当时还不知道在哪里报名,现在给我赶上了hhh),然后去了解了一下涂鸦平台,发现可以绑定小爱(因为我是米粉一名,以前接触过一些物联网平台,接入小爱同学都不是特别方便,能接入的还...就是没达到想要的效果,还有很多平台对个人开发者不开放所以...)怀着激动的心情开始了涂鸦的探索...于是就开始了要做什么的思考,经过2天的观察,我发现不管在B站,tb,p夕夕都没有智能窗帘改造的,产品都是好几百甚至上千的(p夕夕最便宜都是200多),要重新安装电动轨道,不仅成本高还麻烦。但是对于DIY电子爱好者来说,要是能自己改造自家窗帘,那岂不是快乐升天! 所以我要利用这次机会用最简单粗暴的方法和最低的成本实现一个智能窗帘的设计!再次感谢立创EDA和涂鸦智能提供的学习机会~
2、实现原理
这个项目的原理很简单,首先我把窗帘用尼龙绳绑了起来,利用打在墙上固定窗帘的座子形成回路,使其用两根绳子相互运动从而达到窗帘的开和关。下面是我画的一个简单的示意图:
![]() |
![]() |
当窗帘处于关闭状态时,绿色绳子往里拉,蓝色绳子往外放,即可将窗帘打开 | 当窗帘处于打开状态时,绿色绳子往外放,蓝色绳子往里拉,即可将窗帘关闭 |
3、原理图分析
3.1电源
电源这一块的话,因为电机我选择的是12v的,所以电源也需要12v输入,方便接适配器或电池。降压部分我用了最简单粗暴的方法AMS1117!直接降到3.3的话担心ldo功耗大发热严重,所以用了一个5v缓冲一下,在涂鸦模组这边我也用了一个小的ldo,在绘制pcb的时候也将wb3s画成了一个模块,引脚引出,方便以后玩耍!
3.2外设
在主板上留了一颗led,方便调试和指示作用。2个低功耗霍尔型号是FDH002BH用来检测窗帘是否到了限位。预留了程序下载调试接口。无线模块的话,选择的是一个透传模块LC12S,很方便,配置成一样可以一对多,多对多,只要一次配置好,就不用动了,也大大减少了代码量,缩短开发周期。
3.3 电机驱动
电机驱动芯片,我选择的是RZ7889,它的工作电压范围:3-18V最大连续工作电流4.2A。
优点:是内部自带MSOFET和一些保护电路,不用外围电路,通电直接控制,内置保护电路,根据手册真值表直接就可以用,很方便
缺点:应该是不能调速,听说频率在1k可以,不过这项目用不着调速,所以这个芯片最合适不过了!
3.4 MCU
这里的话主板和遥控器的主控选择的都是STM32F070F6P6,因为在这个项目非常的简单,然后自己也比较喜欢玩32,就选择了成本较低的STM32F0系列单片机,所以这个项目对于我来说成本和难易程度都得到了控制。
3.5 涂鸦智能模组
涂鸦的模块我选择的是WB3S对于这一部分电路,我就是将涂鸦模组的引脚引出来,加了个ldo方便以后使用,这里也吐槽一下,涂鸦平台的确比较方便,也挺好使的,手机控制的时候延时也很小,以前也用过一些物联网平台,相对而言的话,涂鸦还是比较不错的。但是我觉得唯一遗憾的就是不能对接小爱同学(可以,但是要开通增值服务)...
3.6 遥控器按键
遥控器总共有8个按键,都进行了硬件消抖,这样也也能省去大部分的程序,减轻了程序的负担。
3.7 遥控器充电电路
充电电路参照了典型锂电池充放电典型结构设计的:
充电保护芯片的话我选择的是常用的TC4056A,这个也比较简单,功能也比较多,啥保护啥的都有,还有温度监控,但是这里我没用到哈,充电的指示灯和充满的指示灯这两个比较实用。通过图中R9调整最大充电电流到1A。电池的话,我这里刚好有几块800mAh的锂电池,所以就将就用了,然后用了SC662K低压差LDO来给遥控器供电,充电接口的话 我个人非常喜欢用type-c,手机电脑和diy的东西都是,喜欢统一。
充电状态指示 | |
![]() |
![]() |
红灯亮表示正在充电 | 绿灯亮表示充电完成 |
4、PCB设计
![]() |
![]() |
![]() |
![]() |
智能窗帘主板PCB顶层 | 智能窗帘主板PCB底层 | 智能窗帘主板3D正面 | 智能窗帘主板3D反面 |
![]() |
![]() |
![]() |
![]() |
智能窗帘遥控器PCB顶层 | 智能窗帘遥控器PCB底层 | 智能窗帘遥控器3D正面 | 智能窗帘遥控器3D反面 |
5、实物搭建
元器件已经就位,很凑巧,板子和模组在周日一起到了,于是就开启了焊接调试之路:
下边是焊接调试好的:板子图↓
![]() |
|
主板和遥控器合照 ✌ | |
![]() |
![]() |
主板正面 | 主板反面 |
![]() |
![]() |
遥控器正面 | 遥控器反面 |
下面是在tb买的一个减速电机和尼龙绳:
![]() |
![]() |
JGY-370减速电机,电压12v,66转每分钟 | 尼龙绳,很便宜,特别的结实。1mm粗 ,30米长 |
为了制作方便快捷,我用了最简单思路:只使用了涂鸦智能模块的一个最简单的功能,就是插座,只有开和关,然后用STM32检测输出的电平即可控制,在app控制界面自定义一下,插座就变成窗帘啦。(因为对个人开发者不开放,所以只有这次机会能用到,就不太想深入学习以后要是用到在学,而且在实习,工作也比较忙,其实对于米粉兼电子爱好者来说最重要的原因应该是不支持小爱...)。
6、STM32代码部分
虽然现在想做的是一个智能窗帘,但是对于我的兴趣爱好来说,这只是一个开始,接下来会接着进行我的智能家居DIY之路(在我B站以前有些ESP8266的视频,有兴趣的同学可以去看看哈)。离线遥控器也是做了8个按键在以后可以用程序添加功能(很遗憾现在没有给作品加上外壳,因为还不会画哈哈哈,不过以后会有的)。所以我定了一个简单也方便后续添加的协议:
程序的话,因为也是个入门的孩子,现在也只有窗帘,所以写的很简单,就贴一些关键代码吧:
下面是智能窗帘遥控器的发送部分:
下面是智能窗帘主板的接收程序部分:
7、过程中遇到的一些问题以及解决方法
总的来说没有什么太大的问题,都是一些小细节问题,一时疏忽导致的。主要有以下几点:
1. 无线模块的LC12S的SET引脚,画错了(原理图pcb已修改),正常工作时SET引脚应该是拉高或者悬空的(因为疏忽,没仔细看官方手册,上面画着典型电路SET脚就是接地的,于是就无脑抄。。。解决方法:板子到了后,配置好模块割了根线)。
2. 遥控器的调试接口丝印画反了(原理图pcb已修改)
3. 霍尔电路那里信号没有上拉,有时候会有自己触发,不稳定。解决方法:程序内部上拉或硬件上拉,我选择了程序上拉。
8、涂鸦APP面板展示
下面是我自定义设置的面板,在网上找的图标,虽然比较简陋,但是,清晰、直观、实用就算老年人也能看得懂!
![]() |
![]() |
![]() |
这是主页-----可以看见当前账号下的智能设备 |
这是控制页----图标显示当前窗帘为打开状态 |
这是控制页----图标显示当前窗帘为关闭状态 |
9、演示视频
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 欢迎跳转观看本作品的成品演示视频~~ +
+ +
+ 视频地址:https://www.bilibili.com/video/BV1qK411V7PN +
+ +
+ 好啦,到这里工程就结束啦,再见啦各位! + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
---END---
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | TYPE-C 6P | USB1 | TYPE-C-SMD_TYPE-C-6P | 1 |
2 | Motor | H1 | CONN-TH_2P-P3.81_KF2EDGR-3.81-2P | 1 |
3 | BAT | H5 | HDR-F-2.54_1X2 | 1 |
4 | K2-3.6×6.1_SMD | KEY1 | SW-SMD_L3.5-W6.0-P8.20 | 1 |
5 | LED-0603_R | LED1,LED6 | LED0603_RED | 2 |

评论