APP下载

基于多平台的灯光智能控制系统的设计

2017-07-16徐嘉顺郑艳华陈苑冰陈岩峰叶彤

中国新通信 2017年11期
关键词:物理层串口网页

徐嘉顺+郑艳华+陈苑冰+陈岩峰+叶彤

【摘要】 利用微信平台设计了基于微信和网页为平台的灯光控制系统。实现了不受地域阻碍,能够实时地控制与了解灯光情况。在安全性方面,配有网页版的用户权限管理界面,只有管理员才可以根据需要分配权限。微信用户关注本系统的公众号后,还需要管理员分配的权限才可以控制灯光系统,安全性可以得到保障。

【关键字】 多平台 微信 网页 灯光智能控制 物联网

引言

随着物联网技术的迅猛发展,物联网产品日益进入到人们的日常生活中。物联网利用智能感知识别和计算机网络等通信网络技术,掀起了信息产业发展的第三次浪潮。利用物联网技术可以为我们的生活带来极大的便利。本论文基于多平台的灯光控制系统,实现了只要有网络的地方就可以实现智能控制灯光系统的功能,不受地域的阻碍。同时,系统还可以扩展功能,配合插座系统,还可以控制其他家用电器,以实现智能家居。

一、系统总设计

1.1系统模型

本系统分为四层架构模型,从底至上依次为物理层、协议层、函数层和用户功能层。物理层为硬件架构层,负责建立、维护和取消灯光系统与云端服务器的物理连接,为用户端设备提供云端到本地传输数据的通路,并实现用户端功能端相关功能。协议层定义数据的打包格式,并提供稳定可靠的数据传输连接方式,使系统中不同的用户端设备,云服务器和物理层之间能传输数据。函数层定义实现用户功能的函数,同时为系统调用功能模块提供接口,减少重复编码的程序段。用户功能层定义用户可以直接使用的各种功能,为用户提供具体服务。

1.2数据库设计

本系统用E-R图(实体-联系图)表示各实体之间的关系。用户微信昵称信息的获取和微信公众号自定义菜单的构造需要微信凭证,凭证的相关信息存放在微信凭证表中。在查询数据库E-R图中,有四个实体——用户、权限、个人信息和系统总状态。个人信息包括公众号用户ID、最新登录时间、曾操作过灯的状态、网页注册名、邮箱、密码、激活状态、微信昵称以及是否在线等;系统总状态包括最新操作时间、灯光状态、网页端用户名和微信端用户名等。普通用户数据库E-R图中有三个实体——控制、关注和查询:控制灯光;关注微信号;用户查询系统E-R图。管理员数据库E-R图也有三个实体——查询、注销和授权:查询系统E-R图;注销用户和权限;授予用户系统的权限。

二、系统设计

2.1本地物理层设计

中央控制器芯片是STM32F103VET6,WiFi模块使用ESP8266。本地物理层上电或复位后会自动连接WiFi,接着初始化与云端服务器的TCP/IP连接,然后定时发送HTTP请求,在中断响应服务程序中分析云端服务器反馈的HTTP报文,提取系统灯光的状态信息,最后改变相应的I/O状态来触发继电器模块闭合或分离,如图1。

2.2协议层设计

本系统物理层的网络连接使用TCP/IP协议。物理层数据封装使用HTTP协议。物理层请求报文格式如下:请求行-通用信息头-请求头-实体头-报文主体。云服务器端应答报文格式如下:状态行-通用信息头-响应头-实体头-报文主体。用户功能层的微信端系统数据交换格式使用JSON格式,用户数据封装多采用可扩展标记语言XML格式。

2.3函数层的设计

函数主要由物理层函数库、用户功能函数库、微信端函数库和网页端函数库四部分构成。物理层函数库包括中断服务程序、STM32库函数和初始化配置函数等[1]。中断服务程序包括定时器中断服务程序、串口数据标志位判断程序、自定义串口发送数据函数和串口缓冲区数组遍历函数。定时器中断服务函数实现串口在接受数据时以十毫秒为间隔,判断串口数据接收的开始与结束。串口数据标志位判断程序和串口缓冲区数组遍历函数实现分析串口接收到的http报文的功能。由于使用库函数方式开发STM32芯片,所以stm32库函数是必需的,它定义了芯片的引脚功能,寄存器地址等等[2]。初始化配置函数实现定时器计数初值配置,串口波特率设置,延时函数的初始化,wifi模块状态的初始化。

