APP下载

基于云数据驱动的感知型智能插座的设计与实现

2015-05-15庄丽榕穆云飞李松海全达晖张栋

电脑知识与技术 2015年8期
关键词:远程控制

庄丽榕 穆云飞 李松海 全达晖 张栋

摘要:该文主要介绍一种感知型智能插座的设计与实现。在硬件设计上,将smartlink闪连技术与传统的继电器控制技术结合,实现智能插座与互联网的连接,获取云端数据驱动智能插座。在软件设计上,系统支持P2P的远程数据采集与传输,自动下载云端实时温度等数据,响应外部环境变化,及时做出智能决策。除云端数据驱动外,还实现由手机APP通过本地局域网或远程控制插座的开关来控制家电运行,推动智能家居生活的便捷化。

关键词:智能插座;云数据;WIFI网络连接;感知环境;远程控制

中图分类号:TP2 文献标识码 A 文章编号:1009-3044(2015)08-0228-04

Abstract: This paper mainly introduces the design and implementation of a perceptual intelligent socket. In hardware design, it combines smartlink flash connection technology with traditional relay controlling technology, implements the connection between intelligent socket with the Internet and obtains the cloud end data driven intelligent socket. In software design, the system supports the remote data collection and transmission of P2P, downloads the real-time reliable air temperature and other data automatically, responds to the changes of external environment and makes the intelligent decisions in time. Except for cloud end data drive, it also realizes the implementation of controlling the operation status of household appliances with mobile APP through local area network or the switch of remote control outlet and promotes the convenience of intelligent household life.

Key words: Intelligent socket; cloud data; WIFI internet connection; perceive the environment; remote control

1 引言

處于信息时代的洪流中,控制技术、计算机技术、网络技术、通信技术的快速发展促使了家庭实现自动化。这些高科技改变了人生的生活习惯,提高了人们的生活质量,家庭自动化也正是在这种形势下应运而生。家庭自动化也已成为人们对生活品质的又一种追求,它的覆盖日渐广泛,大到集成控制整个家庭的电子电器网络,小到仅仅是某个电子产品的智能化。在无线网络的发展和移动设备的普及下,出现了越来越多可以通过手机或者平板电脑来控制的产品,极大的推进了家庭自动化的发展。

为了使人们可以远程控制家里的空调,让空调可以通过服务器端下载的数据感知当前温度,并且根据所设置的开启空调的限制温度智能的选择开启或者关闭。因此提出设计一种感知型智能插座,通过这个插座感知当前环境,并且控制空调的开启。

如图1所示,移动端通过连接云端服务器或者直接跟Wi-Fi路由器相连,获取到相关实时数据,可选择本地、远程控制智能插座,通过智能插座系统自定义的开关协议进行环境切换,从而控制家电的工作状态。结合感知型智能插座所提供的便捷功能使得生活更加人性化,只需指尖轻触移动端,即可开启。

2 智能插座的硬件设计与实现

如图2所示,整个系统可以大致分为以下主要部分:电源稳压电路模块,继电器控制电路模块和WIFI模块。电源稳压电路模块是将220V转为5V开关电源和3.3V MCU供电。WIFI模块是用来获取外部信息,然后通过SPI/I2C跟MCU交换信息。继电器控制电路模块根据接受到MCU发出的指令来实现插座的开与关。

2.1 电源稳压电路

智能插座电源模块由电源适配器接入JP1供电。这个系统由多个不同的模块组合而成,不同的模块需要的电源电压不同,故需要对源电源引出的电压进行不同的降压处理,以得到各自符合要求的电源电压,供不同模块使用。本电路需要有5V,3.3V电压, 3.3V主要给MCU(stm32)、WiFi模块、拨码开关、LED灯等供电;5V为继电器控制供电。

