智能家庭 +关注 已有0人关注 +发表新主题
班志洋

骨灰级手机控

  1. 3869 积分
  2. 2541 经验
  3. 660 贡献值

Ta的主页 发消息
签到
连续0天
0人
签到看排名
扫码下载App
一键签到 升级加速
回复

小米智能插座结合单片机终极玩法--超多路控制

发表在 经验&玩法 2016-01-09 18:17:47  来自PC 复制链接 手机看帖扫一扫!手机看帖更爽 8403 353725 已回复

小米智能插座结合单片机终极玩法详解:

小米一开始就是玩发烧的,手机,路由器,电视等等,今天我也来玩玩智能插座,体验发烧的乐趣。


 


从买到小米智能插座开始,就激起了我对智能家居的兴趣,所以就买了3个小米智能插座来过把隐,确实,连上小米智能插座,连上小米路由器,开动智能家庭APP,睡在床上选择控制灯的智能插座轻松一点,哈哈,灯打开了,再点,灭了,选择控制风扇的智能插座,点,风扇开了,不用动,风吹了过来很爽;晚上睡觉,设置定时,半夜自动关闭.....用过的你懂的,方便。

但是用了不久慢慢发现,家里许多电器还有很多不像现在的智能,不能连入WIFI进行控制,想想,一个家电使用一个插座控制,那得多少个插座,至少也得一两百的成本呀,所以,本人就想想,能不能就现有的插座控制多个电器呢?答案那是肯定的啦。

一个控制多个,想起了俺曾经用过单片机,哈哈,如此一想,思路就来了,现在手上有三个智能插座,使用三个插座。按一个插座有两个控制信号,三个插座组合就多达26次方,64种,意思是三个插座能控制64个电器,哇,好多啊!但是实际上是不能那么多的,因为智能开关复位初始化的时候220USB通电,这种情况下是不能作为控制的,容易照成错误,控制失灵,所以将这个情况排除掉,那么64种就剩下28种,三个插座能控制那么多已经很厉害了!我看到别人的帖子,说是控制两三个就说很猛的了,哈哈哈

怎么开始呢?

首先你得了解插座内部的控制电路,了解它里边是如何进行信号控制的。网上有拆解的文章,我就不说了。

插座内部,有电源部分、信号接收和控制部分;

通过拆解发现,拆了之后分成电源插座,WIFI模块 两个部分,他们之间通过一个4PIN排针连接,这就是本次插座发烧的重要部分,这4pin的排针有:+5V供电电源,地,220V的控制信号和USB充电的控制信号;通过测量发现,当WIFI模块收到控制开关打开的的请求时,220V的控制信号和USB充电的控制信号这两个都会出现+3.3v的高电平,当插座收到关闭的请求时,这两个端口的电压为0V,也就是低电平。

这是很重要的,为什么呢,1,只要WIFI模块给插座电路一个高电平就可以完成对插座的控制;2.是利用WIFI模块的输出高电平。取出WIFI 模块加上自己的电路,当我们的智能家庭向智能插座发出打开的信号时,WIFI输出端就会有一个高电平信号,我们结合单片机,只要单片机读取到这高低电平信号,再通过对单片机的控制程序,控制我们想要控制的电路,就可以随意控制家里的电器或是灯啦。

    思路就是这样。虽然俺说得不是很清楚,下面一个个的来看。

一:拆智能插座,取出WIFI模块,并接出引线

拆后盖,螺丝,将电路板取出,WIFI模块分离,上图:



 拆了后盖之后:




 将WIFI模块也取出



好,现在来看看WIFI模块,将几个点标出,看好那标记的地方,这几个地方要引线出来的,WIFI的控制输出。


下图白线的是WIFI模块的+5v供电电源,靠外边的点,下边有图示




将刚才说的几个点引出,自己做好标记哦



说明一下,三个模块的地线(GND)和+5v是连在一起的,就是说三个共用电源

我画一张示意图更加明白:


三个WIFI模块的接法就这样搞定了,它的供电电源和单片机共用,到时接在一起就好了。WIFI先放着,下面说那个单片机的模块。



二:单片机控制模块



关于单片机控制模块,最小系统我就不说了,(晶振,复位电路等)(没有接触过单片机的就得去充充电再过来玩了),有四个部分,第一是电源,二是stc80c52,三是输入,四是输出.

可以网上直接买单片机最小系统模块,就几块钱,更方便

1,电源部分,单片机一般使用的是+5供电,假设你要来个变压器降压整流滤波作为电源也可以,但是变压器那么大,那么重,而且占据很多的空间,当然有更好的办法,看过拆解的文章你就知道了,小米智能插座它的供电模块很小,足与提供5v1a  USB的电,所以呢,咱们单片机模块的电源暂时就使用它了,体积小,电量足;

2,是单片机,小编使用的是STC89C52, 选STC是为了方便下载程序,只需要四根线就可以烧录程序到单片机,电路只需预留4接口就可以了(VCC,GND,TX,RX,AT系列下载程序比较麻烦,所以就没用)。单片机的编程软件使用的是Keil3.这部分就不说了,网上可自行下载,简单的教程你就可以使用了,没有接触过的请去学了再来看吧,它的程序也是很简单的,就十几行,主要是搞清楚如何控制,就可以改动程序就可以了。

