橙狮智能硬件软件三套(含源码和开发文档)

1、概述

智能硬件软件三套,包括:

1、智能硬件固件,智能硬件操作系统一般是Android,Linux和RTOS(如freertos)。这里说的智能硬件固件是:Android系统的launcher app,linux系统的主应用程序,RTOS上的完整固件。

2、APP是指智能硬件配套的APP,可以说手机APP,小程序或者公众号。

3、admin,后台管理系统,一般实现智能硬件和APP的运营管理功能。

 

本文描述的一个批量量产智能硬件的软件,具体硬件形态是儿童陪伴机器人,操作系统是Android。主要阐述与一般APP相比、智能软件软件区别性内容,包括:项目软件架构,MQTT 协议参考。

2、软件架构

1、软件模块介绍

image.png

 

 智能硬件软件一般都会有一个需求是APP与智能硬件之间全双工实时通讯,这个需求通常实现方案是:APP和后台,智能硬件与后台都实现长连接。在介绍长连接前,先总体介绍项目软件:

1、APP,是Android和iOS APP,技术方案是:采用cordova跨平台框架进行打包webapp 相关内容请访问 http://cordova.apache.org/   web渲染采用react框架 相关内容请访问 https://facebook.github.io/react/ ; UI采用ant框架 相关内容请访问 https://mobile.ant.design/index-cn 。 APP与后台的长连接是用socket.io实现的websocket,短连接是HTTP1.1。

 

2、admin是 node.js为webServer,react结合redux的前端框架进行封装,功能对于智能硬件后台管理来说,比较特别的功能是智能硬件mac地址的导入,导入mac的硬件才可以接入正常接入。

 

3、智能硬件固件,本项目是android系统,智能硬件固件包括andorid SDK以及luancher APP。Android SDK是支持智能硬件各类驱动的Android系统(如显示屏驱动,触控模块驱动,按键驱动等)。luancher APP与后台的短连接是HTTP1.1,长连接是MQTT协议。luancher APP主要实现智能硬件各类交互和业务功能,如类似智能音箱的语音交互功能,与APP的语音IM功能,点播音视频功能,系统升级功能等。另外,对于android系统带屏幕的智能硬件产品,一般也会集成不少APP来丰富产品功能。

 

4、Beckend 是后台的主要业务服务器,包括手机APP websocket server端,手机APP和智能硬件固件手机APP HTTP接口的业务,Rabbitmq的消息生产和消费。

 

5、MQTT server 是基于Rabbitmq配置而成,实现MQTT协议到后台消息队列的转换。

 

2、长连接

1、原理描述

image.png

 

 APP与后台的长连接实现的方案很多,本项目的方案是websocket。智能硬件与后台采用的是mqtt协议,采用mqtt的原因是在智能硬件则更加通用,android,linux,rtos都有成熟方案支持mqtt。

 APP启动连接到Backend的websocket server,APP即可与backend实时双通;

 智能硬件接入到mqtt server需要user和password,每台硬件的mqtt user需要唯一,可以基于硬件mac地址生成user,password 可以用生成uuid。智能硬件设备启动后,按约定生成的mqtt user和 password登录到mqtt server,实现与mqtt server 实时双通。

  通过智能硬件的mqtt user和APP的user的绑定,可以将智能硬件和APP关联起来。在产品需求中,智能硬件与APP是一对多的关系,即一台智能硬件可以绑定多个APP用户,通过APP进行绑定和解绑,所以mqtt user和 app user在数据库中是一对多关系。

2、数据库设计

以下是智能硬件(机器人)表,其中包含mqtt user和mqtt password

 

DROP TABLE IF EXISTS `robot`;

CREATE TABLE `robot` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`code` varchar(255) NOT NULL COMMENT '机器人标识',

`avatar` varchar(255) NOT NULL DEFAULT '' COMMENT '头像',

`nickname` varchar(255) NOT NULL DEFAULT '' COMMENT '昵称',

`birthday` varchar(255) NOT NULL DEFAULT '' COMMENT '生日',

`gender` tinyint(1) unsigned NOT NULL DEFAULT '0' COMMENT '性别:1男,2女',

`version` varchar(255) NOT NULL DEFAULT '' COMMENT '当前版本',

`alive_time` datetime DEFAULT NULL COMMENT '最后激活时间',

`token` varchar(255) NOT NULL DEFAULT '' COMMENT '登录token',

`refresh_token` varchar(255) NOT NULL DEFAULT '' COMMENT '刷新token',

`expire_time` datetime DEFAULT NULL COMMENT '最后有效时间',

`mqtt_username` varchar(255) NOT NULL DEFAULT '' COMMENT 'mqtt user',

`mqtt_password` varchar(255) NOT NULL DEFAULT '' COMMENT 'mqtt password',

`ip` varchar(20) NOT NULL DEFAULT '' COMMENT '机器人ip',

`model` varchar(255) NOT NULL DEFAULT '' COMMENT '机器人型号',

`public_id` varchar(255) NOT NULL DEFAULT '' COMMENT '机器人id',

`sn_no` varchar(255) NOT NULL DEFAULT '' COMMENT '底部sn号',

`mac` varchar(255) NOT NULL DEFAULT '' COMMENT 'Mac地址',

`update_time` datetime NOT NULL,

`create_time` datetime NOT NULL,

`delete_time` datetime DEFAULT NULL,