5V直接由适配器输出的稳定电压提供。经过LDO(线性稳压)电路获得3.3电压给开发板其他电路供电。如图3所示,电源接入时由SW1开关控制电源输入,开关输出端BATT电压还是5V。在BATT端的话接有一个大电容,起到储能的作用,以维持电源电压的稳定;还接有一个LED指示灯,用于指示电源供电与否,之间串联一个限流电阻对LED灯进行保护。然后从BATT引出一个输出到单片机,作为单片机的电源供电。电源输入端并联一个电容起到滤波作用。经过稳压芯片AMS117-3.3在输出端并联一大一小的电容,起到滤波作用减少输出端电压波动,使输出端电压稳定在3.3V。

AMS117-3.3芯片是一个正向低电压稳压器,内部集成过热保护和限流回路,通过此芯片后输出3.3V的稳定电压,此芯片广泛应用于开关电源的稳压电路解决方案。

2.2 继电器控制电路

继电器模块是智能插座控制的关键部分,继电器由铁芯、线圈、衔铁、触点簧片等组成。此继电器是一个单刀双掷,一个公共端、一个常开端、一个常闭端的开关。继电器最大输出:直流30V/10A,交流250V/10A。此继电器由两个NPN三极管,两个K级电阻。其中一个NPN三极管控制继电器,另一个三极管控制第一个三极管的B级。此继电器的4脚和5脚是线圈,1脚和2脚是常闭开关,1脚和3脚是常开开关。

如图4所示V5为继电器提供电源,此继电器工作电压为5V,PA4为信号控制端口,PA4为低电平时继电器4脚和5脚接通,有电流流过时,线圈就会产生磁力,把衔铁开关K1克服弹簧拉力吸向铁芯吸,这时候公共端COM1和CK1导通通,COM1和CB1断开;PA4高电平时继电器线圈磁力消失,开关K1弹回此时COM1与CK1断开。这样就可实现继电器的控制,从而实现控制接入继电器的插座火线的导通与断开断。此电路还有个LED指示灯,当继电器吸合时状态LED指示灯亮,释放时状态LED指示灯灭,用于查看继电器工作状态。

2.3 WIFI模块

采用最新的SmartLink闪连技术,可以轻松极速连到WiFi路由器,然后自动定位当前所在地点或者手动配置当前地点,以便自动从云端仅仅下载实时更新的当前位置所需数据,节省流量数据,从而感知外部环境的变化,驱动智能及时做出人性化的决策,使得家电的工作不依赖其内部的传感器而是从云端下载实时最新的权威数据。

普通的WIFI模块,大部分都是WIFI-串口,使用单片机串口就可以直接控制。本文中的智能插座的WiFi模块包含所有的WIFI协议栈、lwip协议栈、Uip协议栈、OSI等。使用千兆以太网lwip协议栈,属于高速SDIO接口,并且支持多个接入点。

WIFI模块主要包括以下核心模块:WifiService、WifiMonitor、Wifi驱动模块、Wifi电源管理模块和Wpa supplicant。如图5示,SystemServer启动时候生成的ConnecttivityService创建了WifiService,负责启动关闭wpa_supplicant和WifiMonitor线程,把命令下发给wpa_supplicant以及更新WIFI新的状态;WifiMonitor模块负责从wpa_supplicant接收事件通知;其中,Wifi驱动模块主要进行load firware和kernel的wireless通信;Wifi电源管理模块主要控制硬件的GPIO和上下电,让CPU和Wifi模组之间通过sdio接口通信;Wpa supplicant模块的工作流程是:先读取配置文件,初始化配置文件和驱动函数,接着驱动scan当前的所有的bssid,检查扫描的参数是否和用户设置的相符,如果相符,则通知驱动进行权限和认证操作,最后连上AP。

3 云端服务器的设计

