第1章 概  述

(作者小波QQ463431476)

(来源http://blog.chinaaet.com/zhaocundang/p/5100017645博客)

(来源   http://www.cnblogs.com/xiaobo-Linux/博客)

1.1 设计背景与意义

安卓物联系统的设计主要是解决安卓手机APP与智能硬件的结合,将互联网和生活中使用的家用电器结合。像智能家居那样,未来的发展离不开互联网,更离不开物联体系。手机通过4G网络就可以与家庭网络相连接,个人不在家中,就可以知道家里发生的所以事情,只要动一动手指头,在手机APP上点一点,远在千里之外就可以控制家里的台灯,风扇,热水器等家用电器,如果回家晚,就可以提前打开APP,通过网络打开家里的热水器。此外还可以远程监控家里的情况,给生活提供更多的便捷与快乐。物联系统APP的设计朝着智能化发展方向,与物联网相结合,为生活带来方便,为生活增添乐趣。

1.2 设计目标

(1)了解并熟练编写Android代码,了解安卓相关框架,了解安卓开发体系与运行机制,了解Eclipse Android环境的配置。

(2)使用多种Android组件,熟练使用Android多种控件。本软件是基于Eclipse开发环境,采用了Activity, Broadcast Receiver, Service组件,页面菜单采用Navigation Drawer ,每个页面采用Fragment,能任意比例适应手机大小,而且比较灵活。首页采用grid view网格布局,只是采用了横向布局,能够横向滚动的效果,可以快速地打开任意页面,比较方便。

(3)采用语音识别控制。项目中采用科大 讯 飞 语音识别API接口,来语音控制电器,小车,快速方便,而且具有语音文本朗读的功能。

(4)最简约的界面UI设计,采用Tranlucent沉浸式,获得简明友好的界面设计,扁平化简约圆形按钮,导航抽屉的快捷方便,最大限度的节省界面空间布局。

(5)使用Socket 套接字 连接WIFI 并实现传输数据,主要传输字符,用来控制硬件设备的高低电平触发。

(6)实现多种数据存储方式:完成SQLite数据库的存储,主要存储用户登录账号密码;另外一种比较轻快的数据储存方式share preference,主要用来暂时存储WIFI设置信息数据。

(7)实现硬件的焊接工作,主要是对Arduino开发板代码的设计,台灯风扇USB接口以及外部供电接口的设计,舵机连接的方式,摄像头有OpenWrt路由器连接的设置,继电器的焊接,以及平衡车电机驱动模块,MPU6050陀螺仪,Arduino主控,电机码盘和电机的接线方式。

第2章 需求分析

2.1 功能需求

安卓手机物联系统APP可以通过4G网络连接到家庭网络,查看家里的具体情况,可以查看家庭监控,可以远程遥控摄像头向左,向右转动。可以远程控制家里面的电器,例如热水器,台灯,风扇等家庭电器。此外也可以遥控智能平衡车,实现小车的前进,后退,向左,向右等。

2.2 界面需求

(1)登录、注册界面

首先是用户登录界面,用户登录和注册的界面为同一个,用来登录并注册账号密码并且保存在SQLite数据库中。用户可以随时登录并注册相关账号信息,SQLitte数据库保存账号信息使用户信息更加安全,便于维护数据库。

(2)主屏界面

用户主界面用来使用户快速地选择功能,采用GridView,实现了横线滚动,可以使用户有更好的体验。

(3)用户界面

用户界面主要显示用户的信息,采用TextView来显示可以完成什么样的功能。

(4)摄像头界面

摄像头界面主要实现监控视频的实时显示,以及控制监控摄像头向左,向右转动。

(5)网络界面

网络界面主要用来配置用户设置的WIFI地址,视频端口和控制端口号,便于开发维护,采用Share Preference轻量级存储数据,可以方便的保存数据,下次不用再次输入内容。

(6)电器界面

电器界面主要控制台灯、风扇的开关。

(7)语音界面

采用科大讯飞语音API接口,实现语音识别控制电器打开关闭,以及对平衡车的姿态控制。

(8)小车界面控制

主要实现对平衡车的前进、后退、向左、向右的方向控制。

//http://www.cnblogs.com/xiaobo-Linux/  qq463431476 (赵存档编写)

第3章 概要设计

3.1 设计框架图

系统主要分为5大主模块,主要是用户数据模块,摄像头模块,网络配置存储模块, 控制模块,语音识别和语音朗读模块,小车控制模块,系统总体框图如3.1所示:

图3.1 系统设计框图

3.2系统模块框图设计

(1)用户登录/注册模块框图

采用SQLite3数据库作为存储数据的方案,可以方便的维修用户信息。用户登录、注册框图如图3.2.1所示:

图3.2.1系统登录注册框图

(2)摄像头模块框图

摄像头模块主要显示监控画面,以及控制摄像头左转和摄像头右转,如图3.2.2所示:

图3.2.2摄像头框图

(3)网络设置模块框图

网络设置模块主要设置网络的URL地址,网络摄像头的端口号,网络控制端口号,框图如图3.2.3所示:

图3.2.3网络设置模块框图

(4)电器模块框图

电器模块框图主要实现台灯,风扇的打开和关闭,框图如图3.2.4所示:

图3.2.4电器控制模块框图

(5)语音模块框图

语音模块主要实现用语音识别来控制台灯和风扇的开关,平衡车方向的控制。框图如图3.2.5所示:

图3.2.5电器控制模块框图

(5)小车控制模块框图

小车模块主要是控制小车的方向,前进,后退,向左,向右,以及连接WIFI,框图如图3.2.6所示:

图3.2.6小车控制模块框图

3.3 设计框架说明

3.3.1 后台服务

语音识别和语音文本朗读使用了后台服务组件,采用Service的好处就是可以灵活的调用服务,后台运行。语音模块通过Intent Start Service的方式来启动Service服务,调用Stop Service 开关Service服务。服务里面主要实现语音API接口调用,语音识别,获取语音识别的结果,返回给Fragment。

3.3.2 SQLite 数据库存储

用户登录注册模块采用了SQLite数据库,SQLite3数据库用来存储用户的账号密码信息,方便维护用户信息数据。首先建立一个SQLite Helper的类来重载增删 改 查的方法,并且建立Database数据文件,以及建立表格。然后在用户类中自己定义函数实现增删改查。

3.3.3 Share Preference数据存储

Android轻量级的数据存储用来暂时存储用户的偏好设置,非常方便。用户存储的数据都是存放在XML文件中。

3.3.4 Grid View 数据适配器

数据适配器将图片和标题存放到链表数据结构中,显示的时候就以图片或者标题的长度遍历链表,输出完整的图片和文字标题。

3.3.5 Navigation Drawer导航抽屉

导航抽屉就是侧滑出界面菜单,节省空间布局大小。侧滑菜单采用Fragment里面包含一个List View, 采用一个数据适配器,List View里面包含图片和标题。

第4章Arduino开发板硬件方案

4.2.1 Arduino 主控搭建

(1)采用了Arduino Nano 最小板外加一个扩展版,主要用来控制台灯、风扇,语音模块和摄像头舵机,如图4.2.1.1所示:

图4.2.1.1 Arduino Nano 主控板

(2)控制平衡车则是采用了Arduino UNO R3板,如图4.2.1.2所示:

图4.2.1.2 Arduino Uno板

4.2.2 Arduino 台灯、风扇继电器搭建

继电器用来弱电控制强电,给继电器供电,来控制台灯、风扇的打开和关闭,如图4.2.2.1所示:

图4.2.2.1 台灯、风扇继电器

4.2.3 舵机和摄像头的搭建

舵机主要控制摄像头的左转和右转,摄像头用来采集视频图像,如图4.2.3.1所示:

图5.2.3.1 舵机摄像头

4.2.4 SYN6288语音文本合成模块

模块主要用于语音合成,播放台灯“台灯已经关闭”,“台灯已经打开”或者播放“风扇已经关闭”,“风扇已经打开”语音提示音,如图4.2.4.1所示:

图4.2.4.1 SYN6288语音合成模块

4.2.5 OpenWrt 路由器模块

Openwrt简单就是跑在微控制器上的Linux操作系统

路由器主要实现WIFI热点,以及摄像头图像的采集,WIFI串口控制Arduino MCU主控板的工作,如图4.2.5.1所示:

带串口的TX RX GND,然后连接MCU Arduino上的RX TX GND,即可通信(前提是Openwrt上安装ser2net一类的串口转发接收数据软件)

图4.2.5.1 OpenWrt路由器

4.2.5 平衡车整体电路搭建设计

平衡车系统电路搭建主要包括Arduino UNO R3主控制板,L298N电机驱动模块,MPU6059陀螺仪模块,降压模块,其他包括电池,电机等部件,整体设计如图4.2.5.2所示:

图4.2.5.2平衡车整体电路搭建

4.2.6 上部分电路搭建设计

上部分主要是控制台灯、风扇和舵机摄像头的左右转动,如图4.2.6.1所示:

图5.2.6.1 上部分电路设计

第五章测试

5.2.4 语音识别测试

主要看语音识别是否成功,测试图5.2.4

图5.2.4 语音识别测试图

5.2.5 广播发送接收测试

主要测试广播是否发送接收成功,测试图如图5.2.5所示:

图5.2.5 广播测试图

5.2.6 Wi-Fi 发送接收测试

主要测试WIFI是否发送接收成功,测试图如图5.2.6所示:

图5.2.6 WIFI发送接收测试图

5.3 硬件测试过程

5.3.1 台灯风扇的测试

用手机连接Wi-Fi测试是否可以打开和关闭风扇,如图5.3.1所示:

图5.3.1 控制台灯风扇测试图

5.3.2 摄像头和舵机的测试

用手机连接Wi-Fi测试是否可以接收监控图像和舵机左右转动,如图5.3.2所示:

图5.3.2 摄像头和舵机测试

5.3.3 智能平衡车的测试

用手机连接Wi-Fi测试平衡是否可以前进后退向左和向右,测试如图5.3.3所示:

图5.3.3平衡车测试

第6章 结 论

了解Android的开发流程,了解Android 的运行开发机制模式,熟悉了Android 4大组件代码编写与熟练的应用,对各种控件都有所了解和更深入的研究。

物联系统的项目将安卓手机APP与智能硬件设备结合,通过WIFI网络传串口的方式,与Arduino MCU主控串口通信,实现发送与接收数据,更加深入的了解软件和硬件结合密不可分的关系,作为软件与硬件结合,必定像是智能家居,智能物联系统 这样的智能设备的新潮流。

在项目开发中,对安卓各种UI界面和开发框架更有深入的了解,了解开发的思路,学习别人开发的方式方法,将与自己的项目结合,做一些更好的改进,在硬件中,学习Arduino 开发板硬件代码的编写,了解串口发送与接收的方式,保证能够成功执行相关指令。对于平衡车的控制,主要是对MPU6050陀螺仪的角度输出控制,卡尔曼滤波输出比较稳定的角度值,然后PID计算角度输出PWM脉冲来控制电机。当小车往前倾时,小车电机快速前进防止其倾倒,反之小车往后倾时,小车电机快速后退防止其倾倒,这样就保证小车稳定运行。

项目代码:https://item.taobao.com/item.htm?spm=686.1000925.0.0.QUGyYj&id=534691263656

最后下面是项目的演示视频:

语音识别控制风扇台灯的开关

安卓远程控制智能机器人,优化好的话必定是家庭机器人控制新潮流

Arduino 舵机摄像头转动

就介绍到这里啦,又什么想法或者有什么问题请在下面留言,一起学习进步吧!

安卓APP与智能硬件相结合的简易方案的更多相关文章

  1. app配置智能硬件的解决方案

    随着越来越多的智能硬件产品上市,越来越多的硬件都戴上了智能的帽子,什么智能插座,智能音箱,智能称等等.凡是所谓的智能,都是通过wifi或者蓝牙来连接互联网,其中蓝牙也只能算是手机的附属品吧.主要还是硬 ...

  2. [自己动手玩黑科技] 1、小黑科技——如何将普通的家电改造成可以与手机App联动的“智能硬件”

    NOW, 步 将此黑科技传授予你~ 一.普通家电控制电路板分析 普通家电,其人机接口一般由按键和指示灯组成(高端的会稍微复杂,这里不考虑) 这样交互过程,其实就是:由当前指示灯信息,按照操作流程按相应 ...

  3. 智能硬件+App移动新生态【北京、广州、深圳】

    智能硬件+App移动新生态[10.24北京站] 时间:2015年10月24日13:30-16:30 地点:Wepac空间(海淀区北四环西路68号左岸工社6层) 主办:APICloud.机智云.智石科技 ...

  4. 智能硬件+App移动新生态【11.01深圳】

    活动概况 时间:2015年11月01日13:30-16:30 地点:深圳腾讯大厦(南山区科技园科技中一路)2楼多功能厅 主办:APICloud.庆科.信鸽 费用:免费 活动背景 智能电视.智能汽车.智 ...

  5. 智能硬件+App移动新生态【10.24北京站】

    活动概况 时间:2015年10月24日13:30-16:30 地点:Wepac空间(海淀区北四环西路68号左岸工社6层) 主办:APICloud.机智云.智石科技.华为云 网址:www.apiclou ...

  6. 深度讲解智能硬件手机APP开发流程

    常州做APP开发公司紫竹云科技分析,智能硬件产品的软件开发,除了APP和后台之外还有一个固件端的开发,由于固件是要运行产品上的,不过此时的硬件也是刚开始进行研发,所以是无法提供硬件来运行固件的.因此在 ...

  7. 为智能硬件提供一站式解决方案——机智云GoKit评测

    为智能硬件提供一站式解决方案——机智云GoKit评测 2014年12月24日 作者: ladouyu 3 17,414+ 4 EMW3162GoKit开发板STM32F103智能硬件机智云2.0 从物 ...

  8. 如何为编程爱好者设计一款好玩的智能硬件(八)——LCD1602点阵字符型液晶显示模块驱动封装(中)

    六.温湿度传感器DHT11驱动封装(下):如何为编程爱好者设计一款好玩的智能硬件(六)——初尝试·把温湿度给收集了(下)! 七.点阵字符型液晶显示模块LCD1602驱动封装(上):如何为编程爱好者设计 ...

  9. [编译] 6、开源两个简单且有用的安卓APP命令行开发工具和nRF51822命令行开发工具

    星期四, 27. 九月 2018 12:00上午 - BEAUTIFULZZZZ 一.前言 前几天给大家介绍了如何手动搭建安卓APP命令行开发环境和nRF51822命令行开发环境,中秋这几天我把上面篇 ...

随机推荐

  1. backup2:数据库还原

    数据库还原的操作,分两步进行:第一步,验证(verify)备份文件:第二步,根据备份策略还原数据库: 参考<backup1:开始数据库备份>,备份策略是: 一周一次完整备份,一天一次差异备 ...

  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(34)-文章发布系统①-简要分析

    系列目录 最新比较闲,为了学习下Android的开发构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(1)-前言与,虽然有点没有目的的学习,但还是了解了Andro ...

  3. [.NET] 开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc

    开头不讲"Hello Word",读尽诗书也枉然 : Word 操作组件介绍 - Spire.Doc [博主]反骨仔 [原文地址]http://www.cnblogs.com/li ...

  4. 图的遍历(搜索)算法(深度优先算法DFS和广度优先算法BFS)

    图的遍历的定义: 从图的某个顶点出发访问遍图中所有顶点,且每个顶点仅被访问一次.(连通图与非连通图) 深度优先遍历(DFS): 1.访问指定的起始顶点: 2.若当前访问的顶点的邻接顶点有未被访问的,则 ...

  5. 使用MATLAB对图像处理的几种方法(上)

    实验一图像的滤波处理 一.实验目的 使用MATLAB处理图像,掌握均值滤波器和加权均值滤波器的使用,对比两种滤波器对图像处理结果及系统自带函数和自定义函数性能的比较,体会不同大小的掩模对图像细节的影响 ...

  6. 【Oracle 集群】Linux下Oracle RAC集群搭建之Oracle DataBase安装(八)

    Oracle 11G RAC数据库安装(八) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总 ...

  7. redis命令1

    SADD numbers 1 3 5 创建一个名为numbers的intset SADD fruites "apple" "peach" 创建一个hashtab ...

  8. Scrapy:为spider指定pipeline

    当一个Scrapy项目中有多个spider去爬取多个网站时,往往需要多个pipeline,这时就需要为每个spider指定其对应的pipeline. [通过程序来运行spider],可以通过修改配置s ...

  9. dicom网络通讯入门(2)

    第二篇,前面都是闲扯 其实正文现在才开始,这次是把压箱底的东西都拿出来了. 首先我们今天要干的事是实现一个echo响应测试工具 也就是echo 的scu,不是实现打印作业管理么.同学我告诉你还早着呢. ...

  10. Java核心技术点之多线程

    学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:279558494 我们一起学Java! 本文主要从整体上介绍Java中的多线程技术, ...