打印

业余时间搞了一个基于汽车CAN总线的智能家居控制器

[复制链接]
9279|36
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
最开始也是对智能家居这个东西比较感兴趣,那个时候听一些大老板吹他家里安装了智能家居控制系统,夏天的时候人还没到家就可以用手机远程控制家里的空调并设置到预先的温度,人回到家按一个按键就可以将平时需要操作很多次开关的工作一气呵成。想想也是挺羡慕,后来一打听他们这些大佬用的国外的control 4的智能控制系统贼贵贼贵的,光主机就两万多,屌丝我玩不起啊。
后来一咬牙,买不起我就自己做。毕竟学自动化出生的嘛,之前有在做SCARA和运动控制卡的公司待过,写个MCU的程序和画画简单的PCB还是不成问题的。
说干就干嘛,首先分析了一下市场上有的智能家居产品。国内像小米、海尔这些当然还有其他一些小品牌,几乎清一色的采用了无线方案,覆盖了有射频315M、433M、WIFI、ZIGBEE。了解了一下几个的区别,315M、433M只能是单向通信(LORA除外),WIFI和ZIGBEE可以进行双向通信,这点比315M和433M强。WIFI有传输速率上的优势,但是只能家居一般只需要传输IO信号,或者是几个字符串,例如光照强度,温度和湿度等等,ZIGBEE最低30KBPS的速率也足够了。但是后来我发现WIFI有两个致命的弱点,断线重连速度慢,这个平时用手机如果突然断开再重连,那个圈圈要转多久不用我说了吧。在一个wifi对路由器要求高,路由器都是有一个带机量的,这个做网络的应该非常清楚。普通的家用路由器的带机上限一般是15个,我从TP-Link的工程师那里了解到家用款都是最大同时连接15个设备,再往上就会出现部分信号差的设备掉线,这个我深有体会,过年的时候家里亲戚来的比较多,远超15台联网的设备,掉线是最常见的了。只有商用无线路由器才能达到50个的带机量。而zigbee的掉线重连只需要30ms,设备连接理论能达到65536个。
ZIGBEE这么好,是不是就玩这个了呢?并不是,偶然间又听到了无线zigbee掉线无法控制的情况。论坛上看到前辈用Ti公司的CC2530的zigbee模块测试只要终端设备超过20个就会出现掉线的情况,虽然Ti官方最近推出的CC2630说解决了掉线的问题,但是没多少人测试,结果不得而知。zigbee芯片还有一个比较强的就是EM357,我拆解过control 4的控制主机就是用的EM357。性能应该也是不错的,当时还在某个淘宝店铺看店家的测试视频,同时与200个终端进行通信,说明带机量是没有问题。想着去试试EM357吧,结果门槛太高了,开发环境和协议需要付费,大几千啊,玩不起!!!
然后我就蛮不情愿的跟自己解释说,无线不稳定,玩有线的吧。不过想想也是有道理的,像国外做的比较大的快思聪、罗格朗智能家居全都是以有线来进行通讯和控制。然后我就参考了一下他们的有线(总线)通讯系统,竟然还是用的485总线!!!这个485总线我以前是用过在伺服驱动器上的,总线正常的时候还好,能集中调试和控制伺服,非常方便。一旦其中一个出了问题,将总线拉低或者拉高,整个系统都将不能正常通讯。好在后来公司改进方案采用了CAN总线,这个总线方案一般都是用在汽车上的。汽车油门、刹车、方向这些关键的控制方式都是用CAN总连接与行车电脑进行通信的,所以说CAN总线的安全性可想而知。(暗自想了下好像没有那个汽车厂商敢用无线的通讯方式来传送油门、刹车这些数据哈)
我的方案是采用的STM32F103C8T6+TJA1050,STM32F103自带了CAN2.0B的控制器,所以我就只需要TJA1050这个CAN收发器就可以了。后期我打算把TJA1050换成TJA1040T,抗干扰能力更强,听一个奔驰的工程师说他们用的就是1040T。先写这么多吧,给个图看看。视频上传到优酷还需要审核!!!
第一代的主控核心板

第二代的主控核心板

第三代的主控核心板(正在服役)

第一代底板,可以对DC3.3-DC48V以内的LED进行无极调光,当时MOS封装画错了。现在报废。不过跳线还是可以正常使用,MOC3023触发双向可控硅一次成功,一直可以正常控制AC220的灯具。画了过零触发电路准备对玩可控硅调光的,结果分压电阻画多了。后面的版本有改进。

二代底板,两路双向可控硅,暂时去掉了LED的PWM调光,过零检测电路正常了。

两块控制板通过CAN总线与TCP/IP模块通信,手机可以发送指令控制本地的灯光控制板。两块板放在本地实现两地控制同一盏灯,相当于双控开关。