3,是输入模块,小米智能WIFI模块能够输出+3.3V的高电平,0V的电平,对于TTL电路来说已经可以直接作为高低电平控制使用了,为了能够稳定正常的工作,将+3.3输入提高到+5V,这里使用到了电平转换。

电平转换可以使用电阻分压的方法,可以使用CMOS电路,我看到最好的是那个I2C总线的电路转换,采用的cmos双向通信电平转换的电路,不过它只有两路,咱们有3个模块,有6条线,要是采用这个点子分压或是COMS方法电路就变得复杂,元器件太多,咱们DIY要的是使用简单有效的办法来解决相同的问题。经过查阅对比资料,小编采用74HC245D,相关的使用文档和电路可自行网上查询下载。74hc245D三态输出,高,低,高阻三态。而且管脚焊接方便。直接使用就可以了,电路连接中,我是选择A输入B输出,所以,pin1pin20接高电平,pin10pin19接低电平,具体参考下网上的电路图或是芯片的文档。

4,是输出,输出部分是采用单片机的低电平控制继电器(继电器模块我是网购的,某宝很多,就十来块,不用自己弄那么麻烦,不过假设你要自己画PCB那就自己买那些配件吧),这个继电器模块低电平有效,就是:单片机输出低电平,相应的继电器就会吸合,电路就接通,就是开关闭合,你的电器就通电,当单片机输出高电平,继电器模块对高电平无效,继电器不做出动作,达到控制的目的;继电器需要单独接一个电源,为了防止它有可能影响单片机和WIFI模块的工作,继电器最好需要单独接一个电源,小米插座电源不用也是浪费,就直接使用它的电源就额可以了。把插座那里的+5v接出来就可以了

三,整机电源

上面我也提到了我们直接就使用小米插座的电源,所以电源就不用设计,只需将其连接市电220v,就可以输出我们需要的电源,下面是接法,注意:因为使用的是220V的交流电,焊接安装不要接通电源,检查或是移动的要把220v电源拔出,以免照成危险。后果自负啊!!即使接了220v,裸露的部分也要将包好,安全第一!!!

接线图:

用烙铁焊开,将其塑料全部拆下,注意标示部分,

接市电:


+5v电源输出:


两个模块是一样的,一个是单片机和WIFI模块的电源,另一个是继电器的电源。



总图示:





实物图(有点丑不要吐槽啊)



好,认真检查各个电源,各个模块间是否已经接好,

检查好后我们开始谈单片机编程


四:编程,程序控制

先来一表格



解释下上表

每个WIFI两个控制线,自己设定好那个是220V的,哪个是USB的,然后就不要改了,不然造成麻烦,我的a/c/e220V的,b/d/fUSB的。

0是说明你再智能家庭的控制开关是关闭的,1就是打开开关的,比如我的WIFI1 a0,b1就是控制220插座是关闭,控制USB是打开的,在文章后面我放图出来,有与之对应的智能家庭APP的截图,可以参考下。

好,回到上图表,

如果你认真查看会发现,只有最后一项使用了(全部为【1 1】)外,不过那是全关闭的状态。每个模块的二进制都没有【1 1】,意思就说我们使用的时候都不认为两个控制端口为高电平为一个控制状态,为什么要这样呢?

