1、概述
智能硬件软件三套,包括:
1、智能硬件固件,智能硬件操作系统一般是Android,Linux和RTOS(如freertos)。这里说的智能硬件固件是:Android系统的launcher app,linux系统的主应用程序,RTOS上的完整固件。
2、APP是指智能硬件配套的APP,可以说手机APP,小程序或者公众号。
3、admin,后台管理系统,一般实现智能硬件和APP的运营管理功能。
本文描述的一个批量量产智能硬件的软件,具体硬件形态是儿童陪伴机器人,操作系统是Android。主要阐述与一般APP相比、智能软件软件区别性内容,包括:项目软件架构,MQTT 协议参考。
2、软件架构
1、软件模块介绍
智能硬件软件一般都会有一个需求是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协议到后台消息队列的转换。