国内或国外 期刊或论文

您当前的位置:发表学术论文网电子论文》 物联网电饭锅APP的设计> 正文

物联网电饭锅APP的设计

所属分类:电子论文 阅读次 时间:2020-04-30 15:04

本文摘要:摘要:在OneNET云平台的基础上,运用Delphi设计物联网电饭锅APP,并用网络调试助手NetAssist模拟电饭锅,使APP具有远程监控电饭锅状态和余米量的功能,同时可实现远程操控电饭锅自动下米、自动加水、自动洗米、自动煮饭等。该产品具有响应速度快、高效,运行

  摘要:在OneNET云平台的基础上,运用Delphi设计物联网电饭锅APP,并用网络调试助手NetAssist模拟电饭锅,使APP具有远程监控电饭锅状态和余米量的功能,同时可实现远程操控电饭锅自动下米、自动加水、自动洗米、自动煮饭等。该产品具有响应速度快、高效,运行平稳,准确性高等特点。

  关键词:物联网;OneNET;Delphi;电饭锅

物联网技术

  0引言

  据调查,市面上最新、最智能的电饭锅的功能与传统电饭锅相比,除常用的预约功能外,还提供了互联网+的煮饭监控。电饭锅定时预约煮饭时,需要事先把大米洗干净并配好水,但大米长时间在水中浸泡影响了米饭的口感[1]。而利用手机APP控制物联网智能电饭锅,可以自动下米、洗米,且此类电饭锅尚未上市。因此,物联网智能电饭锅具有巨大的市场潜能。

  1系统总体结构

  系统主要分为APP终端模块、云平台、电饭锅模拟模块三部分,利用TCP/IP网络传输协议实现APP、硬件模拟模块与云平台之间的数据传送与命令下发。在APP确认电饭锅设备在线后,开始工作,远程获得储米箱的余米量,用户可在APP选择下米量和做饭模式,侦测电饭锅做饭的各种状态,直到煮饭完成。若离线,则APP无法使用。

  与传统电饭锅相比,本文系统多了手机和云平台数据的控制与检测。使用者只需用手机点击APP发送命令,就能实时监控电饭锅的状态。其主要实现步骤如下:(1)把适量的大米存在储米箱,当普通米缸使用。(2)家里或工地上的电饭锅通过WiFi模块连接云平台。(3)在手机APP的主菜单页面查询余米量,选择下米量,点击相应的煮食模式,APP将该功能发送至云平台,电饭锅接收指令。(4)电饭锅接收到指令后开始动作,且把每个操作步骤和做饭状态反馈至APP,实现电饭锅状态的远程智能化监控[2]。

  2OneNET云平台的搭建

  OneNET是中国移动自主研发的物联网开放云平台,全面支持NB-IoT设备接入,提供智能家电行业套件解决方案、视频能力服务和图形化应用开发工具,进一步整合产业链上下游资源,助力物联网生态圈构建[3]。搭建方法如下:

  (1)注册并登录OneNET,进入开发者中心界面,点击创建产品选项。产品创建名称为EDP电饭锅,产品行业为智能家居,选择设备接入方式为公开协议,联网方式为WiFi。设备接入协议EDP[4](EnhancedDeviceProtocol,EDP),使创建的“EDP电饭锅”产品具有上报传感器数据点和接收实时命令的功能。

  (2)打开公开协议产品界面,点击EDP电饭锅产品进入产品概况详细页,创建一个新设备EDP1,创建设备成功后,可在此页面获取设备信息:产品ID、用户ID、APIKey、设备接入协议、产品概要分析、设备趋势分析和数据点上传分析。其中,APIKey在设备创建时自动生成,可默认关联任何设备。

  (3)利用平台提供的EDPSDK,开展和接入服务器的TCP连接,实现EDP协议,用于上报业务数据点。官方网站的协议说明为《设备终端接入协议-EDP》。若要实时接收业务层下发的控制命令,则需保持EDP长连接,而且利用开放的API接口可自定义实现业务平台。可通过EDP协议的RESTFULAPI操作OneNET提供的资源,如设备增删改查、数据流创建、数据点上传、命令下发等,实现简单调用、快速生成应用[4]。EDP服务器地址域名为jjfaedp.hedevice.com,端口号为876。

  3物联网APP的开发工具

  3.1可视化的集成开发环境

  Delphi是Pascal项目的一个分支,基本语言还是Pascal语言[5],核心是ObjectPascal的集成开发环境(IDE)[6],其最大优点是作为一个面向对象设计为中心的开发工具,采用图形用户界面作为开发环境,使用类库和IDE,VCL工具编译器,大大提高了开发效率。

  3.2控件与过程

  (1)常用控件。Delphi使用VCL可视组件库,在窗体设计器右下方找到组件面板,按组件的不同特点和用户需求分门别类,可选择的控件有TButton,TGroupBox,TExit,TLable,TImage……分别称之为按钮、分组框、文本编辑、标签编辑和插入图片等。StyleBook样式是一种皮肤,也称做“样式”或“风格”,包含很多具有动画效果的动作,增强了用户界面体验[7]。

  (2)procedure过程:一类为标准过程;另一类为自定义过程。在本文设计中,中间部分的语句以begin开始、end结束,与C语言编程类似,但procedure过程没有返回值。本文使用的标准过程、自定义过程有表单创建过程、表单结束过程、按钮过程、扫描接收过程、定时器定时使用过程等[8]。

  3.3APP的主要功能

  进入物联网电饭锅APP主界面后,可看到有几种做饭模式。

  (1)检测电饭锅设备状态当电饭锅断电或未成功连网时,设备状态显示离线;反之,则显示在线。只有电饭锅设备状态显示在线时,APP的整体功能才被启动。侦查设备状态的功能运用了TjsonObject类,获取从OneNET返回的Json数据,提取需要的设备状态Status。

  (2)获取余米量,发送下米量从OneNET云平台获取余米量的数值后,在Delphi的程序中通过Json单元提取需要的字符串(单位:g);为了获得更好的用户体验,把获得的字符串转换成浮点型,再除以500得到以斤为单位的数值。另外,在电饭锅完成煮饭后,OneNET会再次返回储米箱的余米量显示给用户。硬件模块的生产需求规定:下米量为150g(3两)的倍数,因此设计下米量的单位为两,用户能直观地输入下米量。若未填写下米量,则米量组的“发送”按钮会变成灰色不可用,并弹出对话框“isnotavalidintergervalue”提醒用户输入需要煮饭的米量。

  (3)选择模式,查看做饭状态供选择的模式为保温/取消、标准、超快、蒸煮、煲汤、煮粥/稀饭。这些模式综合了市场上各种电饭锅的功能,在硬件水平设施能够实现的基础上设定。电饭锅的做饭状态为洗米中、洗米完成、煮饭中、煮饭完成。当用户选好做饭模式,填好下米量后,点击“发送”按钮,电饭锅动作、下正确的米量、喷水洗米,进入“洗米中”状态;洗米完成后为“洗米完成”状态;之后电饭锅自动进入“煮饭中”状态,数据上传至OneNET,手机APP定时扫描云平台,监控电饭锅状态,直到进入“煮饭完成”状态。

  4通信协议数据格式

  为了实现电饭锅和手机APP通信的数据准确性和设备的精准控制,本文设计了一套完整的电饭锅通信协议,实现无线传感网数据的封装[9]。

  4.1连接请求和连接响应

  (1)连接请求是指电饭锅在通电以后,通过一段数据包连接OneNET云设备。连接请求包含消息头、选项和消息体三部分。选项包括协议名称、协议版本、连接标志、保持连接时间。消息体包含设备ID、鉴权信息,内容均为长度+内容的字符串格式,设备ID必须传递。数据格式如下:消息类型+剩余字节长度+选项1:协议描述+选项2:协议版本+选项3:连接标志+选项4:保持时间+设备ID字节长度+设备ID+API字节长度+API(2)连接响应是电饭锅连接请求返回的数据,也是OneNET云平台的自带协议。连接响应报文包含消息头与2个必选项。其中,选项包括1B响应标志和1B返回码选项。数据格式如下:消息类型+剩余字节长度+选项1:标志+选项2:返回码4.2电饭锅数据发送和APP数据接收(1)电饭锅转发数据的实质是向OneNET云平台存储数据。

  该消息是从设备到云平台发送的数据,由消息头、1个选项和消息体组成,其中选项标志位必填,其他根据标志位选填。消息体选择type=5的数据结构,为自定义间隔字符串格式,消息编号是一个零值。服务器收到此消息后,不会响应一个SAVE_ACK消息。数据格式如下:消息类型+剩余字节长度+数据结构类型+剩余字节长度+内容(数据固定五位数)(2)当电饭锅把数据存储在OneNET后,APP在定时器定时扫描的作用下获取变化的数值。APP接收的数据通过调用设备API服务读取,数据结构为Json格式[10]。

  4.3APP命令下发和电饭锅数据接收

  (1)APP命令下发的实质是移动终端通过OneNET云平台对电饭锅进行数据透传。本文设计命令下发内容为:煮食方式+下米量。其中,每种煮食选择方式对应的模式。在标准模式下发送下米量,使用重复校验法把做饭方式和下米量重复发送两次,保证数据的准确性,其具体发送方式。在超快、蒸煮、煲汤、保温/取消、煮粥/稀饭等模式下,下米量的发送亦如此。与APP数据接收一样,调用API服务发送命令给电饭锅,数据结构同样为Json格式。

  (2)在APP选择和点击确认后,OneNET云平台下发命令,电饭锅接收到一串数据包,格式为《设备接入终端协议-EDP》下消息类型的5.7命令请求,该消息由服务器发往客户端,以执行指定的命令。

  4.4心跳请求和心跳响应

  心跳请求:确保电饭锅和OneNET进行长连接,时间约为2min,只有消息头,由电饭锅发送至OneNET服务器,数据格式为C000。心跳响应:在心跳请求后,若成功,则OneNET会有响应。该消息从OneNET服务器返回电饭锅,数据格式为D000。在APP电饭锅的程序里,每隔3min发送一次心跳请求,确保电饭锅与OneNET保持长连接。

  5功能调试与实现

  5.1网络调试助手

  NetAssist设置NetAssist模拟电饭锅硬件连接OneNET,根据官网上提供的《设备接入协议-EDP》,设置NetAssist的协议类型为TCPClient。本地主机地址设置为电脑本地IP地址,远程主机地址设置为EDP服务器IP地址180.230.40.39,端口号为876。若点击连接后对话框变为红亮,则NetAssist连接成功。

  5.2设备状态检测

  根据上文设计的通信协议数据格式,电饭锅连接OneNET上的设备号为4091736,APIKey为8Ex1CCrRNYoxBLj2IlYWx10Jn0w=的设备,因此网络调试助手NetAssist发送的数据包为:1030000345445001400100000734303931373336001C38457831434372524E596F78424C6A32496C59577831304A6E30773D在NetAssist上响应20020000,OneNET显示在线,APP页面显示设备状态,此时表明连接成功。

  5.3数据发送与接收

  (1)发送与接收余米量。在电饭锅启动和电饭锅煮饭完成后,电饭锅都向OneNET平台返回一次余米量。现假设电饭锅硬件的储米箱米量为1123g,根据上文设计的电饭锅数据发送协议,发送的数据格式为“,;rice,01123”。其中,rice是余米量对应的数据流;01123是固定发送的5位数据,因此在1123前添加0,变成01123。数据包为:80100005000C2C3B726963652C3031313233在OneNET上的rice数据流中能看到数据01123,表明电饭锅发送数据成功。电饭锅发送余米量后,在APP界面显示接收余米量的数据。

  (2)发送与接收做饭状态。在电饭锅做饭的四个过程中,每个过程完成后都发送其状态,告知APP其状态并显示在页面上。其中,“洗米中”发送“AA”;“洗米完成”发送“BB”;“煮饭中”发送“CC”;“煮饭完成”发送“DD”,发送的数据格式为“,;status,AA”。5.4心跳包由于电饭锅使用网络调试助手NetAssist模拟,因此无法使用程序控制定时发送心跳请求。在本文设计中,需手动大约2min发送一次心跳请求,数据包为C000,维持电饭锅与OneNET平台的长连接。若确保心跳响应为D000,则表明电饭锅长连接能保持,EDP电饭锅设备一直显示在线。

  6结语

  本文借助OneNET平台的EDP协议,设计了基于Delphi的可视化电饭锅APP,完成了传送数据包、分析Json数据、获取Json有用元素的系统设计。通过测试表明,该系统运行稳定,数据传输准确,发生重传的几率低,可应用于对物联网电饭锅的控制。

  参考文献

  [1]刘意期,彭一航,龙世瑜,等.基于物联网+电饭锅的设计[J].福建电脑,2017,33(9):8-9,14.

  [2]朱璟,李世国.物联网环境下的新型智能家电之设计思考[J].包装工程,2010,31(16):70-73.

  [3]中移物联网开放平台NBIoT设备接入[OL].[2017-08-03].

  [4]彭小红,邢旭峰,曾宏俊.基于OneNet物联网云平台的智能养殖系统[J].现代计算机(专业版).2017(31):67-72.

  物联网论文投稿刊物:《物联网技术》杂志就是以迎接这次革命浪潮为己任,以纸质媒体、网络传播为手段,采取网刊互动的方法,将物联网这个提升为国家发展战略的概念,用通俗易懂的语言和案例宣传介绍给大家,为其广泛的普及和应用打好基础。

转载请注明来自发表学术论文网:http://www.fbxslw.com/dzlw/22645.html