基于嵌入式Linux的QQ物联系统的设计与实现

2017-08-29 15:00邓远钊
电脑知识与技术 2017年21期
关键词:序列号物联开发板

邓远钊

(广东工业大学信息工程学院,广东广州510006)

基于嵌入式Linux的QQ物联系统的设计与实现

邓远钊

(广东工业大学信息工程学院,广东广州510006)

近年来,随着互联网和物联网的快速发展,QQ物联已经开始渗透到各行各业当中。因此加强QQ物联系统的研究具有重要意义。该文将实现一套基于嵌入式Linux的QQ物联系统,该系统以Linux作为操作系统,以S3C2440作为开发平台,使用SDK(Software Development Kit,即软件开发工具包)来绑定手机QQ,从而使手机QQ实现与硬件交互信息。任何手机QQ只要跟硬件终端在同一局域网内均可连接该设备,然后便可以用手机QQ来控制开发板的LED灯和屏幕的亮度变化。

嵌入式;QQ;物联网;SDK

1 概述

近年来互联网技术快速发展,互联网已经开始渗透到各行各业当中。传统硬件设备功能单一,如果能把这些设备接入互联网则可以实现设备的远程控制、信息数字化和管理智能化,将会极大地丰富人们的生产生活。因此传统硬件设备厂商要提升产品竞争力急需让设备与互联网相连接,从而进行信息交换和通信,以实现对物品的智能化识别、定位、跟踪、监控和管理等等,即“物联”[1-2]。QQ是腾讯公司开发的一款基于Internet的即时通信软件。QQ支持在线聊天、视频通话、点对点断点续传文件、共享文件等多种功能,并可与多种通讯终端相连。QQ功能强大、操作简单,用QQ连接传统硬件设备后,可以使用QQ方便地控制设备。而且可以免去自行开发软件,缩短了开发时间,降低了研发成本。因此,加强对QQ物联系统的研究,有重要的应用价值和学术研究意义。

2 QQ物联开发流程

图1为QQ物联开发流程图。

3 QQ物联开发准备工作

1)建立开发帐号:到QQ物联官网http://iot.open.qq.com中点击申请公测,然后申请开发者帐号,接着申请白名单,通过腾讯的审核后便可进入配置平台。

2)创建新设备:进入配置平台-设备后,点击添加设备按钮,填写“设备名称”及选择“设备类型”后即可开始快速注册一个新设备。完成后,已经获得该产品的设备PID和服务器公钥。

3)配置设备后台:下载网页上的公钥&证书工具,然后运行密钥生成工具,点击生成公私钥对按钮,会在指定的目录下生成一对非对称密钥文件:ec_key.pem和public.pem。之后点击按钮上传public.pem就可以了。然后在功能配置中选择添加特殊功能,根据自己的需要选择,接着进入控制器设置,选择模板。这两步的设置是将来手机上显示的效果。

图1 QQ物联开发流程图

4)创建设备序列号和密钥:运行密钥生成工具,指定目录,然后点击生成公私钥对,接着选择使用自有序列号并在方框中输入序列号,最后选择已有私钥加密,添加ec_key.pem,点击生成Licence按钮,则成功生成一个licence文件。

licence、公钥和私钥说明:整个过程涉及2对公钥私钥,设备一对,服务器一对。服务器生成服务器公钥和私钥,服务器公钥可以在QQ物联设备后台配置页面下载(由QQ物联官方提供),服务器私钥由服务器保存。这对公钥和私钥用于数据传输。厂家生成公钥和私钥,公钥上传给服务器,私钥用来给GUID(设备ID)或者SN(序列号)签名,得到一个licence文件。然后把licence文件存到设备里面,私钥不公开。设备上是看不到私钥的,只能看到licence文件。之后,设备上传明文:GUID,密文:licence文件(签名文件)给服务器。服务器会用之前上传给它的公钥,解释出licence,得到GUID,比较一下,如果相等,那就是正品。这对公钥和私钥用于正品认证[3]。

4 QQ物联设备端功能实现

1)到QQ物联官网下载软件SDK,得到Tencent_iot_SDK,利用里面的demo_bind.c初始化SDK以及建立设备与QQ物联后台的连接。

2)使用datapoint接口来收发手机QQ的数据:例如按下手机QQ的led1按钮,则通过datapoint接口来发送消息给开发板,开发板也可以通过datapoint接口来返回开发板中led1的状态。

3)led驱动和应用程序的测试:

(1)把 驱 动 程 序 jz2440_led_drv.c和 应 用 程 序jz2440_led_app.c以及Makefile放入linux目录下面,编译得到驱动文件jz2440_led_drv.ko。

(2)然后使用命令:arm-linux-gcc-o jz2440_led_app jz2440_led_app.c编译得到应用程序jz2440_led_app。

(3)把jz2440_led_drv.ko和jz2440_led_app复制到网络文件系统中。

(4)重启开发板,设置ip地址:ifconfig eth0 192.168.1.17,挂载网络文件系统:mount—t nfs—o nolock 192.168.1.107:/work/ nfs_root/qq_iot/mnt,接着进入相应目录,加载驱动文件:insmod jz2440_led_drv.ko。

(5)最后执行应用程序:./jz2440_led_app,发现led不停地亮和灭,表明驱动和应用程序都可以了[4-5]。

4)lcd界面的绘制是由程序gui_base.c来完成的,gui_base.c中主要函数的功能:GUI_Clear:清屏;GUI_SetPixel:描点;GUI_DrawHLine:画横线;GUI_DrawVLine:画竖线;GUI_Draw⁃Line:画任意线;GUI_FillRectangle:填充矩形;GUI_SetFont:设置字体;GUI_PutChar:显示字符;GUI_PutString:显示字符串;GUI_DrawCircle:画圆;GUI_DispNum:显示数字;

其它主要函数的功能:grid.c:画表格;status_led.c:状态灯的显示;progressbar_update:进度条的显示;view.c:设置具体要显示的字符;

5)把上述使用到的程序放入net_bind_detector文件中,把net_bind_detector文件放入linux目录中,编译后得到应用程序:net_bind_detector。

(1)重启开发板,设置ip地址:ifconfig eth0 192.168.1.17。

(2)挂 载 网 络 文 件 系 统 :mount-t nfs-o nolock 192.168.1.107:/work/nfs_root/qq_iot/mnt。

(3)接 着 进 入 相 应 目 录 ,加 载 led驱 动 :insmod jz2440_led_drv.ko。

(4)设置外网:route add default gw 192.168.1.1。

(5)执行应用程序:./net_bind_detector[6]。

5 整体测试

本文提出的系统方案已通过测试。图2为开发板正面,可以看到led的状态和light的数值等。图3为开发板反面,可以看到打开led灯开关后,2个led灯已亮。整个系统高效稳定,操作方便,开发成本也低,可运用于多种场合。

图2

图3

[1]腾讯公司.QQ物联全解释[J].物联网技术,2015.

[2]关勇.物联网的行业发展分析[D].北京:北京邮电大学,2010.

[3]徐庆征,罗相根,刘震宇.公钥密码体制综述[J].现代电子技术,2004(23):105-106.

[4]宋宝华.Linux设备驱动开发详解:第二版[M].北京:人民邮电出版社,2010.

[5]韦东山.嵌入式Linux应用开发完全手册[M].北京:人民邮电出版社,2009.

[6]张欢庆.基于ARM处理器的嵌入式Linux系统关键技术研究[D].山东师范大学,2013.

The Research and Realization of QQ Things System Based on Embedded Linux

DENG Yuan-zhao
(School of Information Engineering,Guangdong University of Technology,Guangzhou 510006,China)

In recent years,with the rapid development of Internet and the Internet of Things,QQ things system have begun to penetrate into all walks of life.Therefore,it is of great significance to strengthen the research of QQ things system.This paper will achieve a set of QQ Things System Based On Embedded Linux,the system using the Linux as operating system,S3C2440 as devel⁃opment platform,Use the SDK(Software Development Kit,the software development kit)to bind mobile QQ,so that phone QQ to achieve interaction with the hardware information.Any mobile phone QQ can connect to the device as long as the hardware terminals is in the same local area network.And then you can use the phone QQ to control the development board LED and the brightness change of screen.

embedded;QQ;Internet of Things;SDK

TP311

A

1009-3044(2017)21-0055-02

2017-06-10

邓远钊(1991—),男,广东博罗人,硕士研究生,研究方向为嵌入式、物联网。

猜你喜欢
序列号物联开发板
《智能物联技术》征稿启事
王永岗:改造物联服务链助力现代农业
《智能物联技术》征稿启事
recALL
Microchip最新推出两款PIC32 Curiosity开发板
浅析单片机开发板的设计与制作
Mouser为您呈上开发关键之STMicroelectronics Nucleo开发板
Arduino和Atmel发布Arduino Zero开发板
PP助手教你辨别翻新iPhone5小白不再中招
温度传感器DS18B20序列号批量搜索算法