微信图片_20171005203048.jpg (469.21 KB )

CAN总线连接测试

CAN总线连接测试
评论
candyling 2018-3-29 13:34 回复TA
赞 

相关帖子

沙发
lijianfeng-11|  楼主 | 2017-10-5 22:30 | 只看该作者
本帖最后由 21ic小管家 于 2017-10-9 11:12 编辑

http://v.youku.com/v_show/id_XMzA2NjgzMDUzMg==.html?spm=a2h3j.8428770.3416059.1

http://v.youku.com/v_show/id_XMzA2Njg4MjY4OA==.html?spm=a2h3j.8428770.3416059.1

直接插入不会弄

使用特权

评论回复
板凳
ghostami| | 2017-10-6 08:33 | 只看该作者
成本会不会比较高啊啊

使用特权

评论回复
地板
lijianfeng-11|  楼主 | 2017-10-6 10:05 | 只看该作者
ghostami 发表于 2017-10-6 08:33
成本会不会比较高啊啊

自己玩的,没有考虑成本这个东西。材料我都是尽量用最好的,像温湿度传感器就是用的SHT20,比常见的DHT11贵了几倍数字式的,精确度和灵敏度都比DHT11要高。还有我用的光照传感器也是I2C通信的数字式输出的,比起光敏电阻要强不少,当然价格也贵了不少真正想控制成本的话其实比无线的还要便宜的,唯一不方便的就是要布线,线也是钱啊。。。

使用特权

评论回复
5
lijianfeng-11|  楼主 | 2017-10-6 11:03 | 只看该作者
本帖最后由 lijianfeng-11 于 2017-10-6 12:01 编辑

      今天来讲讲这个过程中的心酸历程,最开始的时候买的STM32的核心板搭建过CAN总线通讯的实验。当时成功了,也就是用三块核心板互相发送控制数据来控制LED亮灭。这个大家都懂得哈,第一个程序一般都是控制点亮LED灯,就像IT的第一个程序是hello world。能控制3.3V的led还不行啊,要能控制220V的强电才算通过的啊。弱电控制强电一般有两种方案,第一种用继电器控制,第二种就是用可控硅控制。继电器的优点就是控制方式简单,IO的高低电平就可以了,缺点就是寿命都是只有10万次,再一个就是可能产生电弧。可控硅控制就能弥补继电器寿命上的缺陷,一般开关100万次完全没有问题,还有就是它的开关速度快,没有噪声。极快开关速度就可以将其应用到调压调光上。交流电的移相调压是交流过零延时多少时间来触发导通实现调压的。这个可能说的不是太清楚,想具体了解的最好自行百度。前面说到要实现可控硅调压需要找到交流的零点,就是交流正弦曲线和X轴相交的点。这个点我一直想看有没有什么集成电路或这IC带有这个功能的,好不容易发现MOC3043有带过零检测功能的,但是它就是不把这个过零信号给出来给我用,好自私的自己用。没有办法只能参考网上的前辈们用两个光耦串电阻降压的方案。当时纠结了是零线跟火线各串51K的电阻还是只在火线上串100K的电阻,原本以为结果应该是一样的吧。就先零线和火线各串了51K。等待打板回来测试,结果一通电可控硅就一直导通输出不受MCU控制。通过测量分析发现火线上的电阻分压给到可控硅G级一个触发电压,然后可控硅就一直导通了。   
拆掉火线的电阻,串到零线那里就正常了。接下来就是可以用MCU愉快的控制220V的LED灯具了。强电控制,没有加任何防护虽然从小到大已经被220V的电电过好多次了,还是害怕。

使用特权

评论回复
6
lijianfeng-11|  楼主 | 2017-10-6 11:20 | 只看该作者
本帖最后由 lijianfeng-11 于 2017-10-6 12:07 编辑

      我的板子的供电采用的是DC7-28V宽幅电压输入,然后经过DCDC进行降压到DC5V给tja1050,DC5V通过AMS1117-3.3的LDO给其他3.3V 的芯片供电。DCDC考虑了两种方案,第一种是Ti的LM2596S-5.0固定5V输出的,这种方案输出电压稳定在5.01V左右,但是输出电压纹波比较大,有150mv左右,而且需要两个电解电容,体积比较大。最开始考虑它是看到三菱PLC的电源有用到这款IC。第二种方案是MP1584EN,这种方案体积小,输出纹波小,缺点就是需要根据计算电阻来调整输出电压。最开始用的优利德的UT33D的万用表坑的我要死,量出来的电压有0.3V的偏差,而且测量的电压还会随时间变化,身边的优利德的示波器也是,电压偏高!!!电压不准确的结果就是导致tja1050烧坏,tja1050一烧坏让连接在stm32的canrx引脚 损害,接下来stm32烧坏并短路,最后的结果就是DCDC芯片发热冒烟,有时候还冒火花!好在家里还有其他的万用表,在用笔记本USB接口、手机充电器的USB接口的标准5电压做参考后,对mp1584en进行输出电压调整。这次确信DC5V不再出现问题。
