Dragonboard 410C开发板在物联网设计中的应用

2019-12-04 04:16李伟吴琼
数字技术与应用 2019年8期
关键词:令牌开发板代码

李伟 吴琼

摘要:本文设计和实现了一种基于Dragonboard 410C开发板的物联网实验平台。该平台通过采用微信客户端、微信公众平台、新浪云应用SAE和OneNET物联网平台相配合。利用互联网传输协议,通过微信指令控制Dragonboard 410C开发板连接的硬件资源。该方案可以有效降低学生开发物联网项目的难度,有助于学生了解物联网体系接结构。

关键词:Dragonbaord 410C;微信公众号;OneNET云平台;云应用SAE

中图分类号:TP368 文献标识码:A 文章编号:1007-9416(2019)08-0139-03

0 引言

随着智能农业、智能交通、智能家居等的快速发展,应用物联网技术的产品也快速的走进了千家万户。要组建一个具有通信和交互功能的物联网产品,需要由终端设备、网关、物联云平台等构成[1-3]。传统的终端设备需要由底层开始开发,难度比较大,对于刚进入物联网专业学习的学生来说,不易理解物联网的体系结构,而Dragonbaord 410C開发板作为一体的物联网终端设备,可以较好的应用在教学实践以及创新设计中,能较好的帮助学生理解物联网体系的应用层、网络层,感知层的体系结构。

1 Dragonboard 410C开发板简介

Dragonboard 410C开发板作为本系统的硬件主体平台 它的尺寸仅有信用卡那么大。作为由高通公司开发的最前沿的物联网硬件开发平台,DragonBoard 410c开发板具有非常强大的性能。Dragonboard 410C开发板是首款采用Snapdragon 410处理器的硬件平台,板载资源包括1GB LPDDR3 RAM、8GB eMMC 4.51 Flash、WiFi/BT/GPS/FM功能、60pin高速扩展接口、40pin低速扩展接口以及16pin模拟扩展接口等[4]。用户通过将键盘、鼠标、显示器等和开发板一起连接,便可构成一部卡片式计算机。该开发板不仅可以运行Linux系统,还可运行Android系统,对于物联网产品的开发非常便利。该开发板如图1所示。

2 基于Dragonboard 410C的实验系统设计

基于微信控制Dragonboard 410C开发板的物联网应用设计系统包括微信公众号的开发、新浪云应用SAE的开发、OneNET云平台的开发及Dragonboard 410C平台的开发及配置。实验系统设计的主要思路为创建一个微信公众号并进行微信公众号的后台服务器配置,当用户关注了该公众号之后即可使用命令与后台配置的服务器进行信息交互。当微信公众号后台的服务器收到用户的相应指令并解析后,发送相应的数据到OneNET平台所创建项目中。Dragonboard 410C开发板通过OneNET 设备接入协议和OneNET 云平台进行信息交互,根据获取到的数据来控制Dragonboard 410C开发板上的硬件资源,整体流程图如图2所示。本文以微信控制Dragonboard 410C开发板的GPIO口所连接的LED灯为例,当用户发送开指令时连接在Dragonboard 410C开发板上的LED灯点亮,当用户发送关指令时LED灯变灭,以此模拟微信对Dragonboard 410C开发板的硬件控制。

3 基于微信控制的Dragonboard 410C的物联网系统开发

3.1 微信公众号平台开发

首先需要申请微信公众平台,在微信公众平台上注册账号,在注册账号的过程中选择订阅号,并按照对应的提示完善信息。完成微信公众平台注册并登录后,可以见到设置、开发等选项。进入设置选项中的公众号设置可以设置所创建的公众号的名称、微信公众号的简介等信息。其中最为重要的是开发选项,开发选项中的基本配置是微信公众平台开发最为关键的一步,其中最重要的是设置服务器配置。服务器配置中有几个关键的参数,服务器地址、令牌和消息加解密密钥,服务器地址是开发者用来接收微信消息和事件的接口地址,在本文中设置为所创建的新浪云应用SAE的地址。令牌可以任意填写,用作生成签名,该令牌需要和服务器地址中的令牌进行比对,从而验证信息的安全性。同时用户可以选择消息加解密方式,默认的为明文方式。一旦设置好服务器地址及令牌并提交信息后,可以验证服务器地址的有效性,微信服务器会发送GET请求到填写的服务器地址上并返回参数进行验证,若返回相应参数信息则接入有效,否则为接入失败。