云端服务器使用网络服务商提供的高性能云服务器作为平台,完成数据的收集和数据的服务两种功能。云端服务器上搭载24小时运行的数据收集程序和数据服务程序。数据收集程序负责从网络上的开放平台收集并存储信息。数据服务程序会向网络上的设备提供一个用于交互的API接口,智能处理网络设备的数据需求并将数据查询结果提供给发出请求的设备。

3.1 数据收集程序

3.1.1 数据收集模块

云端服务器的数据收集程序24小时不间断运行,进行数据收集操作。为保证数据的多样性,数据收集程序以网络上的多种开放API( 如:百度LBS开放平台,新浪SAE,Google App Engine等)获得权威的天气数据作为数据源。数据的获取频率由统一管理调度系统视服务器情况和网络平台的数据获取频率限制进行调整,理论上越高的获取频率越能保证获得数据的实时性。

3.1.2 数据分析模块

由于从不同API获取的数据格式不尽相同,数据收集程序会对获取的天气数据进行分析,仅获取系统规定要进行收集的数据项(如:当前气温,当前湿度,当前天气状况等,数據项由统一管理调度系统控制),将与收集条件无关的数据部分进行丢弃,并将从每个平台获取的数据都以相同的数据格式进行封装,以减少数据之间的差异性。

3.1.3 校验模块

在对从网络平台获取的数据进行分析的过程中,会对数据进行校验,排除损坏的数据和不正常的数据,以保证数据的完整性和真实性。如果从某平台获取的数据通过了分析校验,那么系统会在数据后添加一个通过标识,以表示此数据可以被用来维持系统的正常运作;一旦遇到无法读取的数据时,系统会立即重试获取数据的操作,用来获得新的数据来进行分析步骤,如在规定次数内(由统一管理调度系统调整)依旧无法获取正常的数据,则放弃对当前数据进行分析,并以一个不通过标识覆盖数据内容,以表示此数据不能使用;若在分析过程中发现不正常的数据(例如温度高过现实变化水平)则立即重试获取数据的操作,并将新数据与旧数据进行对比,如果依旧不正常则在数据后添加一个警告标识,以表示此数据可能存在问题。

3.1.4 统一管理调度系统

统一管理调度系统作为程序的主要控制系统,起到调整系统各项参数、调度系统各个模块以及收集并反馈模块错误信息的功能。统一调度管理系统全面控制数据收集程序各个模块的性能参数,保证系统的稳定运行,并且提供一个管理界面供系统管理员来对数据收集程序的各项功能进行调整,以适合实际运行中的需求。同时记录各个模块反馈的错误日志,供系统维护所用。

3.1.5 数据存储模块

在数据分析阶段结束后,系统会向封装好的数据添加当前时间的UNIX时间戳,并将数据全部写入云端服务器的数据库中,如出现存取故障,程序会记录错误日志并发出警告。

以上为云端服务器的数据的收集程序的功能。

3.2 数据服务程序

3.2.1 数据通信模块

云端服务器的数据服务程序会对网络上的设备提供一个用于交互的API,用来对网络设备和客户端设提供数据服务。数据服务API使用且总是使用HTTP协议作为与用户进行通信的协议,部署在专用域名之下,采用固定的POST操作方式(安全级别较高)作为资源的操作方式,在数据服务API与网络设备和客户端进行交互式采用JSON数据格式作为标准数据格式,且不接受其他数据格式请求。

3.2.2 用户统一验证模块

对于网络设备,每次发出请求时需要附带设备的唯一识别ID,当前时间戳,请求参数作为请求数据发送到服务器,服务器在收到请求以后首先会对设备的ID进行校验,若通过校验则开始分析请求参数,并依照参数要求予以服务。

对于客户端,每次发出请求时需要附带操控设备的唯一识别ID,客户端账号,当前时间戳,请求参数作为请求数据发送到服务器,服务器在收到请求以后首先会对设备的ID和客户端账号进行校验,若通过校验则开始分析请求参数,并依照参数要求予以服务。

3.2.3 指令分析与数据库交互模块

