『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 11777|回复: 19

基于espurna的电动窗帘控制器

[复制链接]

5

主题

95

帖子

617

积分

论坛技术达人

积分
617
金钱
507
HASS币
60
发表于 2018-11-2 22:04:15 | 显示全部楼层 |阅读模式
本帖最后由 feversky 于 2018-11-5 11:17 编辑

电机买的是最便宜的一款,kt320e. 买回来后发现很多人说红外信号识别得试很多次,嫌太麻烦,就打算自己开发个固件,还能带状态反馈。
拆开电机分析了下,电路接口很简单,两路霍尔信号用来测电机转动,两路继电器开关。感觉电机做工还可以,基本原理如下:
两路霍尔可以做电机的绝对位置检测,也可以检测速度。电机里面有一个类似于开关离合器的东西,继电器打开后输出轴向外弹出,跟窗帘上的齿轮部分结合起来,继电器关闭时输出轴缩回,这样的话才可以手拉启动。不然的话手拉的时候拖着电机反转,对电路有影响。

原来的控制器:

                               
登录/注册后可看大图


两路霍尔:

                               
登录/注册后可看大图


两路继电器

                               
登录/注册后可看大图


用nodemcu做控制器,基于espurna开发,贼稳定,用了一阵子没什么问题。
把原来的控制器拆掉,继电器模块上的电源模块功率不够,需要加一个电源转换模块。

                               
登录/注册后可看大图



                               
登录/注册后可看大图


建议用尺寸小的esp8266模块,我手头上的是一个很久以前的nodemcu版本,尺寸比较小,刚好放进去。

代码在这里,可以自己编译。
https://github.com/feversky/espurna主要的功能:
- mqtt接入home assistant
- 遇阻停止
- 手拉启动

两路霍尔信号分别接GPIO4和5,两路继电器接12和13,没有具体的对应关系。电机转动方向可以后面再自学习。
使用方法:
1. 上电,窗帘拉开,在espurna的web端输入命令curtain.sp,此时软件中的绝对位置被设为0.
2. 手动把窗帘完全关闭,输入命令curtain.ep,此时软件记录绝对位置到eeprom里面。
3. 把窗帘拉到中间,输入命令curtain.learn,电机会转动一下,学习哪个继电器用于打开窗帘。
4. 设置遇阻停止,输入命令curtain.speedthreshold xxx,当手拉窗帘产生阻力时,电机会减速,低于这个值的时候,继电器会打开。
其他一些命令:
curtain.close: 关闭窗帘
curtain.open: 打开窗帘
curtian.report: 上报当前的主要设置及状态

ps:交流电机噪音还是有一些,不过也不会在睡觉的时候用吧。DIY这个纯属因为穷。
后面我想应用到电动窗户上面(左右平移类型的),感兴趣的朋友可以一起探讨下

有条件的朋友还是推荐购买论坛的电机,质量和售后也有保障。烧了电机不要怪我啊







评分

参与人数 2金钱 +25 收起 理由
671792320 + 5 大神666!
+ 20 膜拜大神!

查看全部评分

枸杞泡咖啡,我只要喝一杯~~~
回复

使用道具 举报

0

主题

179

帖子

2706

积分

金牌会员

Rank: 6Rank: 6

积分
2706
金钱
2527
HASS币
0
发表于 2018-11-2 22:06:48 | 显示全部楼层
图片怎么是404
回复

使用道具 举报

14

主题

266

帖子

1640

积分

论坛技术达人

积分
1640
金钱
1354
HASS币
40

教程狂人

发表于 2018-11-2 22:23:45 | 显示全部楼层
呃,你如何解决的记忆? 到头了是提前减速还是遇阻?
回复

使用道具 举报

23

主题

656

帖子

4611

积分

元老级技术达人

积分
4611
金钱
3940
HASS币
30

教程狂人

QQ
发表于 2018-11-2 22:35:12 | 显示全部楼层
霍尔传感器检测电机转动,转不动就代表遇到阻力了嘛,记忆的问题应该都是用时间计算的。
回复

使用道具 举报

5

主题

95

帖子

617

积分

论坛技术达人

积分
617
金钱
507
HASS币
60
 楼主| 发表于 2018-11-2 22:38:56 | 显示全部楼层
huex 发表于 2018-11-2 22:23
呃,你如何解决的记忆? 到头了是提前减速还是遇阻?

在第一次使用前,把窗帘拉到最小和最大位置,记录下来。
如果到达指定位置,就直接把继电器的电断掉。没有去考虑减速,我更在乎关的是能够关好,不要漏光。
枸杞泡咖啡,我只要喝一杯~~~
回复

使用道具 举报

14

主题

266

帖子

1640

积分

论坛技术达人

积分
1640
金钱
1354
HASS币
40

教程狂人

发表于 2018-11-2 22:45:59 | 显示全部楼层
feversky 发表于 2018-11-2 22:38
在第一次使用前,把窗帘拉到最小和最大位置,记录下来。
如果到达指定位置,就直接把继电器的电断掉。没 ...

KT82是射频的,芯片是atmega168p,这玩意我没记错ad可以撸,原本打算拆掉,装上8266,但是原来的是有记忆位置的,不知道是时间还是步进电机,有一个GND+5V+H1+H2  ,加外2根+ -, 输入电源,所以就没动
回复

使用道具 举报

5

主题

95

帖子

617

积分

论坛技术达人

积分
617
金钱
507
HASS币
60
 楼主| 发表于 2018-11-3 09:50:25 | 显示全部楼层
huex 发表于 2018-11-2 22:45
KT82是射频的,芯片是atmega168p,这玩意我没记错ad可以撸,原本打算拆掉,装上8266,但是原来的是有记忆 ...

步进应该不太可能,步进有可能失步,譬如遇阻停止的时候,阻力稍微大一点就不行了。应该还是霍尔传感器,或者编码器。
枸杞泡咖啡,我只要喝一杯~~~
回复

使用道具 举报

3

主题

223

帖子

3047

积分

元老级技术达人

积分
3047
金钱
2819
HASS币
10
发表于 2018-11-3 13:17:44 | 显示全部楼层
异步电机
头部的编码器两个霍尔 16个永磁体
记忆靠第一次堵转
我自己写的可以在超过记忆位置后自动重设
当然手动重设也搞了 没什么问题
最大问题就是lz提到的 变压器输出9vac 33ma功率不够8266启动的
回复

使用道具 举报

0

主题

221

帖子

1095

积分

论坛积极会员

积分
1095
金钱
874
HASS币
0
发表于 2018-11-3 15:59:10 | 显示全部楼层
等待后续完善教程 主要是启动和停止的位置不太理解
回复

使用道具 举报

123

主题

4661

帖子

1万

积分

管理员

囧死

Rank: 9Rank: 9Rank: 9

积分
16410
金钱
11664
HASS币
45
发表于 2018-11-3 16:14:28 | 显示全部楼层
虽然不推荐这样折腾,但还是表达一下对楼主的佩服!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-25 12:30 , Processed in 1.343407 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表