APP下载

基于OneNET物联网云平台与MQTT协议的智能家居模型通用控制小程序设计

2022-10-19成澜

电脑与电信 2022年7期
关键词:主控板智能家居远程

成澜

(苏州工业园区职业技术学院,江苏 苏州 215123)

1 引言

“互联网+”背景下,智能设备日益普及,日常生活中常见的智能设备就有空气净化器、空调、热水器、灯具、烤箱、插座、取暖器等,这些智能硬件与用户交互的需求越来越多,如果这些硬件是同一家的产品,管理则相对简单,通常下载一个App就可以连接所有的智能硬件,但如果是不同厂商的产品,往往需要下载多个不同的APP,此时传统的智能硬件+专用App的交互管理方式就显露出了弊端,不仅占用内存,而且使得软件管理变得繁琐。而腾讯公司推出的微信小程序只需要扫一扫二维码或者在小程序界面搜索即可使用,这种“即用即走”特性,正好可以弥补这一缺陷[1]。同时对于开发者,微信小程序的开发门槛相比App较低。

为此,本文提出了基于OneNET物联网云平台与MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议的智能装置控制小程序设计,以一个智能家居模型的环境调控为载体,尝试将物联网、智能硬件与微信小程序相结合,虚实交互、软硬结合,解决智能装置的简便控制问题。

2 系统总体架构设计

2.1 智能交互方式

微信小程序的“软硬结合”是指通过微信小程序软件实现与本地或远程外部硬件设备的交互,其中智能家居、通用环境调控、远程门禁、机器人控制、智能小车控制等都是这类典型应用。微信小程序与硬件交互,根据交互距离的远近进行划分,主要分为本地交互和远程交互两类。

本地交互:微信小程序与本地硬件设备交互以蓝牙通信最为普及,其中蓝牙透传应用最为广泛,手机软件通过蓝牙给硬件发送字符串数据,硬件接收到信息后会发送应答信息给手机软件,简单的软硬结合项目(如蓝牙小车),多以蓝牙透传方式实现。微信小程序提供了蓝牙API(Application Programming Interface,应用程序接口)接口,可供开发者调用,开发者可在此基础上根据个性需求方便地实现定制化应用。

远程交互:相较本地交互,其体系架构略微复杂。以通用室内环境调控系统为例,首先需要传感器采集室内环境信息如温湿度、光照、烟雾浓度等,接着将数据实时传输至远程平台,然后用户通过微信小程序API调用查看环境数据,进而根据阈值判断,调控室内环境设备。此类系统实现架构可归纳为:传感采集终端(如温湿度传感器、光照传感器等)/控制终端(LED灯、门锁、窗帘等)->微控中心->远程平台->手机/平板微信小程序。

2.2 远程交互体系架构

目前,微信小程序与智能硬件远程交互的实现方式众多,微控中心实现可以考虑:微控制器+有线/无线通信模块、微控制器+PC/工控机+桥接软件、树莓派等。远程平台可以考虑自己架设远程服务平台或者使用第三方物联网开发公众平台(如:OneNET-中国移动物联网开放平台、阿里云物联网平台、百度智能云天工物联网平台、微信硬件平台等),各种实现方式各有利弊。

为充分利用我院现有硬件资源,降低开发难度,在实施过程中,选择了Arduino微控制器+PC桥接软件(串口-TCP/IP透传软件)+中国移动OneNET物联网云开发平台这种模式。如果要实现无线桥接搭配无线模块如ESP8266即可。该模式中涉及的所有核心技术均对初学者友好、简单易上手,因此得到了广泛应用。整个系统的架构如图1所示。

图1 远程交互体系架构

从图1中可以看出,设计的系统包括了可以利用开发的微信小程序查看环境和设备工作状态以及实现远程控制的移动终端和由主控板、通信模块、各类传感器及环境设备组成的设备控制端。设备控制端的各类传感器终端,采集环境数据通过有线或者无线网络上传到OneNET云平台。在OneNET云平台的应用管理中可以创建数据可视界面,实时查看环境数据,根据预设阈值比对或移动终端指令向主控板发送指令。移动终端通过Wifi或者陆地移动通信网接入中国移动OneNET云平台,借助云平台的MQTT协议与主控板通信[2],将移动终端发出的控制指令下发给LED灯、风扇等环境设备,从而实现智能家居环境调控系统设计。

3 系统实施

3.1 智能家居模型设计制作

借助Rhinoceros(犀牛)软件进行智能家居模型3D图的设计与绘制,如图2所示。并按设计尺寸裁切亚克力板进行实物制作。空间设计考虑美观,在北侧和西侧窗外及底部设计了装置空间,放置主控板、传感器及走线。

图2 智能家居模型3D设计

3.2 智能硬件部署

搭建简易的硬件环境:Arduino UNO+传感器+PC(串口-TCP/IP)透传软件。