用户功能函数库主要包括自定义的函数库,数据库mysql函数集,php字符串函数集等函数库,按照用户端来分,可以分成微信端与网页端函数库,以下将以用户端来分。

微信端函数库主要处理三个功能模块信息:关注事件推送,自定义菜单事件推送和文本消息[3]。处理关注事件推送:在用户刚开始关注公众号时,通过编程来获取微信凭证,从而提取用户的微信昵称信息;调用MySQL字符串处理函数集更新数据库,在相应的表中新建或更新数据。处理自定义菜单事件推送:当用户点击菜单,系统把点击事件推送给开发者,通过编程把报文内容从XML格式转换为结构体形式,而系统只需判断转换后的事件值就可以做出反应;当用户点击菜单跳转链接时,直接开始跳转网页,由微信端自行完成。处理文本消息:通过简单的选择控制分支语句,判断特定的一些的文字消息字符串,完成特定的功能。

网页端函数库使用 jquery函数库。在确保数据库安全设计方面,使用mysql_real_escape_string()函数和Perl兼容的正则表达式mysql_real_escape _string()通过转义有问题的字符来整理数据,预防数据库的攻击[4]。本系统调用preg_match()函数实现正则表达式匹配功能,确保提交的表单数据与系统所期待的匹配。

2.4用户功能层设计

按照用户端的不同,可以分为微信端功能设计与网页端功能设计,但是用户信息处理问题上两者不是独立的,是有互补的成分。本系统综合考量了两者的优势,设计出能通过微信昵称关联不同用户端上用户信息。具体实现思路如下。微信端通过函数层中处理关注事件中,通过编程实现获取access_token凭证并更新数据库微信凭证表,然后可以获取关注者用户的基本信息,从中提取到微信昵称信息,最后更新数据库用户信息表,完成用户信息的录入[5]。网页端则是通过用户在注册填写的微信昵称进行判断,与数据库用户信息表中的数据作对比,进行新建或更新数据表中的数据,完成用户信息的录入。到此,假如用户同时完成微信端的关注公众号事件与网页端注册流程,且信息无误,那么用户就可以在微信端查看网页注册信息,在网页端,管理员可以直接根据微信昵称分配用户权限,同时,系统允许用户的信息可以在不同的用户端查看或修改。具体用户端功能设计如下。

管理员功能设计的第一级为管理员,第二级包括账户管理、找回密码、授权、注销、灯光控制和查询,账户管理的第三级包括登录、登出和修改密码等;授权的第三级包括控制LED1的权限、控制LED2的权限等;注销的第三级包括用户、权限;查询的第三级包括系统总状态、权限、用户信息等。

普通用户功能设计的第一级为普通用户,第二级包括账户管理、找回密码、扽光控制和查询,账户管理的第三级包括注册、登录、登出、修改密码等;查询的第三级包括系统状态、权限、注册信息等。

三、系统测试

系统经过调试,系统可以完成微信端和网页端开灯关灯和权限分配等上述功能,如图2和图3所示。

实际的灯光控制效果与图4所示。

四、结语

多平台控制的智能灯光系统利用微信端和网页端,可以方便智能地控制室内照明系统。该系统通过简单的扩展也可以控制电视和空调等家用电器,实现智能家居。

参 考 文 献

[1] STM32F1開发指南V3.1 - 库函数版本[Z]. ALIENTEK战舰.

[2] 刘火良,杨森.STM32库开发实战指南[M].北京.机械工业出版社,2015:94-95,143-147.

[3] 《微信公众平台开发者文档》http://mp.weixin.qq.com/wiki/home /index. html.

[4] Larry UIIman.PHP and MySQL for Dynamic Web Sites[M].杜凯,陈宗斌,译.北京:人民邮电出版社,2013:262-266,414-438.

[5] 钟志勇,何威俊,冯煜博.微信公众号平台应用开发实践[M].北京。机械工业出版社,2014:76-138.

猜你喜欢

物理层串口网页
基于HTML5静态网页设计
搜索引擎怎样对网页排序
MCS—51单片机中的多串口通讯技术的应用
利用Modbus协议实现垂直螺旋卸车机取料器自动调速方法
一种应用于5G基于LDPC码的物理层包编码
卫星通信物理层安全技术探析
全国计算机等级考试机房准备工作探讨
基于智能布线的前沿技术及其网络应用
微机串口的测试诊断
网页智能搜索数据挖掘的主要任务