把智能家居系统给做了个小盒子出来了,目的是弄一个方便控制家庭常规电器的系统,可以实现手机联网状态下控制家里的电灯、电热水器、电风扇、大门、空调等等。
整个系统的硬件构成是:主控STM32F103C8T6、wifi模块ESP8266、温湿度传感器SHT20、光强传感器、红外发射管、存储器AT24C02、蜂鸣器,以及一些洞洞板、杜邦线和一个塑料盒子。
软件部分的话服务器使用的是CentOS,花钱买的服务器,一块钱一天,没办法,有钱就是任性!在服务器主机上用C语言写的一个简单的程序,设计支持100个账户同时登陆使用,没用数据库,用文件存储用户名和账号的,也没有其他数据,基本上这个服务器的作用就是进行数据透传任务。然后使用设计了安卓手机客户端软件,我不太会安卓程序设计,所以弄得比较粗超,界面也不绚丽,不过能凑合用
系统完成之后可以实现手机端对控制盒子进行控制,包括控制继电器以及读取终端传感器的数据。总体来说使用起来还是比较方便的,不过有的时候有一点延时存在,因为中间经过了一个远程的服务器,寄放在深圳好像是,网络可能会塞住。
废话不多说了,看图吧还是。其实我给这个拍了一个视频,但是很气人的是我的手机上上个星期在公交车上被偷了,视频也没了,气死我了,我一直没买手机,就没有再拍视频了,所以
图1 设计构想
我的设计构想是很好的,一个主控节点连接多个从节点,这种方案类似什么Zigbee,其实我也没弄过ZigBee,猜测是差不多原理的。所有从节点通过433MHz的无线模块发送数据给主节点,整个系统只有主节点能够连入互联网,这样就可以使用分布式节点的方式采集各个角落的信息,而且使用的SI4432无线模块的传输距离还是很不错的,卖家说能穿2000米,用的是棒状天线。
图2 设计原型
一开始使用我的带屏幕的开发板实验开发的,接了几个传感器实验实验,等时机成熟之后再转到实物上去的,我不会工业设计只好买了个壳给装了起来,还挺可爱。壳上顶了一个继电器模块,控制家电用的,我把我的电风扇、台灯都接上去了,可以使用,的用热熔胶封好了,电到了就不好了。
图3 实物正视图
图4 实物俯视图
图5 开肚图
开肚之后大家会看见其实没什么玩意里面,就两块板子加点线什么的,做工很粗糙。手工DIY嘛,无所谓啦,能用就行了。有机会能做成工业产品那样的是最好了,呲呲
图6 服务器运行截图
图7 手机软件启动解锁界面
图8 手机登录界面
图9 手机运行主界面
图10 终端软件设计流程图
终端盒子的程序设计是在RTOS基础上进行的,就4个线程吧,其实程序很简单,主要我觉得是与ESP8266模块的通信部分比较搞死人。
图11 服务器软件设计流程图
图12 安卓客户端软件设计流程图
领取专属 10元无门槛券
私享最新 技术干货