调整R1和R2的值得到5.03V(tja1050输入电压为4.75V-5.25V)

最后有个事也要说一下,有些X宝卖家,50V 的瓷片电容耐压达不到要求,运行一段时间后会出问题。我就遇到过C1的电容用一段时间后发生击穿短路的现象。

使用特权

评论回复
7
山东电子小菜鸟| | 2017-10-6 14:02 | 只看该作者
空余时间多的话搞搞这个挺好的 支持楼主

使用特权

评论回复
8
m564522634| | 2017-10-6 16:42 | 只看该作者
lijianfeng-11 发表于 2017-10-6 11:20
我的板子的供电采用的是DC7-28V宽幅电压输入,然后经过DCDC进行降压到DC5V给tja1050,DC5V通过AMS111 ...

支持下

使用特权

评论回复
9
gujiamao12345| | 2017-10-6 18:39 | 只看该作者
挺好的,以后慢慢看

使用特权

评论回复
10
515192147| | 2017-10-7 08:47 | 只看该作者
本帖最后由 515192147 于 2017-10-23 08:27 编辑

CAN 推荐 用 我们的 高层 协议CANWeb,开发调试 简单
可在此冗余双CANWeb开发板(含4个DI/4个DO/1个AI/1个AO)的PCB文件及Keil源程序基础上,轻松、
快捷开发自己的CANWeb总线产品,如多通道DI、DO、AI、AO模块、温度、压力现场智能仪表、
电动调节阀、电磁阀、电量表、RS485网关(可与RS485的设备通信) 等设备。


详细链接见:
https://bbs.21ic.com/icview-1945634-1-1.html


使用特权

评论回复
11
lijianfeng-11|  楼主 | 2017-10-7 10:29 | 只看该作者
本帖最后由 lijianfeng-11 于 2017-10-7 10:43 编辑
515192147 发表于 2017-10-7 08:47
CAN 推荐 用 我们的 高层 协议CANWeb,开发调试 简单
可在此冗余双CANWeb开发板(含4个DI/4个DO/1个AI/1个AO ...

你这种相当于是用STM32搭建一个Web服务器吧,这个我用STM32F107+LAN8720搭建过一个Web服务器玩过了。当时实现控制stm32f107(双CAN+以太网)控制IO。但是由于选用的MCU的rom不够大,只能放几个文字性的控制网页,加图片做好看点就不行了。再加上自己网络方面的知识懂的不多,内网穿透不会弄。所以只能在局域网玩一玩。

用开发板弄的

使用特权

评论回复
12
落叶行健ywm| | 2017-10-7 13:50 | 只看该作者
这个不错,我自己用无线也发现很多问题,也打算改为CAN、
总线呢。不过我主控用的是新唐的。can直接用模块!以前用can做立体车库的通信。

使用特权

评论回复
13
lijianfeng-11|  楼主 | 2017-10-7 14:20 | 只看该作者
落叶行健ywm 发表于 2017-10-7 13:50
这个不错,我自己用无线也发现很多问题,也打算改为CAN、
总线呢。不过我主控用的是新唐的。can直接用模块 ...

你之前用的是那种无线?

使用特权

评论回复
14
simonliu009| | 2017-10-7 14:42 | 只看该作者
路由带机量的问题,其实换个好点的ap就行了.....比有线方式方便多了
不过CAN也是一种做法
想法总是好的

使用特权

评论回复
15
dsyq| | 2017-10-7 16:45 | 只看该作者
谢谢分享。

使用特权

评论回复
16
zhangbtj| | 2017-10-7 21:28 | 只看该作者
谢谢分享               

使用特权

评论回复
17
simonliu009| | 2017-10-7 21:50 | 只看该作者
lijianfeng-11 发表于 2017-10-6 11:03
今天来讲讲这个过程中的心酸历程,最开始的时候买的STM32的核心板搭建过CAN总线通讯的实验。当时成功 ...

楼主用的那个可控硅?电路图分享一下?

使用特权

评论回复
18
mmuuss586| | 2017-10-8 11:28 | 只看该作者
业余玩玩可以;

实际产品还是用无线,或电力载波通讯;
当你给比人的别墅装一套智能家居就知道麻烦了,没法额外的接线

使用特权

评论回复
19
心升明月1992| | 2017-10-8 12:28 | 只看该作者
  支持创作!

使用特权

评论回复
20
ql2000| | 2017-10-8 21:12 | 只看该作者
支持楼主,学习中!!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

81

帖子

10

粉丝