`anti_addiction_rest_duration` int(11) unsigned NOT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `code` (`code`),

UNIQUE KEY `token` (`token`),

UNIQUE KEY `refresh_token` (`refresh_token`)

) ENGINE=InnoDB AUTO_INCREMENT=2410 DEFAULT CHARSET=utf8 COMMENT='机器人表';

 

以下是机器人关系表,robot_id是机器人表的id,user_id的APP用户id。

 

DROP TABLE IF EXISTS `robot_relation`;

CREATE TABLE `robot_relation` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`robot_id` int(11) unsigned NOT NULL COMMENT '机器人id',

`user_id` int(11) unsigned NOT NULL COMMENT '用户id',

`relation` varchar(255) NOT NULL COMMENT '关系类型',

`update_time` datetime NOT NULL,

`create_time` datetime NOT NULL,

`delete_time` datetime DEFAULT NULL,

PRIMARY KEY (`id`),

UNIQUE KEY `relation` (`robot_id`,`user_id`),

KEY `robot` (`robot_id`) USING BTREE,

KEY `user` (`user_id`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=2596 DEFAULT CHARSET=utf8 COMMENT='机器人关系表';

 

 

2、MQTT协议范例


1、向智能硬件单曲点播

 

服务端发送

 

字段

内容

说明

cmd

playNetMusic

命令

playIndex

1

当前播放的索引值

listSource

ximalayaFM

列表资源来源

trackId

4945682.mp3

列表单曲示记

fileSource

ximalayaFM

单曲资源来源

title

1.为什么读唐诗以及如何参与该节目

单曲名称

type

1

播放类型(1=网络专辑、2=网络专题、3=历史播放列表、4=自建列表、5=网络单曲、6=收藏夹、7=本地播放、8=下载单曲标记)

lastOperationDate

 

最后更新时间

url

http://fdfs.xmcdn.com/group5/M09/2C/71/wKgDtVSs5ceiYxw4AED86dBrPGA859.mp3

资源URL

duration

426

时长(秒)

listId

323509

列表ID

total

0

列表单曲总数

pushDate

2018-11-30 10:30:13

推送时间

实例:

{"playIndex":1,"listSource":"ximalayaFM","trackId":"4945682.mp3","fileSource":"ximalayaFM","title":"1.为什么读唐诗以及如何参与该节目","type":1,"lastOperationDate":"","url":"http://fdfs.xmcdn.com/group5/M09/2C/71/wKgDtVSs5ceiYxw4AED86dBrPGA859.mp3","duration":426,"listId":"323509","total":0,"cmd":"playNetMusic","pushDate":"2018-11-30 10:30:13"}

 

2、播放控制(上一首/下一首/播放/暂停)

1)、服务端发送

 

字段

内容

说明

cmd

backward/ forward

backward:下一首

forward: 上一首

playing:播放

pause: 暂停

 

实例:

{"cmd":"backward/forward/playing/pause"}

 

2)、设备端响应

字段

内容

说明

cmd

changeNetMusic

命令

direction

forward

方向(由微信发起)

listId

1ee070679209453c8aeed761707901c4

列表ID(由单曲点播提供)

listSource

ximalayaFM

列表来源(由单曲点播提供)

playIndex

9

播放索引值(由单曲点播提供)

total

total

列表总数(由单曲点播提供)

type

2

列表类型(由单曲点播提供)

 

实例:

{"cmd":"changeNetMusic","direction":"forward","listId":"1ee070679209453c8aeed761707901c4","listSource":"ximalayaFM","playIndex":9,"total":26,"type":2}

 

 

橙狮软件专注于项目原型输出(源码、资料等)和项目合作开发,团队成员包括:各类软件开发(大前端,大后端,AI,大数据,嵌入式),产品经理,美术(动画,插画,UI),各类合作欢迎关注公众号“橙狮软件”

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智能养老app系统码是一个基于android平台的应用开发项目,它旨在为老年人提供一种方便快捷的生活方式,满足他们的日常需求。该app系统通过一系列的智能化功能,如智能健康监测、社交互动、娱乐休闲等,为老年人提供了更加便捷的生活服务。 在该项目的软件工程全过程文档中,我们可以看到该项目经历了需求分析、设计、实现、测试等多个阶段。在需求分析阶段,我们通过市场调研、用户访谈等方式,了解老年人的实际需求,确定该应用需要提供的核心功能和服务。在设计阶段,我们采用了面向对象的设计方法,通过模块化的方式,将系统拆分为多个子系统,以便于实现和维护。在实现阶段,我们遵循了android开发规范,采用了java、xml等技术手段,实现了该应用的核心功能。在测试阶段,我们对系统进行了多次测试,包括单元测试、集成测试、系统测试等,确保了该应用的稳定性和可靠性。 在该项目的码中,可以看到该应用使用了android平台提供的众多技术,如SQLite数据库、网络通信、相机、地图等,这些技术的运用,为该应用提供了更加强大的功能和更好的用户体验。同时,在码中我们还看到了该应用的多个模块,包括用户管理、消息推送、智能健康监测等,这些模块的实现,构成了该应用的核心功能。 综上所述,该android开发智能养老app系统码是一项涵盖软件工程全过程的实践项目,通过该项目的实现,不仅熟悉了android开发技术,还了解了软件项目的整个开发过程,是一项有益的期末课程大作业。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值