3.2 新浪云应用SAE的创建

通过注册一个账号后登陆新浪云应用服务器,进入新浪云的网站后在顶部“控制台”菜单下选择下拉菜单“云应用SAE”,并创建一个新的云应用,并进行相应的配置。创建的新应用的开发语言选择为Python,运行环境选择为共享环境,该环境仅支持Python2.7的版本。代码管理方式有SVN和Git两种模式,选择SVN模式可以同时管理多个版本的代码,本文中选择SVN模式。二级域名和应用名称由用户自己输入,二级域名前缀由字母数字构成,应用名称可以由中英文构成。创建的云应用默认版本为1,默认的二级域名为http://1.输入的二级域名前缀.applinzi.com。点击云应用的管理选项后选择代码管理,点击在线编辑可以修改代码。

可以看到默认的代码文件是config.yaml和index.wsgi构成。config.yaml 是新浪云SAE 的项目配置文件,在config.yaml中配置代码主要是配置一些对应的库文件,利用- name:webpy以及version:"0.36"配置webpy包,利用-name:lxml以及version: "2.3.4"配置lxml包,从代码中以分析出云应用的服务中即将要调用webpy和lxml包。

index.wsgi 就是wsgi接口的应用的定义文件,扩展名为.wsgi,实质为普通的Python文件。根据新浪云SAE的环境要求,需要定义一个为应用的可调用对象,在index.wsgi中配置代码主要为导入os、sae以及web包,然后调用新创建的Interface.py文件中的所定义的服务类程序,代码urls = ('/weixin','Interface1')和新浪云应用SAE中的二级域名共同构成微信公众号服务器的地址。即得微信服务器的地址为http://1.db410.applinzi.com/weixin。

从微信公众平台开发文档中可以看到微信公众平台回复微信的消息有很多种方式,文本消息、语音消息等,在本文中选择最简单的文本消息的回复。根据微信公众平台给出的.xml文件代码进行修改,实现特定的消息返回给用户。因此需要在云应用的代码管理中新创建一个名为templates的文件夹,并在该文件夹中创建名为reply_text.xml的文件。使用$def with(toUser,fromUser,create Time,content)完成模板回复功能的封装,xml相关的代码在微信在微信公众号开发平台有说明。

最后在云应用的代码管理中创建一个名为Interface.py的文件,该文件用来进行令牌验证及根据不同的指令做出不同的回应。在该文件中利用GET方法完成和微信公众平台的令牌验证,只要在该文件中的令牌和微信公众平台的令牌验证一致,就可以互相通信。使用str_xml = web.data()获得post来的数据,并根据微信发过来的不同指令的内容做出不同的响应,做出不同的回应并回复特定消息给用户,回复特定消息给用户的语句为return self.render.reply_ text(fromUser, toUser, int(time.time()),"回复给用户的文字") ,当指令无法识别时同样利用上述代码回复给用户一个提示信息。

3.3 OneNET云平台

OneNET云平台是由中国移动开发的物联网开放云平台,包括應用域、平台域和设备域。该平台具有多协议接入、丰富的API支持、数据安全存储等优点。各类终端可以使用OneNET平台提供的多种通信协议接入网络,实现远程数据传输、数据管理等。OneNET的接入协议包括HTTP、EDP、MQTT、TCP透传等,按照不同的数据协议,OneNET云平台将接收到的数据解包存储,开发应用是通过Rsetful API 的方式实现和OneNET平台进行交互对接[5-7]。如图3所示。