要是你使用过智能插座,你会知道,每当按下智能插座的按钮,220USB两个都会通,或是咱们想要复位重新绑定新的路由器的时候会长按按钮,此时插座的220USB也是接通状态,就是就是【1 1】状态,因此假设你使用了这个状态作为一个控制状态,那么咱们在复位或是上电时都会造成失控,会影响到家电的使用,所以无论是哪个插座,这个【1 1】的状态都将其舍去,所以总的状态数(2^6=64减去这些1.1的状态就还剩27就是说3WIFI模块结合了单片机,舍去这些【1 1】的项还可以控制27个可用端口,可以控制27个家电!因此呢,对与我们想要控制家里的家电那是绰绰有余的!这就是智能插座的强大之处!!!不过呢这要和你的单片机程序相关,自己随便选几个状态来控制你的插座就可以了,绿色底色是本人使用的状态,后面粉色的是对应控制状态转换为相关的十六进制,不会转换?现在电脑上的计算器都有,输入点相应的进制就可以了,不用动手算。

好,输入的状态和十六进制代码确定,开始单片机的程序:

先贴上来:

(程序的文件,.C和.hex在附件)



下载附件1.hex.txt( 825 Bytes )



下载附件TEST.C.txt( 1.86 KB )


看,简单吧,就几十行,(本人半路自学的,不足之处请高手勿怪),软件是Keil 3,教程的话网上有,很容易就学会了,写完程序后,生成.HEX的文件,将文件通过烧录软件和烧录器烧进单片机就可以了。

简单解释下程序,单片机把WIFI输入的P1端口赋值给temp,然后将temp值与我们上面表格中的十六进制码相比较,如果和我们事先设定好的相符合,那么temout就输出相应的十六进制码给P2口,P2口输出就能控制继电器啦,

举个列

假设我们将:

WIFI1设置:220/USB开,WIFI2设置:220/USBWIFI3设置:220/USB

根据高低电平就是 0001 0101,(高位不足补0)就是上表的第13个,十六进制码就是0X15,那么当单片机读取并判断到这个符合条件的值时,P2的值就是0X7F,再转换成I/O口的二进制就是0111 1111,就是第一位(P2-0)输出低电平其他为高电平,而继电器是低电平有效,所以与P2-0的继电器就吸合,相应的电路就接通了。

说明程序是可以灵活应用和可改的,只要你自己制定了模式,就可以将程序改成自己的模式就可以了。灵活多变,本人只是其中的一个例子。27种功能模式任你选。可以单个继电器打开,有可以多个继电器一起开等等...

好,说的也差不多了,接下啦就是实践的时候啦(下面的没内容是另外我的一个帖子的,前两天发表的,我把它一起放进来,我这里的的文章这就完整了)

  五:实际使用效果

认真检查后接好之后呢,可以上电啦:

   事先没有配对智能插座的话,就直接按智能插座的配对方法配对:

1长按5秒,黄灯闪烁,配对的就不用配对了,跳过配对吧,直接可以控制使用



2然后打开智能家庭,会发现插座,将其添加

逐个加进去,并自己标记命名好哦

 

3添加成功:显示蓝灯



按照图中相应顺序命名(当然这个不是必要,单片机程序自己可以修改的,只要按自己的代码就可以执行)

 

开始啦

按照智能家庭APP中的220/usb开关控制继电器:(注:当相应的继电器灯亮,说明,继电器已经吸合,相当于开关打开了,就可以打开你的家电或是灯了)


打开第一个继电器:


第二个继电器:


第三个继电器:


第四个继电器:



第五个继电器:



第六个继电器:




第七个继电器:



第八个继电器:





完全按照我的控制打开相应的灯!!

 

我的东西做的不是很好,挺粗糙的,大家就原谅原谅吧,因为没有做PCB板的条件,只能是手动连接。如果做的很好的话可以尝试安装在控制灯之类的都可以,等等,大家可以去发挥,也可以用在家里的配电箱,不通过有的家庭配电箱不好改动就不要弄了,我家是我自己安装的,所以就容易去改动,按造自己的程序就可以控制家里的电器和灯啦!

有兴趣的可以交流交流,我也是凭自己兴趣自学的。

当然这里边还有很多东西要交流,其实3WIFI 模块就可以控制有效的27个控制状态,我说是有效的啊,已经排除了不能用的,我只是用其中的八种方式而已。还有单片机程序的编写,外部电路的设计也是待交流和学习的。


哈哈,有些米粉看了可能想说,一个命令只能控制一个开关当然不是,你玩过单片机就知道可以控制多个,几十上百都有,译码就可以实现。



          我在上面基础上加了四行代码,控制多个灯的,好,看图

这是程序增加的地方

控制效果:



想要怎么控制就怎么控制,写进程序就可以啦!有什么想交流的话可以发信息过来交流哦!谢谢

最后想说的一点就是,智能家庭APP在那个智能场景里边能够一个启动项里边能够一起对220和usb控制就好了!其实只要再改进一些的话我们这个东西真的挺不错的!!!


目前智能家庭已经改进!!可以同时控制两个端口了,有试过的米粉赶紧试试!!

 [/hide]

今天花了大半天写的,今天上班呢,不过还好没事情,不然今晚又得加班写,这几天做这个花了不少时间,不过过德挺充实的,这就是发烧友的乐趣,DIY的乐趣!!



如果大家觉得不错的话点个赞,评个分吧,谢谢

 


Thank you !

By  BANZHIYANG  2016-1-9 




扫描二维码,手机查看本帖
发表

点评

  • mrweek: 前端软件水平跟上的话就更好了 2016-03-23 17:25:20
  • 薪棋: 小米5米粉讨论群号 187577229 F码资格买卖交易群 只为大家提供个安全的平台 2016-03-21 01:04:36

已有15人评分 经验 理由
布丁和小城 +5 很赞
preflyang +5 厉害,word哥
Solin_Zhan +8 很给力!
xiaohehe2105 -2 不要在意这些细节!
天蝎灬蝴蝶 +8 前排有我,此贴必火!
lardern +6 很给力!
粥桶饭桶 +5 很给力!
帅feifei +5 发烧友
竹槐 +6 技术贴
金安顺 +5 十分实用的奇思妙想
mm2fox +1 很给力!
Mi_875989200 +5 想法很好,可是实际操作的时候容易搞混吧
细RAY +6 厉害
蔷荃 +1 有想法!但有点本末倒置!见评论!
tzyjf +6 很不错的教程。

总评分: 经验 +70

最新评论 | 正序排列
1866 条评论被过滤    只看楼主|楼层直达:
回复