Arduino是一款集成AVR单片机的软硬件相结合的开源平台,它跨平台、简单清晰、开放性好,广受好评,其中Arduino UNO RV3开发板应用最为广泛,衍生产品也非常多。选择mBot主板作为微控制器。mBot主板是一个基于Arduino UNO针对教学用途升级改进的主控板,属于Arduino衍生品,可方便通过图形化积木式编程或Arduino代码编程完成硬件编程。

光线传感器,利用光电晶体管电阻随外界光强的增加而减小的特性,通过电阻分压值将光信号输入转换为电信号输出,输出值为:日常光照下输出值为大于500的整数,夜晚或黑暗空间输出值为0到100之间的整数,普通室内照明情况下输出值为100到500之间的整数,此参考值用于控制程序的阈值设置,在实际环境下需要编写测试程序观察输出值来校准阈值。传感器有三个引脚,GND(接地)、VCC(接电源)和AO(模拟输出),连接到Arduino UNO主控板时,用杜邦线分别接到GND、5V和ANALOGIN 6个模拟输入引脚中的一个,如图3所示。

图3 光线传感器与Arduino UNO连线示意图

温度传感器为DS18B20数字温度传感器,测温范围为-10℃~+85℃,测量数据以16位二进制形式从SIG引脚输出。连接到Arduino UNO主控板时,用杜邦线分别接传感器的GND引脚到主控板的GND、传感器的VCC引脚到主控板的5V、传感器的SIG引脚到主控板的DIGITAL引脚,如图4所示。

图4 温度传感器与Arduino UNO连线示意图

3.3 移动OneNET云平台配置

OneNET是中国移动物联网开放平台,支持MQTT、HTTP(Hyper Text Transfer Protocol,超文本传输协议)、EDP(Enhanced Device Protocol,增强设备协议)、Modbus、TCP(Transmission Control Protocol,传输控制协议)透传、RGMP(Cisco Router Port Group Management Protocol,思科路由器端口组管理协议)多种网络协议接入。选择的MQTT协议提供发布和订阅两种消息模式,属于OSI参考模型的传输层协议。MQTT报文格式精简,可以高效地传输数据;三种级别的QoS(Quality of Service,服务质量)支持不同消息的传输要求,在保证可靠性的前提下减小开销;带Topic的订阅模式,可以实现消息的一对多发布。MQTT的设计规范使得它更适合物联网设备低功耗、网络带宽小、延时高、不稳定等局限的需求,目前广泛应用于各领域的物联网应用。

同时,OneNET云平台提供开放、丰富的API接口,用户可以使用API进行设备管理、数据查询、设备命令交互等操作[3,4],微信小程序可方便调用API接口。

物联网云平台的创建和应用原本是个复杂的过程,但OneNET云平台屏蔽了诸多复杂的技术细节,可适配各种网络环境和协议类型,支持各类智能硬件的快速接入,其操作流程概述为:在官网注册账号并登录->进入控制台,在控制台首页全部产品服务中选择MQTT物联网套件->添加产品->添加设备->创建数据流->添加APIKEY->创建应用。当硬件终端上传数据至OneNET后,将在平台对应数据流中新增数据点,多个数据点即可构成数据变化曲线,数据曲线可通过各类终端进行查看,例如温度数据变化的OneNET图表展示如图5所示。

图5 OneNET平台数据呈现

3.4 小程序UI界面制作

首先调研智能家居环境调控项目需求,根据需求搭建微信小程序UI界面[5],通过UI制作提升组件应用熟练度,部分参考界面如图6,左图为整体页面参考,右图为空调子页面参考。

图6 通用环境调控项目UI界面

微信小程序是用JavaScript开发的,采用MQTT传输就需要安装MQTT.js作为MQTT客户端库,并在index.js页面import。

3.5 微信小程序API调用

微信小程序API调用:微信小程序通过wx.request调用OneNET API。首先确认并测试新增数据、查看数据的API接口,查看数据需符合GET请求规范,新增数据需符合POST请求规范[6]。GET请求温度数据格式如下:

4 结语

在“互联网+”对智能交互需求的背景下,在微信小程序与智能硬件的交互方式分析的基础上,本文设计了一款基于中国移动OneNET物联网云开发平台和MQTT传输协议与控制端微信小程序相结合的智能家居模型的环境调控系统。通过测试证明,本系统运行正常,能部署到实际的智能家居环境中,且可扩展到除环境调控外的其他电器智能控制改造应用。

猜你喜欢

主控板智能家居远程
一种快速可靠的主控冗余及切换机制的设计与实现
远程求助
远程工作狂综合征
壁挂炉主控板工装测试系统设计
重庆轨道交通闸机三杆机芯主控板的技术自主化探究
智能家居数据采集及应用研究
远程诈骗
基于Zigbee的无线通信技术在智能家居中的应用
新型食堂点菜结算装置的设计研究
智能家居未来感初体验