完成在OneNET物联网平台的的注册以后,进入开发者中心即可创建自己的产品,其中最重要的信息为“设备接入协议”的选择、数据流的创建以及APIKEY。在本文中设备接入协议选择”HTTP”协议,创建的设备的ID、数据流名称、APIKEY及设备的URL地址需一致。在使用Python2.7云应用完成的SAE的服务函数及Dragon board 410C开发板上运行的程序中都会使用这些参数。

3.4 Dragonboard 410C开发板硬件连接及网络连接

Dragonboard 410C开发板上的LED灯的连接比较简单,利用导线将LED灯的一个引脚接入GPIO的33引脚,另一端接入开发板的GND引脚。

整个开发过程需要和互联网进行通信,因此需将Dragonboard 410C开发板接入到互联网。Dragonboard 410c开发板上自带有了WiFi连接模块,通过对WiFi模块进行设置即可接入到互联网。Dragonboard 410C开发板启动后,选择右下角的网络连接,选择WiFi热点并输入密码,最后点击连接就可以将Dragonboard 410C开发板接入互联网。Dragonboard 410c开发板上电后开始自动运行代码,主要完成通过通信协议获取OneNET物联网云平台对应的数据流。

4 系统测试

手机端的微信订阅创建的微信公众号后,输入信息框分别发送“open”和“close”命令后,微信公众号可以识别不同的命令进行自动回复,当命令超出识别范围也可以有相应的回复信息。相应过程会存在短暂的延时,主要由网络延时引起。发送“open”命令后,LED灯点亮;,发送“close”命令后,LED灯变灭。微信端显示界面如图4所示,OneNET平台的数据流如图5所示。

5 结语

本文设计了一种基于Dragonboard 410C开发板的物联网实验平台,利用Dragonboard 410C开发板作为硬件。利用微信公众平台的服务器将微信发送过来的命令进行解析,然后将数据发送到OneNet云平台,利用OneNet云平台提供的网络通信协议和硬件进行信息交互的物联网实验平台。该平台有助于学生深入理解物联网的体系架构,降低开发难度,为物联网专业的学生开展创新实践提供支持。

参考文献

[1] 杨艳,李东睿.浅谈基于OneNET平台的物联网通用应用平台的设计与实现[J].数字通信世界,2018(1):57-58.

[2] 桂龙,戴小鹏,申聪.基于树莓派和onenet云平台的智能家居系统的设计[J].福建电脑,2018(1):33-34.

[3] 王春梅,杨文龙.树莓派接入OneNET实现物联网系统的设计[J].电子设计工程,2019,27(07):133-137+143.

[4] 迎九.高通-艾睿为创客提供DragonBoard 410c开发板[J].电子产品世界,2015(7):74.

[5] 张伟,胡雄强,王明倩,等.一种基于物联网的智能家居系统设计[J].信息技术,2019(03):48-51.

[6] 陈宝远,褚庆文,孙忠祥,等.一种基于OneNet设备云的智能硬件组网方法[J].哈尔滨理工大学学报,2017,22(5):76-80.

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

Application of Dragonboard 410C Board in Internet of Things Design

LI Wei1,WU Qiong2

(1.Xinjiang Agricultural University, Urumqi Xinjiang  830052;

2.State Grid Xinjiang Electric Power Company Maintenance Company, Urumqi Xinjiang  830052)

Abstract:This paper designs and implements an Internet of Things experimental platform based on the Dragonboard 410C board. The platform works with WeChat client, WeChat Official Accounts platform, SinaAppEngine and OneNET IoT platform. With the Internet transmission protocol, WeChat commands can control the hardware of Dragonboard 410C. This platform can effectively reduce the difficulty of IoT for students,  it also helps students understand the structure of the IoT system.

Key words:Dragonbaord 410C; WeChat Official Accounts platform; OneNET cloud platform; SinaAppEngine

猜你喜欢
令牌开发板代码
称金块
基于路由和QoS令牌桶的集中式限速网关
创世代码
创世代码
创世代码
创世代码
动态令牌分配的TCSN多级令牌桶流量监管算法
Microchip最新推出两款PIC32 Curiosity开发板
浅析单片机开发板的设计与制作
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板