数据服务程序会识别请求中的附带参数,以确定请求的具体操作和需求的数据,如只有数据获取请求,则程序进行数据库查询操作,筛选数据标识仅为可用的数据,提取要求的数据并进行封装,在数据中添加请求成功的状态标识并发回给网络设备/客户端;若在查询过程中遇到标识为无法使用/可能存在问题的数据,则向网络设备/客户端发送一个请求失败的状态标识。

如请求中包含客户端部分的用户的设定操作(温控,定时),则将用户设定的时间温度等条件封装成特定格式,并在首部添加当前系统UNIX时间戳作为唯一标识,将封装好的数据写入数据库,若写入成功,则向客户端发送一条执行成功的状态标识,若写入失败,向客户端发送一条执行失败的状态标识。用户可多次进行定时和温控操作,并且允许用户随时取消设定好的温控/定时操作。

以上为云端服务器的数据服务程序的功能。

4 手机端设计

手机客户端与云端服务器上的数据服务程序通过专用的API进行通讯。手机端共包括6个部分的功能,包括用户注册新的客户端账号,登陆账号,绑定网络设备ID,对网络设备进行开关操作,进行温控开关操作,进行定时开关操作,修改客户端密码。

手机客户端的运作流程为:注册客户端账号→登陆账号→绑定网络设备ID(账号首次使用或新添加网络设备)→对网络设备进行开关操作,进行温控开关操作,

进行定时开关操作,修改客户端密码。

定时和控温操作在手机上设定,手机上的设定仅做到一个发送设定给服务器的操作,具体的条件判断及开关控制都由服務器进行记录并且在触发条件符合时对需要控制的网络设备进行控制。

在直接控制网络设备开关操作中,客户端会在进入设定页面时查询当前的开关状态并在设定页面上显示,设定页面提供两个按钮(开和关)给用户进行开关的远程控制操作。

在定时操作中,用户可以设定一个固定的时间和一个开关状态,在设定好后客户端会向服务器发送请求,若服务器发送成功标识,则将设定的条件加入客户端的已设定列表中,供用户对当前设定进行浏览。

5 总结

本文介绍了智能插座的整体实现过程。移动端通过连接云端服务器或者直接跟Wi-Fi路由器相连,获取到相关实时数据,本地、远程控制插座的开关来实现控制家用电器的运行状态或者在多电器的场景下切换不同的模式。采用SmartLink闪连技术,不需要长时间工作或待机。同时云端的数据具有强大的可拓展性,在未来一段时间内都具有良好的扩充性。

参考文献:

[1] 李文仲,段朝玉.ZigBee无线网络技术入门与实践[M].北京:北京航空航天大学出版社,2007: 128-153.

[2] 姚文轩,滕召胜,熊静雯,邓远宁,谭霞.多功能智能插座设计[J].企业技术开发,2010,29(11):28-30.

[3] 孙慧芳,莫淳栋.基于STM32智能家居系统的设计与实现[J].电子设计工程,2014,22(19):82-85.

[4] 王水红,徐炜,郝立平.STM32系列ARM Cortex-M3微控制器原理与实践[M].北京:北京航空航天大学出版社,2008.

[5] 项粤生,高瑞霞,邬杨波,等.基于单片机的智能插座的设计与实现[J].工业控制计算机,2012,25(9):129-131.

[6] 颜庭柏,姚迪,沈澄.基于Google Map API的天气实况显示系统[J].地理空间信息,2013,11(3):120-123.

[7] LAMP兄弟连,高洛峰.细说PHP[M].北京:电子工业出版社,2012.

[8] 阮一峰.RESTful API 设计指南[CP/OL]. http://www.ruanyifeng.com/blog/2014/05/restful_api.html?spm=0.0.0.0.9k3cKg,2014,5,22

猜你喜欢

远程控制
智能可调节动作识别型节能风扇的设计
基于GSM